精準檢測Linux核心漏洞介紹
導讀 | 通常引用開源軟體的模式是引入開源軟體的動態庫或jar包,因此在漏洞檢測時漏洞誤報率會非常的低,但對在 核心卻有所不同,由於Linux核心功能模組非常的豐富和龐大,實際使用時會根據業務需求進行相應的裁剪,因此如何在該場景下實現漏洞的精準檢測,降低漏洞檢測的誤報率就尤為突出。 |
Linux核心由七個部分構成,每個不同的部分又有多個核心模組組成,結構框圖如下:
透過分析Linux核心原始碼可以看到不同目錄中存放著不同模組的實現程式碼,同時在編譯時可以config中配置的資訊來控制哪些模組編譯到最終的二進位制中,哪些模組被裁剪掉,比如以IPV6模組為例,控制該模組的配置名稱為CONFIG_IPV6,如果該配置項為設定為y,則表示該功能模組未被編譯到最終的二進位制檔案中,如下所示:
如果該功能模組被裁剪了,即使該漏洞沒有被補丁修復,那麼該功能模組中存在的漏洞在二進位制中也是不受影響的,因此和IPV6相關的漏洞在漏洞檢測時就應該在報告中明顯的標識出不受該漏洞的影響,如CVE-2013-0343(Linux kernel 3.8之前版本內的net/ipv6/addrconf.c中的函式 ipv6_create_tempaddr沒有正確處理IPv6臨時地址生成問題,可允許遠端攻擊者透過 ICMPv6 Router Advertisement (RA) 訊息,造成拒絕服務,然後獲取敏感資訊。)。
為什麼目前業界通常的二進位制SCA工具無法做到精準檢測,原因是因為業界二進位制SCA工具是基於檢測到的開源軟體名稱和版本號來關聯出已知漏洞清單的,而這種透過裁剪功能模組的方法來應用Linux核心,開源軟體名稱和版本號是不會改變的,因此工具就無法精準的檢測出來了。
要實現Linux核心裁剪場景下的已知漏洞精準檢測,二進位制SCA工具必須在原來檢測開源軟體名稱和版本號的基礎上,需要實現更新細顆粒度的檢測技術,基於原始碼檔案顆粒度、函式顆粒度的檢測能力,從而實現裁剪場景下已知漏洞的精準檢測,即可以知道哪些程式碼被編譯到最終的二進位制檔案中,哪些程式碼沒有參與編譯。同時漏洞庫也必須實現對細顆粒維度的支援,即漏洞資訊必須精準定位是由哪些檔案和函式中的程式碼片段引入的。
以CVE-2013-0343為例,透過分析漏洞描述資訊和Linux核心原始碼,可以獲取到該漏洞和下面這些位置程式碼相關的定位資訊:
"CVE-2013-0343": { "net/ipv6/addrconf.c": [ “addrconf_add_ifaddr”, “addrconf_dad_begin”, “addrconf_dad_stop”, “addrconf_dad_work”, “addrconf_del_ifaddr”, “addrconf_prefix_rcv”, “addrconf_verify_rtnl”, “addrconf_verify_work”, “inet6_addr_add”, “inet6_addr_del”, “inet6_addr_modify”, “inet6_rtm_deladdr”, “inet6_rtm_newaddr”, “inet6_set_iftoken”, “inet6_set_link_af”, “ipv6_create_tempaddr”, “manage_tempaddrs” ] }
基於如果引入漏洞的原始碼沒有參與編譯出二進位制,那麼編譯出來的二進位制也就是不存在該漏洞的原理;因此只要二進位制SCA工具能檢測出上述位置的原始碼沒有參與編譯出最終的vmlinux二進位制檔案,那麼此vmlinux檔案就不受CVE-2013-0343漏洞的影響。
二進位制SCA工具要想更好的輔助安全人員實現安全審計、降低漏洞檢測的誤報率,必須向更細顆粒度的檢測維度發展,而不僅僅停留在開源軟體的層面,同時對漏洞庫的要求也需要向細顆粒度的精準資訊提出的挑戰。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2914593/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡單介紹Pygame 精準檢測影像碰撞的問題GAM
- Linux核心即時入侵檢測安全增強-介紹(轉)Linux
- 精準化測試原理簡介
- 基因檢測精確查明病情、精準診治疾病
- APP網站安全漏洞檢測服務的詳細介紹APP網站
- linux漏洞緩解機制介紹Linux
- 2022 SDC 議題 | Linux 核心漏洞檢測與防禦Linux
- Android人臉檢測介紹Android
- Java基準效能測試--JMH使用介紹Java
- 準提法介紹
- MLeaksFinder:精準 iOS 記憶體洩露檢測工具iOS記憶體洩露
- Linux下的目錄介紹[全精](轉)Linux
- 網站漏洞檢測對漏洞檢測修復方案網站
- 【Linux】Linux版本介紹(核心版本和發行版本)Linux
- 賬務核心介紹
- 精準測試實踐
- 常見的Web安全漏洞及測試方法介紹Web
- 機器視覺汽車配件檢測流程介紹視覺
- Linux 檔案內容檢視工具介紹Linux
- 瀏覽器核心介紹瀏覽器
- 網站漏洞檢測 滲透測試檢測手法網站
- MySQL檢視介紹MySql
- ORACLE 檢視介紹Oracle
- EGADS介紹(二)--時序模型和異常檢測模型演算法的核心思想模型演算法
- APP滲透測試基本內容與漏洞掃描介紹APP
- 網站查詢漏洞滲透測試大體流程介紹網站
- Linux核心初始化過程簡要介紹(轉)Linux
- 幾個重要的RedHat Linux核心檔案介紹(轉)RedhatLinux
- 人臉檢測背景介紹和發展現狀
- Linux 死鎖檢測模組 Lockdep 簡介Linux
- 漏洞型別及檢測型別
- CMS漏洞檢測工具 – CMSmap
- 標準模板庫介紹(轉)
- nodejs常用核心模組介紹NodeJS
- 大資料核心元件介紹大資料元件
- iOS核心動畫型別介紹iOS動畫型別
- 漏洞挖掘利器-Fuzz技術介紹
- Linux核心引數overcommit_memory和OOM killer介紹LinuxMITOOM