2017 OWASP的十大關(guān)鍵Web應(yīng)用安全風(fēng)險(xiǎn)簡(jiǎn)析
前不久,安全牛報(bào)道了2017 OWASP的十大安全問題最終版,下面這篇文章則對(duì)十大安全風(fēng)險(xiǎn)做了簡(jiǎn)單分析。
2017 OWASP十大關(guān)鍵Web應(yīng)用安全風(fēng)險(xiǎn)簡(jiǎn)析
受越來(lái)越短的軟件項(xiàng)目生命周期影響,有些應(yīng)用面臨損及金融、醫(yī)療、零售業(yè)和其他行業(yè)數(shù)字安全的風(fēng)險(xiǎn)。開發(fā)人員和經(jīng)理必須了解這些最常見的風(fēng)險(xiǎn),才能保護(hù)自己的應(yīng)用。為此,開放網(wǎng)頁(yè)應(yīng)用安全計(jì)劃(OWASP)定期發(fā)布十大最關(guān)鍵Web應(yīng)用安全風(fēng)險(xiǎn)。
該計(jì)劃從專精應(yīng)用安全的公司企業(yè)收集40多份數(shù)據(jù),數(shù)據(jù)涵蓋數(shù)百家公司處收集的漏洞信息,涉及10萬(wàn)個(gè)應(yīng)用和API。
OWASP根據(jù)可利用性、普遍性、可檢測(cè)性和技術(shù)影響程度,給每種風(fēng)險(xiǎn)打分。這些風(fēng)險(xiǎn)是隨時(shí)在變的。
比如說,來(lái)自社區(qū)的500個(gè)同行提交,就在2017年往OWASP榜單的前瞻風(fēng)險(xiǎn)類列表中加入了2個(gè)新成員。該組織還從源代碼分析安全測(cè)試(SAST)數(shù)據(jù)集中加入了一個(gè)新門類。
另外的變化也不是沒有。
2013年,兩種老舊風(fēng)險(xiǎn)掉出OWASP“十大”榜單——不安全直接對(duì)象引用和缺乏函數(shù)級(jí)訪問控制,這兩個(gè)門類合并成了2017年榜單上的“失效的訪問控制”。
另外,基于現(xiàn)代應(yīng)用中的流行程度,OWASP將跨站請(qǐng)求偽造(CSRF)和非法鏈接跳轉(zhuǎn)給踢出了十大。
OWASP 2017 十大關(guān)鍵Web應(yīng)用安全風(fēng)險(xiǎn)如下:
1. 注入
- 可利用性:3 - 容易
- 漏洞普遍性:2 - 常見
- 漏洞可檢測(cè)性:3 - 容易
- 技術(shù)影響:3 - 嚴(yán)重
注入包括SQL注入、OS注入、LDAP)輕量級(jí)目錄訪問協(xié)議)注入等,可致解釋器將非受信數(shù)據(jù)作為查詢或指令的一部分加以接收。攻擊者可利用注入來(lái)誘騙解釋器執(zhí)行惡意代碼,或賦予他們本不應(yīng)有的敏感數(shù)據(jù)訪問權(quán)。
開發(fā)人員和經(jīng)理只要經(jīng)常進(jìn)行安全代碼審查,就可有效避免應(yīng)用被注入。在持續(xù)集成和持續(xù)交付(CI/CD)管道中引入SAST和動(dòng)態(tài)應(yīng)用測(cè)試(DAST),是做到這一點(diǎn)的好辦法。
2. 失效的身份驗(yàn)證
- 可利用性:3 - 容易
- 漏洞普遍性:2 - 常見
- 漏洞可檢測(cè)性:2 - 一般
- 技術(shù)影響:3 - 嚴(yán)重
應(yīng)用的身份驗(yàn)證和會(huì)話管理功能,未必能正確實(shí)現(xiàn)。一旦驗(yàn)證和會(huì)話管理功能失效,攻擊者可盜取口令、密鑰或會(huì)話憑證。利用漏洞冒充已驗(yàn)證用戶,也是攻擊者慣用手法之一。
多因子身份驗(yàn)證是抵御驗(yàn)證失效的最佳辦法,因?yàn)樵摲椒深A(yù)防被盜憑證重用攻擊之類的事件。開發(fā)人員和經(jīng)理不應(yīng)在應(yīng)用中留有管理員憑證。檢查弱口令并限制登錄失敗次數(shù)的功能,則應(yīng)加入到應(yīng)用中。
3. 敏感數(shù)據(jù)暴露
- 可利用性:2 - 一般
- 漏洞普遍性:3 - 普遍
- 漏洞可檢測(cè)性:2 - 一般
- 技術(shù)影響:3 - 嚴(yán)重
有些應(yīng)用和API未引入恰當(dāng)?shù)拿舾行畔⒎雷o(hù)功能,金融數(shù)據(jù)或登錄憑證之類的敏感數(shù)據(jù)未得到應(yīng)有的保護(hù)。數(shù)字攻擊者可利用程序中的缺陷,盜取并濫用該敏感信息,進(jìn)行身份盜竊或信用卡詐騙活動(dòng)。
只要開發(fā)人員和經(jīng)理確定不了數(shù)據(jù)防護(hù)需求——無(wú)論是傳輸過程中還是存儲(chǔ)介質(zhì)上的數(shù)據(jù),敏感數(shù)據(jù)暴露的威脅就不能被緩解。他們應(yīng)先確定哪些數(shù)據(jù)是敏感的,然后用健壯的最新算法加密保護(hù)之。同時(shí),不應(yīng)存儲(chǔ)非必要的敏感信息,不必要的敏感信息就應(yīng)該安全地銷毀掉。
4. XML外部實(shí)體(XXE)
- 可利用性:2 - 一般
- 漏洞普遍性:2 - 常見
- 漏洞可檢測(cè)性:3 - 容易
- 技術(shù)影響:3 - 嚴(yán)重
可擴(kuò)展標(biāo)記語(yǔ)言(XML),是指定文檔編碼準(zhǔn)則的一種標(biāo)記語(yǔ)言,其處理器負(fù)責(zé)解析XML文檔并采取相應(yīng)的操作。有些XML處理器設(shè)計(jì)粗劣或配置不當(dāng),可能對(duì)XML文檔中的外部實(shí)體引用進(jìn)行求值操作。攻擊者就能利用這些實(shí)體來(lái)暴露內(nèi)部文件,進(jìn)行內(nèi)部端口掃描,實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。
開發(fā)人員和經(jīng)理可通過序列化敏感數(shù)據(jù),使用JSON之類簡(jiǎn)單數(shù)據(jù)格式的方法,來(lái)緩解XXE威脅。他們還應(yīng)確保修復(fù)升級(jí)應(yīng)用中的所有XML處理器,在所有相關(guān)XML解析器中禁用XML外部實(shí)體處理功能。
5. 失效的訪問控制
- 可利用性:2 - 一般
- 漏洞普遍性:2 - 常見
- 漏洞可檢測(cè)性:3 - 一般
- 技術(shù)影響:3 - 嚴(yán)重
操作應(yīng)用時(shí),經(jīng)驗(yàn)證的用戶應(yīng)只擁有與其身份相匹配的有限權(quán)限。然而,有些應(yīng)用并沒有嚴(yán)格實(shí)現(xiàn)該限制。攻擊者就可濫用該疏漏來(lái)訪問其他用戶的賬戶,暴露敏感文件。
為解決訪問控制失效的風(fēng)險(xiǎn),除了其他安全措施,開發(fā)人員和經(jīng)理還應(yīng)實(shí)現(xiàn)“默認(rèn)拒絕”的訪問控制機(jī)制。他們應(yīng)記錄訪問控制失敗情況,并在必要的時(shí)候通報(bào)管理員。這些控制措施都應(yīng)在服務(wù)器端創(chuàng)建,這樣攻擊者就不能修改控制檢查或元數(shù)據(jù)了。
6. 安全配置錯(cuò)誤
- 可利用性:3 - 容易
- 漏洞普遍性:3 - 普遍
- 漏洞可檢測(cè)性:3 - 容易
- 技術(shù)影響:2 - 中等
安全配置錯(cuò)誤是最常見的應(yīng)用安全風(fēng)險(xiǎn)之一。開放云存儲(chǔ)、錯(cuò)誤配置的HTTP頭、包含敏感信息的錯(cuò)誤信息提示和其他漏洞,都會(huì)造成這種風(fēng)險(xiǎn)。攻擊者可利用這些錯(cuò)誤配置以默認(rèn)口令登錄管理員賬戶,發(fā)現(xiàn)訪問控制漏洞,盜取敏感信息。
去除了非必要功能/組件的最小平臺(tái),可以有效緩解應(yīng)用的安全配置風(fēng)險(xiǎn)。實(shí)現(xiàn)分隔的應(yīng)用架構(gòu),采用自動(dòng)化過程驗(yàn)證應(yīng)用環(huán)境配置有效性,也是開發(fā)人員和經(jīng)理應(yīng)該做的。
7. 跨站腳本(XSS)
- 可利用性:3 - 容易
- 漏洞普遍性:3 - 普遍
- 漏洞可檢測(cè)性:3 - 容易
- 技術(shù)影響:2 - 中等
有時(shí)候,應(yīng)用不進(jìn)行恰當(dāng)?shù)尿?yàn)證或轉(zhuǎn)義,就在新頁(yè)面中包含進(jìn)非受信數(shù)據(jù)。這就是跨站腳本漏洞的一個(gè)例子。攻擊者可濫用此類缺陷在受害者瀏覽器中執(zhí)行腳本,由此劫持用戶會(huì)話,將訪問者重定向至惡意站點(diǎn)。
幸運(yùn)的是,Ruby on Rails 和 React JS 之類框架,從設(shè)計(jì)上就自動(dòng)轉(zhuǎn)義了跨站腳本。開發(fā)人員和經(jīng)理可以在應(yīng)用中引入此類技術(shù),根據(jù)HTML的輸出轉(zhuǎn)義非受信HTTP請(qǐng)求數(shù)據(jù)。他們還可以實(shí)現(xiàn)內(nèi)容安全策略(CSP),進(jìn)一步緩解潛在XSS漏洞。
8. 不安全反序列化
- 可利用性:1 - 困難
- 漏洞普遍性:2 - 常見
- 漏洞可檢測(cè)性:2 - 一般
- 技術(shù)影響:3 - 嚴(yán)重
對(duì)不安全反序列化的最大擔(dān)憂,是遠(yuǎn)程代碼執(zhí)行(RCE)。即便此類漏洞不直接導(dǎo)致RCE,攻擊者仍可利用該漏洞進(jìn)行重放攻擊、提權(quán)攻擊和其他數(shù)字攻擊行為。
完整性檢查,比如審查序列化對(duì)象的數(shù)字簽名,有助抵御不安全反序列化漏洞。開發(fā)人員和經(jīng)理還應(yīng)隔離執(zhí)行在低權(quán)限環(huán)境中反序列化的代碼,監(jiān)測(cè)反序列化過程,一旦用戶經(jīng)常反序列化,即發(fā)出通告。
9. 使用帶已知漏洞的組件
- 可利用性:2 - 一般
- 漏洞普遍性:3 - 普遍
- 漏洞可檢測(cè)性:2 - 一般
- 技術(shù)影響:2 - 中等
很多現(xiàn)代應(yīng)用都帶有庫(kù)和框架。這些組件的執(zhí)行權(quán)限可能與應(yīng)用本身并不一致。進(jìn)一步來(lái)說,如果攻擊者發(fā)現(xiàn)了脆弱組件并利用之,就可以盜取敏感數(shù)據(jù)或破壞關(guān)鍵服務(wù)器。
有些組件并非應(yīng)用必需的??紤]到這一點(diǎn),公司企業(yè)應(yīng)將去除應(yīng)用中的非必要組件,作為自身應(yīng)用安全計(jì)劃的重要部分。開發(fā)人員和經(jīng)理還應(yīng)僅從官方源獲取組件,并監(jiān)測(cè)組件中是否含有新發(fā)現(xiàn)的漏洞。
10. 日志&監(jiān)視不足
- 可利用性:2 - 一般
- 漏洞普遍性:3 - 普遍
- 漏洞可檢測(cè)性:1 - 困難
- 技術(shù)影響:2 - 中等
日志與監(jiān)視可以為公司IT環(huán)境提供重要洞見。然而,若對(duì)這兩項(xiàng)安全措施投入不足,攻擊者就能更容易地滲透系統(tǒng),在網(wǎng)絡(luò)中橫向移動(dòng),盜取數(shù)據(jù)。
確保所有登錄、訪問控制失敗和服務(wù)器端輸入驗(yàn)證失敗都被記錄下來(lái),且日志信息帶有足夠的用戶上下文,可以保護(hù)公司免受此類威脅的傷害。開發(fā)人員和經(jīng)理還應(yīng)確保日志格式方便集中式日志管理解決方案處理。
僅僅是開始
所有公司企業(yè)和軟件開發(fā)團(tuán)隊(duì)都有自己獨(dú)特的文化和技術(shù),決定著他們能夠發(fā)展出什么樣的應(yīng)用安全項(xiàng)目。
OWASP十大Web應(yīng)用安全風(fēng)險(xiǎn),有助這些實(shí)體創(chuàng)建適合自己的應(yīng)用安全項(xiàng)目。但開發(fā)人員和經(jīng)理們不應(yīng)止步于這十大風(fēng)險(xiǎn)。應(yīng)牢記:能影響Web應(yīng)用安全的問題還有幾百個(gè)?;诖?,開發(fā)人員和經(jīng)理應(yīng)建立健壯的應(yīng)用安全控制,專注創(chuàng)建有活力的團(tuán)隊(duì)/公司安全文化。
【本文是51CTO專欄作者“”李少鵬“”的原創(chuàng)文章,轉(zhuǎn)載請(qǐng)通過安全牛(微信公眾號(hào)id:gooann-sectv)獲取授權(quán)】