所屬欄目:軟件開發(fā)論文 發(fā)布日期:2017-01-23 15:09 熱度:
隨著社會(huì)的發(fā)展,黑客的技術(shù)水平越來越高,而在軟件方面,漏洞屬于一個(gè)不可避免的問題,這會(huì)導(dǎo)致黑客有機(jī)可趁,使數(shù)據(jù)信息受到破壞。
《電腦知識(shí)與技術(shù)》Computer Knowledge and Technology(月刊)創(chuàng)刊于1994年,是經(jīng)國家批準(zhǔn)的旬刊雜志,是一本面向計(jì)算機(jī)全行業(yè)的綜合性學(xué)術(shù)刊物。創(chuàng)刊以來,一直本著普及電腦知識(shí)、推廣電腦技術(shù)、交流經(jīng)驗(yàn)技巧、促進(jìn)電腦應(yīng)用的辦刊宗旨,注重雜志質(zhì)量。如今,雜志發(fā)行面已覆蓋全國31個(gè)省、市、自治區(qū),逐步形成了融知識(shí)性、實(shí)用性、欣賞性、服務(wù)性于一體的辦刊風(fēng)格,并因其清純樸實(shí)的文風(fēng),簡明實(shí)用的內(nèi)容,以及精心細(xì)致的服務(wù)被社會(huì)各界讀者譽(yù)名為“一本看得懂、學(xué)得會(huì)、用得上”的好雜志。
1 引言
在任何軟件運(yùn)行的過程中,都會(huì)根據(jù)安全策略進(jìn)行一個(gè)安全域假定,也就是說這一域內(nèi)所有的操作都是可控且安全的,但是如果違反了安全策略或者超出了這一安全域,軟件運(yùn)行則會(huì)變?yōu)槲粗也豢煽氐?而安全域在切換為非安全域的過程中,其觸發(fā)點(diǎn)就是漏洞。在這種背景下,如何更快地發(fā)現(xiàn)軟件安全漏洞,并做好修復(fù)工作,是保證數(shù)據(jù)信息安全的一個(gè)有效手段。
2 軟件安全漏洞挖掘技術(shù)概述
2.1 漏洞概念
通俗點(diǎn)說,漏洞就是指由于安全域設(shè)計(jì)不合理所形成的軟件及系統(tǒng)破壞。正是由于這種漏洞的存在,使得計(jì)算機(jī)在未授權(quán)的情況下會(huì)被攻擊者訪問或破壞。一般來說,漏洞多數(shù)是被動(dòng)的、靜態(tài)的、可觸發(fā)的。
如果根據(jù)產(chǎn)生漏洞的原因來分類,則漏洞可以分為:輸入驗(yàn)證錯(cuò)誤、邊界條件錯(cuò)誤、緩沖區(qū)溢出錯(cuò)誤、訪問驗(yàn)證錯(cuò)誤、意外條件錯(cuò)誤、配置錯(cuò)誤、競(jìng)爭條件錯(cuò)誤等其他錯(cuò)誤。之所以出現(xiàn)漏洞,從根本上說是因?yàn)榘踩珯C(jī)制實(shí)現(xiàn)的過程中出現(xiàn)了一些非正常問題,比如軟件編程出錯(cuò)、安全機(jī)制規(guī)劃不完善。由于信息系統(tǒng)中存在潛在錯(cuò)誤這一問題是不可避免的,因此漏洞在信息系統(tǒng)中也是必然存在的。
2.2 漏洞挖掘技術(shù)
在通過漏洞攻擊的過程中,主要可以分為三個(gè)步驟:漏洞挖掘、漏洞分析以及漏洞利用,由此可見漏洞挖掘?qū)儆诤髢蓚(gè)步驟的基礎(chǔ)及前提,對(duì)網(wǎng)絡(luò)攻防有著非常重要的意義。所謂漏洞挖掘,主要是找尋漏洞,詳細(xì)點(diǎn)說就是該領(lǐng)域?qū)I(yè)人士使用各種綜合應(yīng)用工具以及技術(shù)盡最大可能找出軟件中存在的潛在漏洞,要想做好這一工作并不容易,這對(duì)于個(gè)人經(jīng)驗(yàn)有很大的依賴性。在實(shí)際的工作中,根據(jù)不同的分析對(duì)象,漏洞挖掘技術(shù)又可以分為基于源代碼漏洞挖掘技術(shù)以及基于目標(biāo)代碼漏洞挖掘技術(shù)。
對(duì)于基于源碼漏洞挖掘技術(shù)來說,獲得源代碼是我們工作的前提。一般針對(duì)一些開源項(xiàng)目,對(duì)其公布的源代碼進(jìn)行分析就能夠獲得漏洞,比如在Limix系統(tǒng)中,漏洞挖掘所采用的技術(shù)就是使用的這一技術(shù)。具體來說,在應(yīng)用這一技術(shù)的過程中,我們還通過源代碼審核技術(shù),掃描軟件源代碼,并對(duì)一些不安全的內(nèi)存操作以及安全函數(shù)使用進(jìn)行語義檢查,進(jìn)而挖掘出其中存在的漏洞。其中,靜態(tài)分析技術(shù)屬于一種比較典型的機(jī)遇源代碼漏洞挖掘技術(shù)。
但是在實(shí)際的工作中,由于很多商業(yè)軟件源代碼的獲取比較困難,所以基于源代碼漏洞挖掘技術(shù)往往難以起到應(yīng)有的作用,在這種情況下,我們則可以使用基于目標(biāo)代碼漏洞挖掘技術(shù)。這一技術(shù)是依靠分析目標(biāo)碼來實(shí)現(xiàn)的,其過程往往涉及到指令系統(tǒng)、編譯器以及文件格式等很多方面,所以難度比較大。具體的步驟是先反匯編需要分析的二進(jìn)制目標(biāo)代碼,在獲取匯編代碼之后再對(duì)其切面,也就是將一些關(guān)聯(lián)密切而且有意義的代碼匯聚在一起,使其復(fù)雜性降低,最后利用分析功能模塊對(duì)其是否存在漏洞進(jìn)行判斷。
3 當(dāng)前漏洞挖掘技術(shù)分析
當(dāng)前漏洞挖掘技術(shù)主要包括已知漏洞檢測(cè)以及位置漏洞補(bǔ)救這兩種,其中前者主要的作用在于發(fā)現(xiàn)系統(tǒng)中可能存在但是還沒有被發(fā)現(xiàn)的漏洞,在這方面主要又包括靜態(tài)分析、動(dòng)態(tài)檢測(cè)、安全掃描以及手工分析這幾種技術(shù)。其中,手工分析要求比較高,不僅需要安全分析人員對(duì)軟件漏洞原理有充分的了解,還要對(duì)軟件結(jié)構(gòu)及功能有比較深入的認(rèn)識(shí),而且即使?jié)M足了這兩點(diǎn)要求,其依然會(huì)耗費(fèi)很多的精力和時(shí)間,基于此,以下將主要對(duì)靜態(tài)分析以及動(dòng)態(tài)檢測(cè)進(jìn)行分析。
3.1 靜態(tài)分析
這種漏洞檢測(cè)技術(shù)不需要對(duì)程序進(jìn)行運(yùn)行,而且在沒有輸入的條件下就可以發(fā)現(xiàn)程序中存在的安全漏洞,因此在程序編寫階段,通過靜態(tài)漏洞挖掘技術(shù)就可以發(fā)現(xiàn)其中存在的問題,并在開發(fā)早期就消滅掉漏洞。不過人們?cè)谶\(yùn)用靜態(tài)分析的過程中,往往會(huì)出現(xiàn)誤報(bào)。這一技術(shù)從本質(zhì)上說是建立程序的一個(gè)狀態(tài)模型,然后對(duì)程序如何完成狀態(tài)轉(zhuǎn)換進(jìn)行分析,但是一個(gè)程序的狀態(tài)空間是很大的,因此難以對(duì)所有的狀態(tài)同時(shí)進(jìn)行考慮,針對(duì)這種情況,對(duì)狀態(tài)空間進(jìn)行抽象是必不可免的,這就導(dǎo)致了程序部分信息的丟失。而我們?yōu)榱颂嵘治鼋Y(jié)果的正確性,則會(huì)損失一部分分析精度,一般來說,近似假設(shè)地方越多,則精度的損失也會(huì)越大,而誤報(bào)也越容易發(fā)生。實(shí)際的工作中,分析工具可能會(huì)使用一些不穩(wěn)妥的分析策略,這也會(huì)導(dǎo)致出現(xiàn)一些安全漏洞,為日后的軟件運(yùn)行埋下隱患。
3.2 動(dòng)態(tài)檢測(cè)
所謂動(dòng)態(tài)檢測(cè),主要是在程序動(dòng)態(tài)運(yùn)行的時(shí)候?qū)浖写嬖诘穆┒催M(jìn)行檢測(cè),這不僅要求被測(cè)試目標(biāo)編譯為可執(zhí)行程序,而且在檢測(cè)的過程中還要提供相應(yīng)的輸入。具體來說,動(dòng)態(tài)檢測(cè)技術(shù)主要是利用操作系統(tǒng)所提供的雕飾接口以及資源監(jiān)視接口,來獲得目標(biāo)程序運(yùn)行過程中所需的運(yùn)行數(shù)據(jù)及運(yùn)行狀態(tài)。在當(dāng)前的動(dòng)態(tài)檢測(cè)技術(shù)中,比較常用的有數(shù)據(jù)流分析法以及環(huán)境錯(cuò)誤注入法。
這里首先分析環(huán)境錯(cuò)誤注入法,它主要是故意將人為錯(cuò)誤注入到軟件運(yùn)行環(huán)境中,然后利用程序的反應(yīng)進(jìn)行驗(yàn)證。一般情況下,編程的過程中程序員總是會(huì)假定其程序能夠正常地運(yùn)行于環(huán)境中,如果這種假定成立,那么其程序自然會(huì)正確的運(yùn)行。不過由于程序運(yùn)行的環(huán)境并不是獨(dú)立的,而是會(huì)受到很多主體的影響,比如一些惡意用戶之類的,這會(huì)使程序員假定出現(xiàn)錯(cuò)誤,也正因?yàn)榇?環(huán)境中的錯(cuò)誤會(huì)給程序造成多大地的影響,是判斷程序健壯性的一個(gè)重要標(biāo)準(zhǔn),而環(huán)境錯(cuò)誤注入法正是對(duì)軟件系統(tǒng)可靠性及容錯(cuò)性進(jìn)行判斷的有效方法。
至于數(shù)據(jù)流分析法,它在實(shí)現(xiàn)檢測(cè)的時(shí)候需要數(shù)據(jù)流、執(zhí)行流等信息,主要的原理是對(duì)各種參數(shù)、序列以及返回值等進(jìn)行跟蹤,然后經(jīng)過對(duì)比分析,對(duì)系統(tǒng)是否存在安全漏洞進(jìn)行判斷。
3.3 動(dòng)態(tài)檢測(cè)以及靜態(tài)分析的對(duì)比
客觀來說,靜態(tài)分析以及動(dòng)態(tài)檢測(cè)都是我們經(jīng)常使用的檢測(cè)方法,其中,靜態(tài)分析由于在運(yùn)行過程中的數(shù)據(jù)比較缺乏,因此難以實(shí)現(xiàn)動(dòng)態(tài)測(cè)試細(xì)粒度的安全評(píng)估,無法對(duì)所有的安全漏洞都進(jìn)行確定,所以存在很多不足之處,不過其優(yōu)勢(shì)在于比較容易在開發(fā)過程中集成。至于動(dòng)態(tài)檢測(cè),雖然其可信性以及精確性非常高,但是對(duì)于源代碼的需求也非常高,而且不能夠?qū)β┒醇奥┒丛蜻M(jìn)行準(zhǔn)確的定位,加之不容易保證代碼覆蓋率,因此它也存在一定的不足。通過表1我們可以比較系統(tǒng)的對(duì)二者進(jìn)行對(duì)比。
4 軟件安全漏洞挖掘流程分析
通過上文的分析我們可以看出,每種檢測(cè)方法都是存在缺陷的,我們要想真正地做好漏洞挖掘工作,就必須要在漏洞挖掘的不同環(huán)節(jié)使用不同的檢測(cè)方法,并根據(jù)具體的情況采取相應(yīng)的策略及方法,這樣才能將各種方法的優(yōu)勢(shì)發(fā)揮出來,并彌補(bǔ)其存在的不足。一般來說,漏洞挖掘的流程可以分為幾個(gè)環(huán)節(jié)。
首先,初始化,這主要是將軟件類型分類,將開源和非開源軟件所使用的靜態(tài)分析方法確定下來。
其次,反匯編,這主要是載入需要分析的程序,然后通過反匯編操作,實(shí)現(xiàn)對(duì)二進(jìn)制代碼的反匯編,并確定代碼中哪些屬于可執(zhí)行指令以及哪些屬于數(shù)據(jù)。
第三,過程抽象,能夠識(shí)別可執(zhí)行指令之后,可以把其分為表示函數(shù)或者過程的組。
第四,特征模式掃描,對(duì)于開軟軟件,我們通過編譯技術(shù)在編譯期間或者代碼掃描期間確定一些信息,根據(jù)這些信息檢查漏洞模型。至于非開源軟件的靜態(tài)分析,則可以通過之下而上的分析方法對(duì)調(diào)用二進(jìn)制文件的庫函數(shù)等進(jìn)行檢查,得到漏洞驗(yàn)證代碼。
第五,驗(yàn)證漏洞特性,這主要是比較漏洞特征庫以及疑似漏洞驗(yàn)證代碼,并對(duì)其中是否含有惡意行為進(jìn)行判斷,得到檢測(cè)報(bào)告。
第六,注入錯(cuò)誤環(huán)境,對(duì)需要注入的錯(cuò)誤環(huán)境數(shù)據(jù)進(jìn)行構(gòu)造,并利用其干擾程序運(yùn)行。
第七,動(dòng)態(tài)檢測(cè),系統(tǒng)自動(dòng)地對(duì)程序所有函數(shù)序列以及特定函數(shù)序列進(jìn)行分析,并對(duì)可能存在的漏洞數(shù)目進(jìn)行估算,得到檢測(cè)報(bào)告。
第八,檢測(cè)評(píng)估,根據(jù)所得報(bào)告信息,確認(rèn)它們共同提出的疑似漏洞,并對(duì)其他疑似漏洞進(jìn)行下一步分析。
最后,進(jìn)入下一輪靜態(tài)及動(dòng)態(tài)檢測(cè)環(huán)節(jié)。
5 軟件安全漏洞挖掘技術(shù)的發(fā)展方向
首先,測(cè)試平臺(tái)的可擴(kuò)展性以及通用性將越來越強(qiáng),這是因?yàn)榘殡S著測(cè)試對(duì)象的增多,一個(gè)可擴(kuò)展性及通用性比較強(qiáng)的平臺(tái)對(duì)這一技術(shù)的發(fā)展有非常重要的提升效果。具體來說,這種平臺(tái)要具備以下幾個(gè)方面的特點(diǎn):首先,能夠產(chǎn)生多種格式并最好是有效的畸形測(cè)試數(shù)據(jù);具有可定制以及獨(dú)立的數(shù)據(jù)產(chǎn)生變異功能;具有可操作跟蹤調(diào)試功能;能夠?qū)Χ嗄K之間的自動(dòng)化運(yùn)行進(jìn)行很好的協(xié)調(diào)。
其次,以fuzzing測(cè)試技術(shù)為例,由于在fuzzing測(cè)試過程中,很大一部分時(shí)間都用在輸入數(shù)據(jù)格式、程序狀態(tài)轉(zhuǎn)換的人工分析上。因此提高知識(shí)獲取自動(dòng)化程度對(duì)于提升測(cè)試效率非常有利,是未來的發(fā)展方向。
第三,多維測(cè)試用例生成技術(shù)。當(dāng)前很多測(cè)試用例生成技術(shù)都是一維的,這容易使很多安全漏洞不能夠被有效地檢測(cè)出來。而如果使用多為測(cè)試用例生成技術(shù)雖然會(huì)拓寬其測(cè)試范圍,但也容易導(dǎo)致狀態(tài)爆炸問題,因此,多維測(cè)試用例生成技術(shù)的研究是未來的一個(gè)重點(diǎn)。同樣,智能測(cè)試用例生成技術(shù)也是未來的一個(gè)重點(diǎn)。
第四,測(cè)試效果評(píng)估技術(shù),當(dāng)前的很多測(cè)試使用代碼覆蓋率對(duì)測(cè)試效果進(jìn)行評(píng)估,這存在著很大的不合理性。因此未來測(cè)試效果將從程序狀態(tài)的覆蓋率、測(cè)試數(shù)據(jù)的有效性以及輸入邊界測(cè)試的充分性等多個(gè)方面對(duì)測(cè)試效果進(jìn)行評(píng)估。
6 結(jié)束語
軟件安全漏洞挖掘技術(shù)的研究是一個(gè)很寬泛的研究,本文限于篇幅,很多地方難以涉及并深入。因此,在我們的日常工作中應(yīng)加強(qiáng)這方面的探索和研究,只有不斷提升我們的技術(shù)水平,才能真正為信息數(shù)據(jù)的安全起到保障作用。
文章標(biāo)題:軟件安全漏洞挖掘技術(shù)創(chuàng)新的方式
轉(zhuǎn)載請(qǐng)注明來自:http://m.56st48f.cn/fblw/dianxin/ruanjiankaifa/34723.html
攝影藝術(shù)領(lǐng)域AHCI期刊推薦《Phot...關(guān)注:105
Nature旗下多學(xué)科子刊Nature Com...關(guān)注:152
中小學(xué)教師值得了解,這些教育學(xué)...關(guān)注:47
2025年寫管理學(xué)論文可以用的19個(gè)...關(guān)注:192
測(cè)繪領(lǐng)域科技核心期刊選擇 輕松拿...關(guān)注:64
及時(shí)開論文檢索證明很重要關(guān)注:52
中國水產(chǎn)科學(xué)期刊是核心期刊嗎關(guān)注:54
國際出書需要了解的問題解答關(guān)注:58
合著出書能否評(píng)職稱?關(guān)注:48
電信學(xué)有哪些可投稿的SCI期刊,值...關(guān)注:66
通信工程行業(yè)論文選題關(guān)注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關(guān)注:120
評(píng)職稱發(fā)論文好還是出書好關(guān)注:68
復(fù)印報(bào)刊資料重要轉(zhuǎn)載來源期刊(...關(guān)注:51
英文期刊審稿常見的論文狀態(tài)及其...關(guān)注:69
Web of Science 核心合集期刊評(píng)估...關(guān)注:58
電子信息論文范文
智能科學(xué)技術(shù)論文 廣播電視論文 光電技術(shù)論文 計(jì)算機(jī)信息管理論文 計(jì)算機(jī)網(wǎng)絡(luò)論文 計(jì)算機(jī)應(yīng)用論文 通信論文 信息安全論文 微電子應(yīng)用論文 電子技術(shù)論文 生物醫(yī)學(xué)工程論文 軟件開發(fā)論文
期刊百科問答
copyright © m.56st48f.cn, All Rights Reserved
搜論文知識(shí)網(wǎng) 冀ICP備15021333號(hào)-3