漏洞種類 CWE
昨天先大致介紹了通用弱點列舉 (Common Weakness Enumeration, CWE)計畫,那要如何在這個計畫中找到弱點資訊呢?
首先,進入官方網站中「CVE List」的網頁,這時我們可以看到網頁告訴你目前網頁中收錄有716種弱點資料。
網頁中提供了幾種方式讓你選擇要以什麼角度來選擇觀看的弱點。首先,如果你是學術研究人員、漏洞分析師或軟體供應商,可以選擇以研究角度來看弱點,在這種角度中,會比較注重呈現弱點的行為及理論等,而非弱點實際在程式碼中出現的位置;若是軟體開發人員或教職人員可以選擇以軟體開發角度來看弱點,在這種角度下,程式開發人員能夠明確的知道弱點可能會出現在程式的哪個部分,會以怎樣的形式出現,進而避免寫出含有弱點的程式,而教職人員也可以此些內容來教導未來的程式設計師應如何避免寫出有弱點的程式;若是軟體設計師或教職人員則適合選擇以軟體架構設計的角度來看弱點,在這種角度下呈現的資料會偏向以通用性架構安全政策來組織弱點,讓使用者能夠在設計軟體時就已經了解這些應列入開發的安全功能,而非等開發完後才發現弱點存在。
這三項最大的差別其實就是弱點的分類方式,但各項下同樣弱點的描述頁面還是相同的。
接著,使用者也可以選擇以不同的外部對應來選擇要看的弱點,例如昨天提過的「2011 CWE/SANS Top 25」,或是鼎鼎有名的「OWASP Top Ten」系列,藉由選取有興趣的弱點清單,就可以快速看到這些清單所列出重要弱點的詳細資料。
另外還有一個很貼心的模式,如果使用者特別專注於某個主題的弱點資訊,則可以選擇有興趣的主題,例如PHP、Java相關弱點等,快速找到自己想看的弱點資訊。
接下來,拿大家熟悉的的SQL Injection來舉個例子(網址:https://cwe.mitre.org/data/definitions/89.html ),這個弱點在CWE的編號是CWE-89,除了可以在網頁中使用ID Lookup功能快速查到外,也可以直接修改網址最後的數字成你想看的CWE ID,都會出現該弱點說明頁面。
由頁面右上角,可以發現目前這個弱點的介紹還是草稿狀態,而頁面中會提供此弱點的相關介紹。
頁面中也會詳列出這個弱點在剛剛介紹過的各種檢視模式中是在哪個分類裡,以及他是不是別的弱點的下屬項目, 或是上屬目錄等,如此一來也能比較快找到這個弱點與其他弱點間的關係。
如果在頁面上方的Presentation Filter選擇不同的項目,頁面就會列出相對不同的資訊,例如選擇Basic,就會比較以程式開發人員的角度來解釋弱點,並列出會造成此弱點的程式碼等,但若選擇High Level,就僅會列出該漏洞可能造成的安全影響。
另外,CWS也有自己一套對弱點評估嚴重性的評分系統,叫做CWSS (Common Weakness Scoring System),跟前幾天介紹的CVSS是不一樣的機制,如果有興趣的話也可以去看看喔。(網頁:https://cwe.mitre.org/cwss/cwss_v1.0.1.html )
以上說明CWE計畫,老實說我也是前幾天在查資料才發現這個寶庫,以後也可以拿來當作一個很好用的參考工具呢,畢竟他對每個弱點都有較明確的定義,這樣就可以避免每次在描述洞一個弱點,卻都可能會用不同方式解釋的困擾,而且還能明確的知道弱點是由怎樣的程式碼所造成的!
參考資料:
[1] https://cwe.mitre.org/