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