国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

航空系統(tǒng)中的軟件安全性研究

2015-06-24 12:05史亭文王偉張成
電腦知識與技術(shù) 2015年11期
關(guān)鍵詞:安全性分析

史亭文++王偉++張成

摘要:軟件安全性是保障系統(tǒng)安全性的重要條件。該文首先介紹了軟件安全性的主要內(nèi)容,描述了幾種常用的軟件安全性分析技術(shù),針對航空系統(tǒng)軟件所存在的問題,從系統(tǒng)設(shè)計到軟件編碼直至軟件測試階段,對機(jī)載軟件的安全性分析過程進(jìn)行了詳細(xì)描述,最后,文中總結(jié)并展望了軟件安全性分析的發(fā)展方向。

關(guān)鍵詞:系統(tǒng)危險;軟件安全性;安全性分析

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)11-0051-02

隨著科學(xué)技術(shù)的迅猛發(fā)展,軟件在航空領(lǐng)域的應(yīng)用越來越普遍。近年來由于軟件的失效引起的財產(chǎn)損失、環(huán)境破壞、人員傷亡,甚至災(zāi)難性飛行事故也屢見不鮮。如2009年在大西洋墜毀的法航AF477航班,其墜毀原因就是由于測速儀結(jié)冰給出飛行控制軟件錯誤的攀升指示,而在軟件設(shè)計中又沒有設(shè)計高度上限,最終導(dǎo)致悲劇的發(fā)生[1]。在同一年,土耳其航空公司的一架波音737飛機(jī)在跑道行進(jìn)期間由于故障出現(xiàn)了飛機(jī)失速,而飛機(jī)的機(jī)載軟件缺乏處理失速的情況的程序,最終導(dǎo)致飛機(jī)墜毀[2]。由此可見,軟件的安全性問題在航空系統(tǒng)中的影響越來越重要,一個簡單軟件安全問題會影響到整個飛機(jī)系統(tǒng)的安全性。

單獨(dú)軟件本身在運(yùn)行中并不存在或者并不能體現(xiàn)安全性問題,軟件只有運(yùn)行在系統(tǒng)中才可能導(dǎo)致諸如系統(tǒng)崩潰、錯誤指示、人員生命危險等事故時在涉及到軟件安全性問題。軟件安全性是保障整個系統(tǒng)安全性的重要條件。軟件安全性是指系統(tǒng)在規(guī)定的條件下、規(guī)定的時間內(nèi),完成規(guī)定功能的過程中避免危險條件發(fā)生的能力[3]。而危險條件被定義為可能導(dǎo)致不可接受的風(fēng)險發(fā)生的異常條件。軟件的安全性作為軟件質(zhì)量的重要屬性,其體現(xiàn)了“軟件在系統(tǒng)工作中避免不可接受風(fēng)險的能力[4]”和“軟件運(yùn)行而不引起系統(tǒng)事故的能力[5]”。因此軟件安全性成為控制系統(tǒng)危險的關(guān)鍵因素。

本文首先介紹了軟件安全性的主要內(nèi)容,描述了幾種常用的軟件安全性分析技術(shù);針對航空系統(tǒng)軟件所存在的問題,從系統(tǒng)設(shè)計到軟件編碼直至軟件測試階段,詳細(xì)描述了機(jī)載軟件的安全性分析過程;最后,對全文進(jìn)行了總結(jié)。

1 軟件安全性概述

系統(tǒng)安全性是指“產(chǎn)品具有的不導(dǎo)致人員傷亡、裝備損壞、財產(chǎn)損失或不危及人員健康和環(huán)境的能力”[6]。影響系統(tǒng)整體功能執(zhí)行的因素很多,包括硬件故障,操作人員的錯誤,軟件錯誤或者系統(tǒng)設(shè)計缺陷等,這些因可能導(dǎo)致系統(tǒng)進(jìn)入危險的狀態(tài)。由此可見,整個系統(tǒng)的安全性工作應(yīng)該深入到系統(tǒng)中的各個環(huán)節(jié)和子系統(tǒng)中,而軟件的安全性分析是保證系統(tǒng)安全的關(guān)鍵之一。

軟件安全性問題主要關(guān)注可能導(dǎo)致系統(tǒng)發(fā)生危險的軟件失效,以及與此類軟件失效相關(guān)的設(shè)計缺陷和外部輸入條件。軟件失效是指軟件在缺省條件下不能完成規(guī)定的功能。當(dāng)軟件存在設(shè)計缺或者軟件錯誤時有可能發(fā)生軟件失效,但是,只有軟件執(zhí)行到有缺陷或錯誤的路徑時,才能產(chǎn)生失效。如果防止軟件失效的措施沒有起作用,那么軟件失效就會威脅到整個系統(tǒng)的安全性,甚至造成悲慘的事故。圖1[7]給出了軟件失效的因果關(guān)系和產(chǎn)生的影響。由此可見,為了避免軟件失效造成的系統(tǒng)故障,應(yīng)該對軟件進(jìn)行全方面的分析,從系統(tǒng)層到代碼層,從外部運(yùn)行環(huán)境到軟件內(nèi)部詳細(xì)設(shè)計,提高軟件的安全性。

圖1 軟件失效原因和影響

2 軟件安全性分析技術(shù)

下面介紹常用的幾種軟件安全性分析技術(shù)。

初步危險分析(Preliminary Hazard Analysis,簡記為PHA)[10]是系統(tǒng)危險診斷的一種技術(shù),是對軟件進(jìn)行安全性分析的重要手段。PHA提出了針對軟件設(shè)計、開發(fā)過程中需要跟蹤、解決的風(fēng)險清單的初步框架。

軟件失效模式及影響分析(Sostware Failure Mode and Effects Analysis,簡記為SFMEA)是對傳統(tǒng)的系統(tǒng)故障分析技術(shù)FMEA的擴(kuò)展,是以失效模式為基礎(chǔ),失效影響及后果為中心,自底向上的分析技術(shù),用以識別軟件的薄弱環(huán)節(jié),并提出改進(jìn)措施建議[11-12]。SFMEA可以分為兩個層次:全局級SFMEA和模塊級SFMEA。全局級SFMEA主要對軟件的體系結(jié)構(gòu)進(jìn)行分析評價,降低由軟硬件失效所導(dǎo)致的軟件風(fēng)險。模塊級SFMEA主要對軟件模塊內(nèi)部進(jìn)行分析,找出失效的根本原因和具體位置,從而采取適當(dāng)?shù)姆椒ū苊膺@種風(fēng)險發(fā)生。

軟件故障樹分析(Sostware Fault Tree Analysis,簡記為SFTA)來是傳統(tǒng)系統(tǒng)分析技術(shù)FTA的延伸,是一種自頂向下的分析技術(shù),以影響系統(tǒng)的故障事件為起點(diǎn),向下逐層分析,最終找出軟件失效原因。

3 軟件安全性活動

一個安全的系統(tǒng)應(yīng)該能夠滿足系統(tǒng)的所有安全性需求,如果某些需求不能滿足,就有可能導(dǎo)致系統(tǒng)故障,甚至引發(fā)災(zāi)難。大多數(shù)的航空軟件失效都是因?yàn)檐浖踩孕枨蟛煌暾?,安全性分析結(jié)果無追蹤導(dǎo)致的。軟件安全性工作包括安全性分析、安全性設(shè)計和安全性驗(yàn)證三個部分,如圖2[3] 所示。為了獲得完整和準(zhǔn)確的軟件安全性需求,就需要進(jìn)行充分的安全性分析工作,并且進(jìn)行安全性追蹤,這樣才能保證航空系統(tǒng)軟件的安全性。下文詳細(xì)描述了一種軟件安全性分析的方案。

圖2 軟件安全性活動

3.1 系統(tǒng)風(fēng)險識別

在機(jī)載軟件開發(fā)初期,主要由總體設(shè)計人員對系統(tǒng)進(jìn)行安全性分析,從系統(tǒng)的運(yùn)行狀態(tài)、執(zhí)行環(huán)境等因素,通過分析系統(tǒng)中存在的與軟件相關(guān)的危險因素,識別系統(tǒng)風(fēng)險。然后,根據(jù)系統(tǒng)風(fēng)險的嚴(yán)重程度進(jìn)行分類,并列出各功能的危險狀態(tài)和影響等,獲得系統(tǒng)風(fēng)險的初步清單,確定軟件的安全性關(guān)鍵功能和特性,并在軟件研制任務(wù)書中列出。為了確定引起系統(tǒng)風(fēng)險的發(fā)生原因,在系統(tǒng)設(shè)計階段,通常采用PHA技術(shù),根據(jù)歷史經(jīng)驗(yàn)數(shù)據(jù)與系統(tǒng)風(fēng)險清單進(jìn)行對比,分析出其發(fā)生的原因,并提出控制這類風(fēng)險發(fā)生的措施和驗(yàn)證方案。

具體過程如下:

1) 從系統(tǒng)運(yùn)行狀態(tài)、執(zhí)行環(huán)境等,識別系統(tǒng)關(guān)鍵功能,識別系統(tǒng)風(fēng)險;

2) 分析系統(tǒng)風(fēng)險對系統(tǒng)的影響,并根據(jù)DO-178B標(biāo)準(zhǔn)對系統(tǒng)風(fēng)險的影響級別進(jìn)行分級;

3) 記錄各功能故障對應(yīng)的危險狀態(tài)和影響,得到系統(tǒng)風(fēng)險初步清單;

4) 根據(jù)歷史經(jīng)驗(yàn)數(shù)據(jù)和經(jīng)驗(yàn),補(bǔ)充系統(tǒng)風(fēng)險清單;

5) 對每一種系統(tǒng)風(fēng)險的發(fā)生原因,確定至少一種控制措施;

6) 任何一種風(fēng)險控制措施,都要提出一種軟件安全性驗(yàn)證方法。通過分析、評審、測試來驗(yàn)證現(xiàn)有軟件的安全性需求。

3.2 軟件安全性需求獲取

軟件安全性需求是指:通過約束軟件的行為,使其不會出現(xiàn)不可接受的違反系統(tǒng)安全的行為[13]。軟件安全性人員根據(jù)系統(tǒng)安全性人員提供的系統(tǒng)安全性需求、環(huán)境需求、接口需求、系統(tǒng)危險分析報告,查找軟件安全性關(guān)鍵功能,確定安全性關(guān)鍵需求,并且根據(jù)危險發(fā)生的可能性和嚴(yán)重性對需求的關(guān)鍵性進(jìn)行排序,并且在需求規(guī)格說明中將軟件的安全關(guān)鍵功能標(biāo)識出來。為了進(jìn)行軟件失效模式和影響分析,通常采用SFMEA技術(shù),根據(jù)需求規(guī)格說明和系統(tǒng)初步危險清單以及歷史經(jīng)驗(yàn)數(shù)據(jù),分析可能引起系統(tǒng)風(fēng)險的軟件失效模式、產(chǎn)生失效的原因以及該失效所產(chǎn)生的影響,并提出對應(yīng)的改進(jìn)措施;最后,基于該分析結(jié)果,采用SFTA技術(shù),對引起軟件失效模式的原因和其邏輯關(guān)系進(jìn)一步分析,獲取相應(yīng)的軟件安全性需求。

該過程的具體的實(shí)施過程如下:

1) 根據(jù)系統(tǒng)安全性需求、環(huán)境需求、接口需求和系統(tǒng)危險分析報告,確定安全性關(guān)鍵需求;

2) 根據(jù)危險發(fā)生的可能性和嚴(yán)重性對安全性關(guān)鍵需求排序,并標(biāo)識到需求規(guī)格說明中;

3) 根據(jù)軟件安全性需求的功能描述和重要度排序,從系統(tǒng)危險清單選取系統(tǒng)危險,參照相似系統(tǒng)的常見失效模式,識別和分析系統(tǒng)危險所對應(yīng)的軟件失效模式;

4) 針對不同類型的軟件失效模式,根據(jù)軟件功能層次關(guān)系,分析其對本層、上一層和系統(tǒng)層的影響;

5) 逐類分析每一種失效模式產(chǎn)生的原因,并提出相對應(yīng)的改進(jìn)措施;

6) 將軟件的失效模式、失效影響、失效原因和對應(yīng)的改進(jìn)措施進(jìn)行記錄,獲得軟件失效模式及影響分析表;

7) 依據(jù)軟件失效模式,確定所分析的軟件故障樹頂事件;

8) 收集軟件功能數(shù)據(jù)流及運(yùn)行狀態(tài),分析導(dǎo)致頂事件故障的事件及其邏輯關(guān)系,構(gòu)造故障樹;

9) 分析故障樹的底事件,獲取相應(yīng)的軟件安全性需求。

3.3 軟件安全性設(shè)計

為了進(jìn)一步提高機(jī)載產(chǎn)品系統(tǒng)的安全性,需要進(jìn)行機(jī)載軟件安全性設(shè)計工作。軟件安全性設(shè)計主要在代碼層次上從軟件設(shè)計角度進(jìn)行軟件實(shí)現(xiàn)細(xì)節(jié)的安全性分析,重點(diǎn)分析軟件是否正確地實(shí)現(xiàn)了安全性需求,是否存在會造成系統(tǒng)危險的設(shè)計缺陷等,其主要從功能分配、程序接口、故障檢測、恢復(fù)和安全保護(hù),性能和余量,可追蹤性以及可測試性等方面開展。

軟件安全性設(shè)計分析的主要內(nèi)容如下:

a) 功能分配:確定實(shí)現(xiàn)軟件安全性需求的模塊和類等,將安全關(guān)鍵的部件和非安全關(guān)鍵部件隔開;最小化安全關(guān)鍵部件的數(shù)目,并將安全關(guān)鍵部件在設(shè)計層機(jī)構(gòu)中的位置和功能在設(shè)計文檔中描述出來,并詳細(xì)說明每個安全關(guān)鍵部件和安全性需求的追蹤關(guān)系,實(shí)現(xiàn)方式和實(shí)現(xiàn)約束等;

b) 程序接口:對所有部件之間的功能接口進(jìn)行定義,并標(biāo)識該接口中的安全關(guān)鍵數(shù)據(jù),在設(shè)計文檔中詳細(xì)描述每個接口的設(shè)計流程;對軟件的輸入地址、輸出地址、輸出時序、內(nèi)部接口以及數(shù)據(jù)公共區(qū)的使用進(jìn)行分析;

c) 故障檢測、恢復(fù)和安全保護(hù):對安全關(guān)鍵部件制定差錯檢測或者恢復(fù)方案,并且在設(shè)計中考慮容錯和容失效措施等;

d) 性能和余量:描述安全關(guān)鍵部件對安全性需求的響應(yīng)方式,并對這些關(guān)鍵部件設(shè)計余量;

e) 可追蹤性:標(biāo)識每一個部件到軟件需求的追蹤性,尤其 (下轉(zhuǎn)第54頁)

(上接第52頁)

是到軟件安全性需求的可追蹤性;所有的需求都應(yīng)該向下傳遞到設(shè)計,并通過維護(hù)可追蹤矩陣對需求和設(shè)計的對應(yīng)關(guān)系進(jìn)行驗(yàn)證,其次,對于每一個安全關(guān)鍵軟件的設(shè)計,在設(shè)計文檔中描述出其測試和驗(yàn)證的方法;

f) 可測試性:分析可以對部件內(nèi)部進(jìn)行充分測試的方法,并驗(yàn)證其正確工作,評審原型代碼,對其初步測試結(jié)果進(jìn)行分析,將其記錄在測試文檔中;測試過程中發(fā)現(xiàn)的任何錯誤和缺陷,都應(yīng)該修改并給出理由;安全性人員需要獲知所有發(fā)現(xiàn)的安全關(guān)鍵問題,以便制定出可行的解決方案。

3.4 軟件安全性驗(yàn)證

軟件安全性驗(yàn)證主要在于驗(yàn)證軟件是否正確的實(shí)現(xiàn)了安全性設(shè)計,并且沒有違反軟件的安全性需求。通過實(shí)際測量軟件的規(guī)模、復(fù)雜性和資源利用情況,將其和設(shè)計階段估計的結(jié)果相比,如果其差別較大,則可能需要重新進(jìn)行設(shè)計。通常安全性驗(yàn)證方法包括軟件邏輯分析、軟件數(shù)據(jù)分析、接口分析、中斷使用分析、規(guī)模分析以及代碼審查等。

4 結(jié)論

航空軟件大多數(shù)的失效都是因?yàn)檐浖踩苑治霾怀浞?,所獲取的軟件安全性需求不完整,安全性分析結(jié)果無追蹤導(dǎo)致的。針對航空系統(tǒng)軟件中存在的問題,本文提出了一種安全性分析方案,其結(jié)合常用的安全性分析技術(shù),從系統(tǒng)設(shè)計到軟件編碼直至軟件測試階段,對軟件安全性進(jìn)行逐層分析,獲取詳細(xì)的軟件安全性需求,將其落實(shí)到軟件設(shè)計中,驗(yàn)證其實(shí)現(xiàn)軟件安全性需求的正確性和完整性;其中通過建立需求追蹤矩陣,實(shí)現(xiàn)軟件安全性的追蹤。

軟件安全性問題是一個非常復(fù)雜的問題,需要考慮軟件、操作人員和系統(tǒng)之間的相互影響,這就需要相關(guān)人員掌握有關(guān)的安全性分析技術(shù),在實(shí)際型號研制過程中加以應(yīng)用,逐步總結(jié)和積累,形成適合航空系統(tǒng)軟件特點(diǎn)的安全性分析方法,對提升航空系統(tǒng)的安全性具有重要的意義。

參考文獻(xiàn):

[1] Learmount D. Never again. Flight Intl, 2012,182(5367):32 35.

[2] Afshar A, Majid Hajyhosseinloo MD, Ali Eftekhari MD. A report of the injuries sustained in Iran Air Flight 277 that Crashed near Urmia, Iran. Archives of Iranian Medicine, 2012,15(5):317 319.

[3] 周新蕾. 軟件安全性分析技術(shù)及應(yīng)用[J].質(zhì)量與可靠性,2005(3).

[4] N ASA-GB-8719.13.Software Safety Guidebook [S].2004

[5] GJB/Z102,軟件可靠性和安全性設(shè)計準(zhǔn)則[S]1997.

[6] GJB Z 102A-2012 軍用軟件安全性設(shè)計指南. 2012.

[7] Li Juan, Chen Bin.Study on Software Safety in Industrial System.

[8] GJB5000A-2008 軍用軟件研制能力成熟度模型.工業(yè)和信息化部軟件與集成電路促進(jìn)中心(CSIP)25.

[9] 陳曉娟.基于GJB5000A二級成熟度等級的軟件項(xiàng)目管理[J].計算機(jī)系統(tǒng)應(yīng)用,2013(8).

[10] NASA-GB-8719.13.Software Safety Guidebook[S].2004.

[11] 石柱,馬寬,鄭重.軟件FMEA實(shí)例研究[J].航天控制,2010(28):75-83.

[12] 申光耀.軟件安全性保障框架及安全性技術(shù)應(yīng)用[D].北京:北京信息控制研究所,2005.

[13] Wu WH, Kelly T. Safety tactics for software architecture design. In: Proc. of the 28th Annual Intl Computer Software andApplications Conf. 2004.

猜你喜歡
安全性分析
基于包裝材料的鋰離子電池?zé)崾Э卦囼?yàn)研究
鐵路車站計算機(jī)聯(lián)鎖系統(tǒng)安全性分析
美托洛爾應(yīng)用于急性心梗早期溶栓中療效觀察
電子商務(wù)網(wǎng)絡(luò)營銷平臺的安全性分析
嵌入式系統(tǒng)安全性分析概述
高齡非瓣膜病性房顫患者長期運(yùn)用華法林抗凝治療的療效與安全性分析
系統(tǒng)安全性分析技術(shù)在空空導(dǎo)彈中的應(yīng)用
阿托伐他汀聯(lián)合神經(jīng)內(nèi)分泌拮抗劑治療慢性心力衰竭的臨床療效觀察
云環(huán)境中數(shù)據(jù)安全及訪問控制模型研究
民用飛機(jī)安全性分析研究