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