什么是CWE?CWE是由個組織維護的?CWE的能解決什么問題?CWE共有多少個類別和條目?讀完本文你將收獲所有答案。如還有其他相關(guān)疑問,歡迎留言討論。
1. 簡介
Common Weakness Enumeration,簡稱CWE,中文翻譯為通用缺陷枚舉,它是由MITRE公司維護的一個開放的、可擴展的通用語言,用于描述軟件及硬件缺陷。CWE可以讓安全研究人員、開發(fā)人員和安全管理人員能夠更好地理解和解決安全問題。CWE本質(zhì)就是一個軟件和硬件缺陷類型列表,當前最新版本為4.10。點擊下載
本文中所提到的缺陷指軟件、固件、硬件或服務組件中的一種狀態(tài),在某些情況下,可能導致漏洞的引入。
-
軟件缺陷舉例
- 不充分數(shù)據(jù)校驗
- 緩沖區(qū)溢出
- 代碼注入
- 路徑操縱 硬件缺陷舉例
- 與CPU、GPU、AI、FPGA相關(guān)的核心和計算問題
- 與身份和策略、共享資源、鎖定控件、寄存器以及其他功能和機制相關(guān)的特權(quán)分離和訪問控制問題
- 與電壓、電流、溫度、時鐘控制和狀態(tài)保存/恢復相關(guān)的功率、時鐘和復位問題。
CWE幫助開發(fā)人員和安全從業(yè)者:
- 用通用語言描述和討論軟件和硬件的缺陷;
- 檢查現(xiàn)有軟件和硬件產(chǎn)品的缺陷;
- 評估針對這些缺陷的工具的能力覆蓋范圍;
- 利用共同的基線標準進行缺陷識別、消減和預防工作;
- 在部署之前修補軟件和硬件漏洞
2. 分類
CWE List 4.10中共有933個缺陷條目(被分為352個類別,47個視圖),其中64個為過期條目,過期條目描述中會指向到新的有效條目。
分類 | CWE List 4.9 | CWE List 4.10 |
---|---|---|
Weakness(缺陷) | 933 | 933 |
Category(類別) | 352 | 352 |
View(視圖) | 47 | 47 |
Deprecated(過期) | 63 | 64 |
總共 | 1395 | 1396 |
如果大家打開CWE List,可以看到如下9個符號圖標,每個圖標均有對應含義,下文中也會針對這9個圖標類別進行詳情介紹。
符號 | 含義 |
---|---|
![]() |
View |
![]() |
Pillar |
![]() |
Category |
![]() |
Weakness - Class |
![]() |
Weakness -Base |
![]() |
Weakness - Variant |
![]() |
Compound Element - Composite |
![]() |
Compound Element - Named Chain |
![]() |
Deprecated |
2.1. View 視圖
通過View可以快速檢索CWE條目,視圖本身也會占用CWE編號。常見的視圖如下:
上圖中的視圖Weakness in Software Written in Java展開后可以看到視圖的ID為CWE-660,其中包含了多個CWE條目。
CWE軟件開發(fā)視圖(CWE-699)
2.2. Pillar Weakness 支柱缺陷
最高級的Weakness,不能再抽象了。Pillar是研究概念視圖(CWE-1000)中的頂級條目(見下圖中的節(jié)點條目),代表與之相關(guān)的所有Class/Base/Variant Weakness的抽象主題。Pillar與Class不同,因為Pillar在技術(shù)上仍然是描述錯誤的缺陷類型,而Class代表用于對相關(guān)事物進行分組的共同特征。例如,錯誤計算(CWE-682)是Pillar的一個例子,因為它描述了一個錯誤,但并不表明該錯誤發(fā)生的具體位置或受影響的資源類型。
2.3. Category 類別
一個CWE條目,它包含一組共享共同特征的其他條目。類別不是缺陷,而是幫助用戶找到具有所述共同特征的缺陷的結(jié)構(gòu)性項目。比如,Data Validation Issues(數(shù)據(jù)校驗問題),包含了如下CWE條目,CWE-112,CWE-129,CWE-179,CWE-183,CWE-184,CWE-606,CWE-641,CWE-1173,這些條件都具有共同特征,者和數(shù)據(jù)校驗相關(guān)。
2.4. Class Weakness 類缺陷
以非常抽象的方式描述的缺陷,通常獨立于任何特定的語言或技術(shù)。比 Pillar Weakness更具體,但比Base weakness更抽象。Class weakness通常由以下1或2個維度來描述問題:行為、屬性和資源。例如,Class Weakness“不受控制的資源消耗”(CWE-400)描述了與任何類型的資源相關(guān)的行為(消耗)的問題(不受控制)。另一個例子是“敏感信息的不安全存儲”(CWE-922),它描述并發(fā)布(不安全)針對一般類型的資源(敏感信息)采取的行為(存儲)。
2.5. Base weakness 基礎(chǔ)缺陷
這是一個以抽象方式描述的缺陷,但有足夠的細節(jié)來推斷檢測和預防的具體方法。比變體缺陷更抽象,但比類缺陷更具體?;A(chǔ)級缺陷通常由以下2或3個維度來描述問題:行為、屬性、技術(shù)、語言和資源。例如,基礎(chǔ)缺陷“使用外部控制的格式字符串”(CWE-134)描述了針對具有給定屬性(外部控制)的特定資源(格式字符串)采取的行為(使用)的問題(不當操作)。另一個示例是“對受限目錄的路徑名的不當限制”(CWE-22),它描述了針對具有給定屬性(受限)的資源(目錄)采取的行為(對路徑名的控制)的問題(不當限制)。
2.6. Variant Weakness 變體缺陷
與某種產(chǎn)品相關(guān)的缺陷,通常涉及特定的語言(如Java、C/C++)或技術(shù)。比基礎(chǔ)缺陷更具體。變體級缺陷通常由以下3到5個維度來描述問題:行為、屬性、技術(shù)、語言和資源。例如,“在指針類型上使用sizeof()”(CWE-467),它描述了隱含語言(支持指針類型的語言)中針對資源(指針)的行為(函數(shù)應用)的問題(使用)。
2.7. Compound Element 復合元素
將兩個或多個CWE條目緊密關(guān)聯(lián)的條目。CWE團隊的研究表明,漏洞通??梢杂脙蓚€或多個缺陷的相互作用或共存來描述。
2.8. Named Chain 命名鏈
一個頻繁出現(xiàn)以至于已為其分配了CWE ID的鏈,例如CWE-680(整數(shù)溢出到緩沖區(qū)溢出)。
2.9. Deprecated 過期
應該有一個參考,指出每個不推薦的缺陷中的替代品。
3. CWE Top 25
CWE Top 25每年都會更新,以下是2022年CWE前25名中的缺陷列表,包括每個缺陷的總體得分。
序號 | ID | 名稱 | 得分 |
---|---|---|---|
1 | CWE-787 | 越界寫入 | 64.20 |
2 | CWE-79 | 跨站腳本 | 45.97 |
3 | CWE-89 | SQL注入 | 22.11 |
4 | CWE-20 | 輸入校驗不充分 | 20.63 |
5 | CWE-125 | 越界讀取 | 17.67 |
6 | CWE-78 | OS命令注入 | 17.53 |
7 | CWE-416 | 釋放后使用 | 15.50 |
8 | CWE-22 | 路徑遍歷 | 14.08 |
9 | CWE-352 | 跨站請求偽造 | 11.53 |
10 | CWE-434 | 無限制上傳危險類型文件 | 9.56 |
11 | CWE-476 | 空指針引用 | 7.15 |
12 | CWE-502 | 不可信數(shù)據(jù)的反序列化 | 6.68 |
13 | CWE-190 | 整數(shù)溢出或回繞 | 6.53 |
14 | CWE-287 | 不合適的認證 | 6.35 |
15 | CWE-798 | 硬編碼證書 | 5.66 |
16 | CWE-862 | 授權(quán)機制缺失 | 5.53 |
17 | CWE-77 | 命令注入 | 5.42 |
18 | CWE-306 | 關(guān)鍵功能認證機制缺失 | 5.15 |
19 | CWE-119 | 內(nèi)存緩沖區(qū)邊界內(nèi)的操作限制不恰當 | 4.85 |
20 | CWE-276 | 默認權(quán)限不正確 | 4.84 |
21 | CWE-918 | 服務端請求偽造(SSRF) | 4.27 |
22 | CWE-362 | 使用共享資源并發(fā)執(zhí)行,但同步不正確(“競爭條件”) | 3.57 |
23 | CWE-400 | 不受控制的資源消耗 | 3.56 |
24 | CWE-611 | XML外部實體引用的不當限制 | 3.38 |
25 | CWE-94 | 代碼注入 | 3.32 |
4. 常見問題
4.1. Mitre在CWE承擔了什么角色
Mitre公司負責維護CWE列表及其后續(xù)工作(即網(wǎng)絡(luò)安全領(lǐng)域知名的CWE Top 25、CWSS和CWRAF),調(diào)整CWE研究電子郵件列表,并在整個過程中提供中立的指導,以確保CWE符合公眾利益。
4.2. 漏洞與缺陷的關(guān)系
缺陷是可能導致漏洞的錯誤。軟件漏洞是黑客可以直接使用的軟件中的一個錯誤,以獲得對系統(tǒng)或網(wǎng)絡(luò)的訪問。硬件漏洞是指硬件或其固件中的錯誤,黑客可以使用該錯誤來遠程或物理訪問系統(tǒng)。
4.3. CVE與CWE的關(guān)系
MITRE公司早在1999年初就開始研究軟件缺陷分類問題,當時它發(fā)布了CVE( Common Vulnerabilities and Exposures,通用漏洞披露)清單。作為構(gòu)建CVE的一部分,MITRE的CVE團隊從2005年開始對漏洞、攻擊、故障和其他概念進行了初步分類和分類,以幫助定義常見的軟件缺陷。然而,盡管這些分組對于CVE來說足夠了,但它們太粗糙,無法用于識別和分類代碼安全評估行業(yè)提供的功能。為了更好地滿足這些額外需求,CWE清單便于2006年創(chuàng)建。所以是先有了CVE才有的CWE,CWE的出現(xiàn)可以更精細的分類CVE漏洞。
4.4. OWASP Top 10和CWE Top 25的區(qū)別
OWASP Top 10是由開放式Web應用程序安全項目(OWASP,Open Web Application Security Project)組織維護,涵蓋了更一般的概念并側(cè)重于Web應用程序。CWE Top 25涵蓋的問題比OWASP Top 10中以Web為中心的視角所產(chǎn)生的問題更廣泛,例如緩沖區(qū)溢出。此外,CWE Top 25目標是達到程序員可直接操作的水平,因此包含了比OWASP Top 10中使用的類別更詳細的問題。然而,由于web應用程序非常流行,而且OWASP Top 10中的一些問題對所有類型的軟件都有通用的應用,因此也存在一些重疊。文章來源:http://www.zghlxwxcb.cn/news/detail-487710.html
5. 參考
[1] https://cwe.mitre.org/index.html
[2] https://cwe.mitre.org/about/faq.html文章來源地址http://www.zghlxwxcb.cn/news/detail-487710.html
到了這里,關(guān)于【網(wǎng)絡(luò)安全常用術(shù)語解讀】CWE詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!