作者 |劉艷青上??匕舶踩珳y評中心安全測評部測試經理
版塊 |鑒源論壇· 觀通
引語:第一篇對軌交信號系統從鐵路系統分類和組成、城市軌交系統分類和組成、城市軌交系統功能、城市軌交系統發展方面做了介紹,第二篇從信號基礎出發,講述了信號機、轉轍機、軌道電路等設置原則和含義,本文將從軌交系統的安全性設計的必要性、控制設計、需求分析以及實現等方面進行闡述。
1. 安全性設計的必要性
2. 安全軟件控制設計
3. 軟件安全性需求分析
4. 軟件安全性設計及實現
01軌交安全性設計的必要性
隨著通信信號系統的發展,信號系統與綜合監控系統信息交互,旅服系統、車站及列車廣播系統等信息網之間的連接病毒、木馬都會向信號系統擴散。信號系統本身的安全性防護不到位等安全漏洞,如果未進行有效手段的防護,極易造成重大行車事故。因此信號系統安全防護體系的建設已經迫在眉睫。在設計軌交系統的軟件時,軟件的安全性越來越重要,尤其對于當前的數據安全、處理安全以及保密安全。軟件在具備數據安全的同時,還需注重軟件的安全性設計。
軟件安全主要表現在:
·軟件數據不被破壞或修改;
·保密的數據不被公開;
·數據和系統只能為系統用戶使用。、
軟件可靠性主要表現在:
·軟件按照要求完成了對應的工作;
·軟件按照正確的方式完成了對應的工作。
基于此,軟件安全可靠的實現和運行是數據正確、秘密和有效運行的保證,也是實現正確工作的可靠基礎。
影響軟件安全的不可靠因素:
·輸入錯誤;
·系統的權限控制錯誤;
·數據的使用權限控制不嚴;
·數據的訪問監查不到位;
·數據保護不到位;
·軟件實現錯誤;
·數據處理的安全機制不健全;
·操作系統底層的漏洞;
·其他的欺騙行為。
02軌交軟件安全控制設計
軟件控制設計一般按照如下步驟實施:
首先,分析不安全的原因,找出影響范圍最廣、安全性最突出的問題,評估優先改善的項目或者目標問題;
其次,進行設計改善,當前提出的設計既要符合當前要求安全需求,也要能考慮進一步可以優化的安全需求;
再次,結合軟件的生命周期活動,進行安全控制方面設計的改善。
圖1軟件安全性設計過程
03軌交軟件需求分析安全性設計
軌交行業軟件需求分析和軍工行業類似,在軟件要求階段,由軟件設計人員通過對系統要求的充分一致性、完整性、明確性的分析,定義了軟件要求。在進行軟件需求界定時,軟件設計人員所采用的方式主要包括:通過功能分析、面向對象分析、模型、仿真、業務分析、產品原型、場景分析等手段輔助界定軟件要求。同時,還要充分考慮應用軟件的時效性、內存容量、編程語言、操作系統環境和網絡資源限制。
3.1安全性設計方法
軟件安全需求研究和系統分析的方式,主要從安全工作模式、運行狀態和要求、容錯與容失效、危險命令管理、接口安全、數據安全、系統資源等方面分析軟件安全性需求的來源。
專用的安全性需求:特定的安全性系統需求,自上向下進行傳遞的需求,一般是系統經過初步分析的結果中包含危險原因,且和軟件相關的安全性需求,也存在部分在研制后期發現后,從系統層面下達的。
通用的安全性需求:通常是某一領域的共同的安全需要。
3.2軟件安全性需求開發與分析的方法
系統專用的安全性需求,開發和分析除了根據系統的安全性需求和環境需求,還會依據通用標準、專用規范,根據資源的需求、接口需求以及危險報告,根據查找安全性核心功能,確定安全需求。
一般常用的方法有:基于軟件功能的故障樹分析方法、軟件失效模式、影響和危害分析法。
針對安全性的關鍵功能,重點從:1)安全運行的模式、運行的狀態以及安全運行的條件;2)容錯與失效模式;3)危險命令處理;4)接口、數據、資源方面,進行需求分析。
3.2.1 安全運行的模式、運行的狀態以及安全運行的條件
在這些情況下,隨著運行模式或者任務階段的不同,參數的允許邊界可能會變化,比如在系統空載情況下,運行試驗期間,對溫度的要求,可能會降低。
安全性設計中一般我們需要分析出存在的潛在危險源,例如:順序要求、不適當的事件、錯誤的量值、錯誤的極性、非控的命令、環境的因素導致的錯誤等,制定針對性的相應措施。
既然有了設計的措施,在測試過程中,要根據設計要求,制定針對性的測試要求,對設計的安全性要求進行逐個的測試,并根據具體測試要求的不同制定對應的測試策略。如錯誤的量值,規定的量值范圍如0-100,是否確認了邊界外的數據,是否對浮點數進行了處理,對0的處理正確性等。
3.2.2 容錯和容失效
依據失效的容量,確定可接受的冗余要求;信息冗余要求;故障檢測、隔離和恢復;冗余管理、轉換邏輯。容錯和容失效一般根據系統設計的要求而確定。
針對失效容限,可設置冗余的要求:一般針對軟件安全程度,可設置軟件的失效容限要求,例如,要求允許有一個或二個以上故障而不導致系統危險;根據程序的失效容限要求,對冗余要求的軟件,也可采用回復塊設計、屏蔽技術及多版本編程等方法實現。
信息的冗余要求:對于安全關鍵信息應該至少保存到2個存儲空間,對于和安全核心功能的關鍵信息應通過至少兩種產生方式或傳輸方式進行產生、收集或決定。
故障檢測、隔離和恢復:按設計要求確定故障檢測的要求,并按規定進行隔離錯誤或恢復系統等。
冗余管理/轉換邏輯:如熱備份、冷備份等,或者切換到其他的處理工作。
圖2信號系統中CI子系統工作狀態切換
3.2.3 危險命令處理
危險命令一般包括:接收、傳送或者啟動關鍵信號、危險命令的功能,危險命令處理特別注意較長的命令路徑會由于通信線路干擾、設備干擾、認為差錯,增大出錯的概率
接口設計一般須根據接口定義的物理層和邏輯層協議來進行安全性設計。
3.2.4 數據安全
數據安全要包含所有過程中的數據,包括規定的靜態數據、動態的輸入輸出數據以及內部生成數據的邏輯結構等,須說明對數據的約束。
3.2.5系統資源
·臨界時間:即從故障產生到系統達到不安全狀態的時間。
·自動安全保護:在臨界時間比現實人工操作的響應時間短或沒有人工干預的情況下,啟動自動安全保護。
·采樣速率:采樣速率決定了判定結果的基礎數據的樣本量,只有有足夠的樣本量時,方可確保決策的正確性的概率。
·內存資源:根據設計評估內存的使用,通過估計代碼規模來估算內存資源的消耗,同時還需考慮動態內存分配占據的比重,避免造成內存的溢出,一般在此必須考慮內存的余量,至少20%的余量設計。
04軟件設計的安全性設計
在軟件架構階段,一般是根據軟件需求設計系統軟件的頂層結構和軟件模塊,針對軟件功能需求,設計人員可以探索性的實驗,構造原型軟件,對需求進行驗證。
在軟件詳細設計階段,軟件設計人員根據針對軟件架構中定義的模塊進行詳細設計,每個模塊應該被細分為能夠被編碼、翻譯、檢索的底層軟件單元。如果軟件模塊能夠被復用,設計人員應當采取合適的手段使得軟件模塊滿足軟件需求。
在軟件編碼階段,非新建軟件,開發人員需要從指定的配置庫中獲取源代碼、調試腳本、開發文檔。可以從編程語言的使用、復雜度控制、注釋要求和方法、指針的使用、多余物處理等方面進行軟件編碼的安全性設計。
開發人員根據軟件詳細設計進行重新編碼或者修改既有的代碼,編碼完成后應確保沒有編譯錯誤和報警。一般,行業內會制定編碼規則等措施規范編碼,開發人員編碼需要根據嚴格遵守通用編碼標準,記錄修改編碼的過程。軟件調試人員制定測試策略和測試案例,用于調試代碼,測試過程應該能夠驗證代碼實現和軟件功能的正確性??梢酝ㄟ^代碼邏輯驗證、數據驗證、接口驗證、死代碼驗證、中斷的使用驗證、軟件測試驗證等方法進行代碼的驗證。
05總結
系統從安全控制、需求安全分析,再到安全設計,每個環節都是必不可少。軌交系統應用到具體的子系統中,如聯鎖的冗余設計等。軟件安全性考慮,應用在V模型等。很多系統也具備仿真技術的軟件安全性設計。信號系統中的故障導向安全原則,也是對危險失效的一種防護。
審核編輯黃宇
-
數據
+關注
關注
8文章
7033瀏覽量
89040 -
信號
+關注
關注
11文章
2791瀏覽量
76771 -
軟件安全
+關注
關注
0文章
24瀏覽量
9199
發布評論請先 登錄
相關推薦
評論