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

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

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

有效的嵌入式軟件安全測試

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-06-29 14:27 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

增強嵌入式軟件測試

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

審核編輯:郭婷

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

    關(guān)注

    68

    文章

    18927

    瀏覽量

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

    關(guān)注

    5046

    文章

    18817

    瀏覽量

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

    關(guān)注

    96

    文章

    2942

    瀏覽量

    66444
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式軟件測試的參考書籍有哪些?

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

    什么是嵌入式軟件

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

    嵌入式軟件測試流程

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

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

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

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

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

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

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

    嵌入式Linux軟件測試框架的研究

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

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

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

    嵌入式測試

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

    嵌入式軟件測試參考書籍

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

    嵌入式軟件測試研究意義,嵌入式軟件測試的研究

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

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

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

    嵌入式軟件測試

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

    測試嵌入式軟件測試VS一般軟件測試

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

    幾款常見的嵌入式軟件測試工具

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