今天開始來講講漏洞有哪些種類呢?每個漏洞研究人員對於同樣一個漏洞的描述方法都不盡相同,對於漏洞的種類要如何區分,以及分到多細一定有更多的爭論,今天要介紹的就是一個由之前提過維運CVE漏洞編號的MITRE公司所維運的另一個計畫,叫做通用弱點列舉 (Common Weakness Enumeration, CWE)計畫。
CWE這個計畫中維護了一個軟體弱點的列表,而這個計劃的主要目的是希望能夠建構一個描述軟體存在於架構、設計或程式碼中安全威脅的通用語言,而且能夠成為一個軟體安全工具在修補弱點時能參照的標準,更重要的是,能夠透過這樣的列表,將每個弱點的特徵、緩解方式及預防方式記錄下來,讓所有人能夠參考應用。
CWE現在其實被蠻多公司做為參考使用,他們也在2010及2011年時與SANS Institute合作發布一份2011前25危險的軟體錯誤清單(2011 CWE/SANS Top 25 Most Dangerous Software Errors,連結:https://cwe.mitre.org/top25/ ),這些被列出來的軟體弱點都有共同的特色,那就是容易被找到及利用,且攻擊者也可輕易利用這些弱點來掌控機器、竊取資料及造成服務中斷,而發布這份清單的目的就是希望能幫助程式設計師在撰寫程式碼時,能夠避免這些漏洞的產生。當然經過了這麼多年,這些弱點的排名順序或是否應有新進落榜之弱點等,可能都需要重新調整,但整體而言,這份列表還是非常值得參考的資料,畢竟很多程式設計師連表上的弱點都避免不了。這份列表不只程式設計師需要看,軟體專案管理師、軟體測試者及軟體客戶其實也最好能夠了解略列表的弱點內容,才可以避免軟體開發至完成間的任一環節疏漏,導致弱點存在於軟體中。
稍微離題一下,剛剛提到的SANS Institute是個提供實體或線上資安技能教育訓練頗知名的公司,而他們家自己都戲稱自己是海報公司,原因是他們花很多時間整理了很多類似資安技能的重點整理或是小密技的海報,例如滲透測試時應該注意的重點等等,算是蠻實用的小工具,而且都有提供PDF下載,如果有興趣的可以過去下載看看,這些海報的實體版好像一份也要25美金的呢,不過有些海報要先申請為會員才能下載就是,網址:https://www.sans.org/security-resources/posters/ 。
好回到Top 25 Most Dangerous Software Errors,下面就是這25項弱點內容:
排名 | 分數 | 編號 | 名稱 |
---|---|---|---|
[1] | 93.8 | CWE-89 | Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') |
[2] | 83.3 | CWE-78 | Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') |
[3] | 79 | CWE-120 | Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') |
[4] | 77.7 | CWE-79 | Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') |
[5] | 76.9 | CWE-306 | Missing Authentication for Critical Function |
[6] | 76.8 | CWE-862 | Missing Authorization |
[7] | 75 | CWE-798 | Use of Hard-coded Credentials |
[8] | 75 | CWE-311 | Missing Encryption of Sensitive Data |
[9] | 74 | CWE-434 | Unrestricted Upload of File with Dangerous Type |
[10] | 73.8 | CWE-807 | Reliance on Untrusted Inputs in a Security Decision |
[11] | 73.1 | CWE-250 | Execution with Unnecessary Privileges |
[12] | 70.1 | CWE-352 | Cross-Site Request Forgery (CSRF) |
[13] | 69.3 | CWE-22 | Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') |
[14] | 68.5 | CWE-494 | Download of Code Without Integrity Check |
[15] | 67.8 | CWE-863 | Incorrect Authorization |
[16] | 66 | CWE-829 | Inclusion of Functionality from Untrusted Control Sphere |
[17] | 65.5 | CWE-732 | Incorrect Permission Assignment for Critical Resource |
[18] | 64.6 | CWE-676 | Use of Potentially Dangerous Function |
[19] | 64.1 | CWE-327 | Use of a Broken or Risky Cryptographic Algorithm |
[20] | 62.4 | CWE-131 | Incorrect Calculation of Buffer Size |
[21] | 61.5 | CWE-307 | Improper Restriction of Excessive Authentication Attempts |
[22] | 61.1 | CWE-601 | URL Redirection to Untrusted Site ('Open Redirect') |
[23] | 61 | CWE-134 | Uncontrolled Format String |
[24] | 60.3 | CWE-190 | Integer Overflow or Wraparound |
[25] | 59.9 | CWE-759 | Use of a One-Way Hash without a Salt |
相信裡面很多弱點都是大家常常耳聞的軟體弱點常客,既然我們對他們都不陌生,更不用說時時刻刻伺機而動對軟體嘗試進行攻擊的攻擊者們,所以不小心真的不行啊!
今天先介紹到這邊,明天會再進一步介紹如何閱讀CWE的弱點資訊喔~
參考資料:
[1] https://cwe.mitre.org/
[2] https://cwe.mitre.org/top25/
[3] https://www.sans.org/security-resources/posters/
SANS的資料很豐富,收到的海報都很有用^^
定期網上免費的webinar也很值得學習。
我喜歡他們定期會對一些資安工具做評鑑
我倒是還沒參加過他們的Webinar,下次應該也要來參加一下,謝謝推薦!