Linux內(nèi)核結(jié)構(gòu) :
Linux內(nèi)核由七個(gè)部分構(gòu)成,每個(gè)不同的部分又有多個(gè)內(nèi)核模塊組成,結(jié)構(gòu)框圖如下:
Linux裁剪場(chǎng)景分析:
通過(guò)分析Linux內(nèi)核源代碼可以看到不同目錄中存放著不同模塊的實(shí)現(xiàn)代碼,同時(shí)在編譯時(shí)可以config中配置的信息來(lái)控制哪些模塊編譯到最終的二進(jìn)制中,哪些模塊被裁剪掉,比如以IPV6模塊為例,控制該模塊的配置名稱(chēng)為CONFIG_IPV6,如果該配置項(xiàng)為設(shè)置為y,則表示該功能模塊未被編譯到最終的二進(jìn)制文件中,如下所示:
如果該功能模塊被裁剪了,即使該漏洞沒(méi)有被補(bǔ)丁修復(fù),那么該功能模塊中存在的漏洞在二進(jìn)制中也是不受影響的,因此和IPV6相關(guān)的漏洞在漏洞檢測(cè)時(shí)就應(yīng)該在報(bào)告中明顯的標(biāo)識(shí)出不受該漏洞的影響,如CVE-2013-0343(Linux kernel 3.8之前版本內(nèi)的net/ipv6/addrconf.c中的函數(shù) ipv6_create_tempaddr沒(méi)有正確處理IPv6臨時(shí)地址生成問(wèn)題,可允許遠(yuǎn)程攻擊者通過(guò) ICMPv6 Router Advertisement (RA) 消息,造成拒絕服務(wù),然后獲取敏感信息)。
業(yè)界二進(jìn)制SCA工具不能檢測(cè)的原因分析:
為什么目前業(yè)界通常的二進(jìn)制SCA工具無(wú)法做到精準(zhǔn)檢測(cè),原因是因?yàn)闃I(yè)界二進(jìn)制SCA工具是基于檢測(cè)到的開(kāi)源軟件名稱(chēng)和版本號(hào)來(lái)關(guān)聯(lián)出已知漏洞清單的,而這種通過(guò)裁剪功能模塊的方法來(lái)應(yīng)用Linux內(nèi)核,開(kāi)源軟件名稱(chēng)和版本號(hào)是不會(huì)改變的,因此工具就無(wú)法精準(zhǔn)的檢測(cè)出來(lái)了。
二進(jìn)制SCA工具如何實(shí)現(xiàn)該功能:
要實(shí)現(xiàn)Linux內(nèi)核裁剪場(chǎng)景下的已知漏洞精準(zhǔn)檢測(cè),二進(jìn)制SCA工具必須在原來(lái)檢測(cè)開(kāi)源軟件名稱(chēng)和版本號(hào)的基礎(chǔ)上,需要實(shí)現(xiàn)更新細(xì)顆粒度的檢測(cè)技術(shù),基于源代碼文件顆粒度、函數(shù)顆粒度的檢測(cè)能力,從而實(shí)現(xiàn)裁剪場(chǎng)景下已知漏洞的精準(zhǔn)檢測(cè),即可以知道哪些代碼被編譯到最終的二進(jìn)制文件中,哪些代碼沒(méi)有參與編譯。同時(shí)漏洞庫(kù)也必須實(shí)現(xiàn)對(duì)細(xì)顆粒維度的支持,即漏洞信息必須精準(zhǔn)定位是由哪些文件和函數(shù)中的代碼片段引入的。
以CVE-2013-0343為例,通過(guò)分析漏洞描述信息和Linux內(nèi)核源代碼,可以獲取到該漏洞和下面這些位置代碼相關(guān)的定位信息:
"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”
]
}
基于如果引入漏洞的源代碼沒(méi)有參與編譯出二進(jìn)制,那么編譯出來(lái)的二進(jìn)制也就是不存在該漏洞的原理;因此只要二進(jìn)制SCA工具能檢測(cè)出上述位置的源代碼沒(méi)有參與編譯出最終的vmlinux二進(jìn)制文件,那么此vmlinux文件就不受CVE-2013-0343漏洞的影響。
總結(jié):
二進(jìn)制SCA工具要想更好的輔助安全人員實(shí)現(xiàn)安全審計(jì)、降低漏洞檢測(cè)的誤報(bào)率,必須向更細(xì)顆粒度的檢測(cè)維度發(fā)展,而不僅僅停留在開(kāi)源軟件的層面,同時(shí)對(duì)漏洞庫(kù)的要求也需要向細(xì)顆粒度的精準(zhǔn)信息提出的挑戰(zhàn)。
審核編輯:湯梓紅
-
二進(jìn)制
+關(guān)注
關(guān)注
2文章
795瀏覽量
41653 -
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209521 -
SCA
+關(guān)注
關(guān)注
1文章
36瀏覽量
11978
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論