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

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

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

您的代碼有多容易受到攻擊

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Jay Thomas ? 2022-10-20 11:50 ? 次閱讀

在編寫代碼時,大多數(shù)人都知道他們在做什么 - 至少在當(dāng)時 - 但以后會有多清楚,以及其他人如何理解它?是否過于復(fù)雜?它是否遵循規(guī)定的編碼標(biāo)準(zhǔn)?是否有微妙的錯誤可能使其容易受到黑客攻擊?除非你檢查,否則你不知道,這意味著靜態(tài)分析。

軟件質(zhì)量的基礎(chǔ)(通常需要資格認(rèn)證或認(rèn)證)是靜態(tài)分析:對源代碼的解析和檢查。靜態(tài)分析提供了對代碼編寫情況的深刻見解,特別是參考質(zhì)量指標(biāo)和遵守編碼標(biāo)準(zhǔn);它為進(jìn)一步的評估提供了基礎(chǔ),包括控制和數(shù)據(jù)流分析以及結(jié)構(gòu)覆蓋分析;它為工件提供了基礎(chǔ),這些工件既是可接受的認(rèn)證文件,也是質(zhì)量的有形證據(jù)。

靜態(tài)分析在源代碼級別工作,方法是像編譯器一樣解析代碼,同時識別與控制和數(shù)據(jù)流相關(guān)的信息,例如條件分支的下落。它整理的數(shù)據(jù)為指標(biāo)提供了基礎(chǔ),這些指標(biāo)可幫助開發(fā)人員更好地了解正在開發(fā)的代碼的清晰度、復(fù)雜性甚至可測試性。在最簡單的形式中,它可以標(biāo)記看似微小的事情,例如拼寫錯誤,這些事情可能會導(dǎo)致數(shù)小時的延遲,然后才被發(fā)現(xiàn)。更復(fù)雜的靜態(tài)分析工具還可以計(jì)算諸如循環(huán)復(fù)雜性之類的指標(biāo),循環(huán)復(fù)雜度是通過程序或代碼段的唯一路徑數(shù)的度量,例如可能由過高的循環(huán)密度(嵌套在循環(huán)中的條件數(shù))導(dǎo)致的。靜態(tài)分析工具可以為程序的不同部分提供密度分?jǐn)?shù),可以指導(dǎo)開發(fā)人員提供更簡單,更清晰的路徑。這也帶來了更好的可理解性和改進(jìn)的可測試性。

靜態(tài)分析的另一個功能是確保符合編碼標(biāo)準(zhǔn),無論是行業(yè)定義的、用戶定義的還是兩者的組合。MISRA C、CERT C、CWE 等標(biāo)準(zhǔn)源自開發(fā)安全可靠的軟件的研究和行業(yè)最佳實(shí)踐。靜態(tài)分析提供保護(hù),防止在某些情況下可能導(dǎo)致問題的細(xì)微錯誤和疏忽,例如最近因未檢查變量長度而導(dǎo)致的臭名昭著的“心臟出血”漏洞。許多行業(yè)功能安全標(biāo)準(zhǔn),如汽車行業(yè)的ISO 26262和醫(yī)療設(shè)備的IEC 62304,也要求通過靜態(tài)分析進(jìn)行檢查,確保(例如)沒有隱藏的數(shù)據(jù)流,也沒有為了代碼質(zhì)量和安全性而無條件的跳躍。

靜態(tài)分析有助于“映射”未來分析

靜態(tài)分析為代碼系統(tǒng)開發(fā)了一種“大腦圖譜”,可以用作動態(tài)分析技術(shù)的基礎(chǔ),例如詳細(xì)的結(jié)構(gòu)覆蓋分析以及自動化單元和集成測試。反過來,這些生成自己的相關(guān)指標(biāo),以加強(qiáng)高質(zhì)量開發(fā)過程的證據(jù)。這些測試及其生成的工件與需求可追溯性工具結(jié)合使用,通過將功能、安全性和安保要求鏈接到代碼、分析結(jié)果以及測試用例和結(jié)果,建立了透明的開發(fā)生命周期。實(shí)際上,這種雙向可追溯性不僅為忠實(shí)和完整地實(shí)施要求提供了證據(jù)。它還支持對整個生命周期中發(fā)生的需求更改或失敗測試的影響分析,突出顯示受影響的軟件系統(tǒng)的所有部分,從而突出顯示需要重復(fù)的任何分析和測試。

靜態(tài)分析數(shù)據(jù)提供額外的好處

靜態(tài)分析對單元測試的有用性始于對代碼結(jié)構(gòu)的理解。通過靜態(tài)分析,可以分析應(yīng)用程序的數(shù)據(jù)和控制方面,理解接口,并推導(dǎo)出測試用例工具的基礎(chǔ)。這些線束對于與需求相關(guān)的測試非常寶貴,可節(jié)省時間和費(fèi)用。

從這個派生的數(shù)據(jù)集中,還可以自動生成測試用例本身來執(zhí)行大部分代碼,并通過結(jié)構(gòu)覆蓋率分析提供證據(jù)。這些自動生成的測試提供了一種理想的機(jī)制來增強(qiáng)基于需求的測試,以得出一組強(qiáng)大的測試用例,這些用例可以滿足功能、安全和安保要求。同樣,需求可追溯性可以從需求鏈接到驗(yàn)證軟件組件和驗(yàn)證應(yīng)用程序的測試用例。

在整個軟件開發(fā)生命周期中使用靜態(tài)分析時,可以防止?jié)撛阱e誤持續(xù)到需要更多的精力和費(fèi)用來糾正的程度。來自靜態(tài)分析的數(shù)據(jù)和依賴它的分析工具對于制作越來越多的政府和工業(yè)組織認(rèn)證所需的測試證明和文檔至關(guān)重要。

審核編輯:郭婷

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

    關(guān)注

    96

    文章

    2943

    瀏覽量

    66568
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1607

    瀏覽量

    48977
收藏 人收藏

    評論

    相關(guān)推薦

    波段和全波段收音機(jī)什么不同

    多個頻段的收音機(jī),通常包括AM(調(diào)幅)和FM(調(diào)頻)兩個頻段。 接收頻率范圍:波段收音機(jī)的接收頻率范圍通常為535-1605kHz(AM)和87.5-108MHz(FM)。 接收信號質(zhì)量:波段收音機(jī)的接收信號質(zhì)量受到頻段的限
    的頭像 發(fā)表于 08-06 10:17 ?4302次閱讀

    ESP8266 SDK 2.1.0是否受到KRACK的影響?

    ESP8266 SDK 2.1.0 是否受到 KRACK(WPA2 攻擊)的影響?攻擊會將 WPA2 加密密鑰更改為 null。由于二進(jìn)制庫,我找不到任何線索。
    發(fā)表于 07-11 06:34

    DDoS哪些攻擊手段?

    DDoS的攻擊方式很多種,最基本的DoS攻擊就是利用合理的服務(wù)請求來占用過多的服務(wù)資源,從而使合法用戶無法得到服務(wù)的響應(yīng)。單一的DoS攻擊一般是采用一對一方式的,當(dāng)
    的頭像 發(fā)表于 06-14 15:07 ?325次閱讀

    使用NB模組做開發(fā),模組容易受到影響導(dǎo)致異常復(fù)位怎么解決?

    使用NB模組做開發(fā),用MCU配置三極管導(dǎo)通關(guān)閉來控制模組復(fù)位。實(shí)際使用發(fā)現(xiàn)Reset容易受到外界干擾和天線射頻影響從而導(dǎo)致復(fù)位。
    發(fā)表于 06-04 06:51

    貼片電容為什么容易受到溫度的影響?

    貼片電容容易受到溫度影響的原因可以從多個方面來分析: ? ? ?? 首先,從貼片電容的材質(zhì)和結(jié)構(gòu)來看,其內(nèi)部通常包含由鎳、鐵、銅等一系列化學(xué)固性較差的金屬元素組成的電極,而外層則覆蓋有柔軟的抗絕緣
    的頭像 發(fā)表于 05-20 14:30 ?499次閱讀
    貼片電容為什么<b class='flag-5'>容易</b><b class='flag-5'>受到</b>溫度的影響?

    “五一假期將至:的企業(yè)網(wǎng)絡(luò)準(zhǔn)備好抵御黑客攻擊了嗎?”

    時機(jī)發(fā)起攻擊,因?yàn)槠髽I(yè)內(nèi)部可能沒有人及時發(fā)現(xiàn)和應(yīng)對,導(dǎo)致病毒爆發(fā)。 遠(yuǎn)程工作增加:在節(jié)假日中,部分員工可能選擇遠(yuǎn)程辦公,這增加了企業(yè)的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。遠(yuǎn)程連接相對而言不夠安全,容易成為攻擊的入口。 假期主題的釣魚
    的頭像 發(fā)表于 04-26 17:46 ?525次閱讀

    MotorControl Workbench生成的代碼是開環(huán)的嗎,為什么電機(jī)跑起來很容易受到外力導(dǎo)致停機(jī)?

    請問各位高手 MotorControl Workbench 生成的代碼是開環(huán)的嗎?為什么我的電機(jī)跑起來很容易受到外力導(dǎo)致停機(jī),我想讓它不停機(jī),請問什么好的辦法嗎 ?
    發(fā)表于 03-21 07:12

    隨機(jī)通信下智能體系統(tǒng)的干擾攻擊影響研究

    網(wǎng)絡(luò)控制系統(tǒng)可能會受到不同類型的網(wǎng)絡(luò)攻擊威脅[10-12],主要包括拒絕服務(wù)(denial of service, DoS)攻擊[7]、欺騙攻擊[8]、干擾
    發(fā)表于 03-01 11:00 ?436次閱讀
    隨機(jī)通信下<b class='flag-5'>多</b>智能體系統(tǒng)的干擾<b class='flag-5'>攻擊</b>影響研究

    傳感器容易受到干擾,該怎么處理?哪些辦法?

    模擬傳感器容易受到干擾,該怎么處理?哪些辦法? 傳感器是現(xiàn)代科技應(yīng)用中不可或缺的部分,它們通過感知環(huán)境中的物理量并將其轉(zhuǎn)換為可用的電信號。然而,傳感器容易
    的頭像 發(fā)表于 01-15 14:43 ?3555次閱讀

    DDoS攻擊的多種方式

    方的,這類攻擊稱為分布式拒絕服務(wù)攻擊,其中的攻擊者可以多個。DDOS攻擊以下幾種方式。 SY
    的頭像 發(fā)表于 01-12 16:17 ?526次閱讀

    單圈和多圈絕對值編碼器哪個容易受到斷電的影響呢?

    在斷電情況下,單圈絕對值編碼器相比多圈絕對值編碼器更容易受到影響。
    的頭像 發(fā)表于 01-09 09:07 ?557次閱讀

    【虹科干貨】Linux越來越容易受到攻擊,怎么防御?

    隨著網(wǎng)絡(luò)攻擊手段的不斷進(jìn)化,傳統(tǒng)的安全機(jī)制(如基于簽名的防病毒程序和機(jī)器學(xué)習(xí)防御)已不足以應(yīng)對高級網(wǎng)絡(luò)攻擊。本文探討了Linux服務(wù)器的安全漏洞,特別是針對企業(yè)和云服務(wù)的威脅,并提出了基于移動目標(biāo)防御技術(shù)的解決方案,旨在提高Linux服務(wù)器在不斷變化的威脅環(huán)境中的安全性和
    的頭像 發(fā)表于 12-25 15:33 ?413次閱讀
    【虹科干貨】Linux越來越<b class='flag-5'>容易</b><b class='flag-5'>受到</b><b class='flag-5'>攻擊</b>,怎么防御?

    Linux越來越容易受到攻擊,怎么防御?

    在數(shù)字化時代,網(wǎng)絡(luò)安全已成為企業(yè)不可忽視的重要議題。尤其是對于依賴Linux服務(wù)器的組織,面對日益復(fù)雜的網(wǎng)絡(luò)攻擊,傳統(tǒng)安全措施已顯不足。Linux服務(wù)器面臨著哪些新型網(wǎng)絡(luò)威脅,哪些有效的防御策略呢
    的頭像 發(fā)表于 12-23 08:04 ?939次閱讀
    Linux越來越<b class='flag-5'>容易</b><b class='flag-5'>受到</b><b class='flag-5'>攻擊</b>,怎么防御?

    ad7689電源隔離了還是容易受到干擾是為什么?

    (PT100)直接接在電路板上的讀數(shù)(采樣間隔5ms): 用30cm左右的導(dǎo)線接電阻箱時的讀數(shù): 為什么電源隔離了還是這么容易受到干擾?試過電源加共模電感,沒有效果,但是電源接地干擾就沒有了。除了接地什么辦法能處理掉干擾
    發(fā)表于 11-17 11:33

    印刷電路板容易受到攻擊的幾個部分?

    檢查完原理圖和布局設(shè)計(jì)圖后,布局設(shè)計(jì)圖將被轉(zhuǎn)換為一組文件。最常見的文件格式為“Gerber”,或RS-274X。它由ASCII格式的命令組成,表明電路板上的圖形。
    發(fā)表于 11-09 11:10 ?260次閱讀
    印刷電路板<b class='flag-5'>容易</b><b class='flag-5'>受到</b><b class='flag-5'>攻擊</b>的幾個部分?