魏南強
摘 要:隨著信息全球化的進程不斷加速,計算機技術已經(jīng)廣泛深入到人們生活的方方面面。網(wǎng)絡中的黑客攻擊事件不斷發(fā)生,病毒入侵不斷泛濫,人們對于信息安全的保護顯得愈發(fā)重要。計算機軟件自身的安全漏洞給惡意分子帶來了可乘之機,因此計算機軟件的安全也日益?zhèn)涫苤匾暋H绾斡行У臋z測計算機軟件中的各種漏洞便成為一個備受關注的話題。只有軟件自身的安全等到保證,才能更加有效地保護用戶的信息安全。本文的主要目的是研究計算機軟件中安全漏洞的檢測,首先說明了計算機軟件中可能出現(xiàn)的漏洞,然后分析了當前主要的兩大類檢測方法,靜態(tài)分析與動態(tài)檢測兩大類,并介紹了它們在實際中的相關應用。
關鍵詞:計算機軟件;安全漏洞;靜態(tài)分析;動態(tài)檢測
1 概述
1.1 技術背景
計算機技術的發(fā)展促進了信息全球化的進程,提高了計算機的普及,人類的各個領域都已離不開計算機應用。然而,計算機軟件的安全漏洞對人類的生產(chǎn)生活是一個巨大的隱患。即使是防火墻的設置,入侵檢測技術和殺毒軟件也不能避免計算機軟件自身漏洞帶來的威脅。因此,我們要盡量減少計算機軟件中的安全漏洞,并及時檢測已有的漏洞。[1]
1.2 安全漏洞
安全漏洞是指軟件、硬件的組件或協(xié)議的實現(xiàn)上存在的不受保護的缺陷,導致惡意攻擊者的利用,在未授權的情況下入侵系統(tǒng),從而威脅的系統(tǒng)的信息安全。
當今社會有五類最容易被人們忽視的安全漏洞,分別是Zlib、Net-snmp、Geronimo2.0、jboss應用服務器和Libtiff開源軟件庫。一般情況下計算機軟件的安全所面臨的威脅主要有軟件跟蹤、軟件自身質量問題、非法復制等都會給用戶帶來一定程度的困擾。
2 計算機軟件中安全漏洞的檢測技術
如今計算機安全漏洞的檢測技術有了一定程度的發(fā)展,目前社會上主要有兩大檢測方法:靜態(tài)分析和動態(tài)檢測。
2.1 靜態(tài)分析技術
靜態(tài)分析技術主要是關注程序的代碼,通過程序分析技術來分析應用程序的二進制代碼或源代碼。靜態(tài)分析技術掃描程序代碼,檢測程序的關鍵語法,解釋程序行為,從而檢測漏洞。靜態(tài)分析的優(yōu)點是程序不需要運行,不需要對目標程序代碼或操作系統(tǒng)做任何修改,檢測比較方便。缺點是存在大量的誤報,無法完美地確定程序的任何重要屬性。下面介紹幾種主要的靜態(tài)分析技術。
⑴詞法檢測技術:檢測程序源代碼中的系統(tǒng)調用與庫函數(shù),將待檢測軟件的語法作為輸入,檢測其在不同輸入條件下的反應。這種方法速度很快,但后續(xù)需要一定的人工核實。⑵程序評注技術:在程序源代碼中以注釋的形式人為的添加一些評注信息,這種方法的檢測結果會更加精確。[2]⑶類型推斷技術:對編譯器進行相應的安全分析,比如在某些特殊數(shù)據(jù)類型上添加類型修飾來加強安全約束,以強制程序員進行安全編程。⑷約束解算器技術:對目標程序源代碼的特定屬性進行約束。⑸元編譯技術:編程人員自身對安全屬性的要求被作為輕級編譯器進行一定的安全檢測。每個擴展的檢測器只能檢測一個小缺陷。⑹變異語言技術:在實際應用中使用變異的編程語言等安全編程技巧。⑺二進制代碼的類型檢查:建立內存的狀態(tài)描述,存儲記錄不信任程序的內存值。通過檢測內存的類型信息來推斷威脅安全的行為。
靜態(tài)分析技術能夠檢測出更多的弱點和缺陷,但是由于其誤報率較高,后續(xù)需花費更大的人力進行校驗核實,效率上就會有損失。
2.2 動態(tài)檢測技術
動態(tài)檢測技術是指在程序運行的情況下,通過分析內存、堆棧等運行環(huán)境的變量,來檢測軟件中隱含的技術漏洞。動態(tài)檢測技術的優(yōu)點是提高了程序的保密性,不需要修改應用程序的二進制代碼或源代碼。下面介紹幾種常見的動態(tài)檢測方法。
⑴非執(zhí)行棧技術:使棧中的代碼不能執(zhí)行。需要在操作系統(tǒng)中將棧頁標記為不可執(zhí)行。⑵非執(zhí)行堆與數(shù)據(jù)技術:使堆與數(shù)據(jù)段不可執(zhí)行。與非執(zhí)行棧技術結合使用能更好的維護軟件安全。⑶內存映射技術:通過使用映射代碼頁,避免攻擊者以NULL字符結尾來覆蓋內存。⑷安全的共享庫技術:通過動態(tài)鏈接來檢測程序運行過程中對不安全函數(shù)的調用。這種方法有較強的開發(fā)性,易配置。⑸沙箱技術:在攻擊之前限制某些進程所訪問的資源,從而在一定程度上避免某些攻擊。該技術目前主要應用于系統(tǒng)調用方面。⑹程序解釋技術:監(jiān)視程序的運行及其行為,并通過解釋程序的執(zhí)行強制進行安全監(jiān)測。[3]
動態(tài)檢測技術在檢測到攻擊時會立即制止程序運行,因此能方法漏洞惡意攻擊,但不能修補漏洞,因此無法徹底避免漏攻擊。
3 計算機軟件中安全漏洞檢測技術的應用
目前,計算機軟件安全漏洞檢測技術主要應用在以下幾個方面:競爭條件漏洞的預防,緩沖區(qū)溢出漏洞的預防,隨機數(shù)漏洞的預防以及格式化字符串漏洞的防范??傊?,隨著互聯(lián)網(wǎng)技術的發(fā)展,計算機應用的不斷深化,我們應該投入更多的精力研究計算機軟件安全漏洞的檢測。
[參考文獻]
[1]陳楷.計算機軟件中安全漏洞監(jiān)測技術的應用[J].數(shù)字技術與應用.2010(07).
[2]徐巖柏.計算機軟件中安全漏洞監(jiān)測方法研究[D].北京郵電大學.2006.
[3]江濤.計算機軟件安全漏洞檢測之分析探討[J].電子信息與計算機科學.2013(11).