主頁 >  其他 > 故障注入的方法與工具

故障注入的方法與工具

2023-04-15 08:19:18 其他

?可靠性是評估軟體質量的重要屬性,關鍵安全系統(Safety Critical Systems,SCS)對可靠性的要求尤為嚴格,因其一旦失效,將可能對生命、財產或環境造成重大損害,以汽車為例,ISO26262中ASIL D要求相關系統失效率低于10 Fit(Failure in time),即每千件產品在10∧9小時內的故障數需低于10件,

測驗軟體可靠性的諸多方法中,較為常見的一種為故障注入測驗——根據選定的故障模型選擇故障注入工具,人為地將故障注入系統并采集系統反應行為資訊,從而進行可靠性分析,

學術上,故障注入技術可根據方式的不同分為基于硬體的故障注入、基于仿真的故障注入和基于軟體的故障注入三大類;實際應用中,可根據應用場景的不同分為基于仿真的故障注入與基于原型的故障注入兩大類,

本文將從學術領域與實際應用兩大角度出發,詳述各類故障注入技術的方法與工具,

 

一、學術領域

*學術領域將故障注入劃分為基于硬體、基于仿真與基于軟體三大類,由于實際應用中也有仿真類別的分類,本章節僅針對軟體與硬體類展開敘述,

▲故障注入系統

 

故障注入系統通常由目標系統和故障輸入系統組成,從物理上看,控制器是可以單獨在目標系統或計算機上運行的程式,故障注入器為定制的硬體或軟體,本身支持不同的故障型別、位置、時間和部分適配的硬體語意或軟體結構,注入的內容則來自故障庫,圖示中的故障庫是一個具備更大靈活性和可移植性的單獨組件,

軟體故障注入和硬體故障注入在前期選擇上,主要受故障型別影響,陷入類故障(如迫使軟體中某個點保持永久值),則最好選用硬體注入方法;資料損壞類的故障選用軟體注入方法足矣,其他諸如儲存單位中的位翻轉等故障則可采用任意一種方式進行故障注入,此類情況下,成本、準確性、可重復性等都會影響最終方法的選擇,

 

適合硬體故障注入的故障型別有:

  • 開短路故障
  • 橋接故障
  • 固定型故障(電路中的某個信號不可控,永遠固定在同一值)
  • 雜散電流故障(指在設計電路外,因泄漏導致流動的電流)
  • 電涌故障(指電壓瞬間超過了正常作業電壓)

 

適合軟體故障注入的故障型別有:

  • 存盤資料損壞(如暫存器、記憶體、磁盤)
  • 通信資料丟失(如總線和通信網路)
  • 軟體缺陷(機器級或更高級的軟體缺陷)

 

1.硬體故障注入

硬體故障注入需要使用額外的硬體將故障引入目標系統的硬體,通常可根據注入故障的型別及其注入位置,分為接觸式與非接觸式兩大類,

接觸式故障注入使用與電路引腳直接接觸目標系統硬體,通常也被稱為“引腳級注入”,是硬體故障注入最為常見的方法,可以使用有源探頭或插拔式技術來改變引腳處的電流和電壓,幾乎不對目標系統產生影響,

非接觸式故障注入通過產生重離子輻射將故障注入到目標硬體,重離子會穿過靶器件的耗盡區,雖然能夠模仿自然的物理現象,但因無法控制重離子發射或電磁場產生的準確時刻而很難準確控制故障注入的時間和位置,

 

常見的硬體故障注入工具有:

?法國圖盧茲大學的國家科學研究中心系統分析與架構實驗室(LAAC-CNRS)所研發的引腳級故障注入工具Messaline,已成功應用與鐵路控制系統的集中式聯鎖系統及“Esprit Delta-4”專案的分布式系統,

▲Messaline總體架構及環境

 

瑞典查爾姆斯理工大學開發的用于研究瞬時故障效應的故障插入系統FIST(Fault Injection System for Study of Transient Fault Effect),可同時使用非接觸式與接觸式方法來模擬目標系統內的瞬時故障,還支持放置MOS三極管控制電壓降幅來實作故障干擾,

▲FIST環境配置情況

 

維也納科技大學所研發的容錯分布系統MARS(Maintainable Real-Time System),除使用FIST所使用的重離子輻射外,還可使用電磁場進行非接觸式故障注入,

 

2.軟體故障注入

由于無需昂貴的硬體便可進行測驗,軟體故障注入在近年來受到了較大關注,尤其是其能夠針對應用程式及作業系統等硬體故障注入無法觸達的部分,雖然軟體故障注入的靈活性較強,但仍有訪問位置受限、加重系統作業負載及改變原始軟體結構的風險,

軟體故障注入可按注入時間分為編譯時故障注入與運行時故障注入,工具選擇上,通常有以下幾種:

德克薩斯大學奧斯汀分校所開發的Ferrari(Fault and Error Automatic Real-Time Injection)系統,能夠向CPU、記憶體與總線注入故障,由初始化與激活器、用戶資訊、故障注入器及資料收集分析器所組成,

伊利諾伊大學所開發的容錯與性能評估器Ftape(Fault Tolerance and Performance Evaluator),可將故障以逐位翻轉的方式注入至CPU、記憶體與磁盤子系統中的可訪問暫存器,

▲Ferrari環境配置情況

 

密歇根大學所開發的Doctor(Integrated Software Fault Injection Environment),使用超時、陷阱與代碼修改三種方式實作故障注入的觸發,允許注入CPU、記憶體及網路通信故障,

科英布拉大學所開發的Xception,可通過現代處理器中的高級除錯及性能監控功能注入更為真實的故障,Xception故障是基于特定地址訪問來觸發的,因此更具可重復性,可通過以下事件觸發故障出入:

①從指定地址獲取操作碼或加載運算元

②運算元存盤到指定地址

③啟動后經過的指定時間

④上述故障觸發的組合,

 

3.軟硬體故障注入的比較

 

通過上表可以發現,硬體故障注入和軟體故障注入之間的差距主要在于可訪問的故障注入點、成本和干擾水平,

硬體方法可以將故障注入芯片引腳和內部組件,例如軟體故障注入無法尋址的組合電路和暫存器,可用于評估低級別的錯誤檢測和屏蔽機制,軟體故障注入可直接在軟體狀態級別(例如存盤器、暫存器)直接產生變化,更適合于測驗更高級別的機制,但需要注意直接在目標系統上運行所導致的更高額的干擾開銷,

 

二、實際應用

實際應用中,故障注入方法可根據應用場景的不同分為基于仿真的故障注入與基于原型的故障注入兩大類,

基于原型的故障注入:指向軟體或硬體注入故障,僅適用于研究模擬故障,對諸如汽車、航空、航天等領域龐大而又復雜的應用場景而言,其硬體與軟體的生產成本高昂,因此現下成本更低、效率更高的基于仿真的故障注入方法更受青睞,

基于仿真的故障注入:指通過建立目標系統的“數字孿生”模型,在模型中引入故障來得到故障注入的結果,這種方法無需特定的硬體設備,也不會對目標系統造成損傷,有助于評估容錯機制的有效性及系統可靠性,但大型復雜設備的仿真模型往往開發量龐大,眾多企業苦其久矣,

SkyEye,中文全稱天目全數字實時仿真軟體,能夠有效解決仿真故障注入的弊端,作為基于可視化建模的硬體行為級仿真平臺,SkyEye可輕松實作復雜模型的搭建,快速落實“數字孿生”模型,

基于SkyEye所搭建的全數字實時仿真模型,用戶可進行以下幾種模式的故障注入:

 

1.物理層故障模式

物理層故障模式主要包括斷路控制、短路控制、信號串擾、噪聲信號、串行以及并行阻抗控制等,用于模擬通信總線上常見的線路故障,

SkyEye中,總線設備被設計為獨立的模塊,并在虛擬目標硬體腳本中創建總線設備并與記憶體總線連接,斷路故障模式通過外部資料激勵軟體設計總線故障處理模塊,可以在總線設備模塊中實作與資料激勵軟體的通信介面,并使用總線故障處理模塊向總線設備發送斷路命令,設備接收到該命令后,即不會再接收處理任何來自記憶體總線發送的地址讀寫請求,

SkyEye的斷路故障模擬設計如下所示,

 

首先通過Python腳本提供的API介面呼叫上述的記憶體監視介面,實作記憶體監視功能,訪問該記憶體時便會執行注冊的回呼介面來完成相關功能,

可由此實作故障模擬:通過該API介面注冊故障模擬回呼介面,當設定該記憶體地址為斷開故障時,每當處理器訪問至該地址便會在該回呼介面中輸出故障資訊,用戶還可呼叫SkyEye運行控制介面來暫停運行工程,

 

2.電氣層故障模式

電氣層故障模式包括輸出幅度調節、占空比調節、信號延遲調節、上升下降沿調節及斜率調節、毛刺模擬等,

真實硬體中電氣層故障注入是通過總線信號發生器實作,由高速DAC芯片、SRAM、運算放大器組成,電氣層中的輸出電壓幅度調節可通過DAC和運算放大器實作,輸出信號占空比可以通過FPGA控制DAC來實作,輸出信號的延遲可以通過采樣資料進行快取來實作,

在SkyEye虛擬仿真環境下,用戶可通過配置總線暫存器來修改電平值、邊沿時間、占空比等,實作輸出電壓幅度的調節,

電氣層故障注入,包括暫存器故障注入和記憶體故障注入,

▲暫存器故障注入

▲記憶體故障注入

 

3.協議層故障模式

協議層故障模式包括命令字、資料字、狀態字奇偶校驗、編碼錯誤以及資料替換等,

協議層故障注入是基于不同的總線協議實作的,通過決議總線傳輸的資料來判斷傳輸資訊的型別以及不同型別所需要做的資料處理,可實作需要進行故障注入的通信協議資料分析,與物理層故障模式相似,也可使用SkyEye提供的資料激勵軟體注入總線的通信協議資料來實作故障注入,

 

參考文獻

[1] https://course.ece.cmu.edu/~ece846/docs/faultInjectionSurvey.pdf

[2] 車建華, 何欽銘, 陳建海, 等. 基于軟體模擬的虛擬機系統故障插入工具[J].浙江大學學報 (工學版), 2011, 4: 004.

[3] 徐仁佐. 軟體可靠性工程[M]. 北京:清華大學出版社,2007.

[4] 張玲玲,王林章.基于故障剖面的安全關鍵系統可靠性測驗與評估[J].計算機與數字工程,2014,42(12):2304-2310,2320.

[5] 麻彥東.面向虛擬化系統的故障注入平臺的研究與設計[D].哈爾濱:哈爾濱工業大學,2015.

?

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550152.html

標籤:其他

上一篇:fastjson 1.2.24 反序列化漏洞(審計分析)

下一篇:內網穿透

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more