一、靜態(tài)檢測基本概念
軟件安全檢查技術主要用于對軟件中的安全缺陷或漏洞進行分析測試秘血,以期發(fā)現(xiàn)軟件中的安全隱患肝陪,也是漏洞挖掘的一個過程。
軟件安全監(jiān)測技術主要包括軟件靜態(tài)安全檢測技術兼丰、軟件動態(tài)安全檢測技術和軟件動靜結合的安全檢測技術。
軟件靜態(tài)安全檢測技術是針對未處于運行狀態(tài)的軟件所開展的安全分析測試技術唆缴。軟件靜態(tài)安全檢測技術可以用于對軟件源代碼和可執(zhí)行代碼的檢測鳍征。
靜態(tài)檢測——源代碼檢測
image.png
image.png
靜態(tài)安全檢測技術——詞法分析
詞法分析通過對源代碼進行基于文本或字符標識的匹配分析對比,以查找符合特定特征和詞法規(guī)則的危險函數(shù)面徽、api或者簡單語句組合
通過詞法分析來找到特點的危險函數(shù)或者特定危險操作的組合艳丛。
特定:快速檢測匣掸、算法簡單、檢測性能高
缺點:只能進行表面詞法檢測氮双,誤報率較高
常見的工具包括:checkmarx和ITS4等
image.png
靜態(tài)檢測技術——數(shù)據(jù)流分析
數(shù)據(jù)流分析是通過分析軟件代碼中變量的取值變化和語句的執(zhí)行情況碰酝,來分析處理邏輯和程序的控制流關系,從而分析軟件代碼的潛在安全缺陷戴差。
image.png
適用情況:適合檢查因控制流信息非法操作而導致的安全問題送爸,如內存訪問越界、常數(shù)傳播等造挽。
誤報率高
常見的工具包括:covertiy和klockwork等
靜態(tài)檢測技術——污點傳播分析
污點傳播分析技術是通過分析代碼中輸入數(shù)據(jù)對程序執(zhí)行路徑的影響碱璃,以發(fā)現(xiàn)不可信的輸入數(shù)據(jù)導致的程序執(zhí)行異常。
image.png