Web應(yīng)用安全七大“致命”錯(cuò)誤
阿卡邁(Akamai)最近的《互聯(lián)網(wǎng)安全狀況》報(bào)告中寫道:“絕大部分Web應(yīng)用攻擊都是沒有特定目標(biāo)的大范圍漏洞掃描,但少數(shù)攻擊確實(shí)是為入侵特定目標(biāo)而進(jìn)行的針對(duì)性嘗試。無(wú)論哪種情況,攻擊都非常頻繁而‘嘈雜’,難以準(zhǔn)確檢測(cè),以致許多公司企業(yè)都無(wú)法保證其Web應(yīng)用防火墻(WAF)能夠有效運(yùn)行,也沒有空余時(shí)間來(lái)?yè)?dān)心其系統(tǒng)可能漏掉了什么。”
公司企業(yè)至少應(yīng)加強(qiáng)代碼安全,減少自身層面上的風(fēng)險(xiǎn)。那么,在Web應(yīng)用方面,公司企業(yè)往往又會(huì)犯下哪些“致命”的安全錯(cuò)誤呢?
1. 依然存在SQL注入漏洞
或許難以置信,但SQL注入漏洞今年12月份就該過(guò)20周歲生日了。而即便到了現(xiàn)在,SQL注入依然活躍在大量網(wǎng)站和Web應(yīng)用中。安全監(jiān)控公司 Alert Logic 的研究顯示,SQL注入攻擊長(zhǎng)期以來(lái)一直都是最普遍的Web攻擊方式,占該公司客戶報(bào)告事件的55%。
2. 不安全的反序列化
反序列化過(guò)程就是應(yīng)用接受序列化對(duì)象(序列化是將對(duì)象以某種形式編碼以便于存儲(chǔ)或傳輸)并將其還原的過(guò)程。如果反序列化過(guò)程不安全,可能會(huì)出現(xiàn)大問(wèn)題。
即便開發(fā)人員知道不能信任用戶輸入,但序列化對(duì)象總被高看一眼,在處理序列化對(duì)象的時(shí)候安全意識(shí)往往會(huì)松懈。這種情況下,不安全的反序列化過(guò)程不過(guò)是發(fā)送攻擊載荷的另一種方式而已。
Imperva Incapsula 報(bào)告稱,不安全反序列化攻擊近期快速抬頭,2017年最后3個(gè)月里增長(zhǎng)了300%,可能是受非法加密貨幣挖礦活動(dòng)的驅(qū)動(dòng)。
其中最大的擔(dān)憂就是,該不安全性可輕易導(dǎo)致Web應(yīng)用暴露在遠(yuǎn)程代碼執(zhí)行的威脅之下——攻擊者戰(zhàn)術(shù)手冊(cè)中排名第二的攻擊技術(shù)。開放Web應(yīng)用安全計(jì)劃(OWASP)去年將不安全反序列化納入其十大漏洞列表的原因之一正在于此。不安全反序列化可造成什么后果呢?最鮮明的例子就是Equifax大規(guī)模數(shù)據(jù)泄露事件——據(jù)稱就是應(yīng)用不安全反序列化漏洞發(fā)起的。
3. 依賴開源組件
說(shuō)到Equifax數(shù)據(jù)泄露事件,攻擊者利用的反序列化漏洞并沒有包含在底層軟件代碼本身當(dāng)中,而是存在于嵌入該軟件的開源 Apache Struts 組件里。
這就引出了Web應(yīng)用安全中的另一個(gè)致命因素——依賴未打補(bǔ)丁的風(fēng)險(xiǎn)性開源組件。軟件開發(fā)中開源組件的應(yīng)用越來(lái)越廣,開發(fā)小組往往并沒有跟蹤都有哪些組件應(yīng)用到了哪個(gè)位置,更別說(shuō)跟蹤所用版本和組件依賴關(guān)系了。
開發(fā)人員喜歡根據(jù)組件的流行程度來(lái)假定其安全性,總覺得越多人用的組件就越安全。然而,組件或庫(kù)可能會(huì)依賴其他庫(kù),產(chǎn)生復(fù)雜的依賴鏈。依賴鏈深層可能會(huì)有安全防護(hù)很弱的庫(kù),甚至可能會(huì)出現(xiàn)多種惡意行為,讓用了這些組件的軟件面臨所謂的供應(yīng)鏈攻擊風(fēng)險(xiǎn)。
4. 未使用內(nèi)容安全策略阻止跨站腳本
XSS是往帶漏洞Web應(yīng)用中插入惡意代碼的常見手段。與其他類型的Web攻擊不同,XSS的目標(biāo)不是Web應(yīng)用,而是使用Web應(yīng)用的用戶,最終傷害的是公司企業(yè)的聲譽(yù)及其客戶。
與SQL注入類似,XSS誕生已久,但仍對(duì)公司企業(yè)造成傷害和威脅。阻止XSS攻擊的最有效方式是使用內(nèi)容安全策略(CSP)——發(fā)展良好但仍未被大多數(shù)網(wǎng)站采納的技術(shù)。
Mozilla Observatory 掃描Alexa排名前100萬(wàn)的網(wǎng)站發(fā)現(xiàn),當(dāng)前僅0.022%的網(wǎng)站使用了CSP。使用CSP但忽略了內(nèi)聯(lián)樣式表(CSS)的站點(diǎn)則占0.112%,稍微多一點(diǎn)點(diǎn)。
5. 信息泄露
White Hat Security 表示,50%的應(yīng)用都有某種信息泄露漏洞。Veracode標(biāo)定的信息泄露漏洞存在比率更高——65.8%。這些漏洞會(huì)將有關(guān)應(yīng)用本身、應(yīng)用所處環(huán)境或應(yīng)用用戶的信息暴露給黑客,供黑客進(jìn)行進(jìn)一步的攻擊。
信息泄露可以是用戶名/口令泄露的嚴(yán)重程度,也可以是軟件版本號(hào)暴露這種“無(wú)害”的程度。通常重新配置一下就能堵上漏洞,但緩解過(guò)程卻往往視泄露數(shù)據(jù)的種類而定——敏感數(shù)據(jù)就及時(shí)解決,其他數(shù)據(jù)則不然。
然而,問(wèn)題在于,即便是軟件版本號(hào)這種“無(wú)害”的泄露,都能給黑客帶來(lái)攻擊上的優(yōu)勢(shì),為其將來(lái)的攻擊鋪平道路。
6. API漏洞
去年Web應(yīng)用頂級(jí)威脅還包括防護(hù)不周的API。
API在最近幾年很是火爆,開發(fā)人員在打造應(yīng)用的時(shí)候經(jīng)常用到API——作為向其他應(yīng)用提供服務(wù)或數(shù)據(jù)的一種方式。但不幸的是,這些API在Web應(yīng)用中實(shí)現(xiàn)時(shí)往往沒怎么考慮過(guò)安全問(wèn)題,而且這些防護(hù)不周的API還通常沒納入到傳統(tǒng)應(yīng)用安全測(cè)試過(guò)程中。
OWASP去年的十大安全漏洞榜單中也因此而將防護(hù)不周的API包含了進(jìn)來(lái)。隨著越來(lái)越多的公司企業(yè)將API用作當(dāng)今開發(fā)運(yùn)維團(tuán)隊(duì)鐘愛的輕量級(jí)快速部署軟件間的潤(rùn)滑劑,API漏洞威脅也隨之增大了。
Imperva幾個(gè)月前的一項(xiàng)研究表明,公司企業(yè)平均管理著363個(gè)API,其中2/3都對(duì)公眾和合作伙伴開放。
7. 忽視傳輸層保護(hù)
公司企業(yè)在部署HTTPS上做得越來(lái)越好了,但距離理想程度還有很長(zhǎng)一段路要走。
上個(gè)月 Mozilla Observatory 掃描的結(jié)果顯示,Alexa 排名前100萬(wàn)的網(wǎng)站中54.3%已使用HTTPS,比去年夏天的掃描結(jié)果高出19%,很不錯(cuò)的進(jìn)步。但這一結(jié)果也反映出,還有接近一半的頂級(jí)網(wǎng)站依然落后于時(shí)代。
不僅如此,當(dāng)前狀態(tài)距離絕大多數(shù)站點(diǎn)禁用HTTP也還很遠(yuǎn)。禁用HTTP通過(guò)應(yīng)用 HTTP 嚴(yán)格傳輸安全協(xié)議(HSTS)實(shí)現(xiàn),Mozilla表示,Alexa 前100萬(wàn)頂級(jí)網(wǎng)站中用了HSTS的僅占6%。