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