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

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

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

有效的嵌入式軟件安全測(cè)試

星星科技指導(dǎo)員 ? 來(lái)源:ADI ? 作者:ADI ? 2023-06-29 14:27 ? 次閱讀

互聯(lián)嵌入式系統(tǒng)在我們的日常生活中變得越來(lái)越普遍,也更容易受到攻擊。嵌入式軟件安全測(cè)試的現(xiàn)有技術(shù)依賴于源代碼或二進(jìn)制文件。但是,測(cè)試二進(jìn)制代碼是檢測(cè)漏洞的困難方法,因?yàn)樵创a語(yǔ)義會(huì)丟失。這使得識(shí)別內(nèi)存安全違規(guī)和損壞變得困難。在嵌入式系統(tǒng)中,高級(jí)源代碼往往與手寫(xiě)匯編代碼混合在一起,當(dāng)前基于源代碼的工具無(wú)法直接處理這些代碼。

但是,有一個(gè)新框架可用,使您能夠?qū)?a href="http://srfitnesspt.com/soft/data/21-22/" target="_blank">嵌入式系統(tǒng)軟件執(zhí)行系統(tǒng)范圍的安全測(cè)試。開(kāi)源的 Inception 框架引入了嵌入式系統(tǒng)中符號(hào)執(zhí)行的新技術(shù)。簡(jiǎn)而言之,符號(hào)執(zhí)行是一種實(shí)現(xiàn)高代碼覆蓋率并在檢測(cè)到錯(cuò)誤時(shí)生成測(cè)試用例的技術(shù)。我的EURECOM同事Giovanni Camurati和Aurélien Francillon,以及我將在論文中更多地談?wù)揑nception。

Inception背后的動(dòng)機(jī)是幫助開(kāi)發(fā)人員發(fā)現(xiàn)其連接的嵌入式系統(tǒng)中的漏洞。畢竟,嵌入式軟件中的漏洞可能會(huì)產(chǎn)生可怕的后果。例如,用于越獄某些智能手機(jī)的引導(dǎo)ROM漏洞無(wú)法在軟件中修補(bǔ),因?yàn)橐龑?dǎo)加載程序在掩碼ROM中是硬編碼的。因此,能夠徹底測(cè)試此類(lèi)低級(jí)嵌入式軟件至關(guān)重要。與僅使用二進(jìn)制代碼相比,基于源代碼的測(cè)試可以更好地檢測(cè)錯(cuò)誤。但是,高級(jí)編程語(yǔ)言 (C/C++) 通常與手寫(xiě)匯編混合(以執(zhí)行手動(dòng)優(yōu)化或啟用硬件功能)。在某些情況下,為板級(jí)支持包或?qū)S袔?kù)代碼提供二進(jìn)制代碼。由于這些原因,測(cè)試嵌入式系統(tǒng)軟件需要對(duì)所有這些語(yǔ)言的大量支持。

Inception 如何發(fā)現(xiàn)漏洞

初始由三個(gè)關(guān)鍵組件組成:

Inception 轉(zhuǎn)換器從高級(jí)源代碼、手寫(xiě)程序集、二進(jìn)制庫(kù)和部分處理器硬件行為生成和合并 LLVM 位代碼。

基于 KLEE 的 Inception 符號(hào)虛擬機(jī)執(zhí)行符號(hào)執(zhí)行。它使用多種策略來(lái)管理不同級(jí)別的內(nèi)存抽象、與外圍設(shè)備的交互和中斷。

Inception Debugger是一個(gè)高性能的JTAG調(diào)試器,它將內(nèi)存訪問(wèn)重定向到真實(shí)硬件。

Camurati,F(xiàn)rancillon和我使用53,000個(gè)測(cè)試驗(yàn)證了我們的實(shí)現(xiàn),這些測(cè)試將Inception執(zhí)行與Arm Cortex-M3芯片上的具體執(zhí)行進(jìn)行了比較。在 USENIX 的演講中,我們將討論我們?nèi)绾卧?1624 個(gè)合成易受攻擊的程序、4 個(gè)真實(shí)的開(kāi)源和工業(yè)應(yīng)用程序以及 20 個(gè)演示的基準(zhǔn)上展示 Inception 的優(yōu)勢(shì)。在這次檢查中,我們發(fā)現(xiàn)了八個(gè)崩潰和兩個(gè)以前未知的漏洞,這突出了Inception框架在嵌入式設(shè)備固件測(cè)試方面的效果。

在實(shí)際的產(chǎn)品開(kāi)發(fā)方案中,Inception 框架對(duì)于商業(yè)引導(dǎo)加載程序非常有用,因?yàn)樗鼈兙哂械图?jí)代碼并且經(jīng)常解析不受信任的輸入。當(dāng)真正的硬件尚不可用時(shí),引導(dǎo)加載程序很難測(cè)試。我們分析了一個(gè)安全引導(dǎo)加載程序,它支持存儲(chǔ)在一次性可編程(OTP)內(nèi)存中的多個(gè)引導(dǎo)選項(xiàng)。在特定模式下執(zhí)行時(shí),引導(dǎo)加載程序會(huì)填充一個(gè)結(jié)構(gòu),其中包含有關(guān)要加載的應(yīng)用程序的信息。結(jié)構(gòu)位置保存在未初始化的SRAM位置(未初始化的指針?lè)Q為p_header)。如果無(wú)效寫(xiě)入未觸發(fā)任何其他錯(cuò)誤,引導(dǎo)加載程序仍可以在start_address時(shí)執(zhí)行并成功加載應(yīng)用程序,這使得問(wèn)題難以在實(shí)際硬件上檢測(cè)到。它不會(huì)在FPGA原型上崩潰,因?yàn)镾RAM在啟動(dòng)時(shí)初始化為0,而硅片上的情況并非如此。此外,稍后嘗試檢測(cè)錯(cuò)誤(例如在硅片上)將付出高昂的代價(jià)。因此,攻擊者可以獲得對(duì)p_header值的部分控制權(quán)。我們還在商用芯片的軟件開(kāi)發(fā)工具包上測(cè)試了Inception。硬件原型尚不可用,因此我們將外設(shè)讀取配置為返回不受約束的符號(hào)值。Inception 發(fā)現(xiàn)了一個(gè)測(cè)試用例,其中逐位移位依賴于不受信任的值;該錯(cuò)誤會(huì)導(dǎo)致外圍設(shè)備配置錯(cuò)誤和意外行為。最后,我們將 Inception 框架應(yīng)用于正在開(kāi)發(fā)的商業(yè)支付終端。我們 使用 其 FPGA 原型 來(lái) 重新 定向 大多數(shù) 外 設(shè) 和 其 中斷。Inception檢測(cè)到八個(gè)潛在漏洞。

增強(qiáng)嵌入式軟件測(cè)試

在嵌入式應(yīng)用程序中,手寫(xiě)匯編和第三方二進(jìn)制庫(kù)的使用相當(dāng)普遍。通常,即使內(nèi)存變得更便宜并且編譯器效率提高,也有必要手動(dòng)優(yōu)化代碼。程序集還用于直接與一些低級(jí)處理器功能交互。但是,這限制了傳統(tǒng)的基于源代碼的測(cè)試框架的使用。Inception 框架提供了一種強(qiáng)大的方法,可以在源代碼可用時(shí)增強(qiáng)嵌入式軟件測(cè)試。

審核編輯:郭婷

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

    關(guān)注

    68

    文章

    19038

    瀏覽量

    228456
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18912

    瀏覽量

    300777
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2943

    瀏覽量

    66569
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式軟件測(cè)試的參考書(shū)籍有哪些?

    》是2004年電子工業(yè)出版社出版的圖書(shū),作者是布魯克曼。內(nèi)容簡(jiǎn)介《嵌入式軟件測(cè)試》立足于工業(yè)實(shí)踐,旨在為有效控制復(fù)雜的嵌入式
    發(fā)表于 10-27 06:50

    什么是嵌入式軟件

    的自控軟件等等。嵌入式系統(tǒng)因其低成本、體積小、低功耗、穩(wěn)定性和實(shí)時(shí)性強(qiáng)等特點(diǎn)將會(huì)越來(lái)越被人們所應(yīng)用。什么是嵌入式測(cè)試?依托于質(zhì)量保證,安全
    發(fā)表于 10-28 08:45

    嵌入式軟件測(cè)試流程

    過(guò)程中,所接觸到的文檔,以及,要輸出的測(cè)試文檔,全都是使用的英文的。從事的是嵌入式軟件的信息安全方面的測(cè)試。
    發(fā)表于 12-20 07:07

    基于模塊化設(shè)計(jì)的嵌入式軟件測(cè)試方法

    分析嵌入式軟件的特點(diǎn),綜述傳統(tǒng)的軟件測(cè)試方法;針對(duì)嵌入式軟件的特點(diǎn),提出
    發(fā)表于 05-18 13:26 ?23次下載

    基于模塊化設(shè)計(jì)的嵌入式軟件測(cè)試方法

    摘要:分析嵌入式軟件的特點(diǎn),綜述傳統(tǒng)的軟件測(cè)試方法;針對(duì)嵌入式軟件的特點(diǎn),提出
    發(fā)表于 04-07 00:32 ?2001次閱讀
    基于模塊化設(shè)計(jì)的<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>方法

    基于CodeTEST的嵌入式軟件測(cè)試技術(shù)

    嵌入式軟件測(cè)試有助于提高嵌入式軟件質(zhì)量和可靠性。因此,利用CodeTEST相對(duì)于其他嵌入式
    發(fā)表于 01-17 15:53 ?41次下載

    嵌入式Linux軟件測(cè)試框架的研究

    嵌入式Linux 軟件是最難測(cè)試的一類(lèi)軟件。在測(cè)試過(guò)程中通過(guò)使用有效
    發(fā)表于 06-07 17:14 ?29次下載

    嵌入式軟件測(cè)試的經(jīng)典參考書(shū)PDF電子書(shū)免費(fèi)下載

    嵌入式軟件測(cè)試》立足于工業(yè)實(shí)踐,旨在為有效控制復(fù)雜的嵌入式軟件
    發(fā)表于 05-05 08:00 ?21次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>的經(jīng)典參考書(shū)PDF電子書(shū)免費(fèi)下載

    嵌入式測(cè)試

    一、嵌入式軟件測(cè)試的方法  嵌入式軟件測(cè)試分為4個(gè)階段,即模塊
    發(fā)表于 10-19 18:32 ?18次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>測(cè)試</b>

    嵌入式軟件測(cè)試參考書(shū)籍

    測(cè)試》是2004年電子工業(yè)出版社出版的圖書(shū),作者是布魯克曼。 內(nèi)容簡(jiǎn)介 《嵌入式軟件測(cè)試》立足于工業(yè)實(shí)踐,旨在為有效控制復(fù)雜的
    發(fā)表于 10-20 12:06 ?51次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>參考書(shū)籍

    嵌入式軟件測(cè)試研究意義,嵌入式軟件測(cè)試的研究

    。大多數(shù)軟件測(cè)試方法都可以直接或間接地用于嵌入式軟件測(cè)試,但是由于操作系統(tǒng)的實(shí)時(shí)和嵌入式特性,
    發(fā)表于 10-20 17:20 ?17次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>研究意義,<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>的研究

    嵌入式軟件接口怎么測(cè)試,嵌入式系統(tǒng)接口測(cè)試策略.doc

    嵌入式系統(tǒng)接口測(cè)試策略嵌入式系統(tǒng)接口測(cè)試策略摘要:在日益廣泛應(yīng)用的嵌入式系統(tǒng)中,軟件
    發(fā)表于 10-20 19:06 ?16次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>接口怎么<b class='flag-5'>測(cè)試</b>,<b class='flag-5'>嵌入式</b>系統(tǒng)接口<b class='flag-5'>測(cè)試</b>策略.doc

    嵌入式軟件測(cè)試

    **嵌入式軟件測(cè)試工程師#有合適的可以留言#**科華恒盛職位介紹:嵌入式軟件測(cè)試工作職責(zé):1、負(fù)
    發(fā)表于 10-21 10:06 ?12次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>

    測(cè)試嵌入式軟件測(cè)試VS一般軟件測(cè)試

    文章目錄1)什么是軟件測(cè)試?測(cè)試的目的:軟件測(cè)試的特點(diǎn):軟件
    發(fā)表于 10-21 13:06 ?31次下載
    【<b class='flag-5'>測(cè)試</b>】<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>VS一般<b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>

    幾款常見(jiàn)的嵌入式軟件測(cè)試工具

    說(shuō)起嵌入式軟件測(cè)試,我們先快速了解一下嵌入式軟件自身的特點(diǎn)。嵌入式
    的頭像 發(fā)表于 02-14 15:50 ?7344次閱讀
    幾款常見(jiàn)的<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>測(cè)試</b>工具