原創|行業資訊|編輯:郝浩|2013-09-29 09:19:33.000|閱讀 205 次
概述:C/C++軟件靜態測試的分析處理模型和測試軟件發展趨勢。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
對于C/C++軟件而言,靜態測試越來越趨向軟件安全功能測試。包括數據機密性、完整性、可用性、不可否認性、身份認證、授權、訪問控制、審計跟蹤、委托、隱私保護、安全管理等。
通常情況下,C/C++靜態測試是把程序源代碼變換成易于分析處理的程序模型。有4個分析模型:
● 詞法分析:使用正則表達式匹配將源代碼轉換為等價的符號流。
● 語法分析:使用上下文無關語法將符號流規整為語法樹,作為源代碼邏輯結構的最直接的表現。
● 抽象語法分析:通過簡化語法將語法樹轉換為包含更少節點和分支的抽象語法樹,以方便后續處理。
● 語義分析:從抽象語法樹建立符號表,為每個標識符關聯類型信息。至此,已經具備了足夠的信息來進行所謂的結構化分析。編譯器通常將抽象語法樹和符號表轉化 成易于優化的中間形式,然后送給后端生成平臺相關的目標代碼。安全分析工具可以建立更高階的中間形式,或者直接在抽象語法樹和符號表上進行后續步驟。
在分析模型建立后,就可以開始進行靜態測試。靜態測試直接分析被測程序特征,尋找可能導致錯誤的異常。
C/C++靜態測試技術目前的發展趨勢是將靜態測試的各種技術進行結合,以提高性能。結合方式有以下方法:
● 提供一個框架,使用不同檢測技術對程序進行檢測,獲取大量檢測結果之后進行分析。從誤報率來說,使用多種技術的檢測結果的交集來進行漏洞判斷決策,可減少誤報率。從漏報率來說,對于同一種漏洞,使用多種檢測技術的結果的并集可以減少漏報率。
● 直接在檢測技術上結合,通過技術的結合來得到新的方法,如在符號執行的過程中加入類型推導的技術,在變量模擬執行的過程中增加其類型特征的推導,可獲取更高的漏洞檢測率。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網