如何測試OWASP Top 10

zktq2021發表於2023-11-17

Web應用程式通常處理大量資料,這些資料從個人使用者詳細資訊到敏感的公司資訊。隨著這些應用程式的複雜性和重要性的增長,它們也成為威脅參與者的主要目標。

OWASP Top 10 代表了對 Web 應用程式最重要的安全風險的廣泛共識。OWASP(開放 Web 應用程式安全專案)Top 10 始於 2003 年,旨在根據真實世界的資料和專家共識突出最關鍵的 Web 應用程式漏洞。多年來,為了保持與不斷變化的威脅形式相關,OWASP Top 10經歷了多次修訂,成為理解、測試和改進Web應用程式安全性的基準。

以下是最新的 OWASP Top 10(2021年更新)。

1.訪問控制中斷

訪問控制中斷是指對允許經過身份驗證的使用者在應用中執行的操作設定的限制不足。使用者許可權和許可權實現中的這些缺陷允許使用者執行超出其預期許可權的操作或訪問資料。訪問控制中斷的一個例子是,一個標準使用者在沒有適當許可權的情況下,簡單地操縱一個URL來訪問應用程式中的管理功能。

要測試 Web 應用是否存在損壞的訪問控制安全風險,可考慮以下策略:

建立多個測試帳戶,每個帳戶具有不同的角色,並嘗試執行超出範圍的操作。

嘗試劫持或交換會話令牌,以檢視一個使用者是否可以冒充另一個使用者或提升其訪問許可權。

嘗試修改 URL、隱藏欄位或 API 請求中的引數,以訪問不適合標準使用者的物件。

最重要的預防措施是設計和實施強大的基於角色的訪問控制 (RBAC) 系統。確保每個使用者角色都具有最低必要的許可權(最小許可權原則)。在整個應用程式中,無論是在前端還是在後端,始終強制執行這些角色。

2. 加密失敗

這種安全風險與加密的不正確實現或使用有關,例如使用過時的演演算法或不正確的金鑰管理配置。熟練的網路攻擊者可以輕而易舉地繞過薄弱或配置錯誤的加密技術來篡改Web應用程式或訪問敏感資料。

要測試此風險,可執行以下操作:

稽核已棄用方法或演演算法的加密做法。

測試金鑰管理實踐。

確保應用使用安全、更新的加密庫。

3. 注入

Web應用程式中的注入漏洞允許攻擊者構建惡意輸入,從而欺騙應用程式執行意想不到的命令。常見型別是SQL隱碼攻擊,攻擊者操縱Web應用程式的資料庫查詢。

若要測試 Web 應用的注入風險,可執行以下操作:

使用靜態程式碼測試來識別潛在的漏洞。

使用各種注入有效負載動態測試應用。

確保應用驗證並清理使用者輸入。

4. 不安全的設計

Web應用程式中的不安全設計意味著架構和基礎選擇本身就缺乏安全考慮。這些有風險的選擇可能會使應用程式容易受到攻擊,無論單個程式碼級安全措施如何。

不安全設計的測試策略更加細緻入微,包括:

進行威脅建模,以瞭解應用程式的設計、資料的流動方式以及潛在的弱點。

對應用程式的體系結構進行全面審查,並評估基礎層是否內建了安全控制,包括身份驗證、授權和資料驗證。

確保開發、測試和生產環境是不同的和隔離的。

5. 安全配置錯誤

當安全設定和控制元件實現不當、保持預設值或完全忽略時,就會發生Web應用程式中的安全錯誤配置。錯誤配置的風險包括未受保護的檔案、目錄或資料庫,它們會促進對有價值的資料或系統功能的意外訪問。

要測試 Web 應用程式是否存在安全配置錯誤,可執行以下操作:

定期手動檢查和稽核應用程式、資料庫、伺服器和網路配置。

使用可以檢測常見錯誤配置的自動掃描程式和安全工具。

監視敏感資訊洩漏的錯誤訊息,例如路徑、伺服器詳細資訊或資料庫資訊。

確保應用程式中沒有處於活動狀態的預設憑據(使用者名稱/密碼)。

6. 易受攻擊和過時的元件

Web 應用程式中易受攻擊和過時的元件是指存在已知安全漏洞但尚未被開發人員更新或修補的第三方庫、外掛、框架和其他軟體模組。

依賴易受攻擊元件的 Web 應用程式會繼承其缺陷,這為威脅參與者提供了潛在的利用途徑。

要測試 Web 應用程式是否存在易受攻擊/過時的元件,可執行以下操作:

維護應用程式中使用的所有第三方元件、庫、外掛和框架的最新清單,包括其版本和依賴項。

將元件清單與漏洞資料庫(如國家漏洞資料庫 (NVD) 或 CVE 詳細資訊)交叉引用。

使用自動化工具掃描專案依賴項,並將其與已知的漏洞資料庫進行比較。

7. 失效身份驗證和會話管理

有缺陷的身份驗證機制(如弱密碼策略、缺乏多因素身份驗證或未正確實的會話管理)使攻擊者能夠冒充合法使用者或完全繞過身份驗證檢查。

這些故障為未經授權的資料訪問、身份盜竊和潛在的使用者帳戶接管鋪平了道路。

要測試此 OWASP 前 10 大風險,可執行以下操作:

檢查最小密碼長度/複雜性要求,並嘗試使用常用密碼或預設密碼,看看應用是否接受這些密碼。

檢查會話在不活動或使用者登出後是否適當過期。

嘗試操作或重放 cookie,看看是否可以模擬會話。

嘗試操作 URL、查詢引數或隱藏欄位以繞過身份驗證檢查。

8. 軟體和資料完整性故障

當應用程式無法確保資料和應用程式程式碼的真實性和可信度時,就會發生軟體和資料完整性故障。完整性是指確保資料和程式碼在原始狀態中保持不變和真實。

軟體和資料完整性方面的故障會帶來未經授權的修改風險,從而導致欺詐 易或惡意程式碼被插入應用程式。

若要測試這些故障可:

對傳輸的資料進行篡改,並在不進行任何檢查的情況下觀察應用程式是否接受被篡改的資料。

操作應用程式檔案或庫,並檢視應用程式是否檢測到未經授權的更改。

檢查是否缺少校驗和、數字簽名或其他驗證資料或軟體元件完整性的驗證機制。

9. 安全日誌記錄和監控故障

這種風險與應用程式中活動記錄不足或無法主動檢測和實時響應惡意行為有關。

缺乏詳細的日誌或缺乏監控會造成盲點,從而無法及時檢測未經授權的訪問、資料洩露或其他惡意活動。

若要評估 Web 應用程式是否存在以下風險,可執行以下操作:

定期檢視日誌,以確保其捕獲相關的安全事件,例如登入嘗試失敗、訪問敏感資料或系統配置更改。

確保監視所有關鍵元件,例如資料庫、伺服器和應用程式端點。

檢視監視工具的配置,以確保它們已設定為捕獲所有相關的安全事件。

10. 伺服器端請求偽造 (SSRF)

伺服器端請求偽造(server - side Request Forgery, SSRF)是一種安全漏洞,攻擊者可以操縱web應用程式,使其代表伺服器向內部資源或第三方系統發出不必要的請求。

這種風險促進了網路基礎設施的橫向移動,並使攻擊者能夠與後端服務互動或洩露資料。

要測試 SSRF,可以執行以下操作:

嘗試使用不同的 URL 方案(如 file://、dict://、sftp:// 等)來嘗試訪問非 HTTP 資源。

模擬Web前端請求以訪問後端API,但使用 或修改請求以檢視是否返回任何意外資料。

確定主機之間的隱式信任區域,例如信任 Web 伺服器的本地資料庫伺服器。

查詢可能指示SSRF漏洞的詳細錯誤訊息。例如,如果輸入內部IP,而錯誤顯示了有關內部資源的詳細資訊,這是潛在的風險訊號。

定期 Web 應用程式安全測試的重要性

正如 OWASP Top 10 一直強調的那樣,Web 應用程式中的漏洞使組織面臨從資料洩露到聲譽受損的重大風險。這不僅僅是瞭解這些漏洞,而是定期積極測試進行測試。

隨著每次程式碼更新、基礎架構更改或新功能新增,都可能出現潛在的安全漏洞。持續的警惕是必不可少的,這就需要組織定期進行安全測試,而不是一年只進行一次測試。


參讀連結:

https://www.bleepingcomputer.com/news/security/the-owasp-top-10-what-they-are-and-how-to-test-them/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2995848/,如需轉載,請註明出處,否則將追究法律責任。

相關文章