好色先生TV

技术主題

什麼是 OWASP 前 10 名?

以問號為重點的 IT 項目圖示

概述

公開賽Web 应用程式安全計畫 (OWASP) 是一個開源应用程式安全社区,其目標是提高軟體的安全性。 OWASP Top 10 是一項行业標準指南,列出了最關鍵的应用程式安全風險,以幫助开发人员更好地保護他們設計和部署的應用程式。

由於安全風險在不斷演變,OWASP Top 10 清單會定期修訂以反映這些變化。在 2021 年發布的最新版本的 OWASP Top 10 中,某些不再構成嚴重威脅的漏洞類型被最有可能構成重大風險的漏洞所取代。

雖然 OWASP Top 10 是開始保護應用程式的好地方,但它當然不應被視為最終目標,因為一些被引用最多的漏洞沒有進入 OWASP Top 10 2021。為了防範軟體弱點,防禦者需要更廣泛地了解他們的資訊技术堆棧。這意味著IT安全專業人員需要關注整個軟體生態系統,並超越「傳統」漏洞來源。

OWASP 前 10 名

OWASP 前 10 名(2021 年)類別是什麼?

础1:注射

每當將不受信任的數據源發送到解釋器時,都可能引入注入缺陷。示例通常出現在 SQL、LDAP、XPath 或 NoSQL 動態資料庫查詢中,其中包含使用者提供的輸入。攻擊者將代碼注入使用者輸入,誘騙查詢解釋器執行惡意命令。

是什麼让应用程式容易受到注入缺陷的影响?

  • 使用者提供的数据未得到充分验证。
  • 动态查询在未进行足够输入清理的情况下运行。
  • 系统内用於恶意行為的恶意数据。

注射缺陷有什麼影响?

  • 应用程式或基础主机的入侵。
  • 敏感数据洩露。
  • 生产力、声誉或收入的损失。

怎麼可以Fortify 幫助解決注射缺陷?

  • 如果您是开发人员: Fortify 檢測注入缺陷並提供特定類型的修復建議。
  • 如果您從事品質檢查或營運工作: Fortify 在運行時驗證程式碼以減輕控制。
  • 如果您從事營運: Fortify 為 Java 和 .NET 注入嘗試提供執行時間日誌記錄和保護。

础2:身份验证损坏

在有狀態應用程式中管理身份或會話數據時,可能會引入中斷的身份驗證。當註冊、憑證恢復和 API 路徑容易受到未過期的會話令牌、暴力破解或帳戶枚舉的影響時,通常會發現範例。攻擊者冒充合法使用者的身份,控制帳戶並破壞數據、流程或系統。

是什麼让应用程式容易受到身份验证破坏?

  • 公開會話 ID、未正確失效或無法輪換會話 ID。
  • 未使密碼策略與 NIST 800-63B 等標準保持一致。
  • 缺少雙因素身份驗證 (2FA) 或允許自動攻擊。

身份验证中断会带来什麼影响?

  • 使用者身份盗窃。
  • 失去使用者信任。
  • 洩露敏感数据。

怎麼可以Fortify 幫助?

  • 如果您是开发人员: Fortify 檢測並建議修復損壞的身份驗證問題。
  • 如果您從事品質檢查或營運工作: Fortify 動態驗證身份驗證和會話管理安全性。
  • 如果您從事營運: Fortify 對 Java 和 .NET 應用程式事件進行執行時間監控。

础3:敏感数据洩露

當應用程式訪問未加密的數據時,可能會引入敏感數據洩露問題,尤其是個人身份資訊 (PII) 和其他受監管的數據類型。當在遺留應用程式中使用弱加密密碼、安全傳輸協定實現不正確或未使用以資料為中心的安全性時,通常會發現範例。攻擊者可以訪問敏感的用戶數據,從而在現實生活中獲得控制權。

是什麼让应用程式容易受到敏感数据洩露?

  • 通过贬罢罢笔、厂惭罢笔和贵罢笔等协定以明文形式传输数据。
  • 以明文形式不必要地存储、传输或使用敏感数据。
  • 使用旧的、弱的或非基於标準的加密演算法。

敏感数据洩露会带来什麼影响?

  • 洩露受監管數據(例如 HIPAA 或 GDPR)導致罰款。
  • 身份劫持导致清理或监视数据的成本。
  • 隐私法律和法规的不合规状态。

怎麼可以Fortify 幫助敏感資料暴露?

  • 如果您是开发人员: Fortify 識別敏感資料暴露並自動進行問題審核。
  • 如果您從事品質檢查或營運工作: Fortify 刪除透過模板在應用程式上下文之外緩解的結果。
  • 如果您從事營運: Fortify Java 和 .NET 應用程式的儀器記錄和保護。

A4:XML 外部實體

當包含對外部實體的引用的 XML 輸入由配置較弱的分析器處理時,可能會引入 XML 外部實體問題。在啟用文檔類型定義 (DTD) 或使用未修補的框架(如 SOAP 1.0)時,分析來自不受信任源的 XML 輸入的應用程式中經常會找到範例。XML 無處不在 — 從 SVG 和影像檔到網路協定和文件格式(如 PDF 和 RSS)。攻擊者在 XML 輸入中引用外部實體,導致處理器被利用來提取數據、遠端執行代碼或影響網路服務。

是什麼使應用程式容易受到 XML 外部實體的攻擊?

  • 應用程式解析 XML 文件,處理器啟用了 DTD。
  • 將 SAML 用於 SSO、低於 1.2 版的 SOAP 或低於 v2.0 的 .NET Framework。
  • 分析器接受不受信任的源或插入不受信任的 XML 數據。

XML 外部實體有什麼影響?

  • 敏感数据被盗。
  • 載入攻擊者控制的 URL。
  • 拒絕服務攻擊 (DoS)。

怎麼可以Fortify 有關 XML 外部實體的協助?

  • 如果您是开发人员: Fortify 偵測易受攻擊的 XML 解析器並建議緩解因素。
  • 如果您從事品質檢查或營運工作: Fortify 自動掃描易受攻擊的 XML 解析器並驗證漏洞有效負載。
  • 如果您從事營運: Fortify 為 Java 和 .NET 應用程式中的問題提供執行時間日誌記錄和保護。

础5:访问控制损坏

当代码和环境限制不完全重叠或在多个位置為类似功能定义时,可能会引入访问控制问题。当通过强制流览受限页面来破坏隐蔽性时,或者当应用程式以多种方式和位置定义复杂的访问控制方法时,通常会发现范例。攻击者可以破坏访问边界以窃取敏感数据或中断操作。

是什麼让应用程式容易受到访问控制破坏的影响?

  • 能夠在不登录的情況下以使用者身份行事,或者在以使用者身份登录時以管理員身份行事。
  • 操纵元数据或令牌以获得未经授权或提升的许可权。
  • 拜占庭式、未强制执行或分散的访问控制逻辑。

访问控制中断会带来什麼影响?

  • 未經授權的信息洩露或敏感数据洩露。
  • 修改或销毁数据。
  • 接管网站管理或使用者。

怎麼可以Fortify 幫助解決損壞的存取控制?

  • 如果您是开发人员: Fortify 自动化審核並允許使用範本來消除在其他地方緩解的問題。
  • 如果您從事品質檢查和營運工作: Fortify 代理程式偵測隱藏的攻擊面和損壞的存取控制系統。
  • 如果您從事營運: Fortify Java 和 .NET 應用程式的儀器運行時存取控制日誌記錄。

础6:安全配置错误

在應用程式或其底層環境的配置過程中,可能會引入安全配置錯誤缺陷。錯誤設定可能發生在應用程式堆疊的任何級別 — 從網路服務和應用程式伺服器到容器和存儲。示例通常出現在預設帳戶和配置、「洩漏」錯誤消息或未修補的框架和服務中。攻擊者可以獲取部署資訊和對特權數據的訪問許可權,從而破壞操作。

是什麼使应用程式容易受到安全错误配置的影响?

  • 不必要地啟用预设埠和帐户或未更改的密码。
  • 在出现错误和异常时显示堆叠跟踪或其他消息。
  • 没有适当地加强对堆叠任何部分带来的风险的安全性。

安全配置错误会带来什麼影响?

影响可能从信息洩露到完全系统洩露不等。

怎麼可以Fortify 幫助解決安全配置錯誤?

  • 如果您是开发人员: Fortify 在掃描期間識別應用程式依賴性和設定檔。
  • 如果您從事品質檢查和營運工作: Fortify 動態評估應用程式和伺服器配置的問題。
  • 如果您從事營運: Fortify 提供用於報告環境風險的開源分析。

A7: 跨網站腳本

當不受信任、未經審查的使用者輸入作為 HTML 的一部分執行時,或者當使用者可能受到影響與惡意鏈接進行互動時,可能會引入跨網站腳本 (XSS) 缺陷。當來自 JavaScript 或 Flash 等語言的熟悉代碼結構被接受來自不受信任的來源或存儲以供其他使用者代理稍後顯示時,通常會發現範例。攻擊者可以在使用者的計算機上執行遠端代碼執行、竊取憑據或從重定向網站傳遞惡意軟體。

是什麼讓應用程式容易受到跨網站腳本 (XSS) 的攻擊?

XSS 有三種形式,通常面向使用者代理,例如瀏覽器:

  • 反射的 XSS:應用程式或 API 在 HTML 輸出中包含不受信任的輸入。
  • 存儲的 XSS:保存到磁碟的未經清理的代碼稍後由使用者操作觸發。
  • DOM XSS:使用不受信任輸入的應用程式、框架和 API。

跨網站腳本 (XSS) 有何影響?

  • 在应用程式中接管受害者的帐户。
  • 從目標 Web 應用程式檢索數據。
  • 修改页面上的内容。

怎麼可以Fortify 跨站腳本 (XSS) 方面的幫助嗎?

  • 如果您是开发人员: Fortify 偵測程式碼中的 XSS 漏洞並預測被利用的可能性。
  • 如果您從事品質檢查和營運工作: Fortify 動態驗證程式碼以檢查是否存在易受 XSS 攻擊的未經處理的輸入。
  • 如果您從事營運: Fortify 提供 Java 和 .NET 事件的日誌記錄,包括未經授權的重定向。

础8:不安全的反序列化

當語言和框架允許將不受信任的序列化數據擴展為物件時,通常會引入不安全的反序列化缺陷,這通常是在 Web 應用程式與使用者通信或保存應用程式狀態時。當开发人员對在反序列化過程中可以自行執行的方法不施加任何限制時,通常會發現範例。攻擊者利用這些在應用程式邏輯槓桿之外調用的「小工具鏈」來遠端執行代碼、拒絕服務或獲得未經授權的訪問。

是什麼让应用程式容易受到不安全的反序列化的影响?

  • 应用程式反序列化来自不受信任源的数据。
  • 应用程式在反序列化之前不会验证源或内容。
  • 可接受的类不会被列入白名单,以避免不必要的小工具暴露。

不安全的反序列化会带来什麼影响?

  • 这些缺陷可能导致远端代码执行攻击,这是最严重的攻击之一。

怎麼可以Fortify 幫助解決不安全的反序列化?

  • 如果您是开发人员: Fortify 檢測原始程式碼中的漏洞並提供組件分析。
  • 如果您從事品質檢查和營運工作: Fortify 偵測動態運行的應用程式以驗證攻擊向量。
  • 如果您從事營運: Fortify Java 和 .NET 事件(包括反序列化)的儀器日誌記錄。

A9: 使用具有已知漏洞的元件

当将开源或第叁方框架和库引入应用程式并以相同的许可权运行时,可能会引入这些缺陷。例如,基於元件的开发导致缺乏对与依赖项相关的风险的理解,并且元件或系统很难或不可能修补。攻击者利用易受攻击的元件进行了歷史上一些最大的违规行為,儘管漏洞的范围从应用程式洩露到远端代码执行。

是什麼让应用程式容易受到开源或第叁方框架和库的攻击?

  • 这些可能是偶然的(例如编码错误)或故意的(例如后门元件)。
  • 应用程式或环境使用未修补或过时的元件(至关重要的原因之一)。
  • 缺少对第叁方代码或嵌套依赖项中的漏洞的扫描。
  • 元件清单不可用或安全公告被忽略。

使用具有已知漏洞的元件会带来什麼影响?

雖然一些已知漏洞只會導致輕微的影響,但一些最大的已知漏洞,如 Heartbleed 和 Shellshock,依賴於利用共用元件中的已知漏洞。使用具有已知代碼漏洞的元件可能會導致在受影響的伺服器上遠端執行代碼,從而使攻擊者能夠完全控制計算機。

怎麼可以Fortify 幫助開源安全?

  • 如果您是开发人员: Fortify 透過 Sonatype 整合提供軟體組件分析。
  • 如果您從事品質檢查和營運工作: Fortify 在運行時自動動態驗證已知漏洞。
  • 如果您從事營運: Fortify Java 和 .NET 應用程式元件的儀器日誌記錄和保護。

础10:记录和监控不足

當對攻擊媒介或應用程式不當行為沒有很好的理解,或者沒有遵循監視入侵指標的最佳實踐時,可能會引入不充分的日誌記錄和監視缺陷。在沒有日誌記錄功能的遺留系統中,當應用程式滲透測試的日誌未被檢查時,或者當日誌沒有提供足夠的詳細資訊來了解攻擊者的行為時,通常會發現這樣的例子。攻擊者平均需要關於 200 天的時間進行檢測,而檢測通常是從外部發現的,以建立持久性並轉向其他易受攻擊的系統。

是什麼使应用程式容易受到日誌记录和监视不足的影响?

  • 警告和错误会生成无日誌消息、日誌消息不充分或不清晰。
  • 日誌存储在本地,没有篡改控制和/或不受监控。
  • 警报閾值和响应过程不足或导致未执行任何操作。

日誌记录和监视不足会带来什麼影响?

大多数成功的攻击都是从漏洞探测开始的。允许此类探测继续进行可以提高成功利用漏洞的可能性。攻击者可能会建立持久性、后门应用程式和操作系统、窃取数据或以其他方式获得未被注意、未经授权的系统控制权。如果安全关键资讯没有被正确记录或存储,则取证分析将无法发现攻击源。如果攻击者保持对日誌记录功能的控制,则瞭解存在问题可能会变得更加困难或不可能。

怎麼可以Fortify 幫助解決日誌記錄和監控不足的問題?

  • 如果您是开发人员: Fortify 掃描應用程式和 API 中的日誌記錄功能以尋找漏洞。
  • 如果您從事品質檢查和營運工作: Fortify?动态扫描会产生应用程式日誌以进行充分性审查,例如渗透测试。
  • 如果您從事營運: Fortify Java 和 .NET 應用程式的儀器日誌記錄和保護。

OWASP (2021) 有哪些新增功能?

雖然距離2017年發佈上一個前10名只有四年時間,但网路安全行业發生了許多變化,這讓我們對最優先的問題或要添加哪些新問題三思而後行。

引入了叁个新类别:

础04:2021

不安全设计:此类别侧重於设计缺陷。这是必要的,因為在开发中左移的运动也需要威胁建模的左移。

础08:2021

軟體和數據完整性故障:重點關注有關軟體更新、關鍵數據和 CI/CD 管道的假設,而不驗證它們可能影響的完整性。這也納入了 A08:2017 – 不安全的反序列化。

答10:2021

伺服器端請求偽造 (SSRF):此類別在社区調查中大多位列前 10 名。他們之所以強調這個漏洞,是因為其可利用性和影響高於平均水準。

其他更改

其他类别要麼更改了名称,要麼移动了排名,要麼合併到其他类别中:

  • A01:2017 – 注射下移至 A:03。
  • A02:2017 – Broken Authentication 已更名為 Identification and Authentication Failures,並下移至 A07。
  • A03:2017 – 敏感數據洩露已上移至 A02,更名為加密故障,以更全面地解決根本原因,而不僅僅是癥狀。
  • A05:2017 – Broken Access Control 遷移到 A01,因為他們測試的 94% 的應用程式顯示暴露於某種形式的 Broken Access Control。
  • A06:2017 – 安全配置錯誤上升一位至A05。
  • A07:2017 – 跨網站腳本 (XSS) 已合併到 A03 Injection 中。
  • A09:2017 – 使用具有已知漏洞的元件已上移至 A06,並更名為易受攻擊和過時的元件。這一變化很大程度上是由於社区將其排名#2在他們的清單中。
  • A10:2017 – Insufficient Logging & Monitoring 已移至 A09,現在稱為 Security Logging and Monitoring Failures。

想看看如何Fortify 可以幫助您的組織嗎?

资源

我们能提供什麼协助?

脚注