摘 要 置身信息社會的人們最關(guān)注的幾個熱點(diǎn)問題之一便是網(wǎng)絡(luò)安全,如何做好網(wǎng)絡(luò)安全的防范措施顯得尤為重要,而對計算機(jī)上軟件的安全漏洞進(jìn)行檢測,是發(fā)現(xiàn)本質(zhì)問題的最佳手段。只有提高安全檢測的能力和加強(qiáng)預(yù)防技術(shù),才能有效地解決網(wǎng)絡(luò)安全的隱患,保障個人資料及商務(wù)信息的安全。本文就安全漏洞的檢測技術(shù)在計算機(jī)軟件當(dāng)中的應(yīng)用這一問題,提出一些見解。
關(guān)鍵詞 計算機(jī);網(wǎng)絡(luò)安全;軟件安全漏洞;檢測技術(shù)
中圖分類號 TP309 文獻(xiàn)標(biāo)識碼 A 文章編號 1673-9671-(2012)061-0168-01
計算機(jī)的軟件是其賴以生存的基石,也是網(wǎng)絡(luò)運(yùn)作的保證。系統(tǒng)的操作、網(wǎng)絡(luò)的通信等,都以計算機(jī)軟件的形式存在,大多數(shù)的黑客入侵網(wǎng)絡(luò)、破壞系統(tǒng)等都是以計算機(jī)軟件的漏洞為基礎(chǔ)的,因此,軟件的缺點(diǎn)和不足對網(wǎng)絡(luò)通信、商務(wù)資料及個人隱私存在著相當(dāng)大的威脅。甚至就連入侵的檢測系統(tǒng)、防火墻和殺毒軟件的存在也對這種攻擊軟件的安全漏洞的破壞沒有顯著的效果,而且還會帶來其他的漏洞。
1 計算機(jī)軟件中存在的安全漏洞
計算機(jī)軟件中的漏洞是指一個系統(tǒng)或程序內(nèi)部存在的缺陷或者不足,這些缺陷或者不足導(dǎo)致系統(tǒng)在某一些特定的威脅下無法抵御。軟件的設(shè)計過程中,由于開發(fā)人員有意或者無意的情況下造成的事物,導(dǎo)致了系統(tǒng)存在一些潛在的不安全的可能,會在將來的運(yùn)行當(dāng)中被攻擊者利用而導(dǎo)致崩潰。
在當(dāng)今這個信息飛速的時代,整個社會都對計算機(jī)的系統(tǒng)產(chǎn)生的強(qiáng)烈的依賴,與此同時,人們也逐漸意識到計算機(jī)安全的特殊的重要性。我們都為自己的計算機(jī)裝上了殺毒軟件、網(wǎng)盾、防火墻等等一系列產(chǎn)品,但是對于目前高技能的“黑客”們來說,已經(jīng)沒有太大的作用了。更有甚者,有的反病毒、反黑客軟件,若是運(yùn)用不好,極有可能會帶來新的問題。
2 軟件漏洞的動態(tài)檢測技術(shù)
所謂動態(tài)監(jiān)測技術(shù),就是指在不變更目標(biāo)程序的原代碼或者二進(jìn)制代碼的條件下,對改程序運(yùn)行過程中是否存在安全漏洞進(jìn)行檢測的技術(shù)。以下為動態(tài)檢測的幾種常用方法。
2.1 內(nèi)存映射技術(shù)
內(nèi)存映射技術(shù)只有對那些需要依靠固定的地址或是使用一些高端地址的應(yīng)用程序才會有影響作用,它通過使用映射代碼頁的方法,使得想要侵入的攻擊者幾乎不能通過NULL結(jié)尾的字符串轉(zhuǎn)換到低端的內(nèi)存區(qū)域,而把代碼頁映射到一些隨機(jī)地址中,將給攻擊者們造成非常大的困難。這項技術(shù)的執(zhí)行需要修改操作系統(tǒng)的內(nèi)核,它雖然能夠檢測并且阻止內(nèi)存中的地址跳轉(zhuǎn)的攻擊,但卻無法檢測并阻止新的代碼的攻擊。
2.2 執(zhí)行棧技術(shù)
很多攻擊者常常采取向棧中注入惡意代碼這種方式,來破壞其編寫與執(zhí)行,想要改變其內(nèi)部的變量,以此執(zhí)行惡意的代碼。這時,我們可以禁止棧執(zhí)行其代碼的能力,采取這樣的方法可以在一定程度上對攻擊起到預(yù)防的作用。
2.3 沙箱技術(shù)
沙箱技術(shù)是指,限制一個進(jìn)程將要訪問的資源的來源或者說是連接,以預(yù)防某些可能的攻擊行為。這種技術(shù)只需要對相應(yīng)的應(yīng)用程序預(yù)先設(shè)置一個資源連接訪問的針對性策略,而策略的安全則不需要對操作系統(tǒng)的內(nèi)核以及相應(yīng)的應(yīng)用程序做出任何改變。
2.4 非執(zhí)行堆與數(shù)據(jù)技術(shù)
一些數(shù)據(jù)段和非執(zhí)行的堆會破壞計算機(jī)軟件的正常運(yùn)行過程,而非執(zhí)行堆與數(shù)據(jù)技術(shù)能夠禁止這些數(shù)據(jù)段與非執(zhí)行堆的運(yùn)行,從而使惡意代碼不能執(zhí)行。這種方法可以檢測出所有內(nèi)存中存在的惡意的代碼,并且阻止它們的執(zhí)行,但是不能檢測修改函數(shù)和函數(shù)參數(shù),也無法預(yù)防,同時也沒有辦法同時兼容其他眾多的應(yīng)用程序。
2.5 程序解釋技術(shù)
程序解釋技術(shù)是指在啟動程序以后來監(jiān)視程序的運(yùn)行并進(jìn)行強(qiáng)制安全檢查的方法,最常用的就是程序監(jiān)視器,這主要是針對非原始的代碼進(jìn)行的。該技術(shù)不用對系統(tǒng)的內(nèi)核或者程序的代碼做出任何變動就能對動態(tài)生成的代碼進(jìn)行安全監(jiān)測,但是還是會對系統(tǒng)、程序的運(yùn)行和兼容性能造成不同程度的危害。
3 軟件漏洞的靜態(tài)檢測技術(shù)
軟件漏洞的靜態(tài)檢測技術(shù)是利用分析程序的技術(shù)來對應(yīng)用程序的二進(jìn)制代碼或者源代碼進(jìn)行分析的技術(shù)方法。常用的軟件漏洞的靜態(tài)檢測技術(shù)方法有以下幾種。
3.1 元編譯技術(shù)
要求程序的安全屬性,作為輕量級的編譯器擴(kuò)展、建模執(zhí)行,也可以自發(fā)的推斷去檢測代碼的安全性,并且編寫出與之相應(yīng)的編譯擴(kuò)展,這就是元編譯技術(shù)。元編譯技術(shù)只是以編譯器為基礎(chǔ)的一項簡單的技術(shù),不僅報誤率極低,而且還不會帶來一些語言特性的心的拓展。
3.2 變異語技術(shù)
變異語技術(shù)通常是指限制算術(shù)運(yùn)算、不安全的轉(zhuǎn)換、goto的隨意跳轉(zhuǎn)、多點(diǎn)隨意轉(zhuǎn)變、setjmp和longjump等可能導(dǎo)致安全隱患的操作,多使用C或C++語言的安全編程變異技術(shù)。相比動態(tài)檢測的局限性,對軟件源代碼或其二進(jìn)制代碼進(jìn)行檢測的靜態(tài)檢測有其自身優(yōu)勢。衡量靜態(tài)檢測好壞的指標(biāo)主要有二:漏報率和誤報率。能利用的靜態(tài)檢測的錯誤越多,那么編寫出的程序就越發(fā)可靠。
3.3 程序評注技術(shù)
這項技術(shù)不會為原有代碼增加任何新的語言特色,只會以注視的形式表現(xiàn)出來,所以不存在任何兼容性的問題。它憑借評注的信息從而加深靜態(tài)分析,以此找出系統(tǒng)、程序的潛在漏洞。此外,還需要把外部的數(shù)據(jù)標(biāo)記為tainted,這些最終都要由代碼審計人員對產(chǎn)生的警告一一進(jìn)行排查。
3.4 約束解算器技術(shù)
約束解算器技術(shù),是直接對目標(biāo)程序的特定屬性進(jìn)行約束建模,然后再運(yùn)用靜態(tài)分析來解算該約束。這種方法不用對源程序做出任何評注,但是它會導(dǎo)致大量的誤報,因此會加大工作人員的工作量。
3.5 類型推斷技術(shù)
一般來說,這是一種通過對某種或某幾種特別的用戶輸入或指針等數(shù)據(jù)使用一種新型的修飾來增加其安全約束的方法。該技
術(shù)有著高校、適合檢測較大應(yīng)用程序的優(yōu)勢,但它還是存在著兼容性方面的問題。
目前來說,程序、軟件的安全是計算機(jī)安全和網(wǎng)絡(luò)安全的基礎(chǔ),針對這一局面而言,研究編寫安全的軟件和檢測并且消除程序的漏洞稱為軟件安全的重點(diǎn)所在。本文主要闡述了計算機(jī)軟件漏洞檢測技術(shù)中的動態(tài)監(jiān)測技術(shù)和靜態(tài)檢測技術(shù),分析并總結(jié)了這兩種技術(shù)的常用方法。通過對二者的對比,我們可以得到提高計算機(jī)軟件安全性的有效方法——將這兩種方法復(fù)合使用。將動態(tài)與靜態(tài)檢測技術(shù)相結(jié)合使用主要是先利用靜態(tài)檢測技術(shù)對程序的內(nèi)部特征進(jìn)行分析,然后在從中篩選出測試數(shù)據(jù)集,然后進(jìn)行動態(tài)測試,該方法稱為SD方法。在第一輪進(jìn)行靜態(tài)測試之前先進(jìn)行一次動態(tài)測試,從而排除一些不可能達(dá)到的輸入情況,能夠簡化靜態(tài)檢測的復(fù)雜性,這種方法被稱為DSD方法。它們都是動態(tài)與靜態(tài)相結(jié)合的檢測方式,這樣不僅在很大程度上降低了安全風(fēng)險,而且一定程度上避免了各自的弊端。
參考文獻(xiàn)
[1]張愛玲.網(wǎng)絡(luò)安全漏洞檢測技術(shù)與分析[J].教育教學(xué)刊,2011,12.
[2]宋超臣.計算機(jī)安全漏洞檢測技術(shù)綜述[J].信息網(wǎng)絡(luò)安全,2012,01.
[3]冉崇善.軟件設(shè)計中的安全漏洞動態(tài)檢測技術(shù)分析[J].微計算機(jī)信息,2010,06.