源代碼掃描
通過檢查程序中不符合安全規則的文件結構、命名規則、函數、堆棧指針等,進而發現程序中可能隱含的安全缺陷。
優缺點:
這種漏洞分析技術需要熟練掌握編程語言,並預先定義出不安全代碼的審查規則,通過表達式匹配的方法檢查源程序代碼。
由於程序運行時是動態變化的,如果不考慮函數調用的參數和調用環境,不對源代碼進行詞法分析和語法分析,就沒有辦法準確地把握程序的語義,因此這種方法不能發現程序動態運行過程中的安全漏洞。
反匯編掃描
反匯編掃描對於不公開源代碼的程序來說往往是最有效的發現安全漏洞的辦法。分析反匯編代碼需要有豐富的經驗,也可以使用輔助工具來幫助簡化這個過程,但不可能有壹種完全自動的工具來完成這個過程。
優缺點:
通過反匯編來尋找系統漏洞的好處是,從理論上講,不論多麽復雜的問題總是可以通過反匯編來解決。它的缺點也是顯然的,這種方法費時費力,對人員的技術水平要求很高,同樣不能檢測到程序動態運行過程中產生的安全漏洞。
環境錯誤註入
由程序執行是壹個動態過程這個特點,不難看出靜態的代碼掃描是不完備的。
優缺點:
環境錯誤註入是壹種比較成熟的軟件測試方法,這種方法在協議安全測試等領域中都已經得到了廣泛的應用。軟件環境錯誤註入分析還依賴於操作系統中已知的安全缺陷,也就是說,對壹個軟件進行錯誤註入分析時,要充分考慮到操作系統本身所存在的漏洞,這些操作系統中的安全缺陷可能會影響到軟件本身的安全。