摘 要:引入了特權集、機密性、完整性和可用性等量化屬性,設計并實現了一個量化的多屬性弱點數據庫,同時對弱點數據進行了進一步的分析。實踐表明,該弱點數據庫能夠為安全評估提供更細致、更有力的弱點信息支持。
關鍵詞:弱點數據庫; 弱點分類法; 安全評估; 特權提升
中圖分類號:TP309文獻標志碼:A
文章編號:1001—3695(2007)03—0213—02
在Internet高速發展的今天,黑客攻擊越來越受到全社會的廣泛關注,黑客利用計算機軟件或配置上的弱點,從而達到無授權訪問、特權提升、DoS攻擊等目的,嚴重地危害了信息系統的安全。計算機弱點(Vulnerability)或漏洞是指計算機硬件、軟件或策略上的缺陷,此缺陷若被發掘利用則會違犯安全策略[1],并對系統的機密性、完整性和可用性造成不良影響。
弱點數據庫是弱點研究領域的重要組成部分,其研究目的與意義主要表現在:①人們通過設計和開發弱點數據庫來收集、存儲和組織弱點信息;②弱點數據庫為網絡蠕蟲病毒的傳播與防治、網絡入侵檢測和風險評估等安全領域提供了必要的信息支持。目前,很多研究人員和機構開展了弱點數據庫的設計和實現工作[2—4],他們工作的重點是通過整合弱點屬性建構完善的弱點數據庫,從而更好地組織已有的弱點信息。然而這些建構弱點庫的工作缺少量化支持,也無法體現各種弱點之間的訪問權限提升關系,因此不能在更細的層次上區分弱點的輕重緩急,無法表達弱點被成功利用的難易程度。
為此,本文引入特權集、機密性、完整性、可用性和攻擊復雜性等弱點屬性,并施以量化,為安全評估提供一個更細致、有力的弱點信息支持;同時在建構弱點庫的基礎上對弱點及弱點分類法進行一定的研究,這對深入理解已知弱點的產生緣由、進一步的預防以及新弱點的發現具有一定的指導意義。
1 弱點數據庫的結構設計
弱點數據庫中每條弱點的所有屬性的詳細設計如表1所示。
其中前13個弱點屬性是弱點的基本屬性,在國際公開可用的弱點庫中均有介紹,本系統也是以這些弱點庫為基庫來得到這13個屬性的屬性值。但是這些屬性不能滿足安全評估系統的需求,為了支持安全評估系統,需要對弱點的特權集,弱點的機密性、完整性和可用性三個安全屬性施以量化,從而能夠有效地表達出弱點在不同層次上的輕重緩急;引入攻擊復雜性的屬性,更能準確地反映出弱點在實際情況中被成功利用的難易程度。同時,弱點的量化信息為評估不同操作系統的安全性提供了一定的衡量標準。因此為弱點數據庫增加如下一些屬性,即premise(前提特權集)、consequence(結果特權集)、C(對機密性的影響)、I(對完整性的影響)、A(對可用性的影響)和ac(攻擊復雜性)。
最后一項屬性attack_id是弱點對應的攻擊插件標志號。攻擊插件是針對某個弱點所設計的攻擊目標系統的方法,也就是說一個攻擊插件對應著一個弱點,但是一個弱點可能具有多個攻擊插件。為了支持安全評估系統,需要在弱點數據庫中建立起弱點與攻擊插件的對應關系,因此設置了attack_id屬性。
2 弱點數據庫的實現
弱點數據庫的實現主要可分為三大模塊,即數據獲取模塊、數據處理模塊和信息發布模塊。其中信息發布模塊是將弱點數據庫中的部分弱點信息對外發布,主要是在Linux服務器上利用MySQL+Apache+PHP來建立基于Web的弱點數據庫信息查詢服務系統。
2.1 數據獲取模塊
Internet上現有許多免費的弱點庫,它們各有不同的側重點。目前公開可用的弱點庫中,最有名的應屬ISS的X—Force庫和Securityfocus的Bugtraq庫[5],國內在開發IDS及弱點掃描系統時,也多是基于這兩個庫。文中的弱點數據庫選擇Bugtraq弱點庫作為基庫,其主要原因是:①Bugtraq弱點庫的覆蓋面比較廣,更新比較快;②CVE庫中的內容很少,對弱點的跟蹤也比較慢,目前還只是一個參考標準,其目的是標準化所有公開已知的弱點和安全攻擊,它是一個字典而非一個數據庫,同時其初始目的僅僅是為了各安全廠商間的弱點信息能夠兼容,提供了弱點的一種枚舉方法,但真正作為安全評估是不適合的;③Bugtraq庫包含有更多的內容,特別是對弱點的可行發掘和利用,可以進行到何種程度,以及公開的攻擊程序和腳本等相關信息均有較詳細的描述,這更利于對弱點進行特權提升分析。
由于這個國際性的弱點發布網站總能最快地錄入新的弱點,所以為了支持安全評估系統,文中的弱點數據庫也需要隨時更新。因此數據獲取模塊主要是用來更新弱點數據庫,獲取大量的新的弱點信息。由于計算機弱點數以千計,現在的數量已經遠遠超過一萬條了,完全手動收集將需要大量的時間和人力,所以本文利用弱點信息具有的共同特點,使用計算機程序來快速收集入庫。
2.2 數據處理模塊
該模塊的主要功能是處理數據庫中的所有弱點信息,如弱點屬性的量化工作。其中對C、I、A和ac弱點屬性量化的具體分級標準參考了文獻[6]中對機密性、完整性、可用性以及攻擊復雜性的分級量化標準。對于premise(前提特權集)和consequence(結果特權集)屬性的值則根據弱點的描述,進行分析、賦值,賦值的準則如表2所示。
3 弱點數據分析
3.1 主要內容
弱點分類法是弱點研究中的一個重要課題,很多研究機構和研究人員都開展了這方面的工作。系統地研究弱點分類法對發掘弱點之間的關聯關系有著重大的指導意義,從而可深入理解已知弱點的產生緣由,更好地預防弱點所產生的危害以及有助于發現新的弱點。弱點多個方面的屬性都可以作為弱點分類的依據,如可能造成的直接威脅、成因、嚴重性、被利用的方式和存在的組件等。為了支持安全評估系統,文中采用兩種分類法對弱點進行了分類。
3.2 按操作系統分類
操作系統是弱點的一個重要基本屬性,按弱點所屬的操作系統來進行分類,為弱點庫查詢服務系統中按操作系統查詢提供了便利條件,同時也能很好地支持安全評估系統。該分類方法主要把弱點按照10種比較常用的操作系統類型來進行分類,其分類結果如圖1所示。
圖1 按操作系統分類的結果統計
由分類結果可知,Linux和Windows操作系統的弱點數目最多,從某種程度上講,這兩大操作系統的安全性最不容樂觀,但是弱點的發現與解決將促使這兩大操作系統進一步提高自身的安全性。
3.3 按特權提升級別分類
按特權提升級別分類,首先要確定每條弱點的前提特權集和結果特權集(賦值標準如表2所示)。前提特權集和結果特權集屬性提供了形式化描述特權提升過程的基礎,有利于挖掘弱點之間潛在的依賴關系,能夠反映出攻擊者利用不同類別的弱點達到一系列特權提升的情況,從而解決“某些弱點表面上較輕,但實際上可能由于一系列特權提升而帶來嚴重后果”的問題,這一點對用戶具有很大的警示作用。將弱點的前提特權集和結果特權集結合起來,按弱點特權提升級別分類的統計結果如圖2所示。
圖2 弱點特權提升級別分類的統計結果
由分類統計結果可知,以Paccess(遠程訪問者
權限)為起點進行特權提升的弱點最多,并且提升級別為Paccess—>Psupuser(超級用戶權限)的弱點最多。其原因如下:
remote/local屬性(即遠程/本地利用)是弱點的兩個基本屬性,都分別具有三個屬性值,即Yes、No和Unknown。將弱點的這兩個屬性結合起來進行統計,其結果如圖3所示。
圖3 弱點“遠程/本地利用”屬性的統計結果
由圖3可知,只可遠程利用的弱點占了絕大多數,約占弱點總數的63%。即前提特權集為Paccess的弱點占了絕大多數,因此能夠以Paccess為起點進行特權提升的弱點最多。同時,提升級別為Paccess—>Psupuser的弱點最多,說明大多數的弱點危害程度很高,后果嚴重,用戶應提高警惕。
4 結束語
構建和維護弱點數據庫系統是開發和衡量各種安全工具或安全系統的重要基礎。文中較為全面地收集了國際上發布的安全弱點,并在通用弱點屬性的基礎上為弱點庫新增了特權集提升效果、機密性、完整性、可用性和攻擊復雜性等弱點屬性,為安全評估提供了量化弱點信息的有力支持。同時按操作系統和特權提升級別對弱點進行了分類和研究,由此獲得一定量的相關統計數據,為軟件開發者及使用者發現弱點以及預防其產生的危害提供了幫助。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。