OWASP應用程序安全驗證標準(OWASP Application Security Verification Standard,ASVS)為測試web應用程序技術安全控制提供了基礎,還為開發人員提供了安全開發的要求列表。
1. 簡介
OWASP應用安全驗證標準,是一份測試應用安全的清單,可供架構師、開發人員、測試人員、安全專家、工具供應商和消費者參考,用于定義、構建、測試和驗證安全的應用。當前最新版本是Version 4.0.3, 于2021年10月發布,具體文檔可點此下載(訪問密碼:6277)。ASVS 5.0版本的計劃和路線圖已經公布,關注博主,后續會持續更新。
OWASP(Open Web Application Security Project)開放網絡應用安全項目是一個全球自由開放的社區,通過其社區主導的開源軟件項目、全球數百個分會、數萬名成員以及舉辦本地和全球會議,致力于提高應用軟件的安全性。
2. 主要應用場景
OWASP應用程序安全驗證標準(ASVS)項目的主要目的是在使用商業上可行的開放標準執行Web應用程序安全性驗證時,規范可用的覆蓋范圍和嚴格程度。該標準為測試應用程序技術安全控制以及環境中的任何技術安全控制提供了基礎,這些技術安全控制用于防止跨站點腳本(XSS)和SQL注入等漏洞。此標準可用于建立Web應用程序安全性的置信度。制定這些要求時考慮到以下場景:
-
用作衡量標準:為應用程序開發人員和應用程序所有者提供一個衡量標準,用于評估他們的Web應用程序的信任程度,
-
用作指導:為安全控制開發人員提供指導,指導他們在安全控制中構建哪些內容,以滿足應用程序安全要求;
在敏捷開發過程中,為了獲得安全的產品,ASVS可以作為框架來定義團隊需要實施的特定任務。 一種通用方法是:從 Level 1 開始,根據指定級別的 ASVS 要求,驗證特定應用程序或系統,查找缺少哪些項目,并在待辦事項中提出特定工單/任務。 這有助于對具體任務進行優先排序(梳理),并使安全在敏捷開發中可見。 這也可用于確定組織中審計和審查任務的優先;其中,特定的 ASVS 要求,可以作為團隊成員審查、重構或審計的驅動因素,并可以記錄到最終的待辦清單中。
-
在采購過程中使用:為在合同中規定應用程序安全驗證要求提供依據。ASVS 是一個很好的框架,可以幫助確保安全軟件的采購或定制開發服務的采購。 買方可以簡單地設定一個要求,即他們希望采購的軟件必須按照 ASVS 的 Level x 來開發,并要求賣方證明該軟件滿足ASVS的x級。
3. 如何使用ASVS
簡單總結,ASVS其實就兩個主要目標:
- 1、幫助組織開發和維護安全的應用程序;
- 2、允許安全服務廠商、安全工具供應商和消費者調整他們的要求和產品。
3.1. 應用安全驗證級別
用程序安全驗證標準(ASVS)定義了三個安全驗證級別,級別越高,要求越嚴格:
- ASVS Level 1: 適用于低保證級別,可通過滲透測試驗證。如果一個應用程序能夠充分防御 OWASP Top10 或其他類似檢查表中提到的那些容易發現的安全漏洞,那么它就達到了ASVS Level 1。
- ASVS Level 2: 適用于包含敏感數據的應用程序(需要保護),是大多數應用程序的推薦級別。如果一個應用程序能夠充分抵御當今與軟件相關的大多數風險,那么它就達到了ASVS Level 2(級別或標準)。
- ASVS Level 3: 適用于最關鍵的應用程序:執行高價值交易、包含敏感醫療數據的應用程序,或任何需要最高級別信任的應用程序(例如軍事、健康、安全和關鍵基礎設施等領域的應用)。
每個ASVS級別都包含一個安全要求的列表。其中的每一項,都可以對應到開發人員必須在軟件中建立的特定安全特性和功能。OWASP應用安全驗證標準級別(4.0版)如下圖所示:
3.2. 如何使用這個標準
使用應用程序安全驗證標準(ASVS)的最佳方法之一,是將其作為一個藍圖,創建一個針對你的應用程序、平臺或組織的安全編碼檢查表。 建議根據不同的項目場景,針對其中最重要的安全要求增加關注。
4. 具體內容
由于標準要求多達60頁,在此不做展開,感興趣的可以下載文檔原件:
- 中文版本,共62頁,點此下載(訪問密碼:6277)
- 英文版本,共73頁,點此下載(訪問密碼:6277)
文章主要包含14章節內容:
- 1架構、設計和威脅建模
- 2認證
- 3會話管理
- 4訪問控制
- 5驗證、過濾和編碼
- 6存儲密碼學
- 7錯誤處理和日志記錄
- 8數據保護
- 9通訊
- 10惡意代碼
- 11業務邏輯
- 12文件和資源
- 13API和Web Service
- 14配置
5. 參考
[1] https://owasp.org/www-project-application-security-verification-standard/