一種安全攸關(guān)系統(tǒng)的軟件安全性保證的實現(xiàn)方法
【專利摘要】一種安全攸關(guān)系統(tǒng)的軟件安全性保證的實現(xiàn)方法,(1)定義系統(tǒng)的軟件安全設(shè)計要求,包括軟件需求階段安全性設(shè)計要求、軟件設(shè)計階段安全性設(shè)計要求、軟件編碼階段安全性設(shè)計要求、軟件測試階段安全性設(shè)計要求;(2)根據(jù)軟件安全性等級,對(1)中的安全性設(shè)計要求進(jìn)行裁剪,并按各項要求實施軟件需求、軟件設(shè)計、軟件編碼、軟件測試的安全性設(shè)計;(3)獲取軟件安全證據(jù),判斷安全證據(jù)是否滿足(2)中各項安全性設(shè)計要求;(4)獲取系統(tǒng)的軟件安全性風(fēng)險規(guī)避措施;(5)驗證軟件安全性風(fēng)險規(guī)避措施是否可追蹤到軟件需求、軟件設(shè)計、軟件編碼、軟件測試。本發(fā)明提升了軟件安全性保障能力,填補了航天重大工程軟件安全性保證的技術(shù)空白。
【專利說明】一種安全攸關(guān)系統(tǒng)的軟件安全性保證的實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件安全性【技術(shù)領(lǐng)域】,特別是涉及一種安全攸關(guān)系統(tǒng)的軟件安全性實現(xiàn)方法。
【背景技術(shù)】
[0002]軟件安全性software safety是“軟件運行不引起系統(tǒng)事故的能力”(引自《GJB/Z102A-2012軍用軟件安全性設(shè)計指南》)。軟件的安全性直接會影響到系統(tǒng)的安全性,保障軟件的安全是確保系統(tǒng)安全的關(guān)鍵環(huán)節(jié)。
[0003]美國軍方1971年推出MIL-STD-882A “系統(tǒng)安全性大綱”,1984年做了修訂,推出了 MIL-STD-882B,其最大的特點就是提出了軟件安全性的問題,增添了軟件風(fēng)險分析的有關(guān)工作,之后又在1993年推出了 MIL-STD-882C,2000年又進(jìn)行了修訂,完成了MIL-STD-882D。2005年形成第五版,即MIL-STD-882E。美國航空航天局NASA很早就重視系統(tǒng)的安全性及軟件的安全性,制定了多項標(biāo)準(zhǔn)及配套的技術(shù)指南。1997年發(fā)布了自己的軟件安全性技術(shù)標(biāo)準(zhǔn)NASA-STD-8719.13A《軟件安全性指南》,并于2004年進(jìn)行了更新,形成NASA-STD-8719.13B,充分說明NASA對軟件安全在飛行任務(wù)中的重要性的認(rèn)識。他們在軟件安全性標(biāo)準(zhǔn)中定義軟件安全性是“在整個軟件生命周期,運用系統(tǒng)安全性工程技術(shù)來確保軟件采用提高系統(tǒng)安全性的有效措施,并確保那些可能降低系統(tǒng)安全性的錯誤均已被排除,或控制在可接受的風(fēng)險水平”,同時定義系統(tǒng)安全性為“在系統(tǒng)生命周期各階段運用工程和管理原理、準(zhǔn)則和技術(shù),以便在使用效率、時間和費用的約束范圍內(nèi)使安全性最優(yōu),并且風(fēng)險降低”。
[0004]我國的GJB-900 (1991) “系統(tǒng)安全性通用大綱”把軟件的安全性分析作為系統(tǒng)的安全性分析的重要內(nèi)容。GJB/Z102-97《軟件可靠性和安全性設(shè)計準(zhǔn)則》中定義軟件安全性是“軟件運行不引起系統(tǒng)事故的能力”。GJB142-2004《軍用軟件安全性分析指南》中定義軟件安全性為“軟件具有的不導(dǎo)致事故發(fā)生的能力。但是這些標(biāo)準(zhǔn)中都還缺乏對安全性實現(xiàn)技術(shù)的完整介紹,以及安全性分析技術(shù)的具體規(guī)定。
[0005]在國內(nèi)研究領(lǐng)域,1992年航天204所的王緯針對航天系統(tǒng)的特點,提出需要重點關(guān)注軟件的安全性問題,并簡要介紹了軟件安全性工程需要解決的基本問題。也有專家通過建立時間條件狀態(tài)的Petri網(wǎng),借助Petri網(wǎng)的狀態(tài)可達(dá)空間分析來研究軟件的安全性問題。電子科技大學(xué)的楊仕平使用貝葉斯函數(shù)動態(tài)地表示軟件失效率的密度函數(shù),提出了一種增量記憶型的安全性測試方法。同濟大學(xué)計算機系的酈萌等人、信息與控制工程系的吳芳美等人也對軟件安全性的評估及測試方法做了一些卓有成效的研究工作。
[0006]在航天領(lǐng)域,921工程的《軟件安全性分析與設(shè)計》(2002.1)己經(jīng)提出了初步的安全性總體技術(shù)指導(dǎo)框架。它從軟件安全性的要求、設(shè)計、分析以及檢查這幾個方面,對軟件生命周期的各階段的各項工作做了初步的論述。其中還列舉出了一些供參考使用的安全性設(shè)計方法,但是還缺乏對實際工作如何開展,以及開展過程中的如何評估的明確指導(dǎo)。
[0007]目前國內(nèi)外軟件安全性研究的大體現(xiàn)狀是:雖然提出了軟件安全性綱領(lǐng),但缺乏具體的實現(xiàn)過程和方法,只是停留在知識的概述和理論。針對軍事和航空航天領(lǐng)域眾多的安全關(guān)鍵軟件的安全性分析評估,尤其是對重點型號系統(tǒng)而言,缺乏具體的框架和方法指導(dǎo)。因此,有必要在現(xiàn)有工作成果的基礎(chǔ)上,繼續(xù)做深入的研究,針對安全關(guān)鍵性軟件的特點,提出一套相對完整的評估方法,支撐對軟件安全性的分析評估工作。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的技術(shù)解決問題是:針對現(xiàn)有技術(shù)的不足,提供了一種安全攸關(guān)系統(tǒng)的軟件安全性實現(xiàn)方法,通過系統(tǒng)的開展軟件風(fēng)險分析、軟件安全風(fēng)險驗證等過程,具體實現(xiàn)了軟件安全性的保證。
[0009]本發(fā)明的技術(shù)解決方案是:
[0010]一種安全攸關(guān)系統(tǒng)的軟件安全性保證的實現(xiàn)方法,包括步驟如下:
[0011]步驟一、定義系統(tǒng)的軟件安全設(shè)計要求集合四元組SD = 0?,00,^,了0),其中所述的RD是軟件需求階段安全性設(shè)計要求,RD = {性能需求安全性設(shè)計要求,功能需求安全性設(shè)計要求,數(shù)據(jù)需求安全性設(shè)計要求、接口需求安全性設(shè)計要求};
[0012]所述DD是軟件設(shè)計階段安全性設(shè)計要求,DD = {邏輯設(shè)計安全性設(shè)計要求,數(shù)據(jù)設(shè)計安全性設(shè)計要求,接口設(shè)計安全性設(shè)計要求,中斷設(shè)計安全性設(shè)計要求,冗余設(shè)計安全性設(shè)計要求,查錯設(shè)計安全性設(shè)計要求,改錯設(shè)計安全性設(shè)計要求,容錯設(shè)計安全性設(shè)計要求,指針設(shè)計安全性設(shè)計要求};
[0013]所述⑶是軟件編碼階段安全性設(shè)計要求,⑶={代碼數(shù)據(jù)安全性設(shè)計要求,代碼接口安全性設(shè)計要求,代碼中斷安全性設(shè)計要求,代碼邏輯安全性設(shè)計要求,資源使用安全性設(shè)計要求};
[0014]所述TD是軟件測試階段安全性設(shè)計要求,TD = {安全性測試的覆蓋性要求、安全性測試的充分性要求};
[0015]步驟二、在軟件需求、軟件設(shè)計、軟件編碼、軟件測試過程中,對于軟件安全性等級為A、B級的軟件,軟件需求、軟件設(shè)計、軟件編碼、軟件測試過程中的安全性要求應(yīng)滿足步驟(一)中RD、DD、⑶、TD集合中的各項安全性要求;對于軟件安全性等級為C、D級軟件,可根據(jù)實際情況部分滿足對RD、DD、CD、TD集合中的安全性要求,并根據(jù)RD、DD、CD、TD集合中各項要求實施軟件需求、軟件設(shè)計、軟件編碼、軟件測試的安全性設(shè)計;
[0016]步驟三、軟件安全性驗證;所述的軟件安全性驗證具體步驟如下:
[0017](I)獲取安全證據(jù)集合ES,ES表示軟件需求、軟件設(shè)計、軟件編碼、軟件測試各階段所完成的安全性設(shè)計工作,ES = (RE, DE, CE, TE),其中RE是軟件需求階段證據(jù),DE是軟件設(shè)計階段證據(jù),CE是軟件開發(fā)階段證據(jù),TE是軟件測試階段證據(jù)。
[0018]RE = {性能需求安全性證據(jù)項,功能需求安全性證據(jù)項,數(shù)據(jù)需求安全性證據(jù)項、接口需求安全性證據(jù)項};
[0019]DE = {邏輯設(shè)計安全性證據(jù)項,數(shù)據(jù)設(shè)計安全性證據(jù)項,接口設(shè)計安全性證據(jù)項,中斷設(shè)計安全性證據(jù)項,冗余設(shè)計安全性證據(jù)項,查錯設(shè)計安全性證據(jù)項,改錯設(shè)計安全性證據(jù)項,容錯設(shè)計安全性證據(jù)項,指針設(shè)計安全性證據(jù)項};
[0020]CE = {代碼數(shù)據(jù)安全性證據(jù)項,代碼接口安全性證據(jù)項,代碼中斷安全性證據(jù)項,代碼邏輯安全性證據(jù)項,資源使用安全性證據(jù)項};[0021]TE = {安全性測試的覆蓋性證據(jù)項、安全性測試的充分性證據(jù)項};
[0022](2)判斷安全證據(jù)是否滿足步驟(二)中RD、DD、⑶、TD集合中的各項安全性要求,若滿足說明軟件需求、軟件設(shè)計、軟件編碼、軟件測試滿足安全性要求進(jìn)入步驟(四),否則重新修改軟件需求、軟件設(shè)計、軟件編碼、軟件測試的安全性設(shè)計直至滿足并進(jìn)入步驟(四);;
[0023]步驟四、獲取系統(tǒng)的軟件安全性風(fēng)險規(guī)避措施,所述軟件安全性風(fēng)險規(guī)避措施的獲取步驟如下:
[0024](I)獲取系統(tǒng)級危險事件;通過應(yīng)用PHA(初步危險分析)完成系統(tǒng)級危險分析,獲取系統(tǒng)級危險事件集SysHESet ;
[0025](2)獲取系統(tǒng)中的單機危險事件;將系統(tǒng)級危險事件集SysHESet中的危險事件作為頂事件,并通過FTA (故障樹分析)獲取單機危險事件集CHESet ;
[0026](3)獲取單機中的軟件配置項危險事件;通過HSIA(硬軟件接口)獲得軟件失效模式,進(jìn)而獲取單機中的軟件配置項危險事件集SCHESet (軟件失效模式組成危險事件集);
[0027](4)進(jìn)行軟件配置項風(fēng)險分析;軟件配置項風(fēng)險分析具體步驟如下:基于危險事件發(fā)生的嚴(yán)重程度和軟件控制分類,通過風(fēng)險評價矩陣確定軟件配置項危險事件集SCHESet中各危險事件的風(fēng)險指數(shù);
[0028]所述的風(fēng)險指數(shù)表示軟件的安全性關(guān)鍵級別,指數(shù)值越小代表該軟件引發(fā)的風(fēng)險越聞,其安全性關(guān)鍵等級就越聞;
[0029]所述的風(fēng)險評價矩陣如下表所示:
[0030]
【權(quán)利要求】
1.一種安全攸關(guān)系統(tǒng)的軟件安全性保證的實現(xiàn)方法,其特征在于步驟如下: 步驟一、定義系統(tǒng)的軟件安全設(shè)計要求集合四元組SD = (RD, DD,⑶,TD),其中所述的RD是軟件需求階段安全性設(shè)計要求,RD= {性能需求安全性設(shè)計要求,功能需求安全性設(shè)計要求,數(shù)據(jù)需求安全性設(shè)計要求、接口需求安全性設(shè)計要求}; 所述DD是軟件設(shè)計階段安全性設(shè)計要求,DD = {邏輯設(shè)計安全性設(shè)計要求,數(shù)據(jù)設(shè)計安全性設(shè)計要求,接口設(shè)計安全性設(shè)計要求,中斷設(shè)計安全性設(shè)計要求,冗余設(shè)計安全性設(shè)計要求,查錯設(shè)計安全性設(shè)計要求,改錯設(shè)計安全性設(shè)計要求,容錯設(shè)計安全性設(shè)計要求,指針設(shè)計安全性設(shè)計要求}; 所述CD是軟件編碼階段安全性設(shè)計要求,CD = {代碼數(shù)據(jù)安全性設(shè)計要求,代碼接口安全性設(shè)計要求,代碼中斷安全性設(shè)計要求,代碼邏輯安全性設(shè)計要求,資源使用安全性設(shè)計要求}; 所述TD是軟件測試階段安全性設(shè)計要求,TD = {安全性測試的覆蓋性要求、安全性測試的充分性要求}; 步驟二、在軟件需求、軟件設(shè)計、軟件編碼、軟件測試過程中,對于軟件安全性等級為A、B級的軟件,軟件需求、軟件設(shè)計、軟件編碼、軟件測試過程中的安全性要求應(yīng)滿足步驟(一)中RD、DD、⑶、TD集合中的各項安全性要求;對于軟件安全性等級為C、D級軟件,可根據(jù)實際情況部分滿足對RD、DD、CD、TD集合中的安全性要求,并根據(jù)RD、DD、CD、TD集合中各項要求實施軟件需求、軟件設(shè)計、軟件編碼、軟件測試的安全性設(shè)計; 步驟三、軟件安全性驗證;所述的軟件安全性驗證具體步驟如下: (1)獲取安全證據(jù)集合ES,ES表示軟件需求、軟件設(shè)計、軟件編碼、軟件測試各階段所完成的安全性設(shè)計工作,ES = (RE, DE, CE, TE),其中RE是軟件需求階段證據(jù),DE是軟件設(shè)計階段證據(jù),CE是軟件開發(fā)階段證據(jù),TE是軟件測試階段證據(jù); RE = {性能需求安全性證據(jù)項,功能需求安全性證據(jù)項,數(shù)據(jù)需求安全性證據(jù)項、接口需求安全性證據(jù)項}; DE = {邏輯設(shè)計安全性證據(jù)項,數(shù)據(jù)設(shè)計安全性證據(jù)項,接口設(shè)計安全性證據(jù)項,中斷設(shè)計安全性證據(jù)項,冗余設(shè)計安全性證據(jù)項,查錯設(shè)計安全性證據(jù)項,改錯設(shè)計安全性證據(jù)項,容錯設(shè)計安全性證據(jù)項,指針設(shè)計安全性證據(jù)項}; CE = {代碼數(shù)據(jù)安全性證據(jù)項,代碼接口安全性證據(jù)項,代碼中斷安全性證據(jù)項,代碼邏輯安全性證據(jù)項,資源使用安全性證據(jù)項}; TE = {安全性測試的覆蓋性證據(jù)項、安全性測試的充分性證據(jù)項}; (2)判斷安全證據(jù)是否滿足步驟(二)中RD、DD、⑶、TD集合中的各項安全性要求,若滿足說明軟件需求、軟件設(shè)計、軟件編碼、軟件測試滿足安全性要求進(jìn)入步驟(四),否則重新修改軟件需求、軟件設(shè)計、軟件編碼、軟件測試的安全性設(shè)計直至滿足并進(jìn)入步驟(四); 步驟四、獲取系統(tǒng)的軟件安全性風(fēng)險規(guī)避措施,所述軟件安全性風(fēng)險規(guī)避措施的獲取步驟如下: (1)獲取系統(tǒng)級危險事件;通過應(yīng)用PHA(初步危險分析)完成系統(tǒng)級危險分析,獲取系統(tǒng)級危險事件集SysHESet ; (2)獲取系統(tǒng)中的單機危險事件;將系統(tǒng)級危險事件集SysHESet中的危險事件作為頂事件,并通過FTA (故障樹分析)獲取單機危險事件集CHESet ;(3)獲取單機中的軟件配置項危險事件;通過HSIA(硬軟件接口)獲得軟件失效模式,進(jìn)而獲取單機中的軟件配置項危險事件集SCHESet (軟件失效模式組成危險事件集); (4)進(jìn)行軟件配置項風(fēng)險分析;軟件配置項風(fēng)險分析具體步驟如下:基于危險事件發(fā)生的嚴(yán)重程度和軟件控制分類,通過風(fēng)險評價矩陣確定軟件配置項危險事件集SCHESet中各危險事件的風(fēng)險指數(shù); 所述的風(fēng)險指數(shù)表示軟件的安全性關(guān)鍵級別,指數(shù)值越小代表該軟件引發(fā)的風(fēng)險越聞,其安全性關(guān)鍵等級就越聞; 所述的風(fēng)險評價矩陣如下表所示:
【文檔編號】G06F11/36GK103955427SQ201410178300
【公開日】2014年7月30日 申請日期:2014年4月29日 優(yōu)先權(quán)日:2014年4月29日
【發(fā)明者】趙文波, 龐涪川, 張偉, 經(jīng)小川, 詹海潭, 高金梁, 張瑋, 海衛(wèi)華 申請人:探月與航天工程中心, 北京信息控制研究所