在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

安全關鍵軟件的非侵入式代碼覆蓋

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Benjamin M. Brosgol ? 2022-06-28 15:50 ? 次閱讀

商業航空電子設備的 DO-178B 等認證標準要求有證據表明系統源代碼完全通過源自需求的測試來執行。傳統工具通過代碼檢測來獲取覆蓋率數據,但這會使分析變得復雜,因為被測試的代碼并不是最終將執行的代碼。

主機駐留兩部分技術提供了一種高效且具有成本效益的替代解決方案:目標仿真器與非侵入式覆蓋分析器相結合。模擬器不是解釋器;相反,它將目標代碼動態轉換為本地主機指令。因此,測試套件通常比在實際目標硬件上執行得更快。覆蓋分析器從從模擬器上的程序執行中檢索到的對象分支信息中獲取源覆蓋數據,并執行符合最嚴格覆蓋要求所需的任何附加分析。

簡化目標平臺的最終驗證;它需要重新運行測試并顯示結果與模擬器上的相同。這種方法完全支持 DO-178B 及其即將修訂的 DO-178C 的所有級別的安全認證。

驗證挑戰

DO-178B 等安全認證標準中規定的一項主要驗證活動是測試覆蓋率分析,這涉及證明每個軟件需求都得到滿足,并表明基于需求的測試完全覆蓋了源代碼。覆蓋率分析提出了幾個問題:

· 插裝:一種常見的方法是使用生成應用程序源代碼的修改(插裝)版本的工具,或者使用特殊開關編譯應用程序以生成插裝目標代碼。添加的代碼包含對適當日志記錄函數的調用。但是,檢測代碼不是將在最終系統上運行的代碼。要使用覆蓋數據,開發人員必須證明它也適用于未檢測的可執行文件。這不一定是一項簡單的任務。

· 目標硬件:雖然最終的軟硬件集成測試必須在實際部署的配置上進行,但在組件開發過程中需要目標板既昂貴又不方便。基于主機的解決方案更簡單且更具成本效益。

· 源代碼與對象覆蓋率: DO-178B 要求源代碼覆蓋率,但覆蓋率數據是根據執行程序計算得出的。在最高安全關鍵性(A 級)下,可能需要進行特殊分析來證明修改后的條件/決策覆蓋率 (MC/DC)。

此處描述的技術解決了這些問題。它基于從運行未檢測版本的應用程序軟件的主機駐留目標仿真器生成的執行跟蹤數據中獲取源覆蓋率指標。

DO-178B 測試覆蓋率分析

DO-178B 規定了兩種類型的測試覆蓋分析 [1, §6.4.4]:

· 基于需求的測試覆蓋分析:開發人員必須展示從每個需求到實現需求的源代碼以及測試套件的可追溯性,該套件的執行提供了正確實現需求的信心。

· 結構覆蓋分析:開發人員必須證明代碼結構已經完全通過基于需求的測試。如果這些測試沒有完全覆蓋源代碼,那么開發人員必須添加更多需求、添加更多測試和/或刪除代碼——稱為“死代碼”(DO-178B)或“無關代碼”代碼”(DO-178C)——不能追溯到需求。

所需覆蓋范圍取決于軟件組件的安全關鍵級別。在 C 級,只需要聲明覆蓋率;即程序中的每條語句必須至少執行一次。

在 B 級,需要決策覆蓋。在 DO-178B 用語中,決策是一個完整的布爾表達式,由原子布爾項(條件)和布爾運算符組成。例如,以下布爾表達式是具有三個條件的決策:

(B1然后B2)或者B3

此示例使用 Ada和 then和或 else短路形式,僅在必要時評估其右操作數,分別對應于 && 和 || C 中的運算符。決策覆蓋要求程序中的每個決策都通過真假測試來執行。

在 A 級,需要 MC/DC:

· 程序中的每個條件都必須通過真假測試來執行。

· 程序中的每一個決定都必須經過真假測試。

· 必須證明每個條件獨立地影響決策的結果(該條件變化,而所有其他條件保持不變)。

MC/DC 并不要求每個決策都使用其構成條件的每個可能的真值組合進行測試。這對于復雜的決策是不現實的,并且在條件耦合時(當相同的輸入變量出現在多個條件中時)可能是不可能的。

圖 1 顯示了一個程序片段,說明了各種結構覆蓋之間的差異。MC/DC 具有一些微妙的特征,在 Hayhurst等人[2] 的教程和Chilenski [3] 的詳細研究中進行了全面討論。

圖 1:程序片段顯示了不同種類的 DO-178B 結構覆蓋。

pYYBAGK6svuAeMVgAAKkp_C-gnY924.png

源與對象覆蓋

DO-178B 中一個通常被誤解的要求涉及必須在 A 級證明的覆蓋類型(源代碼與目標代碼)。第 6.4.4.2 節指出:

可以對源代碼執行結構覆蓋分析,除非軟件級別為 A 并且編譯器生成的目標代碼不能直接追溯到源代碼語句。然后,應該對目標代碼執行額外的驗證,以建立這些生成的代碼序列的正確性。目標代碼中編譯器生成的數組綁定檢查是不能直接追溯到源代碼的目標代碼示例。

這一要求(其措辭在 DO-178C 中正在修訂)并不是說必須為 A 級證明對象覆蓋。相反,它解決了源語言構造的問題,其編譯的目標代碼包含條件分支或從源代碼。在這種情況下,開發人員必須驗證生成的代碼,例如通過解釋每個不可追蹤的目標代碼序列的效果。但是覆蓋分析仍然必須與源代碼結構相關。僅顯示目標代碼覆蓋率是不夠的,除非進一步分析可以證明其與源代碼覆蓋率等價。

通過虛擬化進行目標仿真

在主機系統上模擬目標處理器的概念并不新鮮,但虛擬化技術的最新進展催生了一種高效且可移植的方法,例如開源 Quick EMUlator (QEMU) 工具。QEMU 支持客戶操作系統的完整系統仿真,并允許通過機器描述模擬特定的嵌入式設備。它在主機平臺上運行,并在一個兩階段的過程中,使用緩存方案將目標代碼動態轉換為本地主機指令以提高效率。該工具首先將目標代碼翻譯成中間語言,然后將中間表示編譯成主機二進制指令。

動態翻譯器一次對未插樁的目標代碼段進行操作,將翻譯(或高速緩存提取)與翻譯后的指令的執行交錯。當 QEMU 開始處理一段目標代碼時,它會將指令轉換為宿主代碼,直到它到達下一個分支。翻譯后的目標代碼(稱為翻譯塊)存儲在緩存中(如果尚未存在),并執行其相應的主機指令。QEMU 然后繼續翻譯它停止的地方。由于緩存,目標指令塊只需要解碼一次。在實踐中,由于主機處理器通常比嵌入式目標硬件更快,QEMU 的虛擬化方法提供了比直接在目標上執行更好的性能。

QEMU 是可以擴展以提供附加功能的開源技術。為了處理 DO-178B 要求的結構覆蓋分析,一個有用的增強是支持生成執行跟蹤。兩種跟蹤信息是相關的:

· 摘要跟蹤:輸出標識已執行指令的地址范圍,以及對于條件分支,哪些分支被(被)采用。輸出數據的大小是有限的(實際上與目標程序大小呈線性關系),因為它只顯示執行了哪些指令/分支,而不是整個執行歷史。

· 指定地址范圍的完整歷史跟蹤:除了指示已執行的指令外,輸出還顯示了在每次評估相關條件表達式時采用了哪個分支。輸出數據的大小取決于執行歷史。

生成這些執行跟蹤的 QEMU 的改編版本是覆蓋分析技術的關鍵組成部分。

覆蓋分析

盡管執行跟蹤數據提供了對象指令覆蓋率和對象分支覆蓋率信息,但仍需要進一步分析以滿足 DO-178B 的覆蓋率目標:

· 跟蹤必須映射到源代碼結構,尤其是源代碼中具有覆蓋要求的結構(語句、決策、條件)。

· 必須評估所達到的覆蓋水平——聲明、決定、MC/DC。

為了啟用這種分析,編譯器可以在對象控制流圖中保留源程序的決策結構并生成兩種輸出:

· 調試信息(DWARF),它將每個目標代碼指令與源代碼位置(文件、行、列)相關聯。

· Source Coverage Obligations (SCO),它提供了計劃結構的簡潔表示,需要證明實現某些覆蓋目標的證據。SCO 捕獲程序中所有決策的結構。

使用來自仿真器的跟蹤數據以及編譯器提供的 DWARF 和 SCO 信息,覆蓋分析工具可以推斷測試的執行是否達到了所需的覆蓋級別(語句、決策、MC/DC)。

確定執行跟蹤數據是否暗示 MC/DC 存在一些挑戰。一個問題是如何從對象分支覆蓋范圍推斷源條件評估。如果程序統一使用短路形式(“然后”、“或其他”)而不是非短路運算符(“和”、“或”),則可以處理此問題。根據選項的指示,編譯器在生成的目標代碼中保留源代碼的條件結構。第二個問題是,出于效率原因,是否可以僅使用摘要跟蹤而不使用完整的歷史跟蹤。一般來說,答案是“不”,一個相對簡單的決定說明了原因:

(B1然后B2)或者B3

該決策的目標代碼可以僅由三個測試用例覆蓋,如表 1 所示。

表 1:(B1 和 B2)或 B3 的對象分支覆蓋測試。

poYBAGK6swWAS52zAACHdLN10t4179.png

但是,當有n 個獨立條件時, MC/DC 至少需要n+1次測試,因此這里需要進行 4 次(再次參見圖 1)。這意味著跟蹤摘要數據(對象分支覆蓋率)是不夠的;需要完整的歷史跟蹤數據。Bordin等人和 Comar等人[7]給出了何時對象分支覆蓋足以推斷 MC/DC 的數學表征。

當提出目標代碼覆蓋率作為 MC/DC 的證據時要解決的其他問題記錄在多個認證機構報告中[8,第 20 節]。

把它們放在一起

目標虛擬化方法已作為 Couverture (Coverage) 項目 的一部分實施,旨在為安全關鍵型軟件開發的覆蓋分析提供一個開放框架。AdaCore 的 GNATemulator 工具是對 QEMU 的改編,用于收集執行跟蹤數據。GNAT 編譯器編譯帶有開關的應用程序源程序,這些開關保留目標代碼中的條件控制流并生成 DWARF 和 SCO 數據。然后在 GNATemulator 上運行未檢測的可執行文件,生成執行跟蹤數據。使用編譯器和仿真器生成的信息,GNATcoverage 工具評估是否已實現所需的結構覆蓋。如有必要,該工具會分析完整的歷史跟蹤數據以驗證 MC/DC。圖 2 描述了一個典型的開發場景。

圖 2:虛擬化和覆蓋分析準確評估結構覆蓋。

pYYBAGK6swuAOhv_AAKWGh6ObW8278.png

這些工具目前適用于用 Ada 編寫的應用程序,Ada 是一種在安全關鍵領域中經常使用的語言。未來版本將支持其他語言,包括 C。目前支持的目標架構包括 PowerPC 和 LEON。

高效的目標虛擬化,再加上一個從執行跟蹤數據中推斷出精確的源級覆蓋率指標的工具,用于非儀器化/未修改的用戶程序,標志著現有技術的進步。該技術在安全關鍵環境中特別有價值,支持各級安全認證,同時簡化認證工作。

審核編輯:郭婷

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

    關注

    68

    文章

    19382

    瀏覽量

    230481
  • 代碼
    +關注

    關注

    30

    文章

    4808

    瀏覽量

    68812
  • 模擬器
    +關注

    關注

    2

    文章

    879

    瀏覽量

    43301
收藏 人收藏

    評論

    相關推薦

    如何提高嵌入代碼質量?

    并提升代碼質量。 遵循良好的軟件工程實踐 良好的軟件工程實踐是提高代碼質量的基礎,特別是在嵌入系統中更為重要。以下是幾個
    發表于 01-15 10:48

    華為云軟件開發生產線(CodeArts)11 月新功能特性

    華為云軟件開發生產線 CodeArts 是一站、全流程、安全可信的云原生 DevSecOps 平臺,覆蓋需求、開發、測試、部署、運維等軟件
    的頭像 發表于 12-18 09:23 ?281次閱讀

    柔靈科技:侵入腦機接口可穿戴設備幫助監測和改善睡眠

    ,芯原微電子(海南)有限公司承辦的第三屆南渡江智慧醫療與康復產業高峰論壇順利召開。 ? 在腦機接口主題演講環節,浙江柔靈科技有限公司聯合創始人、首席運營官陳涵分享的主題是《關于侵入腦機接口可穿戴設備在睡眠領域的應
    發表于 11-22 15:31 ?255次閱讀
    柔靈科技:<b class='flag-5'>非</b><b class='flag-5'>侵入</b><b class='flag-5'>式</b>腦機接口可穿戴設備幫助監測和改善睡眠

    如何安全有效的刪代碼

    作者:京東科技 王丹迪 刪除代碼軟件開發過程中常見的一部分,但必須謹慎操作以確保不會引入錯誤或破壞現有功能。有效的做系統瘦身會降低維護成本,減少冗余代碼,減少開發同事踩坑的機會。以下是幾個步驟
    的頭像 發表于 11-20 10:39 ?259次閱讀

    使用TMS320C31在通信網絡中實現在線侵入測量設備

    電子發燒友網站提供《使用TMS320C31在通信網絡中實現在線侵入測量設備.pdf》資料免費下載
    發表于 10-28 10:07 ?0次下載
    使用TMS320C31在通信網絡中實現在線<b class='flag-5'>非</b><b class='flag-5'>侵入</b><b class='flag-5'>式</b>測量設備

    該如何提高代碼容錯率、降低代碼耦合度?

    提高RT-Thread代碼的容錯率和降低耦合度是確保代碼質量和可維護性的關鍵,下面列舉了幾種在編寫代碼時,提高代碼容錯率和降低耦合度的思路。
    的頭像 發表于 06-26 08:10 ?703次閱讀
    該如何提高<b class='flag-5'>代碼</b>容錯率、降低<b class='flag-5'>代碼</b>耦合度?

    接觸溫度傳感器的優缺點有哪些

    的優點 安全性高 接觸溫度傳感器的最大優點是安全性高。由于無需與被測物體直接接觸,因此可以避免觸電、燙傷等危險。在高溫、高壓、有毒、有害等環境下,
    的頭像 發表于 06-19 14:37 ?1163次閱讀

    接觸溫度傳感器的定義、工作原理、類型、特點、應用和發展趨勢

    接觸溫度傳感器是一種無需與被測物體接觸即可測量溫度的傳感器。它具有測量速度快、精度高、使用方便、安全可靠等特點,廣泛應用于工業、醫療、科研等領域。本文將詳細介紹接觸
    的頭像 發表于 06-19 14:34 ?3579次閱讀

    基于壓電陶瓷傳感器的智能枕頭侵入生命體征監測

    影響。所有這些限制都極大地限制了可穿戴設備在監測人類睡眠方面的應用。迫切需要開發一種簡化、侵入、舒適、經濟高效的實時監測系統,該系統可以檢測睡眠中的人類生命體征。 本研究開發了一種嵌入壓電陶瓷(PZT)傳感器
    發表于 06-12 15:20

    探討AI編寫代碼技術,以及提高代碼質量的關鍵:靜態代碼分析工具Perforce Helix QAC &amp; Klocwork

    軟件開發人員夜不能寐的事情比比皆是。如今,他們最關心的問題不再是如何用自己喜歡的語言(C、C++、Erlang、Java 等)表達最新的算法,而是人工智能(AI)。 本文中,我們將介紹AI編寫代碼
    的頭像 發表于 06-05 14:10 ?435次閱讀

    面向企業關鍵業務場景的分布存儲軟件ExponTech WDS

    面向企業關鍵業務場景的分布存儲軟件ExponTech WDS
    的頭像 發表于 06-05 09:41 ?350次閱讀
    面向企業<b class='flag-5'>關鍵</b>業務場景的分布<b class='flag-5'>式</b>存儲<b class='flag-5'>軟件</b>ExponTech WDS

    生成AI之下,軟件供應鏈安全的升級更迫切

    電子發燒友網報道(文/黃晶晶)AI大模型不僅能夠文生圖、文生視頻、人機對話等,還能夠幫助開發人員寫代碼,但這又出現另一個問題,ChatGPT產生的代碼也可能存在漏洞。可以說,全球軟件供應鏈安全
    的頭像 發表于 05-31 18:05 ?7025次閱讀
    生成<b class='flag-5'>式</b>AI之下,<b class='flag-5'>軟件</b>供應鏈<b class='flag-5'>安全</b>的升級更迫切

    ETAS與BlackBerry QNX合作為軟件定義汽車和網絡信息提供安全基礎

    QNX業務部門已簽署合同,將共同銷售和推廣軟件解決方案,以加速下一代軟件定義汽車(SDVs)安全關鍵功能的開發。
    的頭像 發表于 04-12 09:52 ?470次閱讀

    邁威通信工業以太網交換機通過軟件代碼安全審定

    和深入測試,MISCOM7000交換機的軟件代碼安全審定中表現出色,不僅未發現任何明顯的安全漏洞和缺陷,更展現出強大的防御能力,能夠有效應對各類惡意攻擊和潛在威
    的頭像 發表于 03-29 10:43 ?382次閱讀
    邁威通信工業以太網交換機通過<b class='flag-5'>軟件</b>源<b class='flag-5'>代碼</b><b class='flag-5'>安全</b>審定

    Teledyne SP Devices侵入干涉成像技術SS- OCT的高性能數據采集

    1、重點: 掃頻源OCT 侵入干涉成像技術SS-OCT 的工作原理以及數字化儀的集成和時鐘方面 K-space重映射 2、 歡迎您參加今天的網絡研討會,重點了解 Teledyne SP
    的頭像 發表于 02-29 18:25 ?1231次閱讀
    Teledyne SP Devices<b class='flag-5'>非</b><b class='flag-5'>侵入</b><b class='flag-5'>式</b>干涉成像技術SS- OCT的高性能數據采集
    主站蜘蛛池模板: 最新黄色地址| 亚洲高清色| 简单视频在线播放jdav| 午夜日本一区二区三区| avtt亚洲一区中文字幕| 1024手机看片日韩| 五月激情综合网| 手机看片精品国产福利盒子| 欧美天天射| 四虎h789fcom| 美女好紧好大好爽12p| 天天干夜操| 久久亚洲国产成人影院| 182tv免费视视频线路一二三 | 色播五月激情| 亚洲成电影| 中文字幕在线视频第一页| 中文天堂最新版www| 天堂资源吧| 亚洲美女视频一区二区三区| 日本口工全彩无遮拦漫画大| 狠狠色狠狠干| 亚州1区2区3区4区产品乱码2021| 日韩美女拍拍免费视频网站| 老色皮| 欧美日韩在线成人看片a| 五月情网| 欧美一级做一a做片性视频| 日本黄色大片在线观看| 四虎影院黄色片| 午夜视频欧美| 欧美性生活网址| 国产理论| 欧美黄色片免费观看| 成人欧美网站| 亚洲高清色| 六月婷婷久久| 天天综合天天做| 日本人69xxxxxxxx69| xxxx人妖| 中文字幕一二三区|