国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于靜態(tài)分析的漏洞分類方案

2018-03-07 01:31:18劉嘉熹
關(guān)鍵詞:調(diào)用漏洞程序

◆劉嘉熹

?

一種基于靜態(tài)分析的漏洞分類方案

◆劉嘉熹

(云南大學(xué)軟件學(xué)院 云南 650500)

本文通過(guò)對(duì)漏洞挖掘技術(shù)的發(fā)展現(xiàn)狀進(jìn)行分析和研究,在對(duì)大量簡(jiǎn)單程序進(jìn)行漏洞分析和對(duì)前人提出的漏洞挖掘軟件的學(xué)習(xí)基礎(chǔ)上,提出了一種通過(guò)IDA反匯編,進(jìn)行靜態(tài)分析的漏洞分類方案。

漏洞挖掘;分類;靜態(tài)分析;IDA

0 引言

在信息技術(shù)發(fā)展的歷史上,漏洞一直是難以逃避的話題。隨著互聯(lián)網(wǎng)的普及,在越來(lái)越多的人接觸到計(jì)算機(jī)科學(xué)技術(shù)的同時(shí),基于現(xiàn)代操作系統(tǒng)的技術(shù)也使漏洞對(duì)于用戶的影響變得越來(lái)越大。當(dāng)系統(tǒng)漏洞被黑客利用時(shí),用戶的個(gè)人信息和財(cái)產(chǎn)安全會(huì)受到不同程度的潛在威脅。2018年初,兩組新型CPU漏洞CVE-2017-5754-Meltdown和CVE-2017-5753/CVE-2017-5715-Spectre被公開(kāi),使得用戶本地操作系統(tǒng)底層的信息及用戶的賬號(hào)、密碼、郵箱等個(gè)人隱私信息都面臨被泄露的風(fēng)險(xiǎn)[1]。

漏洞的存在不僅給企業(yè)帶來(lái)了巨大的損失,也使用戶的個(gè)人設(shè)備遭到入侵和控制的風(fēng)險(xiǎn)大大增加。因此,在信息安全領(lǐng)域,漏洞的挖掘和修復(fù)一直是備受關(guān)注的議題。一般情況下安全人員會(huì)使用靜態(tài)和動(dòng)態(tài)兩種漏洞檢測(cè)方式,其中靜態(tài)檢測(cè)主要是依靠安全人員的經(jīng)驗(yàn),在沒(méi)有源代碼的情況下,首先對(duì)存在漏洞的程序進(jìn)行反匯編處理,通過(guò)對(duì)代碼的分析發(fā)現(xiàn)漏洞,這種基于經(jīng)驗(yàn)的處理方式以及大量的重復(fù)工作與漏洞數(shù)目與日俱增的現(xiàn)狀并不相符。因此,本文提出了一種基于靜態(tài)分析的漏洞分類方案。

1 漏洞的一般分類

對(duì)快速大量的漏洞挖掘的需求催生了漏洞自動(dòng)化挖掘技術(shù),這也是漏洞挖掘分類方案的一個(gè)重要的應(yīng)用方向。在漏洞自動(dòng)化挖掘發(fā)展的過(guò)程中,Automatic Exploit Generation(AEG)[2]首先提出了自動(dòng)化漏洞挖掘的方法。近年來(lái),越來(lái)越多的研究人員為漏洞的自動(dòng)化挖掘提出了改進(jìn)方案,在漏洞利用自動(dòng)化的發(fā)展過(guò)程中,為了提高漏洞挖掘效率,開(kāi)發(fā)人員在棧緩沖區(qū)溢出漏洞,堆緩沖區(qū)溢出漏洞,格式化字符串漏洞,整數(shù)溢出漏洞四種類型的基礎(chǔ)上對(duì)漏洞分類進(jìn)行了嘗試。如在360冰刃實(shí)驗(yàn)室的科研成果Digtool[3]中,作者把漏洞分為:

(1)OOB越界訪問(wèn)漏洞。

(2)UAF釋放后使用漏洞。

(3)Time-Of-Check-To-Time-Of-Use(TOCTTOU)漏洞。

(4)參數(shù)未檢查漏洞。

(5)信息泄露。

(6)競(jìng)爭(zhēng)條件型漏洞。這里指多線程訪問(wèn)共享內(nèi)存,而最后的結(jié)果取決于線程運(yùn)行的精確時(shí)導(dǎo)致的錯(cuò)誤[4]。

Digtool軟件的分類較之以往的分類方案更加細(xì)化,有利于直接根據(jù)最顯著特點(diǎn)找到漏洞。由此可見(jiàn),根據(jù)漏洞的特點(diǎn)對(duì)漏洞進(jìn)行分類的方式可以提高漏洞查找的效率,減少漏洞自動(dòng)化挖掘的誤報(bào)率。

2 漏洞的三種新的分類方案

基于對(duì)目前漏洞自動(dòng)化挖掘過(guò)程中對(duì)漏洞分類方案的分析,本文提出了一種新的分類方案,使用該方案對(duì)使用IDA反匯編后的程序進(jìn)行分析,為自動(dòng)化漏洞挖掘程序的編寫提供了一種新的分類思路。

2.1 定位關(guān)鍵字段

在對(duì)存在漏洞的程序或文件進(jìn)行分析時(shí),為了拿到shell,在一些情況下,可以使用system()函數(shù)執(zhí)行指定的字符串的內(nèi)容獲得目標(biāo)主機(jī)的shell。因此在沒(méi)有程序源碼的條件下,使用IDA對(duì)程序進(jìn)行反匯編,直接進(jìn)行字符串搜索即可查找程序中是否存在system()函數(shù)的調(diào)用,若程序中調(diào)用了system()函數(shù),則通過(guò)對(duì)程序的邏輯分析,找到調(diào)用system()的子函數(shù)的地址,利用程序中的漏洞劫持程序流使程序執(zhí)行位置定位到調(diào)用system()的子函數(shù)處,從而獲得目標(biāo)主機(jī)的shell。該方式可以很快定位到shell需要執(zhí)行的子函數(shù)的地址,從而利用?;蚨岩绯雎┒唇俪殖绦蚩刂屏鞯侥繕?biāo)地址,執(zhí)行對(duì)應(yīng)的子函數(shù)獲得shell。

其基本邏輯如下:

If(”system()”exsit){

search the address of the function calls “system()”;

execute that function;

get shell;

}

2.2 關(guān)鍵詞與緩沖區(qū)大小檢測(cè)

2003年Cheers Halvar發(fā)布的開(kāi)源的二進(jìn)制漏洞分析工具BugScam可以基于IDA Pro的反匯編結(jié)果進(jìn)行匯編級(jí)的漏洞分析。BugScam采用的全部是函數(shù)模型,它總共包含8個(gè)函數(shù)(strcpy、strcat、sprintf、lstrcpyA、lstrcatA、wsprintfA、sprintf.

MultiByteToWideChar),通過(guò)對(duì)這些函數(shù)進(jìn)行漏洞特征的提取進(jìn)行函數(shù)特征匹配來(lái)分析文件中可能出現(xiàn)漏洞的位置[5]。

BugScam是一個(gè)輕量級(jí)的漏洞檢測(cè)工具,用于較簡(jiǎn)單模式的漏洞,它通過(guò)針對(duì)可能導(dǎo)致緩沖區(qū)溢出和格式化字符串的庫(kù)函數(shù)進(jìn)行檢查來(lái)確定程序中是否存在安全隱患[6],本文在這個(gè)基礎(chǔ)上,又提出了結(jié)合參數(shù)和邏輯進(jìn)行漏洞檢測(cè)的思路。

本文提出的分類方法針對(duì)較簡(jiǎn)單的程序模式,因此在進(jìn)行分析和測(cè)試時(shí)使用的均為簡(jiǎn)單的漏洞程序。對(duì)于堆溢出漏洞,BugScam工具中的函數(shù)模型沒(méi)有考慮到函數(shù)參數(shù)之外的size、length等與分配內(nèi)存大小有關(guān)的變量名,所以在對(duì)于邏輯性更強(qiáng)的堆溢出漏洞的檢測(cè)中沒(méi)有很好地表現(xiàn)。通過(guò)對(duì)大量程序的檢測(cè)和分析可以看出,對(duì)于堆溢出漏洞,在對(duì)危險(xiǎn)函數(shù)進(jìn)行建模檢測(cè)的基礎(chǔ)上再對(duì)size、length、strdup()函數(shù)等與內(nèi)存分配大小有關(guān)的變量及函數(shù)等進(jìn)行檢測(cè),會(huì)得到更好的漏洞點(diǎn)定位結(jié)果。如果程序中存在size或length等變量名,則檢查程序中是否把用戶自定義的變量大小與為其分配的緩沖區(qū)大小進(jìn)行了比較,不存在比較則存在堆溢出漏洞。同時(shí)內(nèi)存分配函數(shù)如strdup()等則會(huì)由于64位下16位對(duì)齊的原因?qū)е露训刂返囊绯觥_@一方案對(duì)堆溢出漏洞進(jìn)行了檢測(cè)和定位,加快了漏洞檢測(cè)速度。

2.3 函數(shù)出現(xiàn)次數(shù)與其參數(shù)

結(jié)合庫(kù)函數(shù)在程序中的出現(xiàn)頻率和庫(kù)函數(shù)的實(shí)參進(jìn)行漏洞檢測(cè)是另一種分類方案。

同樣對(duì)存在漏洞的程序和文件進(jìn)行分析和測(cè)試,在對(duì)漏洞程序的分析中,首先統(tǒng)計(jì)了使用IDA反匯編后程序中庫(kù)函數(shù)被調(diào)用的次數(shù),由于較為完善的程序中同一庫(kù)函數(shù)應(yīng)該不會(huì)大量存在漏洞,故而被調(diào)用次數(shù)少的函數(shù)存在問(wèn)題導(dǎo)致程序漏洞的概率較大。因此完成調(diào)用次數(shù)統(tǒng)計(jì)之后把庫(kù)函數(shù)按照被調(diào)用次數(shù)升序排列,并檢查庫(kù)函數(shù)的參數(shù),比較實(shí)參中buf和size的大小,如果size數(shù)組的范圍超過(guò)了buf大小,則判斷該函數(shù)存在棧溢出漏洞。

在統(tǒng)計(jì)中發(fā)現(xiàn),這種判斷方法對(duì)于棧溢出漏洞的判斷比較準(zhǔn)確,非常適用于對(duì)棧溢出漏洞的分析。

3 總結(jié)與展望

本文提出了一種匯編級(jí)的漏洞靜態(tài)分類方案,并提出了一種提高漏洞挖掘效率,減少漏洞挖掘人員工作負(fù)擔(dān)的思路。未來(lái)將把這一分類方案通過(guò)代碼或軟件編寫實(shí)現(xiàn),使其具有實(shí)現(xiàn)意義,同時(shí)還要不斷完善程序,保證漏洞分類的正確率,減少誤報(bào)和漏報(bào)。

[1]https://www.leiphone.com/news/201801/TIV0ThWMtqMsy.

[2]Avgerinos T, Sang K C, Hao B L T, et al. AEG: Automatic Exploit Generation[J]. Internet Society, 2011.

[3]Digtool: A Virtualization-Based Framework for Detecting Kernel Vulnerabilities. J Pan,G Yan,IS Lab,X Fan; USENIX Security 2017-VANCOUVER, BC, CANADA.

[4]http://tech.ifeng.com/a/20170823/44667365_0.shtml.

[5]劉波,文偉平,孫惠平等. ClearBug一種改進(jìn)的自動(dòng)化漏洞分析工具[J].信息網(wǎng)絡(luò)安全,2009.

[6]http://www.nsfocus.net/index.php?act=magazine&do=view&mid=2096.

猜你喜歡
調(diào)用漏洞程序
漏洞
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
試論我國(guó)未決羈押程序的立法完善
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
三明:“兩票制”堵住加價(jià)漏洞
漏洞在哪兒
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
岑溪市| 两当县| 浦江县| 崇仁县| 龙江县| 岑溪市| 乌审旗| 广汉市| 容城县| 吉林省| 秭归县| 隆子县| 和林格尔县| 中卫市| 合作市| 玉门市| 景洪市| 元阳县| 利川市| 奉贤区| 濮阳市| 肃宁县| 彭州市| 宁津县| 尚义县| 祥云县| 涡阳县| 黄大仙区| 澄江县| 寿宁县| 三原县| 杭州市| 汉寿县| 贡嘎县| 武清区| 东山县| 济源市| 宾川县| 文山县| 揭东县| 清远市|