91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

通過分析可執(zhí)行文件提高可靠性和安全性

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:David Melski ? 2022-06-17 16:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

當(dāng)今可用的許多源代碼分析工具,包括 Coverity Prevent、GrammaTech CodeSonar、Klocwork K7 和 MathWorks PolySpace Verifier,可檢測(cè)軟件缺陷和漏洞。在過去的幾年里,對(duì)可執(zhí)行機(jī)器代碼進(jìn)行類似分析的興趣越來越大。三個(gè)主要因素推動(dòng)了對(duì)直接機(jī)器代碼分析的興趣:控制 COTS 軟件可靠性和安全性的需要、相對(duì)于源代碼分析的技術(shù)優(yōu)勢(shì),以及最近其可行性和實(shí)用性的增加,這些已被研究的突破所證實(shí)社區(qū)。David 探討了機(jī)器代碼分析的優(yōu)勢(shì)并總結(jié)了當(dāng)前的技術(shù)水平。

收回對(duì)應(yīng)用程序可靠性和安全性的控制

上市時(shí)間和成本要求增加了開發(fā)人員在嵌入式軟件應(yīng)用程序中使用 COTS 組件的情況。雖然這些組件具有優(yōu)勢(shì),但它們的代價(jià)是一些公認(rèn)的缺點(diǎn)。特別是,消費(fèi)者通常必須接受軟件,“按原樣”,并相信生產(chǎn)者已采取必要措施來確保安全性和可靠性。不幸的是,經(jīng)驗(yàn)表明情況并非總是如此。

消費(fèi)者如何知道 COTS 組件是否具有滿足其需求的可接受的安全性和可靠性?一些 COTS 組件提供了一些關(guān)于所遵循的開發(fā)和測(cè)試過程的信息。示例包括一些實(shí)時(shí)操作系統(tǒng) (RTOS),它們提供文檔以幫助航空電子軟件開發(fā)人員完成 DO-178B 認(rèn)證過程。但即使在這些不尋常的情況下,通常也只有 RTOS 的精簡(jiǎn)功能版本有據(jù)可查。對(duì)于大多數(shù)第三方組件,沒有關(guān)于開發(fā)和測(cè)試過程的信息可用。

對(duì)于開發(fā)安全或高可靠性應(yīng)用程序的組織而言,無法評(píng)估第三方組件的質(zhì)量是一個(gè)重大問題。毫不奇怪,最早支持開發(fā)更好的可執(zhí)行文件分析技術(shù)的人之一是國(guó)家安全局,它在 2004 年公開強(qiáng)調(diào)了分析二進(jìn)制文件的工具的重要性[13]。特別值得關(guān)注的是用于國(guó)家關(guān)鍵基礎(chǔ)設(shè)施的軟件,例如應(yīng)急準(zhǔn)備通信和發(fā)電廠。

機(jī)器代碼分析提供了一種評(píng)估第三方代碼的方法,即使源不可用。檢測(cè)缺陷、漏洞和故意插入的惡意代碼的能力使用戶能夠重新獲得一些控制權(quán)來確定一個(gè)軟件是否符合他們的接受標(biāo)準(zhǔn)。用戶不必盲目信任軟件生產(chǎn)者。

機(jī)器碼分析的技術(shù)優(yōu)勢(shì)

COTS 軟件通常不提供源代碼,因此需要進(jìn)行機(jī)器代碼分析。事實(shí)上,即使源代碼可用,機(jī)器代碼分析也比其他分析技術(shù)具有許多優(yōu)勢(shì)。這是因?yàn)樵创a沒有被執(zhí)行;相反,它被編譯成機(jī)器代碼程序(可執(zhí)行文件)。分析用解釋性語(yǔ)言編寫的程序是另一回事,盡管在那里,源代碼也不是直接在處理器上執(zhí)行的。

由于多種原因,源代碼語(yǔ)義和編譯后的可執(zhí)行語(yǔ)義之間可能存在差異。這種潛在的不匹配被稱為“你所看到的不是你所執(zhí)行的”(WYSINWYX)效應(yīng)[4]。WYSINWYX 承認(rèn),鑒于過程中實(shí)際執(zhí)行的內(nèi)容,源代碼中的語(yǔ)義可能不完整或不精確。

WYSINWYX 效果可能由多種因素引起,包括編譯器錯(cuò)誤和鏈接第三方庫(kù)。圖 1 說明了原始程序的含義如何隨著在最終可執(zhí)行文件創(chuàng)建之前添加模塊而發(fā)生變化。

圖1

poYBAGKsOImAeA74AACdYAbBqmQ572.png

在 2002 年 Microsoft [10] 的一次安全審查中發(fā)現(xiàn)了一個(gè)引發(fā) WYSINWYX 效應(yīng)的編譯器錯(cuò)誤示例。在這種情況下,登錄程序的源代碼中出現(xiàn)了如下代碼:

memset (密碼, ??ò \ 0???, len);

免費(fèi)(密碼);

如其名稱所示,緩沖區(qū)密碼用于保存用戶的密碼。作為安全預(yù)防措施,程序員希望盡量減少這些敏感信息在內(nèi)存中的保存時(shí)間。因此,在釋放緩沖區(qū)(第 2 行)之前,目的是用零覆蓋敏感密碼(第 1 行)。

但是,在這種情況下,Microsoft C++ 編譯器確定密碼歸零語(yǔ)句是“無用”,并將其刪除。從技術(shù)意義上說,編譯器是正確的:memset 寫入的零不應(yīng)該被任何其他語(yǔ)句讀取,并且刪除 memset 不會(huì)影響程序的結(jié)果。然而,優(yōu)化導(dǎo)致了源代碼中不可見的安全漏洞。

每一個(gè)潛在的 WYSINWYX 效果都強(qiáng)調(diào)了機(jī)器代碼分析工具,?? 優(yōu)于源代碼分析工具的優(yōu)勢(shì)。上一節(jié)討論了無法訪問程序源代碼的問題。然而,即使是擁有源代碼的開發(fā)人員也很少擁有最終包含在可執(zhí)行文件中的所有代碼的源代碼。通常,他們將其源代碼鏈接到僅以二進(jìn)制形式存在的第三方庫(kù)。特別是在嵌入式軟件中,源代碼可能包括內(nèi)聯(lián)匯編。在某些情況下,會(huì)在編譯源代碼后對(duì)可執(zhí)行文件進(jìn)行修改。源工具通常針對(duì)以一種語(yǔ)言編寫的程序,但可執(zhí)行文件可以從多種不同語(yǔ)言的源代碼編譯。

WYSINWYX 效應(yīng)最突出的原因之一是源語(yǔ)言語(yǔ)義通常未指定。例如,C 和 C++ 沒有指定函數(shù)調(diào)用參數(shù)的求值順序。(Scott Meyers [14] 的 Effective C++ 中的示例請(qǐng)參見側(cè)邊欄。)從技術(shù)上講,由于源語(yǔ)言歧義導(dǎo)致的問題在源代碼中是可見的。然而,分析一個(gè)模棱兩可的陳述的所有可能行為很快就會(huì)變得棘手。出于這個(gè)原因,源代碼分析工具(通常是程序員)通常通過任意選擇一種合理的解釋來解決歧義。由于無法保證他們的選擇與編譯器相同,因此語(yǔ)言歧義被認(rèn)為是 WYSINWYX 效應(yīng)的主要原因。

編譯器為解決源語(yǔ)言歧義所做的選擇可能會(huì)對(duì)漏洞的存在產(chǎn)生重要影響。安全漏洞經(jīng)常依賴于數(shù)據(jù)對(duì)象布局、堆棧中變量的順序、值是存儲(chǔ)在 RAM 中還是僅存儲(chǔ)在寄存器中等細(xì)節(jié)。在像 C 或 C++ 這樣的語(yǔ)言中,這些細(xì)節(jié)中的大部分都由編譯器自行決定。

源代碼分析工具不能考慮編譯器可能選擇的所有不同選項(xiàng),至少在沒有做出模糊近似的情況下不能考慮。然而,機(jī)器代碼分析具有查看編譯器做出的確切決定的優(yōu)勢(shì)。出于這個(gè)原因,機(jī)器代碼分析有可能比源代碼分析更精確。

機(jī)器碼分析的最新進(jìn)展

研究人員在將靜態(tài)分析應(yīng)用于機(jī)器代碼方面取得了長(zhǎng)足的進(jìn)步。幾個(gè)小組已經(jīng)證明了機(jī)器代碼分析在識(shí)別惡意代碼[6,7,11,12]、安全漏洞[8]和影響可靠性的缺陷[3,9]方面的實(shí)用性。

機(jī)器代碼分析的一種用途是創(chuàng)建捕獲程序語(yǔ)義的中間表示 (IR)。用于查找錯(cuò)誤和安全漏洞的源代碼分析工具通常依賴于源代碼中現(xiàn)成的信息(例如類型),而不是機(jī)器代碼。IR 恢復(fù)的目標(biāo)是填補(bǔ)這一空白,并允許開發(fā)人員在機(jī)器代碼上使用源分析技術(shù)。與開發(fā)專門技術(shù)或一次采用一種源分析技術(shù)相比,IR 恢復(fù)可以同時(shí)啟用多種技術(shù)。

CodeSurfer/x86 是從可執(zhí)行文件中恢復(fù) IR 的一種高級(jí)工具,它是 GrammaTech 和威斯康星大學(xué)合作研究的成果。對(duì)于需要了解一段惡意代碼的潛在影響的安全分析師來說,CodeSurfer/x86 是一個(gè)很有價(jià)值的工具。雖然該工具目前支持 x86 機(jī)器代碼分析,但支持其他處理器架構(gòu)的工作正在進(jìn)行中,包括 PowerPC 架構(gòu)和 ARM。它的目的是構(gòu)建一個(gè)類似于編譯器或源分析工具使用的 IR。具體來說,恢復(fù)的 IR 代表以下信息:

拆解清單

控制流圖,解決了間接跳轉(zhuǎn)

調(diào)用圖,解決了間接調(diào)用

關(guān)于程序的信息,??s 變量

指針變量的可能值

每個(gè)控制流圖節(jié)點(diǎn)的已使用、已終止和可能已終止的變量集

數(shù)據(jù)依賴關(guān)系,包括涉及內(nèi)存訪問的指令之間的依賴關(guān)系

類型信息(例如,基類型、指針類型和結(jié)構(gòu))

CodeSurfer/x86 從在 Intel x86 處理器上運(yùn)行的可執(zhí)行文件執(zhí)行 IR 恢復(fù)。IR 可用作構(gòu)建進(jìn)一步分析以查找錯(cuò)誤和漏洞的基礎(chǔ),或用于瀏覽 GUI 界面。圖 2 顯示了臭名昭著的 Nimda 病毒版本的恢復(fù) IR??梢暬?IR 組件包括反匯編列表、所選程序點(diǎn)的可能數(shù)據(jù)值和調(diào)用圖。

圖 2

pYYBAGKsOJKAf9AUAALXlGufgA8619.png

許多因素會(huì)使 IR 恢復(fù)復(fù)雜化。CodeSurfer/x86 不依賴符號(hào)表或源代碼信息,因?yàn)檫@些信息通常從 COTS 產(chǎn)品中剝離。即使存在此信息,它在潛在的惡意代碼中也不可靠。恢復(fù)有關(guān)潛在指針值的信息需要同時(shí)分析指針和數(shù)值,因?yàn)榈刂分岛蛿?shù)值不容易區(qū)分。必須根據(jù)數(shù)據(jù)訪問模式推斷類型信息,因?yàn)闆]有可用的結(jié)構(gòu)化數(shù)據(jù)類型。

盡管執(zhí)行 IR 恢復(fù)有困難,但該技術(shù)已經(jīng)發(fā)展到足以開始產(chǎn)生結(jié)果。Balakrishnan 和 Reps 最近在 Windows 設(shè)備驅(qū)動(dòng)程序分析中展示了 IR 恢復(fù)的使用。他們發(fā)現(xiàn) CodeSurfer 的 IR 恢復(fù)在設(shè)備驅(qū)動(dòng)程序上產(chǎn)生了精確的結(jié)果,并證明通過在恢復(fù)的 IR 上進(jìn)行構(gòu)建,他們可以采用一種分析設(shè)備驅(qū)動(dòng)程序源代碼的技術(shù)來分析機(jī)器代碼并復(fù)制一些相同的結(jié)果。分析機(jī)器代碼也有助于解決前面討論的所見即所得問題。

滿足安全關(guān)鍵需求

機(jī)器代碼分析已經(jīng)在識(shí)別軟件中的錯(cuò)誤和安全漏洞以及幫助用戶評(píng)估第三方代碼方面發(fā)揮著重要作用。預(yù)計(jì)安全關(guān)鍵軟件生產(chǎn)商將開始對(duì)他們自己的軟件使用機(jī)器代碼分析來解釋所見即所得效應(yīng)。不斷增長(zhǎng)的需求和不斷增加的工具支持和功能將繼續(xù)推動(dòng)機(jī)器代碼分析的增長(zhǎng)。

審核編輯:郭婷

聲明:本文內(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)注

    68

    文章

    20298

    瀏覽量

    253580
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7419

    瀏覽量

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51797
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    高可靠性電流檢測(cè)電路設(shè)計(jì)的關(guān)鍵要點(diǎn)

    準(zhǔn)確的電流檢測(cè)對(duì)于實(shí)現(xiàn)控制、確保保護(hù)功能以及提高電源效率至關(guān)重要。這是電動(dòng)汽車(EV)、能源系統(tǒng)、工業(yè)設(shè)備等各種應(yīng)用領(lǐng)域共同面臨的課題。ROHM解決方案具備高可靠性電流檢測(cè)所需的 高精度、高穩(wěn)定性及強(qiáng)抗噪 。
    的頭像 發(fā)表于 03-06 10:26 ?2344次閱讀
    <b class='flag-5'>高可靠性</b>電流檢測(cè)電路設(shè)計(jì)的關(guān)鍵要點(diǎn)

    什么是高可靠性?

    越來越高。 高可靠性PCB可以發(fā)揮穩(wěn)健的載體作用,實(shí)現(xiàn)PCBA的長(zhǎng)期、穩(wěn)定運(yùn)作,從而保證終端產(chǎn)品的安全性、穩(wěn)定性和使用壽命,企業(yè)進(jìn)而得以增強(qiáng)競(jìng)爭(zhēng)力、提升信譽(yù)、擴(kuò)大市場(chǎng)份額、提高經(jīng)濟(jì)效益。 三
    發(fā)表于 01-29 14:49

    MGDM-155系列高可靠性DC-DC電源模塊

    MGDM-155系列高可靠性DC-DC電源模塊MGDM-155是法國(guó)GaiaConverter公司專為航空航天、軍事及高端工業(yè)領(lǐng)域打造的高可靠性(Hi-Rel)DC/DC電源模塊系列,采用標(biāo)準(zhǔn)
    發(fā)表于 01-28 08:41

    初識(shí)ros2 功能包建立與可執(zhí)行文件的配置

    本文介紹了ROS2程序的兩種啟動(dòng)方式:直接運(yùn)行可執(zhí)行文件(ros2 run)和使用啟動(dòng)文件(ros2 launch)。重點(diǎn)講解了Python軟件包的結(jié)構(gòu),包括package.xml、setup.py
    的頭像 發(fā)表于 01-22 13:41 ?299次閱讀

    SiLM27531HAC-7G高可靠性的高速單通道低邊驅(qū)動(dòng)器

    拉電流和灌電流。具備極快的開關(guān)響應(yīng),典型上升/下降時(shí)間為9ns和8ns。 極低信號(hào)延遲:從輸入到輸出的開通與關(guān)斷傳播延遲典型值均僅為21ns,確保了對(duì)功率器件的精確、快速控制。 高可靠性設(shè)計(jì):內(nèi)置欠壓
    發(fā)表于 12-29 08:33

    KEMET HRA系列SMD MLCCs:高可靠性電容的理想之選

    Reliability Alternative (HRA)系列表面貼裝多層陶瓷片式電容器(SMD MLCCs),憑借其卓越的性能和高可靠性,成為眾多工程師在設(shè)計(jì)高可靠性應(yīng)用時(shí)的理想選擇。 文件下載: KEMET
    的頭像 發(fā)表于 12-15 13:50 ?443次閱讀

    風(fēng)機(jī)狀態(tài)監(jiān)測(cè)的關(guān)鍵:高可靠性振動(dòng)傳感技術(shù)解析

    風(fēng)機(jī)作為關(guān)鍵工業(yè)設(shè)備,其穩(wěn)定運(yùn)行依賴精準(zhǔn)的狀態(tài)監(jiān)測(cè)。振動(dòng)傳感器通過捕捉早期異常,支撐預(yù)測(cè)維護(hù)。直川科技提供高可靠性、適應(yīng)復(fù)雜工況的振動(dòng)傳感方案,已在水泥、風(fēng)電等多個(gè)領(lǐng)域成功應(yīng)用,助力企業(yè)實(shí)現(xiàn)高效、
    的頭像 發(fā)表于 12-03 10:14 ?998次閱讀
    風(fēng)機(jī)狀態(tài)監(jiān)測(cè)的關(guān)鍵:<b class='flag-5'>高可靠性</b>振動(dòng)傳感技術(shù)解析

    車規(guī)級(jí)與消費(fèi)級(jí)芯片的可靠性、安全性與成本差異

    引言在汽車電子和消費(fèi)電子領(lǐng)域,"車規(guī)級(jí)"與"消費(fèi)級(jí)"芯片代表了兩種截然不同的設(shè)計(jì)理念和技術(shù)標(biāo)準(zhǔn)。車規(guī)級(jí)芯片專為汽車應(yīng)用設(shè)計(jì),強(qiáng)調(diào)在極端環(huán)境下的可靠性安全性
    的頭像 發(fā)表于 11-18 17:27 ?1399次閱讀
    車規(guī)級(jí)與消費(fèi)級(jí)芯片的<b class='flag-5'>可靠性</b>、<b class='flag-5'>安全性</b>與成本差異

    深入解析與使用感受:Isograph、Medini與REANA可靠性分析軟件對(duì)比

    上海磐時(shí)PANSHI“磐時(shí),做汽車企業(yè)的安全智庫(kù)”深入解析與使用感受:Isograph、Medini與REANA可靠性分析軟件對(duì)比汽車行業(yè)的復(fù)雜和對(duì)安全性的高要求,使得傳統(tǒng)的
    的頭像 發(fā)表于 09-05 16:20 ?10次閱讀
    深入解析與使用感受:Isograph、Medini與REANA<b class='flag-5'>可靠性分析</b>軟件對(duì)比

    MGDM-150系列高可靠性DC/DC轉(zhuǎn)換器GAIA

    )?操作溫度:-40 °C ~ +105 °C(軍品級(jí) -55 °C 啟動(dòng)可選)產(chǎn)品優(yōu)勢(shì)l 無光耦合器設(shè)計(jì):選用專利技術(shù)固定開關(guān)拓?fù)浣Y(jié)構(gòu),避免光耦合器老化現(xiàn)象,提高長(zhǎng)期安全可靠性。l 自動(dòng)化制造與封裝
    發(fā)表于 07-29 09:35

    聚徽工業(yè)液晶屏的高可靠性的設(shè)計(jì)要點(diǎn)與實(shí)踐意義

    在工業(yè)自動(dòng)化、智能控制、能源管理等復(fù)雜且嚴(yán)苛的工業(yè)環(huán)境中,工業(yè)液晶屏作為人機(jī)交互與信息展示的核心設(shè)備,其可靠性直接影響生產(chǎn)效率、設(shè)備安全與決策準(zhǔn)確。聚徽廠家工業(yè)液晶屏憑借高可靠性優(yōu)勢(shì)
    的頭像 發(fā)表于 07-11 18:09 ?821次閱讀

    提供半導(dǎo)體工藝可靠性測(cè)試-WLR晶圓可靠性測(cè)試

    隨著半導(dǎo)體工藝復(fù)雜度提升,可靠性要求與測(cè)試成本及時(shí)間之間的矛盾日益凸顯。晶圓級(jí)可靠性(Wafer Level Reliability, WLR)技術(shù)通過直接在未封裝晶圓上施加加速應(yīng)力,實(shí)現(xiàn)快速
    發(fā)表于 05-07 20:34

    電機(jī)微機(jī)控制系統(tǒng)可靠性分析

    長(zhǎng)期可靠地工作,這一問題牽涉到許多有關(guān)系統(tǒng)抗干擾設(shè)計(jì)、故障自診斷、自恢復(fù)等有關(guān)可靠性的知識(shí)和技術(shù)。本文著重介紹與可靠性有關(guān)的一些概念和電機(jī)微機(jī)控制系統(tǒng)中常見放障的分析,并指出
    發(fā)表于 04-29 16:14

    IGBT的應(yīng)用可靠性與失效分析

    包括器件固有可靠性和使用可靠性。固有可靠性問題包括安全工作區(qū)、閂鎖效應(yīng)、雪崩耐量、短路能力及功耗等,使用可靠性問題包括并聯(lián)均流、軟關(guān)斷、電磁
    的頭像 發(fā)表于 04-25 09:38 ?3373次閱讀
    IGBT的應(yīng)用<b class='flag-5'>可靠性</b>與失效<b class='flag-5'>分析</b>

    保障汽車安全:PCBA可靠性提升的關(guān)鍵要素

    汽車電子PCBA的可靠性提升要點(diǎn) 隨著汽車智能化、網(wǎng)聯(lián)化的快速發(fā)展,汽車電子在整車中的占比不斷提升,其重要日益凸顯。作為汽車電子的核心部件,PCBA(印制電路板組裝)的可靠性直接關(guān)系到汽車的
    的頭像 發(fā)表于 04-14 17:45 ?756次閱讀