日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2021年OWASP-TOP10

發(fā)布時間:2024/3/26 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年OWASP-TOP10 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • A01:2021-失效的訪問控制Broken Access Control
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A02:2021-加密機(jī)制失效(敏感數(shù)據(jù)泄漏)Cryptographic Failures
    • 常見CVE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A03:2021-注入Injection
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A04:2021-不安全設(shè)計(jì)Insecure Design
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A05:2021-安全配置錯誤Security Misconfiguration
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A06:2021-自帶缺陷和過時的組件Vulnerable and Outdated Components
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A07:2021-身份識別和身份驗(yàn)證錯誤(無效的身份認(rèn)證)Identification and Authentication Failures
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A08:2021-軟件和數(shù)據(jù)完整性故障Software and Data Integrity Failures
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A09:2021-安全日志和監(jiān)控故障Security Logging and Monitoring Failures
    • 常見CWE(弱點(diǎn)枚舉)
    • 風(fēng)險說明
    • 預(yù)防措施
  • A10:2021-服務(wù)端請求偽造 Server-Side Request Forgery
    • 風(fēng)險說明
    • 預(yù)防措施

A01:2021-失效的訪問控制Broken Access Control

常見CWE(弱點(diǎn)枚舉)

  • CWE-200: Exposure of Sensitive Information to an Unauthorized
    Actor(將敏感信息泄漏給未經(jīng)授權(quán)的參與者)
  • CWE-201: Exposure of Sensitive Information Through
    Sent Data(通過發(fā)送的數(shù)據(jù)泄漏敏感信息)
  • CWE-352: Cross-Site Request Forgery (跨站請求偽造)
  • 風(fēng)險說明

    訪問控制強(qiáng)制實(shí)施策略,使用戶無法在其預(yù)期權(quán)限之外進(jìn)行操作。失敗的訪問控制通常會導(dǎo)致未經(jīng)授權(quán)的信息泄露、修改或銷毀所有數(shù)據(jù)、或在用戶權(quán)限之外執(zhí)行業(yè)務(wù)功能。常見的訪問控制脆弱點(diǎn)包括:

  • 違反最小特權(quán)原則或默認(rèn)拒絕原則,即訪問權(quán)限應(yīng)該只授予特定能力、角色或用戶,但實(shí)際上任何人都可以訪問。
  • 通過修改 URL(參數(shù)篡改或強(qiáng)制瀏覽)、內(nèi)部應(yīng)用程序狀態(tài)或 HTML 頁面,或使用修改 API 請求的攻擊工具來繞過訪問控制檢查。
  • 通過提供唯一標(biāo)識符(不安全的直接對象引用)允許查看或編輯其他人的帳戶。
  • API沒有對POST、PUT 和DELETE強(qiáng)制執(zhí)行訪問控制。
  • 特權(quán)提升。 在未登錄的情況下假扮用戶或以用戶身份登錄時充當(dāng)管理員。
  • 元數(shù)據(jù)操作,例如通過重放或篡改 JSON Web 令牌 (JWT) 來訪問控制令牌,或操縱cookie 或隱藏字段以提升權(quán)限,或?yàn)E用 JWT 失效。
  • CORS 配置錯誤以致允許未授權(quán)或不可信的API訪問。
  • 以未通過身份驗(yàn)證的用戶身份強(qiáng)制瀏覽的通過身份驗(yàn)證時才能看到的頁面或作為標(biāo)準(zhǔn)用戶身份訪問特權(quán)頁面。
  • 預(yù)防措施

    訪問控制只在受信服務(wù)器端代碼或無服務(wù)器API中有效,這樣攻擊者才無法修改訪問控制檢查或元數(shù)據(jù)。

  • 除公有資源外,默認(rèn)為“拒絕訪問”。
  • 使用一次性的訪問控制機(jī)制,并在整個應(yīng)用程序中不斷重用它們,包括最小化跨源資源共享 (CORS) 的使用。
  • 建立訪問控制模型以強(qiáng)制執(zhí)行所有權(quán)記錄,而不是簡單接受用戶創(chuàng)建、讀取、更新或刪除的任何記錄。
  • 特別的業(yè)務(wù)應(yīng)用訪問限制需求應(yīng)由領(lǐng)域模型強(qiáng)制執(zhí)行。
  • 禁用Web服務(wù)器目錄列表,并確保文件元數(shù)據(jù)(例如: .git)和備份文件不存在于Web的根目錄中。
  • 在日志中記錄失敗的訪問控制,并在適當(dāng)時向管理員告警(例如:重復(fù)故障)。
  • 對API和控制器的訪問進(jìn)行速率限制,以最大限度地降低自動化攻擊工具帶來的危害。
  • 當(dāng)用戶注銷后,服務(wù)器上的狀態(tài)會話標(biāo)識符應(yīng)失效。無狀態(tài)的JWT令牌應(yīng)該是短暫的,以便讓攻擊者的攻
    擊機(jī)會窗口最小化。 對于時間較長的JWT,強(qiáng)烈建議遵循OAuth標(biāo)準(zhǔn)來撤銷訪問。
  • A02:2021-加密機(jī)制失效(敏感數(shù)據(jù)泄漏)Cryptographic Failures

    常見CVE(弱點(diǎn)枚舉)

  • CWE-259: Use of Hard-coded Password (使用硬編碼密碼)
  • CWE-327: Broken or Risky Crypto Algorithm(損壞或有風(fēng)險的加密算法)
  • CWE-331 Insufficient Entropy (熵不足)
  • 風(fēng)險說明

    首先要確認(rèn):對傳輸中數(shù)據(jù)和存儲數(shù)據(jù)都有哪些保護(hù)需求。 例如,密碼、信用卡號、醫(yī)療記錄、個人信息和商業(yè)秘密需要額外保護(hù),尤其是在這些數(shù)據(jù)屬于隱私保護(hù)法(如:歐盟GDPR) 或法規(guī)條例(如:金融數(shù)據(jù)保護(hù)標(biāo)準(zhǔn)PCI DSS)適用范圍的情況下。 對于這些數(shù)據(jù),要確定:

  • 在傳輸數(shù)據(jù)過程中是否使用明文傳輸?這和傳輸協(xié)議有關(guān),如:HTTP、SMTP、經(jīng)過TLS升級(如STARTTLS )的FTP。外部網(wǎng)絡(luò)流量是有害的。需要驗(yàn)證所有的內(nèi)部通信,如,負(fù)載平衡、Web服務(wù)器或后端系統(tǒng)之間的流量。
  • 無論是在默認(rèn)情況下還是在舊的代碼中,是否還在使用任何舊的或脆弱的加密算法或傳輸協(xié)議?
  • 是否使用默認(rèn)加密密鑰、生成或重復(fù)使用脆弱的加密密鑰,或者是否缺少適當(dāng)?shù)拿荑€管理或密鑰回轉(zhuǎn)?加密密鑰是否已經(jīng)提交到源代碼存儲庫?
  • 是否未執(zhí)行強(qiáng)制加密,例如,是否缺少安全相關(guān)的HTTP(瀏覽器)指令或標(biāo)頭?
  • 接收到的服務(wù)器證書和信任鏈?zhǔn)欠窠?jīng)過正確驗(yàn)證?
  • 初始化向量是否忽略,重用或生成的密碼操作模式是否不夠安全? 是否正在使用不安全的操作模式,例如歐洲央行正在使用的操作模式? 當(dāng)認(rèn)證加密更合適時是否使用加密?
  • 在缺乏密碼基密鑰派生函數(shù)的情況下,是否將密碼用作加密密鑰?
  • 隨機(jī)性是否用于并非旨在滿足加密要求的加密目的? 即使選擇了正確的函數(shù),它是否需要由開發(fā)人員播種,如果不需要,開發(fā)人員是否用缺乏足夠熵/不可預(yù)測性的種子覆蓋了內(nèi)置的強(qiáng)大播種功能?
  • 是否使用過時的散列函數(shù),例如 MD5 或 SHA1,或者在散列函數(shù)需要加密時使用非加密散列函數(shù)?
  • 是否在使用已棄用的加密填充方法,例如 PCKS number 1 v1.5?
  • 加密的錯誤消息或側(cè)信道信息是否可以利用,例如使用填充預(yù)言機(jī)攻擊的形式?
  • 預(yù)防措施

    ? 對應(yīng)用程序處理、存儲或傳輸?shù)臄?shù)據(jù)分類,并根據(jù)隱私法、監(jiān)管要求或業(yè)務(wù)需求確定哪些數(shù)據(jù)是敏感的。
    ? 對于沒有必要存儲的敏感數(shù)據(jù),應(yīng)當(dāng)盡快清除,或者通過PCI DSS標(biāo)記化或攔截。 未存儲的數(shù)據(jù)不能竊取。
    ? 確保加密存儲的所有敏感數(shù)據(jù)。
    ? 確保使用了最新的、強(qiáng)大的標(biāo)準(zhǔn)算法、協(xié)議和密鑰;并且密鑰管理到位。
    ? 確保加密傳輸過程中的數(shù)據(jù),如使用安全協(xié)議(例如具有前向保密 (FS) 密碼的 TLS、服務(wù)器的密碼優(yōu)先級
    和安全參數(shù))。確保強(qiáng)制執(zhí)行數(shù)據(jù)加密,如使用HTTP 嚴(yán)格安全傳輸協(xié)議 (HSTS) 等指令。
    ? 禁用緩存對包含敏感數(shù)據(jù)的響應(yīng)。
    ? 根據(jù)數(shù)據(jù)分類應(yīng)用實(shí)施所需的安全控制。
    ? 不要使用FTP 和SMTP 等傳統(tǒng)協(xié)議來傳輸敏感數(shù)據(jù)。
    ? 使用具有工作因子(延遲因子)的強(qiáng)自適應(yīng)和加鹽散列函數(shù)存儲密碼,例如 Argon2、scrypt、bcrypt 或PBKDF2。
    ? 必須選擇適合操作模式的初始化向量。對于大多數(shù)模式,可以使用CSPRNG(密碼安全偽隨機(jī)數(shù)生成器)。
    對于需要隨機(jī)數(shù)的模式,則初始化向量 (IV) 不需要使用CSPRNG。 在所有情況下,對于一個固定密鑰,永遠(yuǎn)不應(yīng)該使用兩次IV。
    ? 始終使用經(jīng)過驗(yàn)證的加密,而不僅僅是加密。
    ? 密鑰應(yīng)以加密方式隨機(jī)生成并作為字節(jié)數(shù)組存儲在內(nèi)存中。 如果使用密碼,則必須通過適當(dāng)?shù)拿艽a基密鑰派生函數(shù)將其轉(zhuǎn)換為密鑰。
    ? 確保在適當(dāng)?shù)牡胤绞褂眉用茈S機(jī)性,并且沒有以可預(yù)測的方式或低熵進(jìn)行播種。 大多數(shù)現(xiàn)代 API 不需要開發(fā)人員為 CSPRNG 設(shè)置種子以獲得安全性。
    ? 避免使用的已廢棄的加密函數(shù)和填充方案,例如 MD5、SHA1、PKCS number 1 v1.5。
    ? 單獨(dú)驗(yàn)證每個安全配置項(xiàng)的有效性。

    A03:2021-注入Injection

    常見CWE(弱點(diǎn)枚舉)

  • CWE-79: Cross-siteScripting(跨站點(diǎn)腳本)
  • CWE-89:SQL Injection(SQL注入)
  • CWE-73:External Control of File Name or Path(文件名或路徑的外部控制)
  • 風(fēng)險說明

    在以下情況下,應(yīng)用程序易受攻擊:

  • 應(yīng)用程序不會驗(yàn)證、過濾或清洗用戶提供的數(shù)據(jù)。
  • 動態(tài)查詢或無上下文感知轉(zhuǎn)義的非參數(shù)化調(diào)用直接在解釋器中使用。
  • 惡意數(shù)據(jù)在對象關(guān)系映射(ORM)搜索參數(shù)中用于提取額外的敏感記錄。
  • 惡意數(shù)據(jù)被直接使用或連接。SQL或命令包含動態(tài)查詢、命令或存儲過程中的結(jié)構(gòu)和惡意數(shù)據(jù)。
  • 預(yù)防措施

    防止注入需要將數(shù)據(jù)與命令和查詢分開:

  • 推薦的選擇是使用安全的API,這樣可以避免完全使用解釋器、提供參數(shù)化接口或遷移到對象關(guān)系映射工具(ORM)。注意:即使參數(shù)化,如果PL/SQL或T-SQL將查詢和數(shù)據(jù)連接起來,或者使用EXECUTE IMMEDIATE或exec()執(zhí)行惡意數(shù)據(jù),則存儲過程仍然可以引入SQL注入。
  • 使用肯定(positive)或“白名單”服務(wù)器端輸入驗(yàn)證。這并不是一種完美的防御,因?yàn)樵S多應(yīng)用
    程序需要特殊字符,例如移動應(yīng)用程序中的文本區(qū)域或API。
  • 對于任何殘余的動態(tài)查詢,請使用該解釋器的特定轉(zhuǎn)義語法轉(zhuǎn)義特殊字符。注意:SQL結(jié)構(gòu)(如表
    名、列名等)無法轉(zhuǎn)義,因此用戶提供的結(jié)構(gòu)名是危險的。這是報(bào)表編寫軟件中的常見問題。
  • 在查詢中使用LIMIT和其他SQL控件,以防止在SQL注入的情況下大量披露記錄。
  • A04:2021-不安全設(shè)計(jì)Insecure Design

    2021年版的一個新類別,側(cè)重于與設(shè)計(jì)和體系結(jié)構(gòu)缺陷相關(guān)的風(fēng)險,呼吁更多地使用威脅建模、
    安全設(shè)計(jì)模式和參考體系結(jié)構(gòu)。

    常見CWE(弱點(diǎn)枚舉)

  • CWE-209:Generation of Error Message Containing Sensitive Information(生成包含敏感信息的錯誤消息)
  • CWE-256:Unprotected Storage of Credentials(憑證的未保護(hù)存儲)
  • CWE-256:Unprotected Storage of Credentials(憑證的未保護(hù)存儲)
  • CWE-522:Insufficiently Protected Credentials(憑證保護(hù)不足)
  • 風(fēng)險說明

    不安全設(shè)計(jì)是一個廣泛的類別,代表不同的弱點(diǎn),表示為“缺少或無效的控制設(shè)計(jì)”。不安全設(shè)計(jì)
    不是所有其他前10個風(fēng)險類別的來源。不安全設(shè)計(jì)和不安全的實(shí)現(xiàn)之間存在差異。我們區(qū)分設(shè)計(jì)缺陷和實(shí)現(xiàn)缺陷是有原因的,它們有不同的根本原因和補(bǔ)救措施。安全設(shè)計(jì)仍然可能存在實(shí)現(xiàn)缺陷,從而導(dǎo)致可能被利用的漏洞。一個不安全設(shè)計(jì)不能通過一個完美的實(shí)現(xiàn)來修復(fù),因?yàn)楦鶕?jù)定義,所需的安全控制從未被創(chuàng)建來抵御特定的攻擊。導(dǎo)致不安全設(shè)計(jì)的因素之一是開發(fā)的軟件或系統(tǒng)中缺乏固有的業(yè)務(wù)風(fēng)險分析,因此無法確定需要何種級別的安全設(shè)計(jì)。

  • 需求和資源管理
    收集應(yīng)用程序的業(yè)務(wù)需求并與業(yè)務(wù)部門協(xié)商,包括所有數(shù)據(jù)資產(chǎn)和預(yù)期業(yè)務(wù)邏輯的機(jī)密性、完整性、可用性和真實(shí)性方面的保護(hù)需求。考慮應(yīng)用程序的公開程度,以及是否需要租戶隔離(除訪問控制外)。編制技術(shù)要求,包括功能性和非功能性安全要求。計(jì)劃和協(xié)商所有設(shè)計(jì)、建造、測試和運(yùn)營的預(yù)算,包括安全活動。
  • 安全設(shè)計(jì)
    安全設(shè)計(jì)是一種文化和方法,它不斷評估威脅,并確保代碼經(jīng)過穩(wěn)健的設(shè)計(jì)和測試,以防止已知的攻擊方法。威脅建模應(yīng)整合到細(xì)化會議(或類似活動)中;查看數(shù)據(jù)流和訪問控制或其他安全控制中的更改。在用戶故事開發(fā)中,確定正確的流程和故障狀態(tài),確保責(zé)任方和受影響方充分理解并同意這些狀態(tài)。分析預(yù)期和故障流的假設(shè)和條件,確保其仍然準(zhǔn)確和可取。確定如何驗(yàn)證正確行為所需的假設(shè)和實(shí)施條件。確保結(jié)果記錄在用戶故事中。從錯誤中吸取教訓(xùn),并提供積極的激勵以促進(jìn)改進(jìn)。安全設(shè)計(jì)既不是附加組件,也不是可以添加到軟件中的工具。
  • 安全開發(fā)生命周期
    安全的軟件需要安全開發(fā)生命周期、某種形式的安全設(shè)計(jì)模式、AppSec規(guī)劃方法、安全的組件庫、工具和威脅建模。在整個項(xiàng)目和軟件維護(hù)過程中,在軟件項(xiàng)目開始時聯(lián)系您的安全專家。考慮利用
    OWASP軟件保證成熟度模型(SAMM)來幫助構(gòu)建您的安全軟件開發(fā)工作。
  • 預(yù)防措施

  • 與應(yīng)用安全專業(yè)人員建立并使用安全的開發(fā)生命周期,以幫助評估和設(shè)計(jì)與安全和隱私相關(guān)的控制。
  • 建立并使用安全設(shè)計(jì)模式的庫,或使用AppSec規(guī)劃中現(xiàn)有的要素。
  • 對關(guān)鍵身份驗(yàn)證、訪問控制、業(yè)務(wù)邏輯和密鑰流使用威脅建模。
  • 將安全語言和安全控制集成到用戶故事中。
  • 在應(yīng)用程序的每一層(從前端到后端)集成合理性檢查。
  • 編寫單元和集成測試,以驗(yàn)證所有關(guān)鍵流是否能夠抵抗威脅模型。為應(yīng)用程序的每一層編譯正確用例和誤用案例。
  • 根據(jù)暴露和保護(hù)需要,對系統(tǒng)層和網(wǎng)絡(luò)層進(jìn)行分層。
  • 通過設(shè)計(jì)在所有層中嚴(yán)格隔離租戶。
  • 限制用戶或服務(wù)的資源消耗。
  • A05:2021-安全配置錯誤Security Misconfiguration

    常見CWE(弱點(diǎn)枚舉)

  • CWE-16 Configuration(配置)
  • CWE-611 Improper Restriction of XML External Entity Reference(XML 外部實(shí)體引用的不當(dāng)限制)
  • 風(fēng)險說明

    您的應(yīng)用程序可能受到攻擊,如果應(yīng)用程序是:

  • 應(yīng)用程序棧的任何部分缺少適當(dāng)?shù)陌踩庸?#xff0c;或者云服務(wù)的權(quán)限配置錯誤。
  • 應(yīng)用程序啟用或安裝了不必要的功能(例如:不必要的端口、服務(wù)、網(wǎng)頁、帳戶或權(quán)限)。
  • 默認(rèn)帳戶和密碼仍然可用且沒有更改。
  • 錯誤處理機(jī)制向用戶紕漏堆棧信息或其他大量錯誤信息。
  • 對于升級的系統(tǒng),最新的安全特性被禁用或未安全配置。
  • 應(yīng)用程序服務(wù)器、應(yīng)用程序框架(如:Struts、Spring、ASP.NET)、庫文件、數(shù)據(jù)庫等沒有進(jìn)
    行安全配置。
  • 服務(wù)器不發(fā)送安全標(biāo)頭或指令,或未被設(shè)定安全參數(shù)。
  • 您的應(yīng)用軟件已過期或易受攻擊(參見“A6:2021-脆弱和過時的組件”)。
    缺少一個體系的、可重復(fù)的應(yīng)用程序安全配置過程,系統(tǒng)將處于高風(fēng)險中
  • 預(yù)防措施

  • 一個可以快速且易于部署在另一個鎖定環(huán)境的可重復(fù)的加固過程。開發(fā)、質(zhì)量保證和生產(chǎn)環(huán)境都應(yīng)該進(jìn)行相同配置,并且在每個環(huán)境中使用不同的密碼。這個過程應(yīng)該是自動化的,以盡量減少安裝
    一個新安全環(huán)境的耗費(fèi)。
  • 搭建最小化平臺,該平臺不包含任何不必要的功能、組件、文檔和示例。移除或不安裝不適用的功能和框架。
  • 檢查和修復(fù)安全配置項(xiàng)來適應(yīng)最新的安全說明、更新和補(bǔ)丁,并將其作為更新管理過程的一部分(參見“A6:2021-脆弱和過時的組件”)。在檢查過程中,應(yīng)特別注意云存儲權(quán)限(如:S3桶權(quán)
    限)。
  • 一個能在組件和用戶間提供有效的分離和安全性的分段應(yīng)用程序架構(gòu),包括:分段、容器化和云安全組(ACL)。
  • 向客戶端發(fā)送安全指令,例如:安全標(biāo)頭。
  • 一個能夠驗(yàn)證所有環(huán)境中進(jìn)行了正確的安全配置和設(shè)置的自動化過程。
  • A06:2021-自帶缺陷和過時的組件Vulnerable and Outdated Components

    常見CWE(弱點(diǎn)枚舉)

  • CWE-1104 Use of Unmaintained Third-Party
    Components(使用未維護(hù)第三方組件)
  • 風(fēng)險說明

    如果滿足下面的某個條件,那么您的應(yīng)用就易受此類攻擊:

  • 如果您不知道所有使用的組件版本信息(包括:服務(wù)端和客戶端)。這包括了直接使用的組件或間接依賴的組件。
  • 如果軟件易受攻擊,不再支持或者過時。這包括:系統(tǒng)、Web服務(wù)器、應(yīng)用程序服務(wù)器、數(shù)庫
    管理系統(tǒng)(DBMS)、應(yīng)用程序、API和所有的組件、運(yùn)行環(huán)境和庫。
  • 如果您沒有定期做漏洞掃描和訂閱使用組件的安全公告。
  • 如果您不基于風(fēng)險及時修復(fù)或升級底層平臺、框架和依賴庫。很可能發(fā)生這種情況:根據(jù)變更控制,每月或每季度進(jìn)行升級,這使得組織在這段時間內(nèi)會受到已修復(fù)但未修補(bǔ)的漏洞的威脅。
  • 如果軟件工程師沒有對更新的、升級的或打過補(bǔ)丁的組件進(jìn)行兼容性測試。
  • 如果您沒有對組件進(jìn)行安全配置(參見“A05:2021–安全配置錯誤”)。
  • 預(yù)防措施

  • 移除不使用的依賴、不需要的功能、組件、文件和文檔。
  • 利用如versions、OWASP Dependency Check、retire.js等工具來持續(xù)的記錄客戶端和服務(wù)器端以及它們的依賴庫的版本信息。持續(xù)監(jiān)控如CVE和NVD等是否發(fā)布已使用組件的漏洞信息,可以使用軟件分析工具來自動完成此功能。訂閱關(guān)于使用組件安全漏洞的警告郵件。
  • 僅從官方渠道安全的獲取組件,并使用簽名機(jī)制來降低組件被篡改或加入惡意漏洞的風(fēng)險 (參見
    “A08:2021-軟件和數(shù)據(jù)完整性故障”)。
  • 監(jiān)控那些不再維護(hù)或者不發(fā)布安全補(bǔ)丁的庫和組件。如果不能打補(bǔ)丁,可以考慮部署虛擬補(bǔ)丁來監(jiān)控、檢測或保護(hù)。
    每個組織都應(yīng)該制定相應(yīng)的計(jì)劃,對整個軟件生命周期進(jìn)行監(jiān)控、評審、升級或更改配置。
  • A07:2021-身份識別和身份驗(yàn)證錯誤(無效的身份認(rèn)證)Identification and Authentication Failures

    常見CWE(弱點(diǎn)枚舉)

  • CWE-297: Improper Validation of Certificate with Host Mismatch(與不匹配的服務(wù)端進(jìn)行不適當(dāng)?shù)膽{證確認(rèn))
  • CWE-287: Improper Authentication(不適當(dāng)?shù)恼J(rèn)證)
  • CWE-384: Session Fixation(會話固定攻擊)
  • 風(fēng)險說明

  • 允許像是攻擊者已經(jīng)擁有有效用戶名稱和密碼列表的撞庫自動化攻擊。
  • 允許暴力或其他自動化攻擊。
  • 允許預(yù)設(shè)、脆弱、常見的密碼,像是"Password1"或"admin/admin"。
  • 使用脆弱或無效的認(rèn)證資訊回復(fù)或忘記密碼的流程,如不安全的"知識相關(guān)問答"。
  • 使用明碼、被加密的或使用較脆弱雜湊法的密碼(參考A3: 2017-敏感性資料泄漏)。(TODO)https://github.com/OWASP/Top10/issues/553
  • 不具有或是無效的多因素認(rèn)證。
  • 于URL中泄漏會話(session) ID(如URL重寫)。
  • 成功登入后沒有輪換會話(session) ID。
  • 沒 有 正 確 的 注 銷 會 話 (session) ID。用 戶 的 會 話(session)或 認(rèn) 證tokens(主 要 是 單 一 登 入(SSO)token) 沒有在登出時或一段時間沒活動時被適當(dāng)?shù)淖N。
  • 預(yù)防措施

    在可能的情況下,實(shí)施多因素認(rèn)證來防止自動化撞庫攻擊、暴力破解、以及遭竊認(rèn)證資訊被重復(fù)
    利用的攻擊。

  • 不要交付或部署任何預(yù)設(shè)的認(rèn)證憑證,特別是管理者。
  • 實(shí)施弱密碼的檢查,如測試新設(shè)定或變更的密碼是否存在于前10000個最差密碼清單。
  • 將密碼長度、復(fù)雜度和輪換政策與NIST 800-63b文件“第5.1.1節(jié)-被記憶的秘密或其他現(xiàn)代基于
    證據(jù)的密碼政策”的內(nèi)容保持一致。
  • 對所有結(jié)果使用相同的訊息回應(yīng),確保注冊、認(rèn)證憑據(jù)回復(fù)以及API路徑能夠抵御帳號枚舉攻擊。
  • 限制或增加登入失敗嘗試的延遲。記錄所有失敗并于偵測到撞庫、暴力破解或其他攻擊時發(fā)出告
    警。
  • 使用服器端、安全的內(nèi)建會話管理器,在登入后產(chǎn)生有高熵值的新隨機(jī)會話ID。會話ID不應(yīng)出現(xiàn)
    在URL中,必須被安全的儲存,并且在登出后、閑置、超時后被注銷。
  • A08:2021-軟件和數(shù)據(jù)完整性故障Software and Data Integrity Failures

    常見CWE(弱點(diǎn)枚舉)

  • CWE-829:Inclusion of Functionality from Untrusted Control Sphere(包含來自不受信任控制領(lǐng)域的功能)
  • CWE-494:Download of Code Without
    Integrity Check(不進(jìn)行完整性檢查的代碼下載)
  • CWE-502:Deserialization of Untrusted
    Data(不可信數(shù)據(jù)的反序列化)。
  • 風(fēng)險說明

    軟件和數(shù)據(jù)完整性故障與無法防止違反完整性的代碼和基礎(chǔ)設(shè)施有關(guān)。這方面的一個例子是,應(yīng)用程序依賴于不受信任的源、存儲庫和內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)的插件、庫或模塊。不安全的CI/CD管道可能會帶來未經(jīng)授權(quán)的訪問、惡意代碼或系統(tǒng)安全風(fēng)險。最后,許多應(yīng)用程序現(xiàn)在包括自動更新功能。其中,更新包在沒有進(jìn)行充足完整性驗(yàn)證的情況下被下載,并應(yīng)用于以前受信任的應(yīng)用程序。攻擊者可能會上傳自己的更新包,以便在所有安裝上分發(fā)和運(yùn)行。另一個例子是,對象或數(shù)據(jù)被編碼或序列化為攻擊者可以看到和修改的結(jié)構(gòu),很容易受到不安全的反序列化的影響。

    預(yù)防措施

  • 使用數(shù)字簽名或類似機(jī)制來驗(yàn)證軟件或數(shù)據(jù)來自預(yù)期來源,且未被修改。
  • 確保庫和依賴項(xiàng)目,如:npm 或 Maven,正在使用受信任的存儲庫。如果您的風(fēng)險較高,請考慮
    托管一個經(jīng)過審核的、內(nèi)部已知合格的存儲庫。
  • 確保使用軟件供應(yīng)鏈安全工具(如:OWASP Dependency Check 或 OWASP CycloneDX)來驗(yàn)證組件不包含已知漏洞。
  • 確保對代碼和配置更改進(jìn)行審核,以最大限度地減少惡意代碼或配置引入軟件管道的可能性。
  • 確保您的CI/CD管道具有適當(dāng)?shù)母綦x、配置和訪問控制,以確保代碼在構(gòu)建和部署過程中的完整性。
  • 確保通過特定形式的完整性檢查或數(shù)字簽名來檢測序列化數(shù)據(jù)是否存在篡改或重播,所有未簽名或未加密的序列化數(shù)據(jù)不會發(fā)送到不受信任的客戶端。
  • A09:2021-安全日志和監(jiān)控故障Security Logging and Monitoring Failures

    常見CWE(弱點(diǎn)枚舉)

  • CWE-778 Insufficient Logging(日志記錄不足)
  • CWE-117 Improper Output Neutralization for Logs(日志輸出不當(dāng))
  • CWE-223 Omission of Security-relevant Information(安全事件信息漏報(bào))
  • CWE-532 Insertion of Sensitive Information into Log File(在日志文件中包含敏感信息)
  • 風(fēng)險說明

    如果不進(jìn)行日志記錄和監(jiān)測,就無法發(fā)現(xiàn)違規(guī)行為。任何時候都會發(fā)生日志記錄、檢測、監(jiān)視和主動響應(yīng)不足的情況:

  • 需要審計(jì)的事件,例如:登錄、失敗的登錄和高價值交易,但未記錄。
  • 警告和錯誤未生成日志或日志記錄不充分或日志消息不清晰。
  • 應(yīng)用程序和 API的日志未進(jìn)行安全可疑活動的監(jiān)控。
  • 日志只存儲在本地。
  • 適當(dāng)?shù)木瘓?bào)閾值和響應(yīng)升級過程不到位或無效。
  • 滲透測試和動態(tài)應(yīng)用安全測試(DAST)工具(例如:OWASP ZAP)的掃描沒有觸發(fā)警報(bào)。
  • 應(yīng)用無法實(shí)時或接近實(shí)時地檢測、升級或或?qū)χ鲃庸舭l(fā)出警報(bào)。
  • 如果讓用戶或攻擊者看到日志和警報(bào)事件,您就容易受到信息泄露的攻擊(查看“A01:2021-失
    效的訪問控制”)。
  • 預(yù)防措施

    開發(fā)人員應(yīng)根據(jù)應(yīng)用的風(fēng)險,實(shí)施以下部分或全部控制:

  • 確保所有的登錄、訪問控制和服務(wù)器端輸入驗(yàn)證失敗都可以被記錄在足夠的用戶上下文中,以識別可疑或惡意的帳戶,并保留足夠的時間以允許延遲的取證分析。
  • 確保日志是日志管理解決方案以方便使用的格式生成的。
  • 確保日志數(shù)據(jù)被正確編碼加密,以防止對日志或監(jiān)控系統(tǒng)的注入或攻擊。
  • 確保高價值交易有完整性控制的審計(jì)跟蹤,以防止篡改或刪除,例如:只附加數(shù)據(jù)庫表或類似的內(nèi)容。
  • DevSecOps團(tuán)隊(duì)?wèi)?yīng)該建立有效的監(jiān)控和警報(bào),以便發(fā)現(xiàn)可疑的活動并迅速做出反應(yīng)。
  • 建立或采用事故應(yīng)對和恢復(fù)計(jì)劃,例如:美國國家標(biāo)準(zhǔn)技術(shù)研究所(NIST)800-61r2或更高版本。
  • 有一些商業(yè)和開源的應(yīng)用程序保護(hù)框架,如:OWASP ModSecurity核心規(guī)則集,以及開源的日志相關(guān)軟件,如:Elasticsearch、Logstash、Kibana(ELK),具有自定義儀表盤和告警功能。
  • A10:2021-服務(wù)端請求偽造 Server-Side Request Forgery

    風(fēng)險說明

    一旦Web應(yīng)用在獲取遠(yuǎn)程資源時沒有驗(yàn)證用戶提供的URL,就會出現(xiàn)SSRF缺陷。它允許攻擊者強(qiáng)制應(yīng)用程序發(fā)送一個精心構(gòu)建的請求到一個意外目的地,即使是在有防火墻、VPN或其他類型的網(wǎng)絡(luò)訪問控制列表(ACL)保護(hù)的情況下。

    隨著現(xiàn)代Web應(yīng)用為終端用戶提供便利的功能,獲取URL成為一種常見的場景。因此,SSRF安全攻擊事件也在不斷增加。此外,由于云服務(wù)和架構(gòu)的復(fù)雜性,SSRF的嚴(yán)重性也越來越高。

    預(yù)防措施

    開發(fā)者可以通過實(shí)現(xiàn)以下部分或全部防御手段,縱深防御來阻止 SSRF:

    網(wǎng)絡(luò)層防御建議:

  • 在隔離的網(wǎng)絡(luò)中設(shè)置多個遠(yuǎn)程資源訪問功能的網(wǎng)段,以減少SSRF的影響。
  • 執(zhí)行“默認(rèn)拒絕”防火墻策略或網(wǎng)絡(luò)訪問控制規(guī)則,以阻止除必要的內(nèi)部網(wǎng)通信外的所有通信。
    提示: 建立基于應(yīng)用的防火墻規(guī)則的所有權(quán)和生命周期。
  • 在防火墻上記錄所有接受和阻止的網(wǎng)絡(luò)流(參見“A09:2021-安全日志和監(jiān)控故障”)。
  • 應(yīng)用層防御建議:

  • 檢查和驗(yàn)證所有客戶端提供的輸入數(shù)據(jù)。
  • 使用白名單允許列表允許列表執(zhí)行URL統(tǒng)一資源標(biāo)志符、端口和目標(biāo)。
  • 不要給客戶端發(fā)送原始的回復(fù)。
  • 禁用 HTTP 重定向。
  • 注意URL的一致性,以避免DNS重新綁定和“檢查時間,使用時間”(TOCTOU)競爭條件等攻擊。
  • 不要通過使用黑名單拒絕列表或正則表達(dá)式來緩解SSRF。攻擊者擁有有效載荷列表、工具和繞過拒絕列表的技能。
  • 需額外考慮的措施:

  • 不要在前端系統(tǒng)上部署其他與安全相關(guān)的服務(wù)(如:OpenID)。控制這些系統(tǒng)上的本地流量(如:localhost)。
  • 對于專用和可管理的前端用戶,可以在獨(dú)立系統(tǒng)上使用網(wǎng)絡(luò)加密(如:vpn)來滿足非常高的安全保護(hù)需求。
  • 總結(jié)

    以上是生活随笔為你收集整理的2021年OWASP-TOP10的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。