2021年OWASP-TOP10
目錄
- A01:2021-失效的訪問控制Broken Access Control
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A02:2021-加密機制失效(敏感數據泄漏)Cryptographic Failures
- 常見CVE(弱點枚舉)
- 風險說明
- 預防措施
- A03:2021-注入Injection
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A04:2021-不安全設計Insecure Design
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A05:2021-安全配置錯誤Security Misconfiguration
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A06:2021-自帶缺陷和過時的組件Vulnerable and Outdated Components
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A07:2021-身份識別和身份驗證錯誤(無效的身份認證)Identification and Authentication Failures
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A08:2021-軟件和數據完整性故障Software and Data Integrity Failures
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A09:2021-安全日志和監控故障Security Logging and Monitoring Failures
- 常見CWE(弱點枚舉)
- 風險說明
- 預防措施
- A10:2021-服務端請求偽造 Server-Side Request Forgery
- 風險說明
- 預防措施
A01:2021-失效的訪問控制Broken Access Control
常見CWE(弱點枚舉)
Actor(將敏感信息泄漏給未經授權的參與者)
Sent Data(通過發送的數據泄漏敏感信息)
風險說明
訪問控制強制實施策略,使用戶無法在其預期權限之外進行操作。失敗的訪問控制通常會導致未經授權的信息泄露、修改或銷毀所有數據、或在用戶權限之外執行業務功能。常見的訪問控制脆弱點包括:
預防措施
訪問控制只在受信服務器端代碼或無服務器API中有效,這樣攻擊者才無法修改訪問控制檢查或元數據。
擊機會窗口最小化。 對于時間較長的JWT,強烈建議遵循OAuth標準來撤銷訪問。
A02:2021-加密機制失效(敏感數據泄漏)Cryptographic Failures
常見CVE(弱點枚舉)
風險說明
首先要確認:對傳輸中數據和存儲數據都有哪些保護需求。 例如,密碼、信用卡號、醫療記錄、個人信息和商業秘密需要額外保護,尤其是在這些數據屬于隱私保護法(如:歐盟GDPR) 或法規條例(如:金融數據保護標準PCI DSS)適用范圍的情況下。 對于這些數據,要確定:
預防措施
? 對應用程序處理、存儲或傳輸的數據分類,并根據隱私法、監管要求或業務需求確定哪些數據是敏感的。
? 對于沒有必要存儲的敏感數據,應當盡快清除,或者通過PCI DSS標記化或攔截。 未存儲的數據不能竊取。
? 確保加密存儲的所有敏感數據。
? 確保使用了最新的、強大的標準算法、協議和密鑰;并且密鑰管理到位。
? 確保加密傳輸過程中的數據,如使用安全協議(例如具有前向保密 (FS) 密碼的 TLS、服務器的密碼優先級
和安全參數)。確保強制執行數據加密,如使用HTTP 嚴格安全傳輸協議 (HSTS) 等指令。
? 禁用緩存對包含敏感數據的響應。
? 根據數據分類應用實施所需的安全控制。
? 不要使用FTP 和SMTP 等傳統協議來傳輸敏感數據。
? 使用具有工作因子(延遲因子)的強自適應和加鹽散列函數存儲密碼,例如 Argon2、scrypt、bcrypt 或PBKDF2。
? 必須選擇適合操作模式的初始化向量。對于大多數模式,可以使用CSPRNG(密碼安全偽隨機數生成器)。
對于需要隨機數的模式,則初始化向量 (IV) 不需要使用CSPRNG。 在所有情況下,對于一個固定密鑰,永遠不應該使用兩次IV。
? 始終使用經過驗證的加密,而不僅僅是加密。
? 密鑰應以加密方式隨機生成并作為字節數組存儲在內存中。 如果使用密碼,則必須通過適當的密碼基密鑰派生函數將其轉換為密鑰。
? 確保在適當的地方使用加密隨機性,并且沒有以可預測的方式或低熵進行播種。 大多數現代 API 不需要開發人員為 CSPRNG 設置種子以獲得安全性。
? 避免使用的已廢棄的加密函數和填充方案,例如 MD5、SHA1、PKCS number 1 v1.5。
? 單獨驗證每個安全配置項的有效性。
A03:2021-注入Injection
常見CWE(弱點枚舉)
風險說明
在以下情況下,應用程序易受攻擊:
預防措施
防止注入需要將數據與命令和查詢分開:
程序需要特殊字符,例如移動應用程序中的文本區域或API。
名、列名等)無法轉義,因此用戶提供的結構名是危險的。這是報表編寫軟件中的常見問題。
A04:2021-不安全設計Insecure Design
2021年版的一個新類別,側重于與設計和體系結構缺陷相關的風險,呼吁更多地使用威脅建模、
安全設計模式和參考體系結構。
常見CWE(弱點枚舉)
風險說明
不安全設計是一個廣泛的類別,代表不同的弱點,表示為“缺少或無效的控制設計”。不安全設計
不是所有其他前10個風險類別的來源。不安全設計和不安全的實現之間存在差異。我們區分設計缺陷和實現缺陷是有原因的,它們有不同的根本原因和補救措施。安全設計仍然可能存在實現缺陷,從而導致可能被利用的漏洞。一個不安全設計不能通過一個完美的實現來修復,因為根據定義,所需的安全控制從未被創建來抵御特定的攻擊。導致不安全設計的因素之一是開發的軟件或系統中缺乏固有的業務風險分析,因此無法確定需要何種級別的安全設計。
收集應用程序的業務需求并與業務部門協商,包括所有數據資產和預期業務邏輯的機密性、完整性、可用性和真實性方面的保護需求。考慮應用程序的公開程度,以及是否需要租戶隔離(除訪問控制外)。編制技術要求,包括功能性和非功能性安全要求。計劃和協商所有設計、建造、測試和運營的預算,包括安全活動。
安全設計是一種文化和方法,它不斷評估威脅,并確保代碼經過穩健的設計和測試,以防止已知的攻擊方法。威脅建模應整合到細化會議(或類似活動)中;查看數據流和訪問控制或其他安全控制中的更改。在用戶故事開發中,確定正確的流程和故障狀態,確保責任方和受影響方充分理解并同意這些狀態。分析預期和故障流的假設和條件,確保其仍然準確和可取。確定如何驗證正確行為所需的假設和實施條件。確保結果記錄在用戶故事中。從錯誤中吸取教訓,并提供積極的激勵以促進改進。安全設計既不是附加組件,也不是可以添加到軟件中的工具。
安全的軟件需要安全開發生命周期、某種形式的安全設計模式、AppSec規劃方法、安全的組件庫、工具和威脅建模。在整個項目和軟件維護過程中,在軟件項目開始時聯系您的安全專家。考慮利用
OWASP軟件保證成熟度模型(SAMM)來幫助構建您的安全軟件開發工作。
預防措施
A05:2021-安全配置錯誤Security Misconfiguration
常見CWE(弱點枚舉)
風險說明
您的應用程序可能受到攻擊,如果應用程序是:
行安全配置。
缺少一個體系的、可重復的應用程序安全配置過程,系統將處于高風險中
預防措施
一個新安全環境的耗費。
限)。
A06:2021-自帶缺陷和過時的組件Vulnerable and Outdated Components
常見CWE(弱點枚舉)
Components(使用未維護第三方組件)
風險說明
如果滿足下面的某個條件,那么您的應用就易受此類攻擊:
管理系統(DBMS)、應用程序、API和所有的組件、運行環境和庫。
預防措施
“A08:2021-軟件和數據完整性故障”)。
每個組織都應該制定相應的計劃,對整個軟件生命周期進行監控、評審、升級或更改配置。
A07:2021-身份識別和身份驗證錯誤(無效的身份認證)Identification and Authentication Failures
常見CWE(弱點枚舉)
風險說明
預防措施
在可能的情況下,實施多因素認證來防止自動化撞庫攻擊、暴力破解、以及遭竊認證資訊被重復
利用的攻擊。
證據的密碼政策”的內容保持一致。
警。
在URL中,必須被安全的儲存,并且在登出后、閑置、超時后被注銷。
A08:2021-軟件和數據完整性故障Software and Data Integrity Failures
常見CWE(弱點枚舉)
Integrity Check(不進行完整性檢查的代碼下載)
Data(不可信數據的反序列化)。
風險說明
軟件和數據完整性故障與無法防止違反完整性的代碼和基礎設施有關。這方面的一個例子是,應用程序依賴于不受信任的源、存儲庫和內容分發網絡(CDN)的插件、庫或模塊。不安全的CI/CD管道可能會帶來未經授權的訪問、惡意代碼或系統安全風險。最后,許多應用程序現在包括自動更新功能。其中,更新包在沒有進行充足完整性驗證的情況下被下載,并應用于以前受信任的應用程序。攻擊者可能會上傳自己的更新包,以便在所有安裝上分發和運行。另一個例子是,對象或數據被編碼或序列化為攻擊者可以看到和修改的結構,很容易受到不安全的反序列化的影響。
預防措施
托管一個經過審核的、內部已知合格的存儲庫。
A09:2021-安全日志和監控故障Security Logging and Monitoring Failures
常見CWE(弱點枚舉)
風險說明
如果不進行日志記錄和監測,就無法發現違規行為。任何時候都會發生日志記錄、檢測、監視和主動響應不足的情況:
效的訪問控制”)。
預防措施
開發人員應根據應用的風險,實施以下部分或全部控制:
A10:2021-服務端請求偽造 Server-Side Request Forgery
風險說明
一旦Web應用在獲取遠程資源時沒有驗證用戶提供的URL,就會出現SSRF缺陷。它允許攻擊者強制應用程序發送一個精心構建的請求到一個意外目的地,即使是在有防火墻、VPN或其他類型的網絡訪問控制列表(ACL)保護的情況下。
隨著現代Web應用為終端用戶提供便利的功能,獲取URL成為一種常見的場景。因此,SSRF安全攻擊事件也在不斷增加。此外,由于云服務和架構的復雜性,SSRF的嚴重性也越來越高。
預防措施
開發者可以通過實現以下部分或全部防御手段,縱深防御來阻止 SSRF:
網絡層防御建議:
提示: 建立基于應用的防火墻規則的所有權和生命周期。
應用層防御建議:
需額外考慮的措施:
總結
以上是生活随笔為你收集整理的2021年OWASP-TOP10的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3从零学习-5.11.2、
- 下一篇: 机械键盘达尔优A98_win和alt键互