一(yī)般情況下,安全掃描器具備三項功能,下面上海觀初帶大家一(yī)起看看吧(ba):
● 發現Internet上的(de)一(yī)個網絡或者一(yī)台主機;
● 一(yī)旦發現一(yī)台主機,能發現其上所運行的(de)服務類型;
● 通過對這些服務的(de)測試,可(kě)以發現存在的(de)已知漏洞,并給出修補建議。
源代碼掃描
源代碼掃描主要針對開放源代碼的(de)程序,通過檢查程序中不符合安全規則的(de)文件結構、命名規則、函數、堆棧指針等,進而發現程序中可(kě)能隐含的(de)安全缺陷。這種漏洞分析技術需要熟練掌握編程語言,并預先定義出不安全代碼的(de)審查規則,通過表達式匹配的(de)方法檢查源程序代碼。
由于程序運行時是動态變化的(de),如(rú)果不考慮函數調用的(de)參數和(hé)調用環境,不對源代碼進行詞法分析和(hé)語法分析,就沒有辦法準确地(dì)把握程序的(de)語義,因此這種方法不能發現程序動态運行過程中的(de)安全漏洞。
反彙編掃描
反彙編掃描對于不公開源代碼的(de)程序來說往往是很有效的(de)發現安全漏洞的(de)辦法。分析反彙編代碼需要有豐富的(de)經驗,也可(kě)以使用輔助工具來幫助簡化這個過程,但不可(kě)能有一(yī)種完全自(zì)動的(de)工具來完成這個過程。例如(rú),利用一(yī)種的(de)反彙編程序IDA(www.datarescue.com)就可(kě)以得到目标程序的(de)彙編腳本語言,再對彙編出來的(de)腳本語言進行掃描,進而識别一(yī)些可(kě)疑的(de)彙編代碼序列。
通過反彙編來尋找系統漏洞的(de)好處是,從理(lǐ)論上講,不論多麽複雜的(de)問題總是可(kě)以通過反彙編來解決。它的(de)缺點也是顯然的(de),這種方法費時費力,對人員的(de)技術水平要求很高(gāo),同樣不能檢測到程序動态運行過程中産生的(de)安全漏洞。
環境錯誤注入
由程序執行是一(yī)個動态過程這個特點,不難看出靜态的(de)代碼掃描是不完備的(de)。環境錯誤注入是一(yī)種比較成熟的(de)軟件測試方法,這種方法在協議安全測試等領域中都已經得到了很好的(de)應用。
系統通常由“應用程序”和(hé)“運行環境”組成。由于各種原因,程序員總是假定認為(wèi)他們的(de)程序會在正常環境中正常地(dì)運行。當這些假設成立時,他們的(de)程序當然是正确運行的(de)。但是,由于作為(wèi)共享資源的(de)環境,常常被其他主體所影響,尤其是惡意的(de)用戶,這樣,程序員的(de)假設就可(kě)能是不正确的(de)。程序是否能夠容忍環境中的(de)錯誤是影響程序健壯性的(de)一(yī)個關鍵問題。
錯誤注入,即在軟件運行的(de)環境中故意注入人為(wèi)的(de)錯誤,并驗證反應——這是驗證計算機和(hé)軟件系統的(de)容錯性、可(kě)靠性的(de)一(yī)種有效方法。在測試過程中,錯誤被注入到環境中,所以産生了幹擾。換句話,在測試過程中幹擾軟件運行的(de)環境,觀察在這種幹擾情況下程序如(rú)何反應,是否會産生安全事件,如(rú)果沒有,就可(kě)以認為(wèi)系統是安全的(de)。概言之,錯誤注入方法就是通過選擇一(yī)個适當的(de)錯誤模型試圖觸發程序中包含的(de)安全漏洞。
在真實情況下,觸發某些不正常的(de)環境是很困難的(de),知道(dào)如(rú)何觸發依賴于測試者的(de)有關“環境”方面的(de)知識。所以,在異常的(de)環境下測試軟件安全變得困難。錯誤注入技術提供了一(yī)種模仿異常環境的(de)方法,而不必關心實際中這些錯誤如(rú)何發生。
軟件環境錯誤注入分析還依賴于操作系統中已知的(de)安全缺陷,也就是說,對一(yī)個軟件進行錯誤注入分析時,要充分考慮到操作系統本身所存在的(de)漏洞,這些操作系統中的(de)安全缺陷可(kě)能會影響到軟件本身的(de)安全。所以選擇一(yī)個适當的(de)錯誤模型來觸發程序中所隐含的(de)安全漏洞是非常重要的(de)。我們需要選擇一(yī)個适當的(de)錯誤模型,能夠高(gāo)水平地(dì)模拟真實的(de)軟件系統,然後分析漏洞數據庫記錄的(de)攻擊者利用漏洞的(de)方法,把這些利用變為(wèi)環境錯誤注入,從而縮小在測試過程中錯誤注入和(hé)真實發生的(de)錯誤之間的(de)差異。
總結
這裏介紹的(de)幾種漏洞檢測的(de)方法,其中安全掃描技術主要是針對已知漏洞的(de)檢測,後面三種主要是針對未知漏洞的(de)檢測。對于未知漏洞的(de)檢測,源代碼掃描(包括反彙編掃描)屬于靜态檢測技術,而環境錯誤注入法屬于動态檢測技術。
另外,換個視(shì)角來看,源代碼掃描(包括反彙編掃描)類似于白盒測試,它檢測軟件系統源碼中可(kě)能存在的(de)問題;環境錯誤注入方法類似于黑盒測試,它不關注代碼的(de)問題,而是通過對程序運行環境的(de)幹擾,關注運行程序對于注入錯誤的(de)反應,以便從程序外圍發現問題。
漏洞檢測的(de)目的(de)在于發現漏洞,修補漏洞,進而從根本上提高(gāo)信息系統的(de)安全性,以緻從根本上減少安全事件的(de)發生。
以上就是上海觀初和(hé)大家分享的(de)內(nèi)容,希望能夠幫助到大家。還有想了解的(de)持續關注我們!