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

汽車制動系統(tǒng)對安全性的影響
在電氣安裝中通過負載箱實現(xiàn)最大效率和安全性
如何有效地監(jiān)控電力系統(tǒng)的運行狀態(tài)并保證系統(tǒng)安全性?

評論