摘 要:隨著國(guó)家經(jīng)濟(jì)的發(fā)展以及科學(xué)技術(shù)的提高,計(jì)算技術(shù)也開(kāi)始不斷得到普及。計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)在給人們提供了便利的同時(shí),其自身的安全隱患也讓人們的生活受到了困擾。由此可見(jiàn),需要建立相應(yīng)有效的安全體系對(duì)計(jì)算機(jī)軟件的安全漏洞進(jìn)行檢測(cè)和防護(hù),防止不安全因素對(duì)計(jì)算機(jī)軟件的損害。本文就計(jì)算機(jī)安全漏洞動(dòng)態(tài)檢測(cè)技術(shù)進(jìn)行了以下分析和探討。
關(guān)鍵詞:計(jì)算機(jī);安全漏洞;動(dòng)態(tài)檢測(cè)
中圖分類號(hào):TP309
在計(jì)算機(jī)的組成中,軟件是結(jié)構(gòu)體系中十分重要的一個(gè)內(nèi)容,軟件的安全性在很大程度上也影響了軟件的性能,從而影響了計(jì)算機(jī)的使用。所謂計(jì)算機(jī)安全漏洞,就是計(jì)算機(jī)系統(tǒng)軟件以及協(xié)議在實(shí)現(xiàn)過(guò)程中或者計(jì)算機(jī)系統(tǒng)安全策略存在的一些問(wèn)題和缺陷。在計(jì)算機(jī)軟件中,安全漏洞的出現(xiàn),會(huì)導(dǎo)致計(jì)算機(jī)系統(tǒng)受到入侵,對(duì)計(jì)算機(jī)的安全性造成嚴(yán)重影響。如何對(duì)安全漏洞進(jìn)行檢測(cè),并對(duì)漏洞進(jìn)行修復(fù),也是目前計(jì)算機(jī)信息安全領(lǐng)域中的一個(gè)難題。
1 計(jì)算機(jī)安全漏洞動(dòng)態(tài)檢測(cè)的概述
在計(jì)算機(jī)系統(tǒng)中,安全漏洞是計(jì)算機(jī)系統(tǒng)自身的一些缺陷和問(wèn)題,這些缺陷和問(wèn)題的出現(xiàn),計(jì)算機(jī)系統(tǒng)也會(huì)因此受到侵襲和攻擊。這些安全漏洞大多與計(jì)算機(jī)軟件的開(kāi)發(fā)工作中,開(kāi)發(fā)人員人為失誤有關(guān)。
對(duì)于計(jì)算機(jī)安全漏洞,主要存在以下幾個(gè)特點(diǎn):
(1)軟件的編程過(guò)程中,邏輯錯(cuò)誤是常見(jiàn)的一個(gè)問(wèn)題,大多是因?yàn)殚_(kāi)發(fā)人員失誤所致。
(2)在軟件的數(shù)據(jù)處理過(guò)程中,比數(shù)值的計(jì)算中邏輯錯(cuò)誤較為常見(jiàn),相比中等程度模塊,過(guò)大模塊以及過(guò)小模塊的錯(cuò)誤率更高。
(3)計(jì)算機(jī)安全漏洞與系統(tǒng)環(huán)境存在十分密切的聯(lián)系,不同的系統(tǒng)以及不同的軟件設(shè)備和版本在安全漏洞的種類上也會(huì)不一樣。
(4)計(jì)算機(jī)安全漏洞與時(shí)間的聯(lián)系也十分密切,在時(shí)間的影響下,舊漏洞會(huì)逐漸得到修復(fù),然而新的漏洞也會(huì)不斷出現(xiàn)。由此可見(jiàn),計(jì)算機(jī)系統(tǒng)的安全漏洞情況將會(huì)長(zhǎng)時(shí)間的存在,因此需要采取合理的措施對(duì)其進(jìn)行控制和檢測(cè)。
2 計(jì)算機(jī)安全漏洞動(dòng)態(tài)檢測(cè)技術(shù)
計(jì)算機(jī)安全漏洞動(dòng)態(tài)檢測(cè)技術(shù)主要是在源代碼保持不變的情況下,對(duì)計(jì)算機(jī)程序缺陷進(jìn)行檢測(cè),其對(duì)運(yùn)行環(huán)境進(jìn)程有所要求,因此需要對(duì)計(jì)算機(jī)運(yùn)行環(huán)境進(jìn)程進(jìn)行修改。在計(jì)算機(jī)安全漏洞動(dòng)態(tài)檢測(cè)技術(shù)上,主要存在以下幾種技術(shù):
2.1 非執(zhí)行棧檢測(cè)技術(shù)
在目前,攻擊事件中,以棧為基礎(chǔ)的攻擊發(fā)生率日益增加。這主要是因?yàn)橛?jì)算機(jī)操作系統(tǒng)中,大多數(shù)的棧具有可執(zhí)行性,另外棧存儲(chǔ)著內(nèi)部變量,這也使得攻擊率大大增加,攻擊方可以通過(guò)將惡意代碼注入棧中,即可攻擊對(duì)方計(jì)算機(jī)系統(tǒng)。另外,攻擊棧的技術(shù)目前較為完整,這也讓棧成為了主要的攻擊對(duì)象。在對(duì)此類攻擊的防范中,主要目標(biāo)是讓棧中的惡意代碼得不到執(zhí)行,從而防止棧受到攻擊。然而,這種防范方法要求對(duì)計(jì)算機(jī)的操作系統(tǒng)進(jìn)行修改,加上棧出現(xiàn)不可執(zhí)行的情況,計(jì)算機(jī)的自身性能也會(huì)受到影響。對(duì)于一些存在棧以及堆溢出漏洞的程序,可以通過(guò)棧溢出從而是程序向攻擊代碼跳轉(zhuǎn),代碼置于堆上,執(zhí)行棧沒(méi)有實(shí)際代碼,而是堆中的執(zhí)行代碼。非執(zhí)行棧檢測(cè)技術(shù)要求對(duì)計(jì)算機(jī)操作系統(tǒng)的內(nèi)核進(jìn)行修改,將棧頁(yè)標(biāo)設(shè)置為不可執(zhí)行。
非執(zhí)行棧檢測(cè)技術(shù)僅可以檢測(cè)棧攻擊并對(duì)其進(jìn)行組織,在檢測(cè)的全面性上還不夠完整。攻擊方如果將惡意代碼的數(shù)據(jù)段注入棧中,非執(zhí)行棧檢測(cè)技術(shù)則會(huì)失效。另外,這項(xiàng)技術(shù)在兼容性方面還存在一系列的問(wèn)題。
2.2 非執(zhí)行堆和數(shù)據(jù)檢測(cè)
在堆中,因?yàn)槌绦蜻\(yùn)行動(dòng)態(tài)分配過(guò)程中所存的區(qū)域,數(shù)據(jù)段已將其初始化,加上堆以及數(shù)據(jù)段在非執(zhí)行時(shí)對(duì)計(jì)算機(jī)軟件的運(yùn)行存在影響,因此非執(zhí)行堆和數(shù)據(jù)檢測(cè)技術(shù)的發(fā)展也不斷受到阻礙。堆和數(shù)據(jù)段在不執(zhí)行代碼的情況下,攻擊方的惡意代碼也將不會(huì)被執(zhí)行,同時(shí)將這種技術(shù)與非執(zhí)行棧技術(shù)相互配合,能夠?qū)崿F(xiàn)對(duì)計(jì)算機(jī)安全漏洞的有效檢測(cè)和保護(hù)。然而,非執(zhí)行堆以及數(shù)據(jù)檢測(cè)技術(shù)在實(shí)施上要求對(duì)計(jì)算機(jī)內(nèi)核進(jìn)行大量修改。然而,這項(xiàng)技術(shù)的可行性也得到了很多人的肯定,其能夠檢測(cè)和抵御所有在進(jìn)程內(nèi)存中注入的惡意代碼攻擊。然而,這項(xiàng)技術(shù)在堆以及數(shù)據(jù)段代碼的動(dòng)態(tài)生成模式進(jìn)行了改變,因此也讓程序出現(xiàn)了不兼容的情況。
2.3 內(nèi)存映射檢測(cè)技術(shù)
一些攻擊方可以利用NULL結(jié)尾字符串覆蓋內(nèi)存,從而對(duì)系統(tǒng)進(jìn)行攻擊。對(duì)于這種情況,可以隨機(jī)將代碼頁(yè)進(jìn)行內(nèi)存地址的映射,從而使這種依靠地址猜測(cè)的方法無(wú)效。比如,在緩沖區(qū)的溢出漏洞中,攻擊方一般要尋找內(nèi)存的目標(biāo)進(jìn)程地址,并利用自身創(chuàng)造的數(shù)據(jù)覆蓋該地址。然而這種地址主要是系統(tǒng)自身計(jì)算所得出的,因此通過(guò)內(nèi)存映射檢測(cè)技術(shù),將代碼頁(yè)進(jìn)行隨機(jī)地址映射,則會(huì)增加攻擊方的難度。然而對(duì)于內(nèi)存映射檢測(cè)技術(shù),也需要修改系統(tǒng)內(nèi)核,將系統(tǒng)的代碼頁(yè)在低內(nèi)存的空間內(nèi)映射。
對(duì)于內(nèi)存映射檢測(cè)技術(shù),其能夠檢測(cè)和阻止內(nèi)存地址跳轉(zhuǎn)的攻擊。然而對(duì)于新代碼注入和執(zhí)行的攻擊則無(wú)法進(jìn)行檢測(cè)。另外,因低端內(nèi)存大小受限,因此在代碼頁(yè)映射上,也無(wú)法實(shí)現(xiàn)所有代碼頁(yè)的低端內(nèi)存映射。
2.4 安全共享庫(kù)檢測(cè)技術(shù)
對(duì)于計(jì)算機(jī)軟件的安全漏洞,大多是因?yàn)椴话踩蚕韼?kù)使用所致,這是因?yàn)楣蚕韼?kù)內(nèi)部存在大量不安全的函數(shù),這種函數(shù)會(huì)對(duì)計(jì)算機(jī)系統(tǒng)造成嚴(yán)重影響。安全共享庫(kù)檢測(cè)技術(shù)主要利用動(dòng)態(tài)鏈接技術(shù),并對(duì)程序運(yùn)行過(guò)程中的不安全函數(shù)的使用進(jìn)行攔截。另外,安全共享庫(kù)檢測(cè)技術(shù)還能夠評(píng)估內(nèi)存的上限,從而防止數(shù)據(jù)在評(píng)估邊界上寫入。此技術(shù)在開(kāi)發(fā)和配置上較為簡(jiǎn)單,因此無(wú)需對(duì)程序進(jìn)行修改。
從理論上看,安全共享庫(kù)檢測(cè)技術(shù)能夠?qū)?biāo)準(zhǔn)庫(kù)函數(shù)為基礎(chǔ)的攻擊進(jìn)行檢測(cè)和保護(hù)。然而,由于其無(wú)法保證本地變量的安全,因此也使得數(shù)據(jù)段以及代碼段數(shù)據(jù)溢出攻擊得不到化解。另外,安全共享庫(kù)檢測(cè)技術(shù)對(duì)于非標(biāo)準(zhǔn)庫(kù)函數(shù)也沒(méi)有能力。唯一的優(yōu)點(diǎn)是,其能夠保證系統(tǒng)不會(huì)出現(xiàn)兼容性問(wèn)題。
2.5 沙箱檢測(cè)技術(shù)
沙箱檢測(cè)技術(shù)主要是對(duì)進(jìn)程訪問(wèn)的資源進(jìn)行控制,從而對(duì)安全漏洞進(jìn)行檢測(cè)和防范。在系統(tǒng)調(diào)用函數(shù)上,如果存在多種軟件調(diào)用了系統(tǒng),則可能是系統(tǒng)受到攻擊所致。在攻擊之前,可以采用沙箱檢測(cè)技術(shù)對(duì)該資源訪問(wèn)進(jìn)行控制,從而使攻擊得到化解。沙箱檢測(cè)技術(shù)對(duì)系統(tǒng)的內(nèi)核以及應(yīng)用程序無(wú)需進(jìn)行修改,然而需要對(duì)安全檢測(cè)對(duì)象程序的資源訪問(wèn)策略進(jìn)行定義,定義工作較為復(fù)雜和麻煩。
此技術(shù)在檢測(cè)上較為全面,能夠有效對(duì)程序進(jìn)行保護(hù),然而對(duì)于重要本地變量改寫方面,此技術(shù)無(wú)法發(fā)揮效用。沙箱檢測(cè)技術(shù)在兼容性上并不存在問(wèn)題。
2.6 程序解釋檢測(cè)技術(shù)
程序解釋檢測(cè)技術(shù)是針對(duì)程序運(yùn)行過(guò)程中的檢查和監(jiān)視的一項(xiàng)技術(shù)。對(duì)于此技術(shù)而言,在性能消耗上要求較大,程序監(jiān)視器在使用的過(guò)程中,雖然能夠進(jìn)行額外安全檢測(cè),但是其性能的消耗也十分巨大。程序解釋檢測(cè)技術(shù)的內(nèi)核以及程序代碼無(wú)需進(jìn)行改變,僅僅要求在程序中對(duì)新啟動(dòng)代碼進(jìn)行重新鏈接,在安全策略上較為全面,能夠?qū)Ω鞣N危險(xiǎn)函數(shù)參數(shù)變化以及程序控制流程修改等攻擊進(jìn)行檢測(cè)和阻止。
3 結(jié)束語(yǔ)
計(jì)算機(jī)安全問(wèn)題一直十分嚴(yán)峻,這也使得安全漏洞檢測(cè)技術(shù)得以發(fā)展。在對(duì)安全漏洞進(jìn)行檢測(cè)的過(guò)程中,需要對(duì)安全漏洞加以分析,運(yùn)用安全漏洞檢測(cè)技術(shù),從而使計(jì)算機(jī)的安全性得到加強(qiáng)。
參考文獻(xiàn):
[1]彭煒.計(jì)算機(jī)安全漏洞動(dòng)態(tài)檢測(cè)研究[J].光盤技術(shù),2009,2(4):16-17.
[2]冉崇善,周瑩.軟件設(shè)計(jì)中的安全漏洞動(dòng)態(tài)檢測(cè)技術(shù)分析[J].微計(jì)算機(jī)信息,2010,3(6):78-79.
[3]梁彬,侯看看,石文昌.一種基于安全狀態(tài)跟蹤檢查的漏洞靜態(tài)檢測(cè)方法[J].計(jì)算機(jī)學(xué)報(bào),2009,3(05):103-104.
[4]萬(wàn)緒江,班顯秀,劉小東.網(wǎng)絡(luò)安全的防御方法和可行性研究[J].電腦編程技巧與維護(hù),2010,1(08):111-112.
[5]張迎,寧玉文,高東懷.高校網(wǎng)站信息安全威脅與對(duì)策探析[J].中國(guó)教育信息化,2010,1(09):142-143.
作者單位:吉林市紅十字中心血站,長(zhǎng)春 130031