摘要:CWE最危險的25種軟體缺陷,是NVD過去兩年中遇到的最常見和影響最大的問題訓示性的清單。 CWE Top25 可以幫助開發人員、測試人員和使用者,以及項目經理、安全研究人員和教育工作者深入了解最嚴重和目前的安全漏洞。
本文分享自華為雲社群《CWE釋出2021年最危險的25種軟體缺陷》,作者: Uncle_Tom。
1. CWE 4.5釋出
7月20日,CWE釋出了今年的第二個版本CWE 4.5版本。相比CWE 4.4, 這次新增4個缺陷和1個視圖,還對缺陷的名稱、描述和關系等做了139處重要改動。
主要的改動有:
- 對不再使用的CWE編号,在CWE的名稱前加上了“DEPRECATED: ”。這樣使用者可以不用再看狀态,就可以知道這個CWE編号已經停止使用了;
舉例:

- 記錄CWE變更記錄的節點“Content_History”,擴充到了頂層節點Views, Categories, 和Weaknesses。這樣可以清楚的看到每個節點在CWE版本演變過程中的變化情況。關于CWE節點的介紹可以參考《話說CWE 4.2的新視圖》;
- 語言枚舉(LanguageNameEnumeration)的語言中,增加了Rust, 這樣在應用平台(Applicable_Platform)和樣例(Demonstrative_Example)節點就增加了Rust語言。 目前CWE枚舉的語言有29中之多,基本上涵蓋了我們業界的主要開發語言。從這個變化也可以看到Rust語言在業界的應用越來越多了;
<xs:simpleType name="LanguageNameEnumeration">
<xs:annotation>
<xs:documentation>The LanguageNameEnumeration simple type contains a list of values corresponding to different source code languages.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Ada"/>
<xs:enumeration value="ASP"/>
<xs:enumeration value="ASP.NET"/>
<xs:enumeration value="Basic"/>
<xs:enumeration value="C"/>
<xs:enumeration value="C++"/>
<xs:enumeration value="C#"/>
<xs:enumeration value="COBOL"/>
<xs:enumeration value="Fortran"/>
<xs:enumeration value="F#"/>
<xs:enumeration value="Go"/>
<xs:enumeration value="HTML"/>
<xs:enumeration value="Java"/>
<xs:enumeration value="JavaScript"/>
<xs:enumeration value="JSP"/>
<xs:enumeration value="Objective-C"/>
<xs:enumeration value="Pascal"/>
<xs:enumeration value="Perl"/>
<xs:enumeration value="PHP"/>
<xs:enumeration value="Python"/>
<xs:enumeration value="Ruby"/>
<xs:enumeration value="Rust"/>
<xs:enumeration value="Shell"/>
<xs:enumeration value="SQL"/>
<xs:enumeration value="Swift"/>
<xs:enumeration value="VB.NET"/>
<xs:enumeration value="Verilog"/>
<xs:enumeration value="VHDL"/>
<xs:enumeration value="XML"/>
<xs:enumeration value="Other"/>
</xs:restriction>
</xs:simpleType>
- 增加了圖像(<img>)節點, 這樣可以CWE中通過圖檔引用來更好的對問題進行描述;
例如:CWE-1339 Insufficient Precision or Accuracy of a Real Number 在說明 Jean-Michel Muller實數精度計算問題時,通過圖的方式展示資料的變化,讓人更容易了解問題。
- 新增的四個缺陷節點是:
- CWE-1335: Incorrect Bitwise Shift of Integer
- CWE-1336: Improper Neutralization of Special Elements Used in a Template Engine
- CWE-1339: Insufficient Precision or Accuracy of a Real Number
- CWE-1351: Improper Handling of Hardware Behavior in Exceptionally Cold Environments
- 新增的視圖是:
- CWE-1337: Weaknesses in the 2021 CWE Top 25 Most Dangerous Software Weaknesses
下面我們對安全人員最關心的CWE-1337 2021年CWE最危險的25種軟體缺陷做個重點介紹。
2. 2021年最危險的25種軟體缺陷
2021年CWE最危險的25種軟體缺陷,是前兩個月曆年(2019-2020)中遇到的最常見和影響最大的問題訓示性的清單。 這些缺陷通常很容易被發現和利用,并且可以讓攻擊者完全接管系統、竊取資料或阻止應用程式運作。 CWE Top 25 可以幫助開發人員、測試人員和使用者,以及項目經理、安全研究人員和教育工作者深入了解最嚴重和目前的安全漏洞。
這個資料表的編寫,利用了美國國家标準與技術研究院 (NIST) 的國家漏洞資料庫 (NVD) 中的常見漏洞和披露 (CVE) 資料以及通用漏洞評分系統 (CVSS) 評定的分數與每個CVE記錄相關聯, 根據出現頻率和嚴重程度對每個弱點進行評分。報告對了2019-2020 NVD收錄的32500個CVE漏洞進行了評分和計算,在歸一化後得到了缺陷的排名。排名在算法上考慮到了出現頻率(prevalence)和危害(severity)兩個參數, 確定出現頻率低, 危害小的缺陷, 不容易出現在排行榜中, 而是讓頻率高, 危害高的缺陷出現在排行榜中。
- 具體的算法詳見《話說CWE 4.2的新視圖》
2.1. 2021年CWE最危險的25種軟體缺陷
這次的CWE TOP25是CWE自2019年後,連續第三次釋出TOP25資料。我們可以從每年TOP25的變動中看到攻防雙方在一些重要問題上的争奪,這樣有助于作為防守方的我們提前對一些重點高危漏洞進行提前的技術儲備和應急響應措施的準備。
- CWE 2021 TOP25的主要資料
2.2. CWE TOP25 2021 vs 2020
CWE TOP25 2021和2020相比,一些主要的變動較大的資料。
2.2.1. 變動最大的缺陷
- CWE-276 預設權限不正确(Incorrect Default Permissions): 從41到19
- CWE-306 關鍵功能的認證機制缺失(Missing Authentication for Critical Function): 從24到11
- CWE-502 不可信資料反序列化(Deserialization of Untrusted Data): 從21到13
- CWE-862 授權機制缺失(Missing Authorization): 從25到18
- CWE-77 在指令中使用的特殊元素轉義處理不恰當(指令注入)(Improper Neutralization of Special Elements used in a Command (‘Command Injection’)): 從31到25
2.2.2. 下降最快的前5名缺陷
- CWE-200 将敏感資訊暴露給未經授權的行為者(Exposure of Sensitive Information to an Unauthorized Actor): 從7到20
- CWE-119 記憶體緩沖區邊界内操作的限制不恰當(Improper Restriction of Operations within the Bounds of a Memory Buffer): 從5到17
- CWE-94 對生成代碼的控制不恰當(代碼注入)(Improper Control of Generation of Code (‘Code Injection’)): 從17到28
- CWE-269 特權管理不恰當(Improper Privilege Management): 從22到29
- CWE-732 關鍵資源的權限配置設定不正确(Incorrect Permission Assignment for Critical Resource): 從16到22
2.2.3. 新進入前25的缺陷
- CWE-918 伺服器端請求僞造(SSRF)(Server-Side Request Forgery (SSRF)): 從27到24
2.2.4. 跌出前25的缺陷
- CWE-400 未加控制的資源消耗(資源窮盡)(Uncontrolled Resource Consumption): 從23到27
3. 結論
- 在今天魔道争鋒的時代,CWE Top25可以幫助我們進一步的思考魔的攻擊方向和防守的道;
- 緩沖區溢出、輸入校驗、注入類問題仍是業界的主要安全問題,需要持續的關注;
- 對于隐私保護意識的提升,使敏感資訊洩露得到一定程度的控制;
- 權限控制是安全攻防争奪的焦點,除了特權的管理,還要特别關注關鍵功能和預設權限的設定;
- 在資訊儲存和傳輸中,要注意不可信資料的反序列化問題。
4. 參考
- https://cwe.mitre.org/
- https://cwe.mitre.org/data/reports.html
點選關注,第一時間了解華為雲新鮮技術~