0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是完備靜態(tài)分析?

北匯信息POLELINK ? 2022-11-11 10:16 ? 次閱讀

在開發(fā)安全、可靠和合規(guī)的軟件時(shí),完備靜態(tài)分析是一種有益的實(shí)踐。本篇文章中,我們將討論完備分析與靜態(tài)分析的不同之處,為什么它很重要,以及完備靜態(tài)代碼分析的工作原理

什么是完備靜態(tài)分析?

完備靜態(tài)分析是指分析結(jié)果的完整性或"健全性"。對(duì)于提供可靠性分析結(jié)果的靜態(tài)分析工具,這意味著如果軟件中存在特定的錯(cuò)誤,缺陷或漏洞,那么該工具將出具相關(guān)的報(bào)告。

如果出現(xiàn)存在爭(zhēng)議的問題,那么工具將以某種形式提出警告*,這樣一來任何問題都會(huì)的得到診斷。

(*備注:這些在Helix QAC中被歸類為可能的問題,如果不需要完備分析,則可以禁用。)

完備靜態(tài)分析不同于其他靜態(tài)分析的地方在于,后者的結(jié)果可能基于在一定時(shí)間或資源內(nèi)可能發(fā)生的事情。

鑒于對(duì)程序的運(yùn)行時(shí)行為進(jìn)行建模需要某些近似值(例如,缺乏對(duì)程序輸入或操作系統(tǒng)狀態(tài)的知識(shí)),完備分析需要過度近似。

過度近似可以保證沒有假陰性(對(duì)于給定的漏洞類型),而低近似值通常優(yōu)先考慮沒有誤報(bào)。

poYBAGNtlomAdgNyAAGjiPgMAAg485.png

其他形式的靜態(tài)分析沒有表現(xiàn)出這種嚴(yán)格性,并且可能包含低近似和過近似的混合。

也許完備和不完備的分析工具所得出的結(jié)果可能都會(huì)為程序的特定部分提供一份清晰的運(yùn)行狀態(tài)證明,但是完備分析引擎提供了額外的保證,即印證這一結(jié)論的所有可能性和所有路徑都已得到驗(yàn)證。

完備靜態(tài)分析的工作原理

在提到完備分析時(shí),我們通常會(huì)考慮更復(fù)雜的程序間和程序內(nèi)控制和數(shù)據(jù)流分析形式,正如當(dāng)今最先進(jìn)的靜態(tài)分析工具所采用的那樣。

與更簡(jiǎn)單的代碼語法和語義分析不同,控制流和數(shù)據(jù)流靜態(tài)分析通常與檢測(cè)更復(fù)雜的問題相關(guān)聯(lián),例如:

  • 空指針取消引用
  • 陣列或緩沖區(qū)下溢和溢出
  • 未初始化對(duì)象的使用
  • 內(nèi)存分配和取消分配異常
  • 數(shù)字溢出、下溢和環(huán)繞
  • 除以零
  • 死代碼
  • 數(shù)據(jù)爭(zhēng)用、死鎖和其他并發(fā)沖突

控制和數(shù)據(jù)流分析是一項(xiàng)高計(jì)算負(fù)載的任務(wù),因?yàn)楸仨毧紤]系統(tǒng)的所有可能輸入以及通過系統(tǒng)所有可能的控制流路徑。事實(shí)上,由于控制流和數(shù)據(jù)流分析的暴力窮舉算法會(huì)導(dǎo)致分析時(shí)間指數(shù)暴漲,因此很少采用該方案。符號(hào)執(zhí)行和抽象解釋算法將是一個(gè)更優(yōu)雅的選擇。

根據(jù)Roberto Amadini、Graeme Gange、Peter Schachte、Harald S?ndergaard和Peter J.Stuckey的抽象解釋、符號(hào)執(zhí)行和約束,“抽象解釋是一個(gè)靜態(tài)分析框架,用于完備的過度近似程序的所有可能運(yùn)行時(shí)狀態(tài)。”。

而“符號(hào)執(zhí)行是一個(gè)可訪問性分析框架,它試圖探索程序的所有可能的執(zhí)行路徑”。抽象解釋和符號(hào)執(zhí)行在執(zhí)行期間以不變性或路徑條件的形式維持約束,該路徑條件確定可以執(zhí)行哪些路徑,并且可以在各種數(shù)據(jù)源中保持哪些值。

然而,需要注意的是,雖然抽象解釋是完備的,但符號(hào)執(zhí)行卻不是。

為什么完備靜態(tài)分析很重要?

健全性是安全關(guān)鍵軟件系統(tǒng)中的一個(gè)重要因素,特別是因?yàn)樗WC軟件不包含任何正在檢查的編碼缺陷。也就是說,完備分析可用于顯示軟件中沒有錯(cuò)誤。

因此,在汽車系統(tǒng)的ISO 26262功能安全(FuSa)標(biāo)準(zhǔn)中,抽象解釋分析被明確引用為軟件單元驗(yàn)證方法(表7,方法1i)。

如何使用Helix QAC 執(zhí)行完備靜態(tài)分析

由于能夠提供深入和高度準(zhǔn)確的分析結(jié)果,Helix QAC在30多年來一直是一個(gè)值得信賴的靜態(tài)代碼分析工具。Helix QAC能夠進(jìn)行良好的靜態(tài)分析,是需要滿足嚴(yán)格合規(guī)要求的嚴(yán)格監(jiān)管和安全關(guān)鍵行業(yè)的首選工具。

但是,為了在Helix QAC項(xiàng)目中啟用完備分析,需要執(zhí)行某些步驟:

poYBAGNtloiATUbtAAKTVrTm6kA962.png

數(shù)據(jù)流深度需要設(shè)置為最大值(5),這將添加多個(gè) -prodoption,如上面的屏幕截圖所示。(請(qǐng)參閱 QAC 或 QAC++ 組件手冊(cè)中的"分析超時(shí)"部分,了解為什么這些"超時(shí)"設(shè)置對(duì)于聲音分析是必需的。

此外,“df::inter=5”和“inter-TU Analysis”雖然不是完備分析所必需的,但可以以額外的計(jì)算成本啟用,以減少需要報(bào)告的可能問題的數(shù)量。這些設(shè)置的效果是啟用程序間和程序內(nèi)分析。

選擇Helix QAC進(jìn)行完備靜態(tài)分析

親身體驗(yàn)Helix QAC完備靜態(tài)分析對(duì)代碼質(zhì)量和健全性的影響,立即聯(lián)系北匯信息以免費(fèi)試用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4808

    瀏覽量

    68813
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    靜態(tài)路由和鏈路聚合的通信原理

    靜態(tài)路由和鏈路聚合的通信原理
    發(fā)表于 12-23 16:59 ?0次下載

    汽車異構(gòu)硬件平臺(tái)開發(fā)如何進(jìn)行靜態(tài)代碼分析

    先進(jìn)的靜態(tài)代碼分析工具,其新版本中引入的多CCT功能為開發(fā)人員提供了強(qiáng)大的支持,該功能不僅簡(jiǎn)化了多編譯器環(huán)境下的代碼分析過程,還可以極大增強(qiáng)代碼的質(zhì)量和安全性。
    的頭像 發(fā)表于 10-09 16:15 ?552次閱讀
    汽車異構(gòu)硬件平臺(tái)開發(fā)如何進(jìn)行<b class='flag-5'>靜態(tài)</b>代碼<b class='flag-5'>分析</b>

    放大電路的基本分析方法有哪兩種

    放大電路是電子學(xué)中的基礎(chǔ)組成部分,用于增強(qiáng)信號(hào)的幅度而不改變其基本特性。在電子工程中,放大電路的設(shè)計(jì)和分析是至關(guān)重要的。放大電路的基本分析方法主要有兩種:直流分析和交流分析。 直流
    的頭像 發(fā)表于 09-23 10:40 ?652次閱讀

    恒訊科技分析:如何測(cè)試海外靜態(tài)IP服務(wù)的穩(wěn)定性和速度?

    測(cè)試海外靜態(tài)IP服務(wù)的穩(wěn)定性和速度可以通過以下步驟進(jìn)行: 1、選擇測(cè)試工具:使用網(wǎng)絡(luò)測(cè)試工具,如ping命令、traceroute(或 racert)、網(wǎng)絡(luò)速度測(cè)試網(wǎng)站(例如
    的頭像 發(fā)表于 08-14 14:58 ?385次閱讀

    RS觸發(fā)器的靜態(tài)特性分析

    RS觸發(fā)器(Reset-Set Trigger)是數(shù)字電路中的一種基本邏輯單元,具有兩個(gè)穩(wěn)定狀態(tài),即“置位”(Set)狀態(tài)和“復(fù)位”(Reset)狀態(tài)。其靜態(tài)特性主要指的是在沒有外部觸發(fā)信號(hào)變化時(shí),觸發(fā)器保持其當(dāng)前狀態(tài)不變的能力。
    的頭像 發(fā)表于 08-12 09:55 ?594次閱讀

    對(duì)放大電路的分析方法介紹

    放大電路是電子技術(shù)中非常重要的組成部分,它廣泛應(yīng)用于信號(hào)處理、通信、測(cè)量等領(lǐng)域。對(duì)于放大電路的分析,通??梢苑譃橹绷?b class='flag-5'>分析和交流分析兩種情況。下面我們將介紹這兩種分析方法。 直流
    的頭像 發(fā)表于 08-07 10:08 ?740次閱讀

    靜態(tài)工作點(diǎn)的高低對(duì)電路有什么影響

    靜態(tài)工作點(diǎn)(Q點(diǎn))是半導(dǎo)體器件在直流條件下的運(yùn)行狀態(tài),它對(duì)電路的性能和穩(wěn)定性有著重要的影響。在本文中,我們將介紹靜態(tài)工作點(diǎn)的高低對(duì)電路的影響,包括其對(duì)放大器性能、穩(wěn)定性、功耗、熱效應(yīng)等方面
    的頭像 發(fā)表于 08-06 15:38 ?1949次閱讀

    基于ANSYS的高速磨削電主軸動(dòng)靜態(tài)性能分析

    以國產(chǎn)120MD60Y6型高速磨削電主軸為研究對(duì)象,使用有限元分析方法,基于ANSYS Workbench建立高速電主軸模型,先分析靜態(tài)特性,計(jì)算工作條件下電主軸前端所受徑向力和軸承徑向剛度;然后
    的頭像 發(fā)表于 08-05 11:20 ?152次閱讀
    基于ANSYS的高速磨削電主軸動(dòng)<b class='flag-5'>靜態(tài)</b>性能<b class='flag-5'>分析</b>

    恒訊科技分析:香港站群服務(wù)器為什么要做偽靜態(tài)處理呢?

    提高搜索引擎優(yōu)化(SEO)效果:偽靜態(tài)處理可以使得動(dòng)態(tài)網(wǎng)頁URL看起來像是靜態(tài)網(wǎng)頁的URL,這有助于搜索引擎更好地索引網(wǎng)站內(nèi)容。搜索引擎通常偏好靜態(tài)網(wǎng)頁,因?yàn)樗鼈冋J(rèn)為靜態(tài)網(wǎng)頁更穩(wěn)定、內(nèi)
    的頭像 發(fā)表于 07-31 12:49 ?288次閱讀

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定的區(qū)別是什么

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定是電力系統(tǒng)穩(wěn)定性分析中的兩個(gè)重要概念,它們分別描述了電力系統(tǒng)在受到擾動(dòng)后的動(dòng)態(tài)響應(yīng)和穩(wěn)態(tài)運(yùn)行狀態(tài)。下面將介紹暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定的區(qū)別,并從多個(gè)方面進(jìn)行比較。 定義上的區(qū)別 暫態(tài)穩(wěn)定
    的頭像 發(fā)表于 07-26 09:41 ?2943次閱讀

    請(qǐng)問ESP-IDF v4.1怎么生成靜態(tài)庫和調(diào)用靜態(tài)庫?

    ESP-IDF v4.1怎么生成靜態(tài)庫和調(diào)用靜態(tài)
    發(fā)表于 06-24 09:00

    IAR通過多架構(gòu)認(rèn)證的靜態(tài)分析工具加速代碼質(zhì)量自動(dòng)化

    公司推出經(jīng)TüV SüD認(rèn)證的C-STAT靜態(tài)分析工具,適用于最新發(fā)布的IAR Embedded Workbench for RISC-V V3.30.2功能安全版。
    的頭像 發(fā)表于 06-19 15:49 ?404次閱讀

    晶閘管的靜態(tài)特性與伏安特性詳解

    晶閘管的靜態(tài)特性主要涉及其在靜態(tài)條件下的電氣特性,包括其導(dǎo)通和關(guān)斷的行為。
    的頭像 發(fā)表于 05-24 18:10 ?2506次閱讀

    靜態(tài)電阻應(yīng)變儀的使用及橋路連接

    靜態(tài)電阻應(yīng)變儀是一種用于測(cè)量結(jié)構(gòu)或材料在靜態(tài)負(fù)載下產(chǎn)生的微小形變的儀器。
    的頭像 發(fā)表于 05-16 15:48 ?2792次閱讀

    如何設(shè)置靜態(tài)IP代理

    靜態(tài)IP
    jf_60146132
    發(fā)布于 :2024年04月29日 07:46:31