今天的汽車行業(yè)面臨最大的挑戰(zhàn)之一,就是從過(guò)去基于硬件的車輛過(guò)渡到軟件定義汽車的時(shí)代。當(dāng)軟件成為造車行業(yè)發(fā)展的主要領(lǐng)域,越來(lái)越多的OEM和零部件供應(yīng)商逐步轉(zhuǎn)型為軟件公司。汽車也單純的從出行工具變成了移動(dòng)的計(jì)算機(jī),汽車的開發(fā)越來(lái)越像在四個(gè)輪子上去開發(fā)車載電腦。
隨著智能網(wǎng)聯(lián)汽車的快速發(fā)展,新技術(shù)不斷涌現(xiàn),如可通過(guò)OTA技術(shù)遠(yuǎn)程進(jìn)行軟件更新升級(jí)或?qū)崿F(xiàn)與個(gè)人數(shù)字設(shè)備的集成等等。這些智能網(wǎng)聯(lián)汽車上新技術(shù)的廣泛應(yīng)用對(duì)整車的信息技術(shù)安全(或稱網(wǎng)絡(luò)安全)提出了額外的要求,典型的如ISO21434國(guó)際標(biāo)準(zhǔn),道路車輛信息安全工程的關(guān)于網(wǎng)絡(luò)安全方面的專業(yè)標(biāo)準(zhǔn),此標(biāo)準(zhǔn)也給工程應(yīng)用實(shí)踐提供了一系列的解決方案。
當(dāng)前大多數(shù)OEM 及零部件供應(yīng)商遵循功能安全的開發(fā)過(guò)程,考慮基于ISO 26262功能安全和ISO21448的預(yù)期功能安全開發(fā)過(guò)程。結(jié)合新增的對(duì)網(wǎng)絡(luò)安全層面的需求,那又如何理解現(xiàn)有的功能安全標(biāo)準(zhǔn)和網(wǎng)絡(luò)安全標(biāo)準(zhǔn)的關(guān)系,各過(guò)程之間又應(yīng)該如何協(xié)調(diào)呢?對(duì)于基于模型的開發(fā)(MBD)過(guò)程,尤其是當(dāng)我們?cè)诶肕ATLAB Simulink或者TargetLink的模型開發(fā)框架去構(gòu)建我們的應(yīng)用的時(shí)候怎樣才能保證相關(guān)項(xiàng)的功能安全的同時(shí)還能保障足夠的網(wǎng)絡(luò)安全,從而最終能確保我們所開發(fā)的軟件的質(zhì)量?這是我們接下來(lái)要討論的內(nèi)容。
先讓我們回憶一下相關(guān)安全相關(guān)的幾組重要標(biāo)準(zhǔn),首先我們從宏觀的概念上去理解區(qū)分不同的安全概念。為了更方便地描述自動(dòng)駕駛系統(tǒng),ISO TR 4804:2020標(biāo)準(zhǔn)當(dāng)中引入可信性的概念。可信性定義為系統(tǒng)提供服務(wù)或功能的能力,包括了可靠性、可用性、可維護(hù)性、功能安全性、網(wǎng)絡(luò)安全性等幾大特性(英文簡(jiǎn)稱為RAMSS)??尚判孕g(shù)語(yǔ)涉及了所謂的可靠性、可用性、功能安全、網(wǎng)絡(luò)安全各方面的知識(shí)領(lǐng)域,涵蓋了典型汽車工程實(shí)踐中需要考慮的功能安全、預(yù)期功能安全、網(wǎng)絡(luò)安全等內(nèi)容,最初定義了安全相關(guān)的一些功能的基本要求。功能安全標(biāo)準(zhǔn)ISO 26262旨在源于E/E系統(tǒng)與E/E系統(tǒng)的故障行為引起的危害進(jìn)而導(dǎo)致的不合理風(fēng)險(xiǎn);預(yù)期功能安全 ISO 21448討論的是不存在因預(yù)期功能的不足或者合由于合理可預(yù)見(jiàn)的人員誤操作而導(dǎo)致的不合理風(fēng)險(xiǎn)。功能安全和預(yù)期功能安全強(qiáng)調(diào)要防止因系統(tǒng)功能層面的故障不足或誤用導(dǎo)致的不合理風(fēng)險(xiǎn)。ISO 21434從網(wǎng)絡(luò)安全的角度去評(píng)估,側(cè)重于“故意地操縱”導(dǎo)致的危害,描述資產(chǎn)受到充分保護(hù),道路車輛部件或者其功能部件、子部件功能免于威脅的狀況。系統(tǒng)安全相關(guān)功能當(dāng)中的可用性也是一個(gè)相當(dāng)重要的話題,ISO26262中涉及到相關(guān)部分內(nèi)容。
ISO 26262的標(biāo)準(zhǔn)在功能安全領(lǐng)域已經(jīng)廣泛應(yīng)用且為人熟知。針對(duì)潛在的功能不足和人為的誤用,又提出了一個(gè)補(bǔ)充的預(yù)期功能安全標(biāo)準(zhǔn)ISO 21448,不久前此標(biāo)準(zhǔn)又出了新版本。而針對(duì)信息或網(wǎng)絡(luò)安全規(guī)范,業(yè)內(nèi)提出了網(wǎng)絡(luò)安全標(biāo)準(zhǔn)ISO SAE 21434。除了三大標(biāo)準(zhǔn)以外,對(duì)于自動(dòng)駕駛車輛,主要利益相關(guān)方給出了一個(gè)綜合性的、特定領(lǐng)域的特定標(biāo)準(zhǔn)ISO 48 TR 4804。ISO 48 TR 4804是有關(guān)現(xiàn)有安全標(biāo)準(zhǔn)的一個(gè)補(bǔ)充,它的目的是實(shí)現(xiàn)積極的風(fēng)險(xiǎn)平衡,或者避免不合理風(fēng)險(xiǎn)或者網(wǎng)絡(luò)安全相關(guān)威脅,并給出了相應(yīng)的建議指南和更具體的方法。當(dāng)然相關(guān)內(nèi)容更多的是一些技術(shù)性的闡述,強(qiáng)調(diào)安全設(shè)計(jì)的重要性,安全系統(tǒng)依賴于安全系統(tǒng)設(shè)計(jì)方法來(lái)保障。此外,標(biāo)準(zhǔn)也給出了一些關(guān)于自動(dòng)駕駛系統(tǒng)的驗(yàn)證和確認(rèn)的方法。在ISO 48 TR 4804標(biāo)準(zhǔn)中引入可信性的概念,可信性定義為系統(tǒng)提供服務(wù)或功能的能力,包括可靠性、可用性、可維護(hù)性、功能安全性和網(wǎng)絡(luò)安全性(RAMSS)。
ISO 26262初版于2011年提出, 18年又進(jìn)行了修訂,現(xiàn)在絕大部分公司開發(fā)都遵循該標(biāo)準(zhǔn)。預(yù)期功能安全標(biāo)準(zhǔn)最初提出于 2019 年,2022年更新發(fā)布了新版的功能安全標(biāo)準(zhǔn)。關(guān)于網(wǎng)絡(luò)安全標(biāo)準(zhǔn)ISO21434,它其實(shí)來(lái)源于SAE的J3061標(biāo)準(zhǔn),于2016年提出《信息物理融合系統(tǒng)網(wǎng)絡(luò)安全指南》,后來(lái)被ISO采納轉(zhuǎn)化為ISO 21434的《道路車輛的網(wǎng)絡(luò)安全工程》標(biāo)準(zhǔn),也是本文討論的網(wǎng)絡(luò)安全標(biāo)準(zhǔn)的主題內(nèi)容。關(guān)于自動(dòng)駕駛的ISO的標(biāo)準(zhǔn),其實(shí)來(lái)源于更早的名為《自動(dòng)駕駛系統(tǒng):安全第一》白皮書,后被ISO納入ISO/TR 4804 的標(biāo)準(zhǔn)。標(biāo)準(zhǔn)日后還在更新,被采納為ISO/TS 5083的技術(shù)規(guī)范。功能安全、預(yù)期功能安全、網(wǎng)絡(luò)安全構(gòu)成可信域的要件如圖 1。
那么不同的安全標(biāo)準(zhǔn)之間有怎樣的關(guān)聯(lián)?我們摘錄了兩句話來(lái)描述這種關(guān)系。第一句摘自Serpanos1教授的一篇文章,當(dāng)中提到傳統(tǒng)上功能安全、網(wǎng)絡(luò)安全通常認(rèn)為是不同的知識(shí)領(lǐng)域,由不同的專業(yè)人士來(lái)負(fù)責(zé)。但是我們觀察他們的特征并類比得出的結(jié)論是,他們實(shí)際上是相互依存的。特別功能安全其實(shí)是依賴于信息安全或者網(wǎng)絡(luò)安全的。或者可以說(shuō)網(wǎng)絡(luò)安全是功能安全的保障,也就是說(shuō)沒(méi)有網(wǎng)絡(luò)安全,就無(wú)法保證功能安全。另外一句摘錄,Aileen Ryan在《There is no safety without security》2一文中也強(qiáng)調(diào)網(wǎng)絡(luò)安全可被視為功能安全的保障,沒(méi)有網(wǎng)絡(luò)安全就沒(méi)有功能的安全??赡苤捌囆袠I(yè)從業(yè)者對(duì)網(wǎng)絡(luò)安全關(guān)注比較少,但是最近隨著智能網(wǎng)聯(lián)汽車的快速發(fā)展,網(wǎng)絡(luò)安全問(wèn)題應(yīng)對(duì)越來(lái)越重要。這就促使我們不僅要關(guān)注功能安全層面的問(wèn)題,還需要更系統(tǒng)地關(guān)注網(wǎng)絡(luò)安全的問(wèn)題。
接下來(lái)我們討論二者如何區(qū)分。這里我們提供一個(gè)更直觀的關(guān)于功能安全和網(wǎng)絡(luò)安全的概念視圖來(lái)幫助理解,如圖2。網(wǎng)絡(luò)安全強(qiáng)調(diào)保護(hù)我們的系統(tǒng),無(wú)論是產(chǎn)品還是設(shè)備的數(shù)字型資產(chǎn),免受外部威脅。當(dāng)然這是對(duì)于我們中心的系統(tǒng)來(lái)說(shuō),其更廣義上涵蓋系統(tǒng)內(nèi)部和外部的網(wǎng)絡(luò)安全。威脅則來(lái)源于人或外部環(huán)境。一個(gè)典型的例子是黑客試圖通過(guò)WIFI無(wú)線網(wǎng)絡(luò)連接汽車來(lái)操縱車內(nèi)的ECU。而功能安全強(qiáng)調(diào)的是防止系統(tǒng)故障引起的危害導(dǎo)致的風(fēng)險(xiǎn)。功能安全意在保護(hù)人或者環(huán)境免受來(lái)自系統(tǒng)故障運(yùn)行導(dǎo)致的傷害。典型例子比如高速行駛的車輛行進(jìn)過(guò)程當(dāng)中智能防抱死的系統(tǒng)ABS故障系統(tǒng)抱死失效引發(fā)危害造成對(duì)人的傷害。
為了容易理解,我們引入典型的例子來(lái)說(shuō)明,汽車安全的研究人員發(fā)現(xiàn),我們完全可以通過(guò)車載的電腦,以無(wú)線的方式來(lái)遠(yuǎn)程控制汽車。曾經(jīng)有這樣的實(shí)際發(fā)生的情況,研究人員可以通過(guò)通用汽車的OnStar,福特的Sync這樣的汽車工具訪問(wèn)車載的計(jì)算機(jī),通過(guò)車載電話的藍(lán)牙網(wǎng)絡(luò)連接到整個(gè)汽車網(wǎng)絡(luò),甚至于控制汽車的剎車、門鎖、中控儀表等幾乎所有安全關(guān)鍵的系統(tǒng)。
所以我們汽車行業(yè)的從業(yè)人員希望能夠更系統(tǒng)地去研究開發(fā)網(wǎng)絡(luò)安全的汽車系統(tǒng)。歐洲在功能安全、網(wǎng)絡(luò)安全領(lǐng)域的研究項(xiàng)目EmbeddedSafeSec由柏林投資銀行和歐洲區(qū)域發(fā)展基金會(huì)資助,專門研究如何更好地實(shí)施功能安全和網(wǎng)絡(luò)安全的協(xié)同工程。下面我們分享一些網(wǎng)絡(luò)安全和功能安全協(xié)同工程的框架,以及協(xié)同工程的最佳實(shí)踐。
首先我們來(lái)看對(duì)于各自的功能安全標(biāo)準(zhǔn)或者信息里是如何去描述相應(yīng)的生命周期的活動(dòng)?對(duì)于功能安全來(lái)說(shuō),ISO 26262當(dāng)中有相應(yīng)的功能安全生命周期,這里我們傾向關(guān)注更多的是系統(tǒng)和軟件層面,如圖3(當(dāng)然除此以外還存在同步的硬件開發(fā)生命周期,圖中沒(méi)有顯示出來(lái))。虛線以上描述系統(tǒng)層面的一些活動(dòng),虛線以下描述軟件層面的活動(dòng),在系統(tǒng)層面,從危害分析風(fēng)險(xiǎn)評(píng)估開始,從功能安全的角度出發(fā)識(shí)別評(píng)估系統(tǒng)的潛在危害及相關(guān)風(fēng)險(xiǎn),確定ASIL等級(jí),得出相應(yīng)的安全目標(biāo)并作為頂層的安全需求。從功能安全概念推導(dǎo)具體的技術(shù)安全概念等一系列相應(yīng)規(guī)范以及如何在硬件和軟件層面實(shí)現(xiàn)系統(tǒng)功能安全方面的需求。技術(shù)安全概念之后,繼續(xù)深入分解到下面軟件層面,指定軟件安全需求,進(jìn)行軟件架構(gòu)設(shè)計(jì)、軟件單元設(shè)計(jì)、軟件實(shí)現(xiàn),然后過(guò)渡到對(duì)應(yīng)左側(cè)的不同層次的測(cè)試驗(yàn)證,即單元集成系統(tǒng)及整車層面的驗(yàn)證,最后確認(rèn)是否實(shí)現(xiàn)了最初的安全目標(biāo)。如此構(gòu)成一個(gè)典型的功能安全的產(chǎn)品開發(fā)生命周期。另外,后續(xù)還有相應(yīng)的生產(chǎn)運(yùn)維報(bào)廢等過(guò)程,組成全面的功能安全生命周期的迭代過(guò)程。
同樣ISO 21434標(biāo)準(zhǔn)中也提出了一種類似的網(wǎng)絡(luò)安全生命周期,如圖4,與功能安全生命周期極其類似。網(wǎng)絡(luò)安全生命周期從網(wǎng)絡(luò)安全目標(biāo)開始,提出網(wǎng)絡(luò)安全的概念,進(jìn)行相關(guān)項(xiàng)的產(chǎn)品開發(fā),后續(xù)的生產(chǎn)運(yùn)維、報(bào)廢等一個(gè)重復(fù)迭代的周期,最終實(shí)現(xiàn)預(yù)期的網(wǎng)絡(luò)安全水平。更具體地說(shuō),網(wǎng)絡(luò)安全的目標(biāo)到網(wǎng)絡(luò)安全概念再到系統(tǒng)軟硬件的設(shè)計(jì),如展示了一些通用的步驟,具體因?yàn)槲覀兠總€(gè)公司組織架構(gòu)的不同,而甚至項(xiàng)目的不同而已。這里面提到了一些關(guān)于系統(tǒng)組件的設(shè)計(jì),子組件部件的設(shè)計(jì),不同層面的設(shè)計(jì)活動(dòng)。子組件驗(yàn)證系統(tǒng)驗(yàn)證等,網(wǎng)絡(luò)安全產(chǎn)品開發(fā)的周期經(jīng)過(guò)迭代不斷更新,甚至可以通過(guò)OTA技術(shù),實(shí)現(xiàn)系統(tǒng)的無(wú)限的遠(yuǎn)程更新和快速迭代,直到最終符合預(yù)期的網(wǎng)絡(luò)安全目標(biāo)。
功能安全和網(wǎng)絡(luò)安全標(biāo)準(zhǔn)當(dāng)中,其實(shí)也存在一些關(guān)于不同知識(shí)領(lǐng)域之間交叉引用的通用描述。如ISO 26262標(biāo)準(zhǔn)中提到,標(biāo)準(zhǔn)要求組織應(yīng)在功能安全、網(wǎng)絡(luò)安全和其他與實(shí)現(xiàn)功能安全相關(guān)的知識(shí)領(lǐng)域之間建立并保持有效的溝通渠道。而在網(wǎng)絡(luò)安全標(biāo)準(zhǔn)ISO 21434中也提出:組織應(yīng)確定與網(wǎng)絡(luò)安全相關(guān)或交互的領(lǐng)域,并建立和維護(hù)這些領(lǐng)域之間的溝通渠道,以確定網(wǎng)絡(luò)安全是否以及如何融入現(xiàn)有流程并協(xié)同相關(guān)信息的交流。協(xié)同包括在領(lǐng)域之間共享流程和策略工具的應(yīng)用。關(guān)于具體的信息,詳情請(qǐng)參照相應(yīng)的章節(jié),還可以在備注當(dāng)中看到具體對(duì)應(yīng)章節(jié)的展開的信息。
同時(shí)在標(biāo)準(zhǔn)當(dāng)中另外體現(xiàn)功能安全、網(wǎng)絡(luò)安全協(xié)同的信息:功能安全和網(wǎng)絡(luò)安全的開發(fā)過(guò)程之間的關(guān)系取決于項(xiàng)目的組織和范圍,因此沒(méi)有描述交互的方法或技術(shù)內(nèi)容??捎山M織確定最適合這種交互的方法。
所以功能安全網(wǎng)絡(luò)安全的協(xié)同考慮引入所謂的協(xié)同工程的概念,其思路即如何通盤地考慮功能安全和網(wǎng)絡(luò)安全及其相關(guān)的活動(dòng)過(guò)程(圖5),比如哪些相關(guān)的系列活動(dòng)能夠協(xié)同進(jìn)行?哪些活動(dòng)必須是分開進(jìn)行?可并行的活動(dòng)之間如何關(guān)聯(lián)?如何交互?對(duì)于不同過(guò)程之間的溝通,比如典型地關(guān)于產(chǎn)品開發(fā)階段軟件開發(fā)過(guò)程的一系列的過(guò)程交互,相應(yīng)的功能安全生命周期與網(wǎng)絡(luò)安全生命周期的映射關(guān)系。
協(xié)同工程當(dāng)中對(duì)應(yīng)安全生命周期的產(chǎn)品開發(fā)階段,尤其是軟件產(chǎn)品開發(fā)階段一系列的活動(dòng),遵循V型開發(fā)流程從需求到設(shè)計(jì)到實(shí)現(xiàn)及不同層面的驗(yàn)證測(cè)試。功能安全和網(wǎng)絡(luò)安全標(biāo)準(zhǔn)當(dāng)中都有相關(guān)的需求提及,具體到軟件單元集成和驗(yàn)證子章節(jié),如網(wǎng)絡(luò)安全標(biāo)準(zhǔn)ISO 21434中10.4.1章節(jié)提到關(guān)于產(chǎn)品開發(fā)設(shè)計(jì)階段需求規(guī)范,10.4.2章節(jié)當(dāng)中涉及集成和驗(yàn)證的規(guī)范。對(duì)應(yīng)映射到功能安全標(biāo)準(zhǔn)當(dāng)中的6.9章部分的軟件,如軟件單元驗(yàn)證部分,如圖6。
比如我們?cè)趫D7中看到的是關(guān)于產(chǎn)品開發(fā)階段軟件開發(fā)過(guò)程的活動(dòng)。相應(yīng)功能安全生命周期的活動(dòng)對(duì)應(yīng)映射到網(wǎng)絡(luò)安全生命周期的產(chǎn)品開發(fā)階段的活動(dòng)。如根據(jù)網(wǎng)絡(luò)安全的需求進(jìn)行架構(gòu)總體設(shè)計(jì)及細(xì)化設(shè)計(jì),對(duì)應(yīng)功能安全過(guò)程中的軟件產(chǎn)品開發(fā)階段,派生出具體的軟件開發(fā)需求(這里我們只關(guān)注軟件層面),進(jìn)行軟件架構(gòu)設(shè)計(jì),實(shí)現(xiàn)及軟件單元和集成的驗(yàn)證和軟件系統(tǒng)的測(cè)試。
協(xié)同工程根據(jù)關(guān)于相關(guān)項(xiàng)操作環(huán)境的現(xiàn)有信息,不同的現(xiàn)有的輸入信息進(jìn)行單元和集成層面的驗(yàn)證,最終會(huì)形成相應(yīng)的軟件集成和驗(yàn)證的規(guī)范。
協(xié)同工程在軟件單元驗(yàn)證階段系列活動(dòng)的目標(biāo)在于:
- 提供軟件單元設(shè)計(jì)滿足分配的軟件需求以及網(wǎng)絡(luò)安全需求并適合實(shí)施的證據(jù);
- 驗(yàn)證從安全導(dǎo)向分析中得出的安全措施是否得到正確實(shí)施;
- 提供證據(jù)證明已實(shí)施的軟件單元符合單元設(shè)計(jì)規(guī)范,并滿足分配的軟件需求和相應(yīng)的ASIL等級(jí);
- 提供足夠的證據(jù),證明軟件單元不包含非預(yù)期的功能或非預(yù)期的的功能安全和網(wǎng)絡(luò)安全屬性。
這里我們還著重要強(qiáng)調(diào)二者之間在項(xiàng)目當(dāng)中的溝通協(xié)同活動(dòng)包括了在知識(shí)領(lǐng)域之間共享的流程和使用的策略。關(guān)于開發(fā)驗(yàn)證或者測(cè)試的種種策略在各標(biāo)準(zhǔn)中的要求描述中也是類似的,開發(fā)測(cè)試所用的工具共享可以最大限度的幫助我們高效實(shí)現(xiàn)我們的驗(yàn)證目標(biāo)。
在軟件開發(fā)當(dāng)中,尤其是應(yīng)用層軟件設(shè)計(jì)時(shí),我們常用基于模型的設(shè)計(jì)(MBD)方法,比如我們會(huì)借助MATLAB Simulink/Stateflow或TargetLink建模工具實(shí)現(xiàn)功能建模?;谀P偷脑O(shè)計(jì)遵循大家所熟知的V模式的開發(fā)迭代過(guò)程如圖8。建模過(guò)程主要包括根據(jù)軟件的需求,進(jìn)行相應(yīng)的行為建模,功能建模和實(shí)現(xiàn)建模,繼而從模型生成代碼。基于模型的設(shè)計(jì)方法的優(yōu)勢(shì)之一是使后續(xù)V模型的右側(cè)的各層面的測(cè)試驗(yàn)證工作可以前置到V模型的左側(cè),因而后續(xù)對(duì)代碼的測(cè)試可以前置為對(duì)模型的測(cè)試過(guò)程,借助合規(guī)的代碼生成工具的支持,代碼層面的測(cè)試在某些情況下可等同于對(duì)應(yīng)模型的測(cè)試。通過(guò)早期對(duì)模型軟件的測(cè)試,可盡早的發(fā)現(xiàn)軟件的缺陷,最大限度的保障軟件質(zhì)量的安全。
同時(shí)在ISO 21434網(wǎng)絡(luò)安全的標(biāo)準(zhǔn)當(dāng)中在開發(fā)階段當(dāng)中也提到:適用于設(shè)計(jì)、建?;蚓幊陶Z(yǔ)言而本身未保障符合網(wǎng)絡(luò)安全需求的準(zhǔn)則應(yīng)由設(shè)計(jì)、建模和編碼指南或開發(fā)環(huán)境涵蓋3。例如對(duì)安全編碼的要求,應(yīng)使用MISRA C或CERT C在“C”編程語(yǔ)言中進(jìn)行安全編碼。這方面的網(wǎng)絡(luò)安全相關(guān)的屬性由相應(yīng)的設(shè)計(jì)、建?;蚓幋a的規(guī)范保證,如C代碼的安全性適用MISRA C和CERT C標(biāo)準(zhǔn),保證編程語(yǔ)言的安全。
另外,適用于設(shè)計(jì)建模編程語(yǔ)言的指南如運(yùn)用語(yǔ)言子集,執(zhí)行強(qiáng)類型實(shí)現(xiàn),使用防御性的實(shí)現(xiàn)的技術(shù)等,在MBD的早期開發(fā)階段保障編程語(yǔ)言符合對(duì)于網(wǎng)絡(luò)安全的要求。具體來(lái)講,比如對(duì)于強(qiáng)類型實(shí)現(xiàn),假設(shè)我們用TargetLink建模工具去開發(fā)的應(yīng)用程序如圖9,實(shí)現(xiàn)和的加和與飽和限制的運(yùn)算。TargetLink對(duì)于所有整數(shù)運(yùn)算,輸出數(shù)據(jù)類型和中間變量的指定值范圍必須足以避免溢出。在TargetLink模塊集中,原則上通過(guò)使用飽限模塊來(lái)避免溢出和下溢,通過(guò)使用具有足夠位長(zhǎng)度的數(shù)據(jù)類型進(jìn)行輸出和保存中間結(jié)果,避免整數(shù)算術(shù)中通過(guò)整數(shù)溢出飽和選項(xiàng)進(jìn)行飽和約束。
再比如編碼規(guī)則CERT C中對(duì)于浮點(diǎn)類型數(shù)據(jù)的限制規(guī)則,不應(yīng)使用對(duì)象表示方法比較浮點(diǎn)對(duì)象。用Simulink建模比較浮點(diǎn)數(shù)的等值性,圖10(左下)給出了一個(gè)具體形象的反例。在Simulink模型chart圖表定義數(shù)據(jù)類型double時(shí),判斷邏輯當(dāng)中給出比較相等的關(guān)系判定,是不允許的。建議的做法是給出相應(yīng)的誤差,確保二者的誤差在相應(yīng)的容差范圍之內(nèi),圖10(右下) 。
當(dāng)然不管是對(duì)模型還是對(duì)于代碼的規(guī)則,怎樣去具體的在開發(fā)中進(jìn)行正確的建?;蚓幋a檢查,我們并不需要手動(dòng)進(jìn)行。比如我們可以借助建模檢查的高效工具,MES Model Examiner來(lái)實(shí)現(xiàn)模型對(duì)于特定建模規(guī)則的一致性。比如ISO 26262或者 ISO 21434中強(qiáng)調(diào)的建模編程設(shè)所適用的規(guī)則或指南,已經(jīng)全面涵蓋在MES Model Examiner的規(guī)則庫(kù)當(dāng)中。除此以外,MES Model Examiner還集成了功能安全及業(yè)界最佳實(shí)踐的規(guī)則規(guī)范,指導(dǎo)幫助工程師自動(dòng)地檢查模型并修復(fù)模型錯(cuò)誤。關(guān)于給定的安全規(guī)則執(zhí)行檢查,MES Model Examiner可以給出模型違反具體規(guī)則的一致性報(bào)告結(jié)果,并可自動(dòng)糾正違規(guī)模型,幫助建模人員更高效地執(zhí)行靜態(tài)分析的各項(xiàng)規(guī)則檢查并生成獨(dú)立完整的報(bào)告,保障模型對(duì)安全性需求的可追溯性,最終符合功能的特定ASIL需求,并保障編程語(yǔ)言的網(wǎng)絡(luò)安全性。MES Model Examiner工具自動(dòng)化分析并修正模型報(bào)告界面如圖11。
沒(méi)有網(wǎng)絡(luò)安全,就沒(méi)有相應(yīng)的功能安全。功能安全和網(wǎng)絡(luò)安全的協(xié)同工程需要全面全生命周期的協(xié)作和系統(tǒng)考慮。傳統(tǒng)意義上講,功能安全、網(wǎng)絡(luò)安全是由不同領(lǐng)域的專業(yè)人員從事的不同專業(yè)方向研究,也有著不同的專業(yè)內(nèi)容,但在系統(tǒng)的安全層面上,他們又是相互協(xié)調(diào)統(tǒng)一的整體,應(yīng)該通盤考慮。汽車知識(shí)領(lǐng)域功能安全的管理人員,同時(shí)也應(yīng)協(xié)同考慮預(yù)期功能安全,網(wǎng)絡(luò)安全的需求,需要多方互相協(xié)調(diào),在矛盾與統(tǒng)一中確定影響系統(tǒng)的主要矛盾與措施優(yōu)先級(jí),綜合全面考慮系統(tǒng)設(shè)計(jì)方案與安全措施,從而最大限度的保證系統(tǒng)的安全。