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

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

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

3天內不再提示

功能安全驗證之軟件故障注入方法

jf_EksNQtU6 ? 來源:TüV北德功能安全總監 ? 2023-11-06 18:22 ? 次閱讀

摘要

軟件故障注入是功能安全驗證的重要技術手段。本文旨在為軟件故障注入提供一個基本概述,以及簡介現有的故障注入技術。

01

故障注入方法簡介

在功能安全相關關鍵場景中,密集的測試活動對于確保新系統和內置容錯機制按預期運行至關重要。確保系統在出現故障時正常運行(Fail Operational)是一個需要比傳統測試內容復雜的問題。在系統中引入故障以評估其行為并測量容錯機制的效率(即覆蓋率和延遲)的過程稱為故障注入。

故障注入方法的發展是隨著數字化的發展同步進行的。

最開始,數字系統只使用了簡單的硬件系統。因此,第一種故障注入方法包括通過假設簡單的硬件故障模型(如位翻轉或位卡死)將物理故障注入目標系統硬件(例如,使用輻射、引腳電平、電源干擾等)。

硬件的日益復雜使這些物理方法的使用變得相當困難,甚至不可能,一個新的故障注入方法,即基于通過軟件(軟件實現的故障注入SWIFI)對硬件故障進行運行時仿真,變得非常流行。

隨著關鍵系統在其他應用領域的擴展,我們看到這些系統的軟件部分越來越復雜,這成為系統故障的一個不可忽視的原因。阿麗亞娜5號火箭的第一次試飛(1996年6月4日)就是一個例子。在試飛過程中,火箭偏離了飛行路線,在起飛后不到一分鐘就發生了爆炸,造成了5億美元的損失。爆炸是由軟件中的錯誤數據轉換引起的,從64位浮點到16位有符號整數表示。該漏洞源于對以往任務中軟件子系統的重用,而沒有進行實質性的重新測試,開發人員認為該任務與新系統兼容。

SWIFI工具用于在程序狀態(例如,數據和地址寄存器、堆棧和堆內存)和程序代碼(例如,在程序執行之前或期間存儲代碼的內存區域)中注入錯誤。不幸的是,在復雜的軟件密集型系統中,通過SWIFI無法準確模擬真實軟件故障的影響。因為在過去三十年中,汽車中使用的代碼行的規模從數萬行呈指數增長到數億行。

與第一種故障注入方法相比,使用故障注入來模擬真實軟件故障(即bug)的影響,即軟件故障注入(SFI),是相對較新的方法。實際上,軟件故障的注入包括在目標程序代碼中引入小的更改,創建不同版本的程序(每個版本有一個注入的軟件故障)。

ISO 26262標準規定了軟件中錯誤檢測和處理機制的使用,以及通過故障注入進行驗證。

軟件故障注入是一種假設實驗,它可能起源于軟件開發過程的任何階段,包括需求分析、設計和編碼活動。在給定的工作負載下執行目標,并將故障插入目標系統的特定軟件組件中。主要目標是觀察系統在存在注入故障的情況下的行為,考慮到這些故障會重現可能在運行期間影響系統給定軟件組件的合理故障。

02

故障注入方法關鍵特性

//

故障是系統狀態不正確的判定或假設的原因,稱為錯誤。故障是在提供錯誤服務時發生的事件,即用戶或外部系統感知到錯誤狀態。

故障注入活動獲得的結果的準確性在很大程度上取決于實驗的幾個關鍵特性,即:

代表性

是指故障負載和工作負載代表系統在運行期間將經歷的真實故障和輸入的能力。通過定義一個真實的故障模型,并在實驗過程中準確再現該故障模型,可以實現故障的代表性。

非侵入性

要求故障注入過程中采用的儀器(如故障插入和數據收集)不應顯著改變實際系統的行為。例如,執行額外的代碼來破壞軟件狀態可能會導致侵入。

重復性

是指當在同一環境中使用同一程序多次執行故障注入活動時,可確保統計結果等效的特性。由于計算機系統中存在許多不確定性的來源,例如線程調度和事件計時,要實現這一特性并非易事。

實用性

是指故障注入在成本和時間方面的有效性。這些因素包括實現和設置故障注入環境所需的時間、執行實驗的時間以及分析結果的時間。該屬性要求實驗由自動工具支持,以滿足時間和預算限制。

可移植性

要求故障注入技術或工具能夠輕松地應用于不同的系統,以便進行比較。故障注入工具的可移植性還指該工具支持多個故障模型并用新的故障模型進行擴展的能力。

03

軟件故障特征

軟件故障的注入需要對要注入的故障進行精確定義,這反過來又需要對軟件故障進行清晰的理解和描述。這并不容易實現,因為軟件故障是由于開發過程中發生的人為錯誤造成的,這些錯誤會以程序中錯誤指令的形式影響軟件工件。

為了提高軟件可靠性,人們提出了幾種故障分類模式。在故障分類模式中,正交缺陷分類(Orthogonal Defect classification,ODC)是研究人員和實踐者最廣泛采用的模式之一,并已在多個研究中用于定義軟件故障注入的故障模型。ODC是一個對軟件故障進行分類的框架,目的是獲得軟件開發過程的度量和定量反饋;

43e9bfe8-7c8b-11ee-939d-92fbcf53809c.png

43f78de4-7c8b-11ee-939d-92fbcf53809c.png

04

軟件故障注入技術

//

許多SFI技術和工具是在20多年的時間里發展起來的。這里,我們通過區分兩種基本方法來說明和討論這些工作:注入故障效應(也稱為錯誤注入),其中通過擾動系統狀態引入錯誤,以及注入實際故障,其中更改程序代碼以模擬代碼中的軟件故障。以下小節分別回顧了軟件故障注入技術:

· 數據錯誤注入的方法最早,這些方法基于當時存在的硬件故障注入技術;

· 接口錯誤注入方法,旨在測試組件與其他組件交互的穩健性;

·注入實際故障的方法,在程序代碼中引入小的故障更改。

4.1數據錯誤注入

早期注入故障效應的方法是在通過SWIFI研究硬件故障的背景下發展起來的。SWIFI旨在通過軟件干擾內存或硬件寄存器的狀態,再現硬件故障(如CPU、總線和內存故障)的影響(即錯誤)。根據以下標準,SWIFI方法將內存位置或寄存器的內容替換為損壞的值:

· 注入什么。內存位置或寄存器中單個位、字節或字的內容已損壞。通過對電氣或門級故障產生的錯誤的分析,定義了錯誤類型。常見的錯誤類型是用固定值(卡在0和卡在1故障)或相反值(位翻轉)替換位。

· 注入的地方。由于內存位置眾多,注入內存的錯誤通常針對位置的子集。注入可以集中在特定內存區域中隨機選擇的位置(例如堆棧、堆、全局數據)或用戶選擇的位置(例如內存中的特定變量)。在寄存器中注入的錯誤可以針對那些可以通過軟件訪問的寄存器(例如,數據和地址寄存器)。

· 何時注入。錯誤注入可能與時間或事件有關。在前一種情況下,在經過給定的實驗時間后注入錯誤,該時間由用戶或根據概率分布選擇。在后一種情況下,當特定事件在執行期間發生時,例如在第一次訪問或每次訪問目標位置時,會注入錯誤。可以模擬三種類型的硬件故障,分別是瞬時故障(即偶然故障)、間歇性故障(即多次重復故障)和永久性故障。

值得注意的是,SWIFI工具注入的硬件錯誤可以在程序狀態(例如,數據和地址寄存器、堆棧和堆內存)和程序代碼(例如,在程序執行之前或執行期間存儲代碼的內存區域)中注入。這是軟件故障注入的一個重要區別:程序狀態中的損壞旨在反映軟件故障的影響,即錯誤程序的執行導致的錯誤,例如錯誤的指針、標志或控制流,SWIFI工具可以直接引入此類錯誤;相反,程序代碼中的故障旨在反映代碼中的實際軟件故障。

4.2 接口錯誤的注入

在輸入參數處注入錯誤旨在模擬目標外部故障產生的影響,包括外部軟件組件中軟件故障的影響,并評估目標檢測和處理損壞輸入的能力。以類似的方式,輸出值的損壞被用來模擬故障部件的輸出,并可用于評估故障對系統其余部分的影響。

輸入參數的故障可能會揭示目標的錯誤檢測和恢復機制(例如,輸入處理代碼)的設計和實施中的缺陷。它通常在穩健性測試中采用,該測試評估“系統或組件在存在無效輸入或壓力環境條件下能夠正確運行的程度”。應該注意的是,健壯性測試和接口錯誤注入的目標不同于功能測試技術,例如黑盒測試:健壯性測試旨在評估軟件模塊在面對無效輸入時的健壯行為(例如,避免了進程崩潰,或產生了警告信號),它與目標的功能正確性無關。

接口錯誤注入可以通過兩種方式執行。第一種方法基于鏈接到目標組件的測試驅動程序(例如,使用目標導出的API的程序),并通過提交無效輸入來執行該程序。這種方法類似于單元測試,但在這種情況下,評估的是健壯性,而不是功能正確性。第二種方法包括攔截和破壞目標與系統其余部分之間的交互,即在調用目標組件時觸發攔截器程序,并修改原始輸入以引入損壞的輸入。在這種情況下,目標組件將在集成目標的整個系統的上下文中進行測試。這種方法類似于SWIFI,因為流經系統的原始數據(在本例中為接口輸入)被損壞的數據替換。

44007a3a-7c8b-11ee-939d-92fbcf53809c.png

在接口錯誤注入實驗中,在實驗期間發生的幾個輸入參數和目標API的幾個調用中,通常只有一個輸入參數和一個調用被破壞。生成無效輸入值的常用方法有三種:

· 模糊化:原始值被隨機生成的值替換。

· 位翻轉:通過反轉原始值的一個或多個位的值來生成損壞的值。

· 基于數據類型的注入:原始值被替換為無效值,該值是根據被破壞的輸入參數類型選擇的,其中類型是從目標導出的API派生的。這種方法為每種數據類型定義了一個無效值池,這些值是從類型域的分析中選擇的(例如,在C指針的情況下為“NULL”)。

4.3注入代碼的更改

前面小節討論的主要是通過使用SWIFI方法注入故障影響(即錯誤)來模擬軟件故障。這些方法的一個公開問題是注入錯誤(如位翻轉)的代表性,它不一定與軟件故障產生的錯誤匹配。

為了解決代表性問題,最近對SFI的研究集中在程序代碼中錯誤的注入(即代碼更改)。即可以采用注入代碼更改來模擬真實軟件故障,因為注入的故障會產生與真實軟件故障產生的錯誤和故障相似的錯誤和故障。一般可通過在進程的代碼存儲區或二進制可執行文件上應用SWIFI,在程序中注入錯誤。但要注意通過對這些程序進行徹底測試,需在有限的范圍內注入軟件故障,需要專門針對軟件故障注入的工具和技術。

05

結論

//

在為系統選擇方法時,應考慮所討論的故障注入方法的特點。

錯誤注入通常用于評估單個組件的健壯性,并改進代碼特定部分的錯誤處理。主要原因是,錯誤的注入允許對系統的特定部分進行實驗,因為它可以評估錯誤對特定組件接口或程序變量的影響。事實上,錯誤注入不需要等待錯誤生成并傳播到正在評估的程序狀態的特定部分。此外,由于錯誤注入可以應用于單個組件,因此可以在軟件驗證的早期階段執行。

相反,注入代碼更改的目的是作為一個整體評估容錯系統,并在備選設計選擇之間進行定量評估和比較。代碼更改更適合于這些目標,因為它們基于軟件故障的代表性模型,并密切模擬故障軟件的行為。這是定量評估和比較的一個重要要求,因為它們考慮了故障發生的相對概率,以反映系統在運行期間表現出的行為。這使得代碼更改的注入更適合于軟件驗證的后期階段,此時系統組件已經集成,開發人員的目標是評估系統在其運行壽命期間的預期容錯性(以及衍生的度量,如可用性)。

作者:鄭威,TüV北德功能安全總監

編輯:黃飛

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

    關注

    31

    文章

    5355

    瀏覽量

    120541
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10873

    瀏覽量

    212030
  • 內存
    +關注

    關注

    8

    文章

    3030

    瀏覽量

    74109
  • 驅動程序
    +關注

    關注

    19

    文章

    836

    瀏覽量

    48076
  • 硬件系統
    +關注

    關注

    0

    文章

    48

    瀏覽量

    11376

原文標題:軟件故障注入方法

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    后驅動技術在故障注入中的退化機理的研究

    【作者】:李璠;曾晨暉;【來源】:《測控技術》2010年03期【摘要】:后驅動技術作為故障注入的有效方法,適用于數字電路在線故障注入,然而后驅動技術對器件產生的加速退化作用不容忽視。在分析后驅動技術
    發表于 04-22 11:29

    PXI故障注入開關模塊應用于故障注入測試

    方法不是什么新穎的說法,它是ECU驗證的一個重要的部分和系統電氣故障的重要方法故障注入測試)。它是一個可以模仿很多情形,如因為腐蝕,短/
    發表于 03-05 09:39

    是否有推薦的方法或工具可用于在TPL接口上執行故障注入測試?

    是否有推薦的方法或工具可用于在 TPL 接口上執行故障注入測試?
    發表于 04-18 08:24

    運行時軟件故障注入器的設計與實現

    針對實際故障診斷中難以有效獲得故障現場信息的問題,提出通過在軟件運行時注入故障的方式獲取故障現場
    發表于 04-06 08:40 ?19次下載

    分布式星載系統故障注入研究

    基于軟件故障注入是對星載計算機系統可靠性進行的一種評測技術。本文首先提出了用軟件方法進行的故障注入系統,并提出
    發表于 12-23 12:06 ?17次下載

    基于FPGA的容錯計算機故障注入研究

    為了驗證以FPGA為主控制器的容錯計算機的可靠性,利用構造雙NIOS II系統的方法,設計了模擬量、數字量、通訊量以及單粒子效應的故障注入系統。該系統可以通過軟件由用戶選擇
    發表于 07-17 17:59 ?27次下載

    Pickering Interfaces最近擴展了他們的PXI故障注入開關產品系列

    Pickering Interfaces最近擴展了他們的PXI故障注入開關產品系列。
    發表于 05-07 08:38 ?1203次閱讀

    Zynq-7000的功能安全參考系統的介紹

    Zynq SoC上的這個新參考系統展示了兩個具有故障注入功能安全通道,可實現全面的功能安全驗證
    的頭像 發表于 11-23 06:51 ?3119次閱讀

    綜合模塊化航空電子平臺網絡故障注入策略

    綜合模塊化航空電子(IMA)平臺網絡通信結構復雜,在進行故障注入測試時,存在難以選取合適的測試路徑及等效、無效故障注入較多的問題。根據IMA平臺網絡通信結構特點,提出一種新的故障注入策略。首先,根據
    發表于 01-02 14:40 ?10次下載
    綜合模塊化航空電子平臺網絡<b class='flag-5'>故障注入</b>策略

    面向AES算法的電壓故障注入攻擊方法

    密鑰的未知字節長度。結合注入故障后輸出的錯誤密文,可通過窮舉猜測的方式恢復初始密鑰未知字節。攻擊測試結果表明,通過該方法執行一次有效故障注入攻擊能得到4字節長度初始密鑰,即對于128位
    發表于 06-08 14:16 ?6次下載

    船舶一體化網絡系統的故障注入平臺設計

    船舶一體化網絡系統的故障注入平臺設計
    發表于 06-27 15:07 ?7次下載

    英國Pickering公司推出新款單槽PXI和PXIe 1000Base-T1故障注入模塊 提供很高的靈活性和性能

    英國Pickering公司作為生產用于電子測試及驗證領域的信號開關與仿真解決方案的領導廠商,最近推出了1000Base-T1 PXI和PXIe故障注入開關模塊,擴大了支持的協議范圍。
    發表于 03-01 16:01 ?2367次閱讀
    英國Pickering公司推出新款單槽PXI和PXIe 1000Base-T1<b class='flag-5'>故障注入</b>模塊 提供很高的靈活性和性能

    故障注入測試工具:FIT

    故障的系統影響評價及SW安全功能驗證豐田ETCS故障相關補償案例 需要驗證一般的功能測試難以
    的頭像 發表于 03-23 09:49 ?2839次閱讀

    硬件&amp;芯片安全滲透利器--BTS1002多接口精密觸發故障注入

    BTS1002是一臺多接口精密觸發故障注入儀,同時也是一臺傳統的網絡底層攻防滲透工具和混合網關,將三者有效交叉融合,根據不同的觸發條件和精準觸發滯后時間配置,可在準確的時間對被測對象(包括但不
    的頭像 發表于 06-13 14:48 ?692次閱讀
    硬件&amp;芯片<b class='flag-5'>安全</b>滲透利器--BTS1002多接口精密觸發<b class='flag-5'>故障注入</b>儀

    針對M2351系列故障注入攻擊的軟件防護措施

    針對M2351系列故障注入攻擊的軟件防護措施
    的頭像 發表于 08-11 14:57 ?830次閱讀
    針對M2351系列<b class='flag-5'>故障注入</b>攻擊的<b class='flag-5'>軟件</b>防護措施
    主站蜘蛛池模板: avtt加勒比手机版天堂网| 最近观看免费高清视频| 三级五月天| 色男人网| 亚洲天天做夜夜做天天欢人人| 国产91久久最新观看地址| 成人欧美一区二区三区视频不卡 | 综合7799亚洲伊人爱爱网| 成人一级网站| 69pao强力打造免费高清| 男人扒开美女尿口无遮挡图片| 久久国产精品免费| 国产精品大全| 亚洲一级免费视频| www.午夜视频| 特级毛片女人18毛片| 奇米色影院| 国产高清成人mv在线观看| 亚洲天天做日日做天天欢毛片| 免费又黄又爽的禁片视频| 欧美国产三级| 一区二区三区欧美在线| 色媚网| 韩国三级视频在线| 天天综合久久| 香蕉成人999视频| 福利视频一区二区| 色丁香在线| 国产欧美一区二区三区观看| 天天玩天天干| 么公的好大好硬好深好爽视频| 最好看的2019中文字幕免费高清 | 国产午夜视频在永久在线观看| 91深夜福利| 欧美一级视频精品观看| 成 人在线观看视频网站| 欧洲成人r片在线观看| 中文字幕在线播放一区| 午夜综合| 国产性较精品视频免费| 天堂在线资源网|