鄭 丹,胡勝旺,封 亮
(中國電子科技集團公司第三十二研究所,上海 201808)
M-LVDS總線FPGA軟件安全性測試
鄭 丹,胡勝旺,封 亮
(中國電子科技集團公司第三十二研究所,上海201808)
隨著FPGA(現(xiàn)場可編程門陣列)在航空航天、核能、軌道交通等領域中的廣泛應用,由FPGA軟件設計引起的安全問題日益突出。通過借鑒軟件安全性分析方法,結合FTA、FMEA兩種安全性分析技術,將這兩種分析方法綜合應用,對M-LVDS總線FPGA軟件進行了安全性分析。采用仿真故障注入方式設計測試用例,對易引發(fā)系統(tǒng)高危失效的事件進行充分的安全性分析與測試,有效提高了M-LVDS總線FPGA軟件的測試質量,同時為FPGA軟件設計中常見的典型接口類應用安全性分析與測試提供了有益的探索和參考。
FPGA;M-LVDS;FTA;FMEA;安全性測試
FPGA(現(xiàn)場可編程門陣列)是一種可編程使用的信號處理器件,用戶可通過改變配置信息對其功能進行定義,以滿足設計需求。由于FPGA 具有可編程、高集成度、高速和高可靠性等優(yōu)點,在航空航天、核能、軌道交通等高安全領域中得到越來越廣泛的應用,隨之而來的是FPGA應用的安全性和可靠性問題越來越突出。FPGA作為一種可編程使用的半定制芯片,與硬件聯(lián)系緊密,其軟件編程采用硬件軟件化的設計方法,主要基于VHDL或者Verilog HDL等高級語言實現(xiàn),所以FPGA應用設計從本質上是一種軟件設計,但FPGA應用設計又是一種特殊的軟件設計即面向硬件的軟件設計,具有硬件的顯著特征。
目前,F(xiàn)PGA應用設計的安全性分析和測試研究主要集中于硬件特性層面上,如FPGA配置、邏輯資源和參數(shù)測試等,從FPGA應用設計軟件層面上的安全性分析和測試需求變得尤為迫切。常用的軟件安全性分析方法有故障模式及影響分析方法、故障樹分析方法等。FTA (故障樹分析)技術是美國貝爾電話實驗室于 1962 年開發(fā)的,它采用邏輯的方法,形象地進行危險的分析工作,特點是直觀、明了,思路清晰,邏輯性強,可以做定性分析,也可以做定量分析。自 FTA 提出,幾十年來一直在機械、電子等系統(tǒng)中廣泛地使用[1-2]。軟件FMEA(失效模式和影響分析)技術最早于1979 年由 Reifer 提出,用于分析軟件系統(tǒng)中的軟件失效對系統(tǒng)可能造成的影響。該技術是一種自下而上的分析方法,能識別軟件潛在的失效模式,評估失效模式對系統(tǒng)的影響,并提出有效措施或修改意見[3]。
軟件安全測試是指驗證軟件的安全等級和識別潛在安全性缺陷,以及確定軟件是否能夠與預期安全構想一致的過程。軟件安全性測試應包含如下內容:驗證每一個軟件安全性需求都有相應的軟件安全性測試相對應;證明每個軟件安全性需求都通過一個或多個測試得到了滿足;通過測試分析和軟件實現(xiàn)對相關的風險進行評估;判斷給出的軟件安全性測試已足夠充分[4]。軟件安全測試是保證軟件安全性的重要手段,本文借鑒軟件安全性分析方法,結合FTA、FMEA兩種安全性分析技術,將這兩種分析方法綜合應用于M-LVDS(多點低電壓差分信號)總線FPGA軟件安全性分析,采用仿真故障注入的方式設計測試用例,針對M-LVDS總線FPGA軟件可能產生的故障事件和故障模式進行了充分的安全性測試,有效地提高了M-LVDS總線FPGA應用設計的安全性和可靠性。
1.1故障樹分析方法(FTA)
經典的FTA是一種自頂而下的軟件安全性分析方法,即從軟件系統(tǒng)不希望發(fā)生的事件(頂事件),特別是對人員和設備的安全產生有重大影響的事件開始,向下逐步追查導致頂事件發(fā)生的原因,直至基本事件(底事件)。FTA的分析結果可以用來指導軟件安全性設計,確定軟件測試的重點和內容,使軟件安全性得到更充分的保證。
在故障樹最頂層的頂事件是系統(tǒng)不期望的故障事件,在故障樹最底層的底事件是導致頂事件發(fā)生的根本原因。軟件故障樹分析的目的就是要采取措施避免底事件的發(fā)生,從而降低頂事件的發(fā)生概率。軟件故障樹定性分析的常用方法是識別所有最小割集,并對最小割集進行定性比較,對最小割集及底事件的重要性進行排序。
1.2故障模式及影響分析方法(FMEA)
FMEA分析方法是通過識別軟件故障模式,分析造成的后果,研究分析各種故障模式產生的原因,為測試提供策略,協(xié)助制定測試目標,尋找消除和減少其有害后果的方法,以盡早發(fā)現(xiàn)潛在的問題,并采取相應的措施,從而提高軟件的安全性。軟件 FMEA 結果可以生成一個潛在測試用例列表,供以后的工作借鑒使用,F(xiàn)MEA 失效模式可以通過模擬生成觸發(fā)失敗的狀態(tài)來轉換為測試用例。由于每個測試用例與一個特殊的失效模式相關,測試用例具有非常良好的覆蓋性。
1.3FTA與FMEA比較
FTA與FMEA兩種技術在單獨應用進行軟件安全性分析時各有其不足:FTA是一種自頂而下依照樹狀結構倒推故障原因的方法,選取頂事件時,可能會遺漏潛在的頂層故障事件,有時候這種影響是關鍵的。另外,F(xiàn)TA在分析故障原因時也會有所遺漏,這會影響到底事件的重要度排序,從而影響實施改進措施時輕重緩急的判斷。樹形結構在描述分析結果方面不如FMEA信息詳盡。FMEA是一種自底而上的單因素故障分析方法,無法完善地表達故障原因之間的各種邏輯關系。此外,其分析結果以表格方式列出,不如故障樹的圖形化表達方式直觀。將這兩種分析方法綜合,形成故障模式及影響分析與故障樹分析相結合的方法,在M-LVDS總線FPGA軟件的安全性分析與測試中進行應用。
2.1軟件需求與功能結構
M-LVDS總線FPGA軟件主要分為寄存器控制模塊、時序幀模塊、數(shù)據(jù)幀隊列模塊、消息幀隊列模塊、發(fā)送器、鏈路監(jiān)視器、接收器、同步器、接收FIFO模塊,實現(xiàn)M-LVDS總線的數(shù)據(jù)發(fā)送和接收、中斷處理、時序控制、寄存器控制、仲裁、故障檢測、CPU復位等功能。M-LVDS軟件功能結構如圖1所示。
圖1 M-LVDS總線FPGA軟件功能結構
2.2FTA故障樹建立
根據(jù)M-LVDS總線的特性,采用演繹法建立FTA故障樹,選擇M-LVDS接口異常為要分析的頂事件,當作故障樹的根;分析頂事件發(fā)生的原因,并用邏輯門與頂事件相連,作為故障樹的節(jié);追溯導致頂事件發(fā)生的全部原因,將底事件作為故障樹的葉,完成故障樹建立,如圖2所示。
圖2 M-LVDS總線FPGA軟件故障樹
2.3FMEA故障模式及影響分析
以FTA方法為主,輔以FMEA方法,將M-LVDS總線FPGA軟件FTA結果中的重要底事件作為FPGA軟件FMEA的分析對象,分析出其所有可能的故障模式,并分析其產生的故障影響,不僅使FTA中的故障線索得到驗證,同時也識別出對系統(tǒng)可能造成的其他影響,使這些重要的底事件得到進一步深入的分析。M-LVDS總線FPGA軟件故障模式及影響分析如表1所示。
表1 M-LVDS總線異常FMEA表
根據(jù)M-LVDS總線FPGA軟件安全性分析結果,針對底事件分別設置安全性測試用例,采用故障注入方式進行安全性測試。通過編寫testbench,模擬各種異常電路行為,如總線干擾、內部信號翻轉等,強制使FPGA進入某些特定狀態(tài),而這些狀態(tài)在采用常規(guī)的標準測試技術時是無法達到的。仿真故障注入相對于物理實現(xiàn)和硬件實現(xiàn)的故障注入具有成本低、精度高并且對硬件設備無損傷等優(yōu)點[5],本文采用基于ModelSim仿真環(huán)境的故障注入方式進行M-LVDS安全性測試,測試框架如圖3所示。
圖3 安全性測試框架
針對總線異?!偩€短暫擾動→數(shù)據(jù)錯誤,設計安全測試用例,模擬總線在發(fā)送數(shù)據(jù)時發(fā)生跳變。測試結果:接收器數(shù)據(jù)接收完成后,判斷CRC校驗錯誤(rx_err_crc拉高)、幀錯誤(frame_err拉高)、接收錯誤(rx_error拉高),清空接收FIFO(rx_fifo_empty拉高),接收器丟幀。結果如圖4所示。
針對接收異常→接收FIFO滿,設計安全測試用例,模擬節(jié)點持續(xù)接收總線上發(fā)送數(shù)據(jù),CPU未及時進行數(shù)據(jù)讀取。測試結果:判斷節(jié)點接收FIFO滿錯誤(rx_lost_fifo_full拉高)、幀錯誤(frame_err拉高)、接收錯誤(rx_error拉高),接收器丟幀(rcv_dfifo_updata_wptr拉高,更新FIFO)。結果如圖5所示。
通過上述安全性測試以及后續(xù)相應的修改和回歸測試,對M-LVDS總線FPGA軟件安全性分析結果進行充分的驗證,顯著提高了M-LVDS總線FPGA軟件設計的安全性和可靠性。
圖4 基于總線擾動故障模式的安全性測試結果
圖5 基于接收異常故障模式的安全性測試結果
本文結合工程實踐對FPGA軟件的安全性測試方法進行了探索,具體闡述了M-LVDS總線的故障樹建立、故障模式和影響分析,并根據(jù)安全性分析結果設計安全性測試用例進行驗證。隨著FPGA在高安全高可靠領域的廣泛應用,F(xiàn)PGA軟件的安全性分析和安全性測試亟需加強。參考軟件安全性分析經驗,結合M-LVDS總線特點,提出了FPGA軟件安全性分析技術的應用實例,對于切實提高FPGA軟件研制質量具有重要意義。
[1] 趙躍華,朱媛媛.基于故障樹分析的軟件安全性測試研究[J].計算機應用研究,2013,30(6):1760-1763.
[2] 姬忠孝.基于安全關鍵系統(tǒng)的軟件安全性測試研究[D].南京:南京航空航天大學,2016.
[3] 王丙磊.系統(tǒng)級軟件FMEA方法及輔助分析工具的研究[D].長沙:國防科學技術大學,2009.
[4] 姜夢霞.機載軟件的安全性測試研究[D].南京:南京航空航天大學,2015.
[5] 雷煒,歐毓毅.基于故障注入的安全測試方法綜述[J].現(xiàn)代計算機,2012(4):20-23.
Security test of M-LVDS bus FPGA software
Zheng Dan,Hu Shengwang,F(xiàn)eng Liang
(The 32rd Research Institute of China Electronics Technology Group Corporation,Shanghai 201808,China)
With the widespread application of FPGA in aerospace,nuclear power,rail transportation and other fields,the security problems caused by the design of FPGA software have become increasingly prominent.By referring to the methods of software security analysis in combination with two kinds of security analysis technology of FTA and FMEA,the security of M-LVDS bus FPGA software is analyzed by combining the two analysis methods.The test cases are designed by simulation failure injection to perform adequate safety analysis and testing of events that are prone to high-risk failures,which can effectively improve the quality of M-LVDS bus FPGA software.At the same time,this paper provides a useful exploration and reference for the application of security analysis and testing of typical interface classes in FPGA software design.
FPGA; M-LVDS; FTA; FMEA; security test
TP311.53
A
10.19358/j.issn.1674-7720.2017.21.002
鄭丹,胡勝旺,封亮.M-LVDS總線FPGA軟件安全性測試J.微型機與應用,2017,36(21):4-7.
2017-06-15)
鄭丹(1985-),通信作者,女,碩士,工程師,主要研究方向:嵌入式與FPGA測試技術、FPGA設計驗證體系。E-mail:315054090@qq.com。
胡勝旺(1978-),男,碩士,高級工程師,主要研究方向:嵌入式與FPGA測試技術、FPGA設計驗證體系。
封亮(1977-),男,學士,高級工程師,主要研究方向:軟件測試方法與技術研究、軟件測試項目管理。