計算機安全漏洞的動(dòng)態(tài)檢測
計算機安全漏洞的動(dòng)態(tài)檢測【1】
摘 要:隨著(zhù)國家經(jīng)濟的發(fā)展以及科學(xué)技術(shù)的提高,計算技術(shù)也開(kāi)始不斷得到普及。
計算機技術(shù)和網(wǎng)絡(luò )技術(shù)在給人們提供了便利的同時(shí),其自身的安全隱患也讓人們的生活受到了困擾。
由此可見(jiàn),需要建立相應有效的安全體系對計算機軟件的安全漏洞進(jìn)行檢測和防護,防止不安全因素對計算機軟件的損害。
本文就計算機安全漏洞動(dòng)態(tài)檢測技術(shù)進(jìn)行了以下分析和探討。
關(guān)鍵詞:計算機;安全漏洞;動(dòng)態(tài)檢測
在計算機的組成中,軟件是結構體系中十分重要的一個(gè)內容,軟件的安全性在很大程度上也影響了軟件的性能,從而影響了計算機的使用。
所謂計算機安全漏洞,就是計算機系統軟件以及協(xié)議在實(shí)現過(guò)程中或者計算機系統安全策略存在的一些問(wèn)題和缺陷。
在計算機軟件中,安全漏洞的出現,會(huì )導致計算機系統受到入侵,對計算機的安全性造成嚴重影響。
如何對安全漏洞進(jìn)行檢測,并對漏洞進(jìn)行修復,也是目前計算機信息安全領(lǐng)域中的一個(gè)難題。
1 計算機安全漏洞動(dòng)態(tài)檢測的概述
在計算機系統中,安全漏洞是計算機系統自身的一些缺陷和問(wèn)題,這些缺陷和問(wèn)題的出現,計算機系統也會(huì )因此受到侵襲和攻擊。
這些安全漏洞大多與計算機軟件的開(kāi)發(fā)工作中,開(kāi)發(fā)人員人為失誤有關(guān)。
對于計算機安全漏洞,主要存在以下幾個(gè)特點(diǎn):
(1)軟件的編程過(guò)程中,邏輯錯誤是常見(jiàn)的一個(gè)問(wèn)題,大多是因為開(kāi)發(fā)人員失誤所致。
(2)在軟件的數據處理過(guò)程中,比數值的計算中邏輯錯誤較為常見(jiàn),相比中等程度模塊,過(guò)大模塊以及過(guò)小模塊的錯誤率更高。
(3)計算機安全漏洞與系統環(huán)境存在十分密切的聯(lián)系,不同的系統以及不同的軟件設備和版本在安全漏洞的種類(lèi)上也會(huì )不一樣。
(4)計算機安全漏洞與時(shí)間的聯(lián)系也十分密切,在時(shí)間的影響下,舊漏洞會(huì )逐漸得到修復,然而新的漏洞也會(huì )不斷出現。
由此可見(jiàn),計算機系統的安全漏洞情況將會(huì )長(cháng)時(shí)間的存在,因此需要采取合理的措施對其進(jìn)行控制和檢測。
2 計算機安全漏洞動(dòng)態(tài)檢測技術(shù)
計算機安全漏洞動(dòng)態(tài)檢測技術(shù)主要是在源代碼保持不變的情況下,對計算機程序缺陷進(jìn)行檢測,其對運行環(huán)境進(jìn)程有所要求,因此需要對計算機運行環(huán)境進(jìn)程進(jìn)行修改。
在計算機安全漏洞動(dòng)態(tài)檢測技術(shù)上,主要存在以下幾種技術(shù):
2.1 非執行棧檢測技術(shù)
在目前,攻擊事件中,以棧為基礎的攻擊發(fā)生率日益增加。
這主要是因為計算機操作系統中,大多數的棧具有可執行性,另外棧存儲著(zhù)內部變量,這也使得攻擊率大大增加,攻擊方可以通過(guò)將惡意代碼注入棧中,即可攻擊對方計算機系統。
另外,攻擊棧的技術(shù)目前較為完整,這也讓棧成為了主要的攻擊對象。
在對此類(lèi)攻擊的防范中,主要目標是讓棧中的惡意代碼得不到執行,從而防止棧受到攻擊。
然而,這種防范方法要求對計算機的操作系統進(jìn)行修改,加上棧出現不可執行的情況,計算機的自身性能也會(huì )受到影響。
對于一些存在棧以及堆溢出漏洞的程序,可以通過(guò)棧溢出從而是程序向攻擊代碼跳轉,代碼置于堆上,執行棧沒(méi)有實(shí)際代碼,而是堆中的執行代碼。
非執行棧檢測技術(shù)要求對計算機操作系統的內核進(jìn)行修改,將棧頁(yè)標設置為不可執行。
非執行棧檢測技術(shù)僅可以檢測棧攻擊并對其進(jìn)行組織,在檢測的全面性上還不夠完整。
攻擊方如果將惡意代碼的數據段注入棧中,非執行棧檢測技術(shù)則會(huì )失效。
另外,這項技術(shù)在兼容性方面還存在一系列的問(wèn)題。
2.2 非執行堆和數據檢測
在堆中,因為程序運行動(dòng)態(tài)分配過(guò)程中所存的區域,數據段已將其初始化,加上堆以及數據段在非執行時(shí)對計算機軟件的運行存在影響,因此非執行堆和數據檢測技術(shù)的發(fā)展也不斷受到阻礙。
堆和數據段在不執行代碼的情況下,攻擊方的惡意代碼也將不會(huì )被執行,同時(shí)將這種技術(shù)與非執行棧技術(shù)相互配合,能夠實(shí)現對計算機安全漏洞的有效檢測和保護。
然而,非執行堆以及數據檢測技術(shù)在實(shí)施上要求對計算機內核進(jìn)行大量修改。
然而,這項技術(shù)的可行性也得到了很多人的肯定,其能夠檢測和抵御所有在進(jìn)程內存中注入的惡意代碼攻擊。
然而,這項技術(shù)在堆以及數據段代碼的動(dòng)態(tài)生成模式進(jìn)行了改變,因此也讓程序出現了不兼容的情況。
2.3 內存映射檢測技術(shù)
一些攻擊方可以利用NULL結尾字符串覆蓋內存,從而對系統進(jìn)行攻擊。
對于這種情況,可以隨機將代碼頁(yè)進(jìn)行內存地址的映射,從而使這種依靠地址猜測的方法無(wú)效。
比如,在緩沖區的溢出漏洞中,攻擊方一般要尋找內存的目標進(jìn)程地址,并利用自身創(chuàng )造的數據覆蓋該地址。
然而這種地址主要是系統自身計算所得出的,因此通過(guò)內存映射檢測技術(shù),將代碼頁(yè)進(jìn)行隨機地址映射,則會(huì )增加攻擊方的難度。
然而對于內存映射檢測技術(shù),也需要修改系統內核,將系統的代碼頁(yè)在低內存的空間內映射。
對于內存映射檢測技術(shù),其能夠檢測和阻止內存地址跳轉的攻擊。
然而對于新代碼注入和執行的攻擊則無(wú)法進(jìn)行檢測。
另外,因低端內存大小受限,因此在代碼頁(yè)映射上,也無(wú)法實(shí)現所有代碼頁(yè)的低端內存映射。
2.4 安全共享庫檢測技術(shù)
對于計算機軟件的安全漏洞,大多是因為不安全共享庫使用所致,這是因為共享庫內部存在大量不安全的函數,這種函數會(huì )對計算機系統造成嚴重影響。
安全共享庫檢測技術(shù)主要利用動(dòng)態(tài)鏈接技術(shù),并對程序運行過(guò)程中的不安全函數的使用進(jìn)行攔截。
另外,安全共享庫檢測技術(shù)還能夠評估內存的上限,從而防止數據在評估邊界上寫(xiě)入。
此技術(shù)在開(kāi)發(fā)和配置上較為簡(jiǎn)單,因此無(wú)需對程序進(jìn)行修改。
從理論上看,安全共享庫檢測技術(shù)能夠對標準庫函數為基礎的攻擊進(jìn)行檢測和保護。
然而,由于其無(wú)法保證本地變量的安全,因此也使得數據段以及代碼段數據溢出攻擊得不到化解。
另外,安全共享庫檢測技術(shù)對于非標準庫函數也沒(méi)有能力。
唯一的優(yōu)點(diǎn)是,其能夠保證系統不會(huì )出現兼容性問(wèn)題。
2.5 沙箱檢測技術(shù)
沙箱檢測技術(shù)主要是對進(jìn)程訪(fǎng)問(wèn)的資源進(jìn)行控制,從而對安全漏洞進(jìn)行檢測和防范。
在系統調用函數上,如果存在多種軟件調用了系統,則可能是系統受到攻擊所致。
在攻擊之前,可以采用沙箱檢測技術(shù)對該資源訪(fǎng)問(wèn)進(jìn)行控制,從而使攻擊得到化解。
沙箱檢測技術(shù)對系統的內核以及應用程序無(wú)需進(jìn)行修改,然而需要對安全檢測對象程序的資源訪(fǎng)問(wèn)策略進(jìn)行定義,定義工作較為復雜和麻煩。
此技術(shù)在檢測上較為全面,能夠有效對程序進(jìn)行保護,然而對于重要本地變量改寫(xiě)方面,此技術(shù)無(wú)法發(fā)揮效用。
沙箱檢測技術(shù)在兼容性上并不存在問(wèn)題。
2.6 程序解釋檢測技術(shù)
程序解釋檢測技術(shù)是針對程序運行過(guò)程中的檢查和監視的一項技術(shù)。
對于此技術(shù)而言,在性能消耗上要求較大,程序監視器在使用的過(guò)程中,雖然能夠進(jìn)行額外安全檢測,但是其性能的消耗也十分巨大。
程序解釋檢測技術(shù)的內核以及程序代碼無(wú)需進(jìn)行改變,僅僅要求在程序中對新啟動(dòng)代碼進(jìn)行重新鏈接,在安全策略上較為全面,能夠對各種危險函數參數變化以及程序控制流程修改等攻擊進(jìn)行檢測和阻止。
3 結束語(yǔ)
計算機安全問(wèn)題一直十分嚴峻,這也使得安全漏洞檢測技術(shù)得以發(fā)展。
在對安全漏洞進(jìn)行檢測的過(guò)程中,需要對安全漏洞加以分析,運用安全漏洞檢測技術(shù),從而使計算機的安全性得到加強。
參考文獻:
[1]彭煒.計算機安全漏洞動(dòng)態(tài)檢測研究[J].光盤(pán)技術(shù),2009,2(4):16-17.
[2]冉崇善,周瑩.軟件設計中的安全漏洞動(dòng)態(tài)檢測技術(shù)分析[J].微計算機信息,2010,3(6):78-79.
[3]梁彬,侯看看,石文昌.一種基于安全狀態(tài)跟蹤檢查的漏洞靜態(tài)檢測方法[J].計算機學(xué)報,2009,3(05):103-104.
[4]萬(wàn)緒江,班顯秀,劉小東.網(wǎng)絡(luò )安全的防御方法和可行性研究[J].電腦編程技巧與維護,2010,1(08):111-112.
[5]張迎,寧玉文,高東懷.高校網(wǎng)站信息安全威脅與對策探析[J].中國教育信息化,2010,1(09):142-143.
計算機安全漏洞的動(dòng)態(tài)檢測【2】
【摘 要】動(dòng)態(tài)檢測方法就是在不改變源代碼甚至是二進(jìn)制代碼的情況下,對程序的弱點(diǎn)進(jìn)行檢測的方法,這類(lèi)檢測主要通過(guò)修改進(jìn)程運行環(huán)境來(lái)實(shí)現。
動(dòng)態(tài)檢測方法主要有:非執行棧、非執行堆與數據、內存映射、安全共享庫、沙箱和程序解釋等。
【關(guān)鍵詞】計算機;安全漏洞;動(dòng)態(tài)檢測
1.計算機安全動(dòng)態(tài)檢測技術(shù)探討
1.1非執行棧技術(shù)
基于棧進(jìn)行軟件攻擊的事件最近幾年經(jīng)常發(fā)生,原因就是很多操作系統的棧是可以寫(xiě)與執行的,而且內部變量尤其是數組變量都保存在棧中,攻擊者向棧中注入惡意代碼,然后想方設法來(lái)執行這段代碼。
棧攻擊技術(shù)的文檔也比較全面,這從某種程度上加速了基于棧的攻擊。
一個(gè)最直接的防范棧攻擊的方法就是使得棧不能執行代碼。
這樣即使攻擊者在棧中寫(xiě)入了惡意代碼,這個(gè)惡意代碼也不會(huì )被執行,在一定程度上防住了一些攻擊者。
只是這個(gè)方法需要在操作系統層進(jìn)行修改,同時(shí),不可執行棧的技術(shù)涉及到的一個(gè)大問(wèn)題就是性能問(wèn)題。
此外,在既有棧溢出漏洞又有堆溢出漏洞的程序中,易出問(wèn)題。
可以利用棧溢出使程序跳轉至攻擊代碼,該代碼是被放置在堆上。
沒(méi)有實(shí)際執行棧中的代碼,而是執行了堆中的代碼。
該技術(shù)所付出的代價(jià)就是對操作系統內核引入一個(gè)微小的改變:把棧頁(yè)標記為不可執行。
1.2非執行堆與數據技術(shù)
由于堆是程序運行時(shí)動(dòng)態(tài)分配內存的區域,而數據段則是程序編譯時(shí)就初始化好了的。
很長(cháng)時(shí)期以來(lái),由于擔心非執行的堆與數據段會(huì )破壞軟件的正常運行,所以該方法進(jìn)展緩慢,最近幾年才有些進(jìn)展和文章。
如果堆和數據段都不能執行代碼,攻擊者注入其中的惡意代碼將不能被執行。
這項技術(shù)和前面的非執行棧技術(shù)結合能起到更全面的作用,使得惡意代碼徹底失去執行機會(huì )。
使用該技術(shù)所付出的代價(jià)要比非執行棧技術(shù)大一些,因為它對內核的修改要多一些。
現在已經(jīng)有了大量的實(shí)例可以使用,這個(gè)技術(shù)還是可以接受的。
從全面性上來(lái)看,該技術(shù)對于幾乎所有的利用把惡意代碼注入進(jìn)程內存中的攻擊都可以檢測并阻止。
但是,對于惡意修改函數指針和函數參數的攻擊沒(méi)有辦法檢測和防范。
該技術(shù)改變了傳統程序在堆或數據段中動(dòng)態(tài)生成代碼的方式,會(huì )造成很多應用程序的不兼容性。
1.3內存映射技術(shù)
內存映射技術(shù)可以檢測并阻止基于內存中地址跳轉的攻擊。
但它對于注入新代碼并執行新代碼的攻擊不能檢測和預防。
除此之外,因為低端內存是有大小限制的,想把所有的代碼頁(yè)都映射到低端內存在有些應用中是不可行的。
內存映射技術(shù)僅僅對那些依靠固定地址或使用高端地址的應用程序有影響。
而這樣的應用程序并不多。
內存映射技術(shù)對性能的消耗也可以忽略,它僅僅是在程序裝載的過(guò)程中工作,運行起來(lái)之后對程序沒(méi)有任何影響。
1.4安全共享庫技術(shù)
從理論上講,安全共享庫技術(shù)可以檢測并防止所有的基于標準庫函數的攻擊。
但是它不能保護本地變量的安全,而且它也不能防止數據段和代碼段數據的溢出攻擊。
安全共享庫技術(shù)對于非標準的庫函數無(wú)能為力。
安全共享庫技術(shù)不會(huì )造成任何兼容性問(wèn)題,在標準庫下運行正常的程序在安全共享庫技術(shù)下面也同樣運行良好。
安全共享庫技術(shù)對于那些和安全沒(méi)有關(guān)系的標準庫中函數不做任何處理。
性能瓶頸主要在這些有安全弱點(diǎn)的函數上。
1.5沙箱技術(shù)
沙箱技術(shù)檢測的全面性主要看定義的策略的全面性。
一個(gè)嚴格定義的策略可以更好的保護程序不受攻擊。
但該技術(shù)對于通過(guò)改寫(xiě)關(guān)鍵的本地變量(例如用戶(hù)的身份ID等)而修改程序邏輯流程的攻擊束手無(wú)策。
沙箱技術(shù)依賴(lài)于安全策略。
它不會(huì )帶來(lái)兼容性方面的問(wèn)題。
但是一個(gè)過(guò)于嚴格的策略可能會(huì )限制應用程序的合法行為,最終導致程序不能使用。
而且對系統調用函數的審查可能會(huì )帶來(lái)競爭條件問(wèn)題的出現。
1.6程序解釋技術(shù)
程序解釋技術(shù)不需要對操作系統內核和應用程序代碼作任何改變,應用程序只要重新鏈接產(chǎn)生一個(gè)新的起動(dòng)代碼就可以了,然后有這個(gè)起動(dòng)代碼來(lái)調用動(dòng)態(tài)優(yōu)化的程序解釋框架。
有了嚴謹的安全策略,幾乎所有已知的改變程序控制流程或修改危險函數的參數的攻擊都可以被檢測到并防范住。
2.計算機網(wǎng)絡(luò )安全漏洞檢測防護方案
2.1發(fā)送含特征碼的檢測數據包與接收數據包
首先需要在漏洞特征庫中查找漏洞的特征碼,構造數據包進(jìn)行發(fā)送。
在發(fā)送檢測數據包之前,先判斷目標主機是否在線(xiàn),然后檢測操作系統版本等基本信息,并掃描它的端口開(kāi)放以及所提供的服務(wù)情況,以此避免不必要的空掃描和決定檢測數據包發(fā)往的目的端口。
在漏洞檢測時(shí),若目標主機不在線(xiàn)或所提供服務(wù)的相應端口沒(méi)有開(kāi)放,就無(wú)須進(jìn)一步發(fā)送數據進(jìn)行檢測,可以提高檢測效率。
在Windows系統中,NDIS(Network Driver Interface Specification)是操作系統網(wǎng)絡(luò )功能驅動(dòng)的關(guān)鍵部分,位于網(wǎng)絡(luò )驅動(dòng)協(xié)議和網(wǎng)卡之間,它既為上層的協(xié)議驅動(dòng)提供服務(wù),又屏蔽了各種網(wǎng)卡的差別。
它提供了一個(gè)完備的NDIS庫,可以利用庫函數直接對網(wǎng)卡進(jìn)行各種讀寫(xiě)操作。
但所提供的函數都是工作在核心模式下,用戶(hù)不便直接操作。
本方案采用由澳大利亞的Canberra大學(xué)信息科學(xué)與工程系開(kāi)發(fā)研制的網(wǎng)絡(luò )開(kāi)發(fā)包Packet32來(lái)設置網(wǎng)卡的工作模式,調用庫中函數直接在網(wǎng)卡上讀寫(xiě)數據,為用戶(hù)提供了一個(gè)面向底層的網(wǎng)絡(luò )編程接口。
2.2建立漏洞特征庫與驗證庫
漏洞特征庫是計算機網(wǎng)絡(luò )漏洞安全檢測防護方案中最為重要的部分,包含每個(gè)漏洞的特征碼。
在實(shí)際檢測中,最終操作是對網(wǎng)絡(luò )數據包的操作,所以特征碼應該能夠保證檢測數據包的有效性和接收回應數據包后的判斷的準確性。
由于漏洞的種類(lèi)千差萬(wàn)別,提取漏洞的特征碼是關(guān)鍵工作,實(shí)現漏洞掃描是一個(gè)分析漏洞、建立知識庫、維護知識庫的過(guò)程。
2.3漏洞掃描控制與調度
漏洞掃描控制是系統管理控制臺與掃描調度的接口,接受系統管理控制臺的各種命令,可對要掃描的網(wǎng)絡(luò )、主機和服務(wù)端口、敏感信息等等加以配置,按一定的掃描控制策略調用掃描調度;可以控制掃描調度模塊的工作,使整個(gè)檢測系統暫停、停止、繼續、結束等。
漏洞掃描調度根據掃描控制模塊發(fā)送的掃描控制要求,采用消息機制協(xié)調各工作模塊。
采用多線(xiàn)程調度策略,對本地或遠程主機進(jìn)行掃描;調用漏洞特征庫接口模塊,在漏洞特征庫表文件中查詢(xún)漏洞對應的檢測表文件名稱(chēng),調用檢測驗證模塊進(jìn)行檢測驗證等。
3.漏洞防護建議
在系統作完安全漏洞檢測、掃描之后,形成針對整個(gè)系統多種形式的安全報表,如系統內工作站或服務(wù)器在某一時(shí)間段內的安全狀況、提供服務(wù)的變化情況以及軟件版本更新的情況等,并在此基礎上提交用戶(hù)檢測報告,主要包括漏洞風(fēng)險分析及安全建議。
漏洞的風(fēng)險分析包括漏洞的流行程度、利用漏洞攻擊的容易程度、攻擊造成系統的損害程度和采用此漏洞進(jìn)行攻擊被抓獲的冒險程度。
損害度、容易度、流行度、冒險度都由數字1到9來(lái)表示不同的級別。
其中冒險程度越大,攻擊者被抓住可能性就越大,風(fēng)險級別就相應的減小。
因此,冒險度的具體數值與實(shí)際的冒險程度恰好相反。
安全建議是根據漏洞風(fēng)險分析的結果提醒用戶(hù)需要在哪些方面如何加強系統的安全性。
安全建議具體包括需要填補的所有系統漏洞,如何填補這些漏洞(修改系統配置、下載相應補丁、刪除不必要的服務(wù)等),在填補所有漏洞不可實(shí)現的情況下,應當優(yōu)先填補那些對系統安全威脅較大或填補工作較為容易的漏洞。
【參考文獻】
[1]單谷云,黃成軍,江秀臣.電纜排管機器人的圖像監控傳輸系統設計[J].微計算機信息.2008,(29).
[2]蔣誠.信息安全漏洞等級定義標準及應用[J].信息安全與通信保密,2007,(6).
【計算機安全漏洞的動(dòng)態(tài)檢測】相關(guān)文章:
學(xué)校核酸檢測工作動(dòng)態(tài)簡(jiǎn)報(精選10篇)09-29
職場(chǎng)動(dòng)態(tài)語(yǔ)錄12-12
思想動(dòng)態(tài)報告07-12
職場(chǎng)動(dòng)態(tài)語(yǔ)錄集合12-20
動(dòng)態(tài)監測工作總結07-13