OWASP Top 10 網路應用程式 安全脆弱性
開放網路應用程式安全計畫 (OWASP) 是一個非營利組織,其使命是提高網路應用程式的安全性。OWASP 透過為開發人員提供對各種安全資源的免費存取權來實現這一使命,包括脆弱性清單、安全最佳實踐、用於練習網路應用程式測試的故意易受攻擊的系統等等。OWASP 也支援應用程式安全測試工具的開發,並在世界各地舉辦多次年度會議。
什麼是 OWASP 排名前十名?
OWASP 開發了許多資源來描述各種系統中存在的最常見的脆弱性,包括網路應用程式、應用程式開發介面、行動裝置等。其中最著名的是 OWASP 十大,它描述了生產網路應用程式中出現的十種最常見和最有影響力的脆弱性。此清單會根據安全測試數據和行業內專業人士的調查結合而更新一次。
OWASP 十大名單的最新版本於 2021 年發布。 此資源提供了有關最常見脆弱性的信息、每種類型的範例、預防脆弱性的最佳實踐以及如何利用脆弱性的描述。此外,每個脆弱性都包含對相關常見弱點枚舉 (CWE) 規範的引用,這些規範描述了脆弱性的特定實例。例如,硬編碼密碼 (CWE-259) 的使用屬於 OWASP 十大清單中的識別和身分驗證失敗脆弱性。
方法
OWASP 十大名單基於使用者提供的數據分析和對行業內專業人士的調查結合。 根據社群提交的數據,OWASP 團隊確定了其清單中前八名的脆弱性,從而提供了對當今生產代碼中最常見的脆弱性的可見性。組織被要求提交他們在測試中看到的 CWE 以及測試的至少包含一個 CWE 實例的應用程式數量。然後根據影響和可利用性進行分析,產生了 400 個 CWE,並分類以產生前十個類別中的八個。
但是,隨著 2021 年的清單更新,OWASP 團隊保留了列表中最下兩個位置,以供社區調查中的意見。 這樣做的目的是反映脆弱性的最新和新興趨勢,其中缺乏數據或無法測試脆弱性可能會導致僅依賴測試過程中發現的脆弱性的過程低估它。
OWASP 頂級脆弱性
最新版本的 OWASP 十大包含了與前一個版本相比的幾個更改。 2021 年清單包括以下脆弱性:
- 損壞的存取控制
- 加密失敗
- 注射
- 不安全的設計
- 安全性設定錯誤
- 弱點和過時的元件
- 識別和驗證失敗
- 軟體與資料完整性失敗
- 安全記錄和監控失敗
- 伺服器端要求偽造
其中,四個脆弱性(4、8和10)是全新的,四個除了排名之外沒有變化,其餘的則合併或重命名了先前版本列表中的類別。
#1.損壞的存取控制
存取控制系統旨在確保只有合法用戶才能訪問數據或功能。 破壞存取控制類別中的脆弱性包括允許攻擊者繞過存取控製或無法實現最小權限原則的任何問題。例如,網路應用程式可能允許使用者透過修改提供的網址來存取另一個使用者的帳戶。
#2.加密失敗
加密算法對於保護數據隱私和安全性而言是寶貴的;但是,這些算法可能對實作或配置錯誤非常敏感。 加密失敗包括根本無法使用加密、加密演算法配置錯誤以及金鑰管理不安全。例如,組織可能會使用不安全的雜湊演算法進行密碼儲存、無法加鹽密碼,或使用相同的鹽對所有儲存的使用者密碼。
#3.注射
由於在處理使用者輸入之前未能正確清理使用者輸入,導致注入脆弱性成為可能。在 SQL 等語言中,這可能特別出現問題,其中資料和命令相互混合,因此惡意格式錯誤的使用者提供的資料可能會被解釋為命令的一部分。 例如,SQL 通常使用單引號 (') 或雙引號 (「) 來分隔查詢中的使用者資料,因此包含這些字元的使用者輸入可能能夠變更正在處理的指令。
#4.不安全的設計
在開發過程中可以透過幾種不同的方式將脆弱性引入軟體中。雖然 OWASP 前十名清單中的許多脆弱性都涉及實現錯誤,但這種脆弱性描述了破壞系統安全性的設計失敗。例如,如果儲存和處理敏感資料的應用程式的設計不包括身份驗證系統,那麼設計的軟體的完美實現仍然是不安全的,並且無法正確保護這些敏感資料。
#5.安全性設定錯誤
除了設計和實作之外,應用程式的安全性還取決於其配置方式。軟體製造商將為其應用程式提供預設配置,用戶還可以啟用或停用各種設置,這可以提高或削弱系統的安全性。安全性配置錯誤的範例可能包括啟用不必要的應用程式或連接埠、保持預設帳戶和密碼處於活動狀態且未更改,或配置錯誤訊息以向使用者公開過多資訊。
#6 弱點和過時的元件
近年來,供應鏈脆弱性已成為一個主要問題,特別是當威脅行為者試圖將惡意或易受攻擊的程式碼插入常用程式庫和第三方依賴項時。如果組織缺乏對其應用程式中使用的外部程式碼(包括嵌套依賴項)的可見性,並且無法掃描其依賴項,那麼它可能容易受到利用。此外,未能及時對這些依賴項應用安全性更新可能會使可利用的脆弱性容易受到攻擊。例如,應用程式可能會匯入具有自己的依賴項的第三方程式庫,這些依賴項可能包含已知的可利用脆弱性。
#7.識別和驗證失敗
許多應用程式和系統需要某種形式的識別和身份驗證,例如用戶向應用程式證明其身份,或者伺服器在建立 TLS 加密連接時提供數位證書以驗證用戶的身份。當應用程式依賴弱身份驗證過程或無法正確驗證身份驗證資訊時,就會發生識別和身份驗證失敗。例如,缺乏多重身份驗證 (MFA) 的應用程式可能容易受到憑證填充攻擊,攻擊者會自動嘗試從弱憑證、常見憑證、預設憑證或受損憑證清單中嘗試使用者名稱和密碼組合。
#8.軟體與資料完整性失敗
OWASP 十大漏洞清單中的軟體和資料完整性故障解決了組織開發營運管道和軟體更新流程的安全弱點,類似於那些導致 SolarWinds 駭客攻擊成為可能的弱點。這種脆弱性包括依賴來自不受信任的來源或儲存庫的第三方程式碼、無法安全地存取CI/CD 管道以及無法正確驗證自動應用更新的完整性。例如,如果攻擊者可以用修改後的或惡意的版本替換受信任的模組或依賴項,那麼使用該依賴項建構的應用程式可能會執行惡意程式碼或容易受到利用。
#9.安全記錄和監控失敗
安全日誌記錄和監控故障是從調查回應中得出的第一個脆弱性,並且已從上一次清單迭代中的第十位上升。許多安全事件的發生或加劇是因為應用程式未能記錄重要的安全事件,或這些日誌檔案沒有得到正確的監控和處理。例如,應用程式可能不會產生日誌文件,可能會產生缺乏關鍵資訊的安全日誌,或者這些日誌檔案可能僅在電腦本機上可用,因此它們僅可用於偵測到事件後的調查。所有這些失敗都會降低組織快速偵測潛在的安全事件並即時回應的能力。
#10. 伺服器端要求偽造
伺服器端請求偽造 (SSRF) 在 OWASP 前十名清單中列出的脆弱性中並不常見,因為它描述了非常特定的脆弱性或攻擊,而不是一般類別。SSRF 脆弱性比較少見;然而,如果它們被攻擊者識別和利用,它們就會產生重大影響。Capital One 駭客攻擊是最近發生的高影響力安全事件的一個例子,該事件利用了 SSRF 脆弱性。
當網路應用程式在取得位於該網址的遠端資源時未正確驗證使用者提供的網址時,可能會存在 SSRF 脆弱性。如果是這種情況,那麼利用脆弱性的攻擊者可以使用易受攻擊的網路應用程式將攻擊者製作的請求發送到指定的網址。這允許攻擊者繞過存取控制,例如防火牆,防火牆會阻止攻擊者與目標網址的直接連接,但配置為提供對易受攻擊的網路應用程式的存取。
Comprehensive AppSec with Check Point AppSec
組織的網路應用程式是其數位攻擊面中最明顯和最容易利用的部分。然而,這些應用程式通常也包含可利用的脆弱性,這通常是由於缺乏對這些脆弱性和避免它們的安全最佳實踐的認識。OWASP 十大清單是OWASP 基金會為解決此問題並透過引起人們對這些脆弱性的關注並提供幫助開發人員識別、避免和修復這些脆弱性的資源來減少網路應用程式安全風險而做出的努力。
掃描、修復和防禦 OWASP 十大清單中描述的脆弱性是網路應用程式DevSecOps的良好起點。這些脆弱性是網路應用程式中最常見和高影響力的脆弱性之一,它們的可見性使它們成為網路威脅行為者的常見目標。
隨著應用程式越來越多地遷移到雲端,雲端工作負載保護對於確保它們免受 OWASP 十大風險和其他主要應用程式安全風險至關重要。有關基於雲端的應用程式的安全威脅的更多信息,請查看此電子書。
Check Point AppSec provides comprehensive protection against the OWASP Top Ten and other common web application vulnerabilities. Learn more about how Check Point AppSec can protect your cloud applications with this whitepaper. Then, see its capabilities for yourself by signing up for a free demo.
