本發(fā)明涉及一種安全驗(yàn)證分析方法,特別是一種基于需求的ima安全驗(yàn)證分析方法。
背景技術(shù):
綜合模塊化航空電子(ima)是航電系統(tǒng)架構(gòu)發(fā)展新的階段,ima架構(gòu)給航電開發(fā)帶來(lái)了更多的靈活性,顯著地提升了開發(fā)效率。ima架構(gòu)一個(gè)重要益處就是允許應(yīng)用系統(tǒng)獨(dú)立地開發(fā),然后集成到統(tǒng)一的ima平臺(tái)之上共享硬件資源。系統(tǒng)開發(fā)與安全性評(píng)估的隔離,加上不同開發(fā)人員對(duì)于系統(tǒng)安全性認(rèn)知的不同使得ima的安全性分析變得十分復(fù)雜。傳統(tǒng)的基于事件鏈模型的危害分析方法將硬件與軟件放在一起考慮且主要考慮組件失效,這些傳統(tǒng)危害分析方法適用于聯(lián)合式航電系統(tǒng),并不適用于ima這種軟件密集型系統(tǒng)。相比于組件失效,ima中存在大量潛在的危害是由組件交互引起的,目前關(guān)于ima系統(tǒng)安全性的分析與驗(yàn)證的研究較少,且還沒有很好地解決這方面的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于需求的ima安全驗(yàn)證分析方法,找到組件交互產(chǎn)生的潛在危害,得到系統(tǒng)的安全需求。
為解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是:
一種基于需求的ima安全驗(yàn)證分析方法,其特征在于包含以下步驟:
步驟一:確定系統(tǒng)級(jí)危害和安全約束;
步驟二:構(gòu)建出系統(tǒng)的控制結(jié)構(gòu)圖,通過(guò)控制結(jié)構(gòu)圖找出不安全的控制行為,進(jìn)而得到系統(tǒng)的安全需求;
步驟三:用scr模型對(duì)安全需求進(jìn)行建模,對(duì)描述不準(zhǔn)確的需求進(jìn)行修改,并用形式化的方法驗(yàn)證需求的可靠性和準(zhǔn)確性。
進(jìn)一步地,所述步驟一具體為,從ima系統(tǒng)提供的服務(wù)出發(fā),找到ima提供的與分區(qū)通信相關(guān)的服務(wù),然后找到會(huì)導(dǎo)致相關(guān)服務(wù)失效的危險(xiǎn),確定分區(qū)通信的系統(tǒng)級(jí)危險(xiǎn),若ima的分區(qū)間通信服務(wù)失效,則會(huì)導(dǎo)致分區(qū)通信系統(tǒng)的系統(tǒng)級(jí)危險(xiǎn)。
進(jìn)一步地,所述分區(qū)通信的系統(tǒng)級(jí)危險(xiǎn)包含,
h1通道沒有正確獲取發(fā)送進(jìn)程發(fā)送的消息;
h2接收進(jìn)程沒有正確接收通道的消息;
h3分區(qū)通信初始化過(guò)程出現(xiàn)錯(cuò)誤;
進(jìn)而產(chǎn)生系統(tǒng)級(jí)的安全約束:
sc1通道必須要正確獲取發(fā)送進(jìn)程發(fā)送的消息;
sc2接收進(jìn)程必須正確接收通道的消息;
sc3分區(qū)通信初始化過(guò)程不能出錯(cuò)。
進(jìn)一步地,所述步驟二包含,
2.1熟悉系統(tǒng),了解整個(gè)系統(tǒng)的工作方式和系統(tǒng)結(jié)構(gòu),找出系統(tǒng)的所有獨(dú)立的組件,分析每個(gè)組件在系統(tǒng)中的作用,提取控制動(dòng)作和反饋動(dòng)作,構(gòu)建出控制結(jié)構(gòu)圖;
2.2從控制結(jié)構(gòu)圖中提取控制動(dòng)作,從“沒有提供所需的安全控制行為”,“提供了不正確的控制行為”,“不正確的時(shí)間/順序”,“停止過(guò)快/過(guò)慢”四類控制不力的情況出發(fā),分析每個(gè)控制動(dòng)作可能會(huì)導(dǎo)致的系統(tǒng)危險(xiǎn),得到不安全的控制行為,并根據(jù)不安全的控制動(dòng)作得出安全約束;
2.3分析不安全控制行為產(chǎn)生原因,原因包含系統(tǒng)缺陷、組件失效、算法缺陷和外界環(huán)境干擾;
2.4把提取出的安全約束作為系統(tǒng)的安全需求,提取需求中的變量。
進(jìn)一步地,所述2.1具體為,ima分區(qū)通信分為兩個(gè)階段:初始化階段和通信階段,針對(duì)兩個(gè)不同階段分別構(gòu)建控制結(jié)構(gòu)圖,以提取不同階段的安全需求;在構(gòu)建通信階段的控制結(jié)構(gòu)圖時(shí),先構(gòu)建通信階段的流程圖,然后在流程圖中提取控制動(dòng)作和反饋動(dòng)作,找出控制方和被控制方,構(gòu)建出通信階段的控制結(jié)構(gòu)圖。
進(jìn)一步地,所述2.2具體為,從控制結(jié)構(gòu)圖中提取控制動(dòng)作得到分區(qū)通信模塊14個(gè)控制動(dòng)作,其中初始化階段4個(gè)控制動(dòng)作,通信階段10個(gè)控制動(dòng)作,按照stpa方法從“沒有提供所需的安全控制行為”、“提供了不正確的控制行為”、“不正確的時(shí)間/順序”、“停止過(guò)快/過(guò)慢”四類控制不力的情況出發(fā),分析每個(gè)控制動(dòng)作會(huì)導(dǎo)致的系統(tǒng)危險(xiǎn),得到不安全的控制行為,通過(guò)對(duì)14個(gè)控制動(dòng)作的分析,得到70個(gè)uca,其中初始化階段有16個(gè)uca,通信階段有54個(gè)uca,識(shí)別出不安全控制行為可以轉(zhuǎn)換為有關(guān)系統(tǒng)組件行為的安全約束,即得到系統(tǒng)的安全需求,通過(guò)對(duì)得到的70個(gè)uca的分析,得到分區(qū)通信的安全約束。
進(jìn)一步地,所述步驟三包含,
3.1根據(jù)安全需求,構(gòu)建變量之間的關(guān)系,建立scr模型,驗(yàn)證安全需求的描述準(zhǔn)確性,對(duì)描述不準(zhǔn)確的需求進(jìn)行修改;
3.2把建立好的scr模型在t-vec工具上進(jìn)行模擬,進(jìn)行形式化驗(yàn)證,確保系統(tǒng)需求的可靠性和準(zhǔn)確性。
進(jìn)一步地,所述3.1具體為,提取完安全需求的變量之后,找到變量之間的關(guān)系,把安全需求用形式化的語(yǔ)言描述,對(duì)不明確的安全需求進(jìn)行相應(yīng)的修改完善,使stpa方法得到的安全需求表述更加準(zhǔn)確,對(duì)形式化表述之后的安全需求構(gòu)建scr關(guān)系表。
進(jìn)一步地,所述3.2具體為,把構(gòu)建好的scr模型在t-vec工具上進(jìn)行模擬,進(jìn)行形式化驗(yàn)證,確保系統(tǒng)需求各變量和需求間的依賴關(guān)系符合系統(tǒng)要求,且需求所描述的系統(tǒng)行為滿足安全性,通過(guò)t-vec工具可以自動(dòng)生成測(cè)試向量。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)和效果:
1、本發(fā)明利用stpa方法能有效分析系統(tǒng)的控制結(jié)構(gòu),找到組件交互產(chǎn)生的潛在危害,得到系統(tǒng)的安全需求。
2、本發(fā)明結(jié)合了安全需求分析方法和形式化模型,為安全關(guān)鍵系統(tǒng)需求的產(chǎn)生和驗(yàn)證提供了一種有效的方法流程。
3、本發(fā)明利用scr模型檢對(duì)需求進(jìn)行形式化驗(yàn)證,提高了需求描述的準(zhǔn)確性,驗(yàn)證需求的一致性和完備性檢查并為需求生成自動(dòng)測(cè)試向量。
附圖說(shuō)明
圖1是本發(fā)明的基于需求的ima安全驗(yàn)證分析方法的流程框圖。
圖2是本發(fā)明的實(shí)施例的分區(qū)通信模塊安全性分析驗(yàn)證的初始化階段的控制結(jié)構(gòu)圖。
圖3是本發(fā)明的通信階段的控制結(jié)構(gòu)圖。
圖4是本發(fā)明的通過(guò)uca尋找安全缺陷的流程圖。
圖5是本發(fā)明的scr模型生成的自動(dòng)測(cè)試向量示意圖。
圖6是本發(fā)明的表1示意圖。
圖7是本發(fā)明的表2示意圖。
圖8是本發(fā)明的表3示意圖。
圖9是本發(fā)明的表3示意圖。
具體實(shí)施方式
下面結(jié)合附圖并通過(guò)實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明,以下實(shí)施例是對(duì)本發(fā)明的解釋而本發(fā)明并不局限于以下實(shí)施例。
如圖1所示,本發(fā)明的一種基于需求的ima安全驗(yàn)證分析方法,包含以下步驟:
步驟一:確定系統(tǒng)級(jí)危害和安全約束;分析系統(tǒng)級(jí)危害,獲取分區(qū)通信模塊的系統(tǒng)級(jí)安全性約束條件。為了找到能導(dǎo)致分區(qū)通信模塊的系統(tǒng)級(jí)危險(xiǎn),從ima系統(tǒng)提供的服務(wù)出發(fā),找到ima提供的與分區(qū)通信相關(guān)的服務(wù),然后找到會(huì)導(dǎo)致相關(guān)服務(wù)失效的危險(xiǎn),這樣就確定了分區(qū)通信的系統(tǒng)級(jí)危險(xiǎn)。若ima的分區(qū)間通信服務(wù)失效,則會(huì)導(dǎo)致分區(qū)通信系統(tǒng)的系統(tǒng)級(jí)危險(xiǎn)。通過(guò)對(duì)分區(qū)通信的研究,可以得到以下三個(gè)系統(tǒng)級(jí)危險(xiǎn)(hazard):
h1通道沒有正確獲取發(fā)送進(jìn)程發(fā)送的消息;
h2接收進(jìn)程沒有正確接收通道的消息;
h3分區(qū)通信初始化過(guò)程出現(xiàn)錯(cuò)誤。
進(jìn)而產(chǎn)生系統(tǒng)級(jí)的安全約束(safetyconstraint):
sc1通道必須要正確獲取發(fā)送進(jìn)程發(fā)送的消息;
sc2接收進(jìn)程必須正確接收通道的消息;
sc3分區(qū)通信初始化過(guò)程不能出錯(cuò)。
安全性是一種涌現(xiàn)性,系統(tǒng)的安全性是由安全性約束條件來(lái)保障的。系統(tǒng)級(jí)危害的發(fā)生意味著系統(tǒng)級(jí)的安全性約束條件被違反。因此,除了確定系統(tǒng)級(jí)危害外,還需要確定系統(tǒng)級(jí)安全性性約束,以便在后續(xù)分析中確定安全性約束如何被滿足。
步驟二:構(gòu)建出系統(tǒng)的控制結(jié)構(gòu)圖,通過(guò)控制結(jié)構(gòu)圖找出不安全的控制行為,進(jìn)而得到系統(tǒng)的安全需求;
步驟二包含,
2.1熟悉系統(tǒng),了解整個(gè)系統(tǒng)的工作方式和系統(tǒng)結(jié)構(gòu),找出系統(tǒng)的所有獨(dú)立的組件,分析每個(gè)組件在系統(tǒng)中的作用,提取控制動(dòng)作和反饋動(dòng)作,構(gòu)建出控制結(jié)構(gòu)圖;
ima分區(qū)通信分為兩個(gè)階段:初始化階段和通信階段。初始化階段和通信階段的控制動(dòng)作完全不一樣,且對(duì)系統(tǒng)的安全性息息相關(guān),所以本文針對(duì)兩個(gè)不同階段分別構(gòu)建控制結(jié)構(gòu)圖,以便提取不同階段的安全需求。在構(gòu)建通信階段的控制結(jié)構(gòu)圖時(shí),考慮到通信的時(shí)序性,先構(gòu)建了通信階段的流程圖,然后在流程圖中提取控制動(dòng)作和反饋動(dòng)作,找出控制方和被控制方,構(gòu)建出通信階段的控制結(jié)構(gòu)圖。初始化階段的控制結(jié)構(gòu)圖如圖2,通信階段的控制結(jié)構(gòu)圖如圖3。
構(gòu)建系統(tǒng)的分層控制結(jié)構(gòu)可以清楚地表現(xiàn)表面系統(tǒng)不同層次的交互過(guò)程,以及各個(gè)層級(jí)之間的關(guān)系,為進(jìn)一步辨識(shí)導(dǎo)致系統(tǒng)危險(xiǎn)的原因(不安全控制)奠定分析基礎(chǔ)??刂平Y(jié)構(gòu)并不僅包含分層控制框圖所體現(xiàn)的信息,還包含對(duì)各個(gè)控制過(guò)程所進(jìn)行的描述,如過(guò)程模型、控制算法等。
2.2從控制結(jié)構(gòu)圖中提取控制動(dòng)作,從“沒有提供所需的安全控制行為”,“提供了不正確的控制行為”,“不正確的時(shí)間/順序”,“停止過(guò)快/過(guò)慢”四類控制不力的情況出發(fā),分析每個(gè)控制動(dòng)作可能會(huì)導(dǎo)致的系統(tǒng)危險(xiǎn),得到不安全的控制行為,并根據(jù)不安全的控制動(dòng)作得出安全約束;
從步驟2.1的控制結(jié)構(gòu)圖中,得到了分區(qū)通信模塊14個(gè)控制動(dòng)作(附錄1)(ca,controlaction),其中初始化階段4個(gè)控制動(dòng)作,通信階段10個(gè)控制動(dòng)作。分區(qū)通信的控制行為可能導(dǎo)致系統(tǒng)級(jí)危險(xiǎn),按照stpa方法可從“沒有提供所需的安全控制行為”,“提供了不正確的控制行為”,“不正確的時(shí)間/順序”,“停止過(guò)快/過(guò)慢”四類控制不力的情況出發(fā),分析每個(gè)控制動(dòng)作可能會(huì)導(dǎo)致的系統(tǒng)危險(xiǎn),得到不安全的控制行為(uca,unsafecontrolaction)。通過(guò)對(duì)14個(gè)控制動(dòng)作的分析,得到74個(gè)uca(附錄2),其中初始化階段有16個(gè)uca,通信階段有54個(gè)uca。識(shí)別出不安全控制行為可以轉(zhuǎn)換為有關(guān)系統(tǒng)組件行為的安全約束,即得到系統(tǒng)的安全需求,通過(guò)對(duì)上節(jié)得到的74個(gè)uca的分析,得到分區(qū)通信的安全約束(sc,safetyconstraint),一共有56個(gè)(附錄3)。圖6所示的表1給出通過(guò)控制動(dòng)作識(shí)別出uca的過(guò)程。
上述四種不同類型的不安全控制行為確定每個(gè)控制器(包括人工控制器和自動(dòng)控制器)潛在的不安全控制行為。這些通用分類僅作為不安全控制辨識(shí)時(shí)的參考,針對(duì)具體的系統(tǒng)需要具體區(qū)分。另外,由于危險(xiǎn)分析的主要目的是在事故發(fā)生前找出潛在的危險(xiǎn)原因并進(jìn)行預(yù)防,因而需要根據(jù)辨識(shí)出的危險(xiǎn)原因——不安全控制來(lái)形成具體的安全約束,以保證系統(tǒng)的安全。
2.3分析不安全控制行為產(chǎn)生原因,原因包含系統(tǒng)缺陷、組件失效、算法缺陷和外界環(huán)境干擾;針對(duì)2.2辨識(shí)出的不恰當(dāng)控制行為,分析其控制缺陷。要分析不恰當(dāng)控制行為的產(chǎn)生原因,可以依據(jù)stpa方法提供的一般控制模型所要考慮的因素出發(fā),對(duì)不恰當(dāng)控制行為進(jìn)行分析,找出其中的控制缺陷,uca37分析控制缺陷的過(guò)程如圖4。
分析不安全控制行為產(chǎn)生原因。這個(gè)階段辨別控制結(jié)構(gòu)中的控制缺陷(controlflaws)——導(dǎo)致危害發(fā)生的原因。stpa分析不僅要找到上述的不安全控制行為,還需要進(jìn)一步分析產(chǎn)生這些不安全控制行為的原因,及控制缺陷,控制缺陷會(huì)和安全需求一同交付系統(tǒng)開發(fā)人員,使其在構(gòu)建系統(tǒng)時(shí)能更好的是安全需求得到滿足。
2.4把提取出的安全約束作為系統(tǒng)的安全需求,提取需求中的變量。對(duì)2.2提取的安全需求進(jìn)行驗(yàn)證,首先提取安全需求中的變量,確定變量的類型和取值范圍。如圖7所示的表2給出了sc1-sc5的所有變量集合。
對(duì)安全需求提取變量,分析需求中的所有實(shí)體,把每個(gè)實(shí)體對(duì)應(yīng)scr模型的中不同變量類型。
步驟三:用scr模型對(duì)安全需求進(jìn)行建模,對(duì)描述不準(zhǔn)確的需求進(jìn)行修改,并用形式化的方法驗(yàn)證需求的可靠性和準(zhǔn)確性。
步驟三包含,
3.1根據(jù)安全需求,構(gòu)建變量之間的關(guān)系,建立scr模型,驗(yàn)證安全需求的描述準(zhǔn)確性,對(duì)描述不準(zhǔn)確的需求進(jìn)行修改;
提取完安全需求的變量之后,需要找到變量之間的關(guān)系,把安全需求用形式化的語(yǔ)言描述,sc1-5的形式化描述如圖4。對(duì)不明確的安全需求進(jìn)行了相應(yīng)的修改完善,使stpa方法得到的安全需求表述更加準(zhǔn)確。如圖8和圖9所示的表3和表4所示,對(duì)形式化表述之后的安全需求構(gòu)建scr關(guān)系表。
變量之間的關(guān)系包括四種結(jié)構(gòu),利用這四種結(jié)構(gòu)可以以一種更加實(shí)際和簡(jiǎn)明的方式對(duì)系統(tǒng)進(jìn)行描述,這四種結(jié)構(gòu)分別是模式(mode),項(xiàng)(term),條件(condition)和事件(event)。其中,模式類是定義在受監(jiān)控的變量上的狀態(tài)機(jī),狀態(tài)機(jī)中的狀態(tài)稱為系統(tǒng)模式(或簡(jiǎn)單的稱之為模式),其中的狀態(tài)轉(zhuǎn)換由事件觸發(fā),復(fù)雜系統(tǒng)可同時(shí)定義多個(gè)模型類,這些模式類可以一種并行方式進(jìn)行操作。項(xiàng)定義在輸入變量、模式或其他項(xiàng)上,用以描述系統(tǒng)中的某個(gè)場(chǎng)景。條件即為斷言,定義在系統(tǒng)中一個(gè)或多個(gè)實(shí)體之上(一個(gè)系統(tǒng)實(shí)體是指一個(gè)輸入或輸出變量,模式或項(xiàng))。由事件來(lái)改變系統(tǒng)實(shí)體的值,所有事件中有一種特殊的事件,稱為輸入事件,當(dāng)輸入變量值發(fā)生變化時(shí)會(huì)觸發(fā)該類事件,同時(shí),當(dāng)有一個(gè)特定條件為真時(shí),如果事件發(fā)生,則稱該事件為條件事件。下面給出相關(guān)定義:
定義1系統(tǒng)狀態(tài)是關(guān)于rf中的各個(gè)實(shí)體名到具體值之間映射的函數(shù),更詳細(xì)來(lái)講,對(duì)所有的r∈rf:s(r)=v,v=ty(r)。因此,通過(guò)假設(shè),系統(tǒng)中任何一個(gè)狀態(tài)s,都是模式類中的某一模式,且每個(gè)實(shí)體都擁有唯一值。
—ms是n個(gè)非空且兩兩不相交的集合相結(jié)合構(gòu)成,即m1,m2,...,mn,稱為模式類。模式類中每個(gè)成員都稱為模式。
—ts是數(shù)據(jù)類型集,每個(gè)類型是值的一個(gè)非空集。
—vs=ms∪ts,是實(shí)體值集。
—rf是實(shí)體名集合。rf又分為四個(gè)子集:ms,模式類的名稱集;ir,輸入變量的名稱集;or,輸出變量的名稱集;gr,項(xiàng)的名稱集。對(duì)于所有的
定義2條件是通過(guò)邏輯連接符∪,∩和
條件定義在rf的實(shí)體值上,簡(jiǎn)單條件可以是true,false,或一條邏輯語(yǔ)句
定義3事件定義如下:
@t(c)when
其中,條件c中的狀態(tài)是原始狀態(tài),而條件c,中的狀態(tài)是改變后的新的狀態(tài)。給定
定義4系統(tǒng)是一個(gè)四元組,{em,s,s0,t},其中:
—em是輸入事件集合,
—s是可能的系統(tǒng)狀態(tài)集,
—s0是一個(gè)特殊的狀態(tài)集,稱為初始狀態(tài),
—t是系統(tǒng)轉(zhuǎn)換。
3.2把建立好的scr模型在t-vec工具上進(jìn)行模擬,進(jìn)行形式化驗(yàn)證,確保系統(tǒng)需求的可靠性和準(zhǔn)確性。
把構(gòu)建好的scr模型在t-vec工具上進(jìn)行模擬,進(jìn)行形式化驗(yàn)證,確保系統(tǒng)需求各變量和需求間的依賴關(guān)系符合系統(tǒng)要求,且需求所描述的系統(tǒng)行為滿足安全性,通過(guò)t-vec工具可以自動(dòng)生成測(cè)試向量,t-vec生成的測(cè)試報(bào)告如圖5所示。
把構(gòu)建好的scr模型模擬,進(jìn)行形式化驗(yàn)證,確保系統(tǒng)需求各變量和需求間的依賴關(guān)系符合系統(tǒng)要求,且需求所描述的系統(tǒng)行為滿足安全性,自動(dòng)生成測(cè)試向量。
本說(shuō)明書中所描述的以上內(nèi)容僅僅是對(duì)本發(fā)明所作的舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種修改或補(bǔ)充或采用類似的方式替代,只要不偏離本發(fā)明說(shuō)明書的內(nèi)容或者超越本權(quán)利要求書所定義的范圍,均應(yīng)屬于本發(fā)明的保護(hù)范圍。