999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

鐵路信號系統中安全關鍵軟件的安全分析方法

2022-05-11 10:14:18林偉欣胡源李梅
微型電腦應用 2022年4期
關鍵詞:安全性分析系統

林偉欣, 胡源, 李梅

(卡斯柯信號有限公司, 上海 200070)

0 引言

隨著鐵路信號系統復雜程度和智能化的提高,系統中需要軟件實現的能力越來越多,規模和復雜性持續增加,軟件在整個系統中的作用也越來越重要,保障軟件的安全性成為保證系統安全性的關鍵環節。軟件是邏輯思維的產物,軟件錯誤的本質是設計者思維邏輯的錯誤。軟件的失效主要是系統性失效,難以用定量的方法進行評估,這給軟件安全分析帶來了難度。同時,軟件階段的設計和實現人員一般是軟件需求或者編程方面的專家,而對功能安全方面的知識關注略少,使得安全需求在軟件設計和具體實現的落地存在一些不確定性,除了加強人員能力要求外,在軟件安全保障過程中,需要有系統性的分析流程來保證軟件設計符合其預定的安全目標。

在軌道交通信號系統領域,EN50128標準對鐵路控制和保護系統防護軟件保證其研發等級(SIL0-SIL4)的方法、技術和軟件生命周期進行了系統性描述[1]。該標準明確指出,對于復雜的軟件,現階段諸如故障避免、故障檢測和故障容錯的方法都不能保證我們在定義和設計軟件過程中不出現任何錯誤。為保證開發的軟件達到相應的研發等級,需要有與軟件全生命周期相對應的完整的開發流程來避免和減少系統性失效。該流程中,對安全關鍵軟件在各個階段展開安全分析和驗證工作,是發現軟件缺陷,保證軟件質量,保證系統功能安全的重要手段。EN50128中給出了在軟件生命周期內進行安全需求的確定、設計和驗證的流程圖。

EN50128中推薦的軟件開發V模型包括軟件需求、架構設計、組件設計、組件實現、單元測試、繼承測試、確認測試和軟件維護8個階段,涵蓋了軟件開發的整個生命周期,各個階段通過標準化的文檔進行信息傳遞。軟件安全保證是流程貫穿在軟件開發生命周期的各個階段中的,是軟件開發生命周期的有機組成部分。

本文基于EN50128標準的要求,從軟件安全需求的獲取和驗證、基于軟件需求和結構規格說明的軟件失效影響分析、對軟件安全代碼的驗證3個方面,給出了安全關鍵軟件的一種安全性保證的途徑,可以作為軌道交通領域通信信號和處理系統的鐵路控制和防護軟件全生命周期安全保證的實用流程。

1 相關研究

隨著安全關鍵領域軟件的復雜度和重要性的增加,近年來對軟件安全性評價和保障方法的研究也越來越多。文獻[2]針對航空機載軟件安全性評價的難題,給出59種評價元素將軟件每個階段的關鍵活動進行量化,在軟件整個生命周期采用分類模糊綜合評價方法,建立了評價模型,得出軟件安全分值,為軟件總體質量的評價和軟件安全性的改進方向提供支撐。文獻[3]針對航空電子機載軟件的安全性、完整性和可追溯性要求,提出了在軟件生命周期各研發階段增加具體安全性相關活動提高軟件安全性的過程保障方法。文獻[4]介紹了安全關鍵軟件中同樣的軟件安全性分析技術和流程,并對其在CBTC車載子系統中的應用進行了介紹。文獻[5]依據面向軟件安全需求分析過程建立安全相關信息完整的雙向追蹤過程,構建軟件安全需求分析的過程追蹤模型,分析其中的重要實體和關聯。文獻[6]和文獻[7]將形式化方法和建模引入到軟件的安全性分析過程中。其中,文獻[6]借助OCL表達式對安全相關的約束關系建模,并將其融入到UML模型,進行軟件失效模式的識別,以求提供軟件安全分析的效率,降低分析工作量。文獻[7]將系統理論過程分析(STPA)方法應用到軟件安全性驗證過程中來,構建帶有軟件過程模型變量的過程模型,生成軟件安全性需求,并采用模型檢驗技術對軟件安全性進行驗證,以失敗軟件潛在危險控制路徑,減少對人工分析的依賴。

目前,這些研究大部分集中在航空航天領域安全相關軟件生命周期某些環節的安全保障研究,一些量化或者形式化的軟件安全保障方法,存在標準確定困難或者全生命周期形式化建模驗證的困難。針對鐵路信號系統安全關鍵軟件的全流程安全保障研究集中在流程研究,缺乏具體的實現措施,特別是針對軟件本身衍生的安全性需求的分析方法較少討論。本文基于信號系統鐵路控制和防護軟件的開發V模型,給出了在軟件需求、軟件架構設計和軟件編碼階段實現軟件安全分析的要點,可操作性強。

2 軟件安全分析流程

對軟件而言,需要考慮的是軟件在生命周期內如何減少和避免系統性失效。針對軌道交通信號系統中的安全關鍵軟件,本文提出的軟件安全分析流程集中在軟件需求,軟件架構設計和軟件代碼實現3個階段,上一階段的輸出作為下一階段的輸入,構成了完整的安全分析流程。

軌旁設備安全控制平臺,是我公司開發的2取2安全架構的嵌入式安全平臺。使用的軟件是基于國產自主高可信嵌入式操作系統開發。其軟件開發流程遵循V模型,開發、測試活動和對應的安全活動如圖1所示。

2.1 軟件需求階段的安全分析和驗證

軟件需求階段的安全保障工作主要是獲取安全相關需求,并對安全需求的可追溯性和完整性進行驗證。軟件與系統密不可分,軟件的安全需求的源頭和軟件的安全完整性等級是在系統級確定和分配的。軟件的安全性需求是對系統級安全需求在軟件層級的細化。比如,在安全平臺控制系統中,系統需求提到,當軟件出現異常時,系統進入安全狀態。則軟件安全需求細化為當軟件出現任務堆棧溢出、任務超時、輸入值超范圍、返回值超范圍時,應進入安全狀態模式。這種細化可以由軟件需求工程師完成,并由軟件安全工程師根據需求標簽建立系統安全需求和軟件安全相關需求的追蹤關系,對系統級安全工程師提出的系統安全需求在軟件層級的繼承展開可追溯性和完整性驗證,確保軟件層級的需求規范文檔完整、正確地繼承了這些安全需求,并將這些安全需求與分配到軟件的系統危害關聯起來,以便進行危害管理。

圖1 安全控制平臺所使用的開發過程模型

另一方面,是在軟件實現的過程中,由設計方案、軟件架構的選取,或者執行決策產生的附加安全性需求。在安全控制平臺系統開發中,該系統采用2取2的架構,通過我們的安全分析,應避免共因失效,因此在每個通道的軟件需求上有相異性的要求。比如,通道A的CRC采用查表法計算獲得,通道B的CRC采用多項式除法獲得。同時,在軟件需求階段,可以針對一些關鍵功能和數據接口定義,采用FMECA方法,結合公司級的軟件失效模式庫,開展軟件失效模式危害影響分析。這類附加的安全需求可能影響系統層級的安全需求,形成軟件到系統的需求反饋回路,并形成新的系統安全需求,再向軟件層級進行迭代分配。整個需求獲取和驗證過程如圖2所示。

這一階段的重點是軟件安全需求可追溯性和完整性驗證,對軟件需求的FMECA分析不是必須的,可以由項目安全人員根據項目需要確定分析范圍,選擇性開展。在對軟件安全需求進行驗證的過程中,利用公司級的軟件失效模式庫,可以有效指導我們進行安全關鍵軟件功能模塊的確定,對影響較大的功能展開快速有效的影響分析,提高分析效率。

在這一過程中,我們得到了完整的軟件安全需求、安全關鍵功能、安全相關的接口和全局數據定義,作為我們下一階段安全分析的輸入。

圖2 軟件安全需求的獲取

2.2 軟件架構設計階段的安全分析和驗證

軟件架構描述的是直接構成系統的抽象模塊以及各模塊之間的通訊,一個傳統的軟件架構包括與硬件的接口、服務層(包括操作系統和調度器)以及運行在系統上的各個功能模塊。軟件運行在相應的硬件上(比如CPU、板卡等),如圖3所示。軟件的架構模型與系統的硬件架構的選取息息相關,有必要從系統軟件運行的物理架構對軟件進行解剖,可以得到軟件運行在不同硬件上或者同一硬件上不同分區的限制條件和衍生的非功能性安全需求。比如,安全平臺的計算單元采用的是二取二結構的板卡,軟件運行在不同的CPU上,雙通道通過雙口RAM接口進行交互,則對其中一些全局變量、接口(組件之間、軟件和硬件之間)展開安全分析進行安全分析時,就會產生軟件交互需要保證雙通道獨立性的安全需求(雙通道之間交互不采用明文、不使用對方通道的控制信息、設置超時等待機制等等)。在軟件實現的過程中,因技術的選取可能有不同于系統的運行模式,對各模式之間轉換條件的分析,可以得到因軟件本身引入的功能安全需求。而對軟件數據流、控制流、時序等邏輯的分析,既可以得到因軟件本身引入的功能安全需求,也可以對絕大部分系統分配的安全需求進行驗證,保證這些需求在軟件架構設計的過程中被正確實現。這一過程其實是系統安全需求在軟件級進行細化的過程。比如,在安全平臺開發的軟件安全分析過程中,通過進行軟件本身架構的安全分析,我們發現90%以上的軟件安全需求可以和系統級的系統安全需求相對應,形成追溯關系。

在我司安全平臺的主控系統軟件設計時,軟件有初始化、限制模式、更新模式和正常模式;二取二每個通道軟件運行依賴于不同的操作系統、使用不同的編譯器和編譯選項,對于安全關鍵變量和常量設計保護模式并采取訪問控制措施;對執行安全功能的模塊采用了最小化設計理念。這一階段從軟件實現邏輯、軟件運行模式、軟件運行依賴的物理架構和數據定義4個維度對軟件展開錯誤影響分析,對執行安全功能的模塊執行邏輯進行驗證確認,得到軟件相關的安全需求,與繼承自系統的安全需求進行對比,保證了系統級安全需求在軟件層面的落地。

圖3 軟件架構

同時,對軟件需求的實現和架構設計過程中用到的技術措施要求進行驗證。分析過程和方法如圖4所示。

圖4 軟件架構階段安全分析驗證流程

安全架構的驗證,主要集中在2個方面:一是采用檢查單的形式對各個軟件模塊在設計的過程中符合EN50128 A.3表格中對應SIL等級的開發技術使用要求進行驗證;另一方面,需要基于軟件需求階段整理的安全需求,按照軟件安全功能對軟件模塊的分配對照表,保證那些需要在軟件層級進行細化驗證的安全需求在軟件架構設計的各個模塊中被正確、完整實現。

從多個方面對軟件架構進行安全分析:①對軟件運行模式分析,保證軟件設計正確性的過程中,可以采用結構化的論證的方法,證明軟件的最終的危險狀態不可達,說明其符合預期的安全功能要求。采用這種方法,可以僅關注最終對系統輸出產生危害的那些條件,極大減少了分析的工作量。②對軟件所依賴的硬件的物理架構和使用分配的分析,需要結合2種分析方法:一是從資源視圖的角度,分析關鍵臨界資源被哪些進程或者模塊調用,安全關鍵的臨界資源有哪些;二是從時序圖的角度,分析關鍵臨界資源在何時被什么進程或模塊調用,從而得出需要在什么時候對哪些臨界資源施加保護和監控措施。③對軟件的邏輯和數據定義分析可以采用傳統的數據流和控制流分析,檢查軟件功能的執行次序和依賴性,分析識別遺漏的以及和軟件需求規定不一致的功能。④利用模快或者組件之間的數據流圖,可以根據變量的用途,確定關鍵變量(特別是模塊間共享的全局變量),說明對數據的約束,確定數據的來源、處理及目的地。基于這些信息,確認重要數據在使用前后是否進行了檢查,確定變量的存儲和訪問方式,防止變量未經許可的讀寫。

軟件錯誤影響分析階段,可能產生一些衍生的安全需求,需要反饋到系統級,由系統級向下分配。同時,有可能產生一些需要在軟件代碼安全驗證階段進行細化檢查的安全相關項。在安全平臺軟件開發階段對架構的驗證過程中,將自檢功能中需要檢測的項和在在測試計劃中不是采用測試的方法進行驗證的項分配到了代碼級,需要在最底層進行進一步確認。

另外,對于一些特殊算法的驗證,可以采用仿真的方法進行,參見文獻[8]。

2.3 編碼實現階段的安全代碼走查

代碼走查對于發現軟件開發過程中的安全缺陷十分有效,在這一階段,驗證代碼實現的正確性比進行代碼級的安全分析更有意義。安全關鍵代碼走查采用靜態分析的方法為主,其檢查主要集中在3個方面:

(1) 檢查上級分配的安全功能點是被哪個模塊的哪個函數實現的,是否正確實現了分配的功能;

(2) 追蹤實現功能的函數被哪些模塊在什么時間點被調用,分析調用的時間點是否正確,是否存在應該調用該函數而未被調用的情況;

(3) 分析非安全模塊與安全模塊之間的交互,檢查非安全模塊對安全模塊是否有非預期的影響,非安全模塊和安全模塊之間的交互是否有足夠的防護措施。

安全代碼走查的實施可以分為4步,如圖5所示。

圖5 軟件安全代碼走查流程圖

(1) 根據安全性需求和上一階段輸出的需求進行安全確認項,選取關鍵模塊的代碼作為審查對象。

(2) 根據代碼編寫需要遵循的安全規則和需求描述,驗證代碼實現的正確性(包括輸入驗證、錯誤處理代碼、復雜代碼和進行驗證、監視的代碼),針對安全性問題對安全性相關的代碼進行檢查;同時,需要在各個模塊接口層面驗證非安全功能模塊是否對安全功能模塊有負面的影響。

(3) 根據第二階段的審查結果,向上追溯檢查軟件架構的安全問題,并重新確定檢查范圍,再次展開安全相關代碼走查,直到審查的代碼達到規定的安全標準。

(4) 對于安全關鍵軟件的編寫,EN50128標準還要求遵循相應的編碼規范,比如對參數使用前的檢查,對指針使用的限制,對前置條件和后置條件的驗證等,避免因軟件錯誤的傳播導致系統發生危險的失效。這部分檢查可以采用單元測試分析自動化工具完成,能極大提高效率,避免漏檢。在鐵路信號系統行業,一般每個公司會參照標準和行業規范,結合公司實際,制定公司級的編碼規范,并開發自動化工具完成規則符合性檢查。安全平臺軟件的規則檢查就是采用工具實現的。

3 軟件安全保障流程可行性分析

在實際工程應用中,要保證本文設計的軟件安全保障流程的落地,需要從2個方面考慮:一是該流程符合EN50128行業標準,確保在軟件生命周期內的各項活動到達標準中規定的安全完整性等級的要求,確保設計的軟件和相關系統能獲得第三方獨立評估機構的證書。這是我們設計的軟件和系統能夠獲準上道運行的必要條件。同時,該保障流程需要具有可復制性和高效率。表1給出了EN50128標準中軟件保證流程要求和本文的軟件安全保障流程的對應關系。

該軟件安全保障流程應用到了我司的軌旁安全平臺軟件開發的過程中,能使安全人員按時完整安全分析、驗證和確認各項安全活動,順利確保了該產品通過第三方獨立評估機構的評估,并獲得了EN50128 SIL4(安全完整度最高等級)證書。該產品目前已經廣泛應用于我國城軌線路中。

4 總結

軌道交通信號系統中的軟件安全分析是個系統工程,需要按照EN50128等準的安全要求,從不同的維度、貫穿軟件生命開發的各個周期進行分析和驗證。本文結合所開發的安全控制平臺的軟件開發過程提出了軟件開發需求、設計和編碼階段的軟件安全分析和驗證流程,并給出了具體的實現方法,具有較強的可操作性,可以和V模型右邊的軟件測試確認和質量保障一起構成完整的軟件安全保障流程。

表1 軟件安全保障流程階段對照表

猜你喜歡
安全性分析系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
兩款輸液泵的輸血安全性評估
新染料可提高電動汽車安全性
WJ-700無人機系統
隱蔽失效適航要求符合性驗證分析
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
電力系統及其自動化發展趨勢分析
ApplePay橫空出世 安全性遭受質疑 拿什么保護你,我的蘋果支付?
主站蜘蛛池模板: 日本在线亚洲| 亚洲精品日产精品乱码不卡| 在线一级毛片| 亚洲精品无码高潮喷水A| 精品国产一区二区三区在线观看| 精品一區二區久久久久久久網站| 国产免费网址| 日韩在线2020专区| 免费不卡视频| 久久精品aⅴ无码中文字幕 | 五月天丁香婷婷综合久久| 亚洲欧美日韩动漫| 99资源在线| 国产区人妖精品人妖精品视频| 亚洲黄色片免费看| 热99re99首页精品亚洲五月天| 成人精品区| 国产午夜无码专区喷水| 制服丝袜国产精品| 亚洲中文字幕日产无码2021| 国产微拍精品| 97久久人人超碰国产精品| 日韩 欧美 小说 综合网 另类| 拍国产真实乱人偷精品| 久久久久亚洲AV成人人电影软件 | 91久久精品日日躁夜夜躁欧美| 喷潮白浆直流在线播放| 女人一级毛片| 国产肉感大码AV无码| 黄色网址手机国内免费在线观看| 91在线高清视频| 国产成人亚洲欧美激情| 成人中文在线| 国产精品人成在线播放| 欧美精品亚洲精品日韩专区va| 91 九色视频丝袜| 国模粉嫩小泬视频在线观看| 亚洲香蕉在线| 欧美一区二区三区香蕉视| 毛片网站在线播放| 色综合久久综合网| 激情综合婷婷丁香五月尤物| 国产在线拍偷自揄观看视频网站| 久久99国产视频| 国产人人干| 毛片免费视频| 91人妻在线视频| 成年人国产网站| 亚洲乱强伦| 少妇极品熟妇人妻专区视频| 四虎国产精品永久在线网址| 国产乱人乱偷精品视频a人人澡| 成人国产精品视频频| 久久青草免费91线频观看不卡| 国产麻豆精品在线观看| 91激情视频| 午夜三级在线| 国产粉嫩粉嫩的18在线播放91| 国产精品污视频| 国产成人综合久久| 精品国产www| 91伊人国产| 国产啪在线| 黄色网站在线观看无码| 国产经典免费播放视频| 国产成人综合久久精品尤物| 91免费观看视频| 老司国产精品视频91| 99热这里只有精品久久免费| 久久久噜噜噜| 九九九精品成人免费视频7| 欧美日韩国产在线播放| 国产一区二区三区在线观看视频 | 毛片网站在线播放| 潮喷在线无码白浆| 亚洲欧美成人综合| 色天天综合| 国产精品成人AⅤ在线一二三四| 亚洲AV无码一二区三区在线播放| 欧美精品色视频| 亚洲第一极品精品无码| 国产亚洲精品自在线|