由于其不可測(cè)試性,因此無(wú)法證明軟件的安全性,而是在過(guò)去使用相對(duì)簡(jiǎn)單的邏輯,使用安全繼電器等實(shí)現(xiàn)。
然而,鑒于軟件為系統(tǒng)帶來(lái)的靈活性和強(qiáng)大功能,它在安全方面的使用是不可避免的。隨著IEC 61508-3等新標(biāo)準(zhǔn)的出現(xiàn),設(shè)計(jì)人員可以通過(guò)遵循過(guò)去已被證明可以提供安全軟件的一組技術(shù)來(lái)證明他們的軟件足夠安全。
圖2 - 軟件的強(qiáng)大功能
使軟件與硬件不同的因素包括:
軟件不會(huì)錄制,所以通常沒(méi)有硬性截止日期(換句話說(shuō),“一個(gè)項(xiàng)目如何遲到一年——一次一天”——布魯克斯·勞)
功能可以在發(fā)布后添加 - “他們查看了該軟件并發(fā)現(xiàn)它很好。但他們必須有這個(gè)功能......“——?dú)w功于麥考密克·
軟件幾乎可以做任何事情,并且經(jīng)常被要求 - “靈活性的詛咒”
軟件在硬件上運(yùn)行
雖然軟件不會(huì)磨損,也不會(huì)像硬件那樣出現(xiàn)隨機(jī)故障,但它可能包含系統(tǒng)錯(cuò)誤。系統(tǒng)誤差是只能通過(guò)設(shè)計(jì)更改(即更改代碼)來(lái)消除的錯(cuò)誤。系統(tǒng)誤差始終存在,但僅在出現(xiàn)一組特定條件時(shí)才暴露出來(lái)。硬件可靠性使用傳統(tǒng)的可靠性方法,并基于概率。您可以嘗試對(duì)軟件使用概率,但軟件失敗的概率為 1;當(dāng)出現(xiàn)暴露錯(cuò)誤的適當(dāng)條件時(shí)。
每 1,000 LOC(代碼行)的錯(cuò)誤數(shù)估計(jì)值各不相同,但對(duì)于良好的代碼,估計(jì)值通常在 1 到 10 EPTLOC(每千行代碼的錯(cuò)誤)范圍內(nèi)。Addison-Wesley的《軟件評(píng)估、基準(zhǔn)和最佳實(shí)踐》一書給出了各種CMM(能力成熟度模型)級(jí)別的數(shù)字,如1-7級(jí)EPTLOC,2-6級(jí)EPTLOC,3級(jí)-5 EPTLOC,4級(jí)-2 EPTLOC,5級(jí)-1 EPTLOC。而其他數(shù)據(jù)源給出的辦公應(yīng)用程序每 1,000 行代碼的速率值為 7,工業(yè)應(yīng)用程序?yàn)?2,航天飛機(jī)應(yīng)用程序?yàn)?0.1。所有這些都顯示了使軟件安全的挑戰(zhàn)。
“軟件安全入門”一書描述了5種類型的軟件錯(cuò)誤,并估計(jì)60%的錯(cuò)誤與規(guī)范和設(shè)計(jì)有關(guān),40%與編碼有關(guān)。
規(guī)范錯(cuò)誤 – 某些功能被省略,因?yàn)樗鼪](méi)有記錄在需求中
設(shè)計(jì)錯(cuò)誤 – 使用不正確的算法,缺乏自檢......
編碼錯(cuò)誤 – 無(wú)限循環(huán)、語(yǔ)法錯(cuò)誤....
硬件引起的錯(cuò)誤 – 例如閃存中的位翻轉(zhuǎn)更改指令
接口錯(cuò)誤 – 與軟件硬件接口相關(guān)的問(wèn)題
那么,安全標(biāo)準(zhǔn)怎么說(shuō)。他們提倡一組方法和過(guò)程,旨在減少在代碼中引入未檢測(cè)到的錯(cuò)誤的機(jī)會(huì)。下面的生命周期模型是由IEC 61508:2010倡導(dǎo)的,我將在以后的博客中回到它。這個(gè)過(guò)程是整體的,從需求到架構(gòu)到設(shè)計(jì),最終到編碼,驗(yàn)證和確認(rèn)步驟與每個(gè)階段相匹配。
圖 3 - 符合 IEC 61508-3:2010 的軟件 V 型號(hào)
通常,與非安全領(lǐng)域倡導(dǎo)的良好軟件開發(fā)實(shí)踐相比,功能安全標(biāo)準(zhǔn)倡導(dǎo)的流程是嚴(yán)格的。
主要差距與以下方面有關(guān)
獨(dú)立安全評(píng)估
刀具認(rèn)證
與特定類型的分析相關(guān)的非常具體的安全要求,例如需要進(jìn)行故障樹分析或FMEDA
而諸如此類的任務(wù)
配置管理
軟件規(guī)劃
編碼
功能測(cè)試
被標(biāo)準(zhǔn)的非安全高質(zhì)量開發(fā)流程很好地覆蓋。
無(wú)論您正在開發(fā)的領(lǐng)域如何,都值得一讀的軟件標(biāo)準(zhǔn)的功能安全性包括
IEC 61508-3:2010 – 軟件共識(shí)標(biāo)準(zhǔn)的主要非部門特定功能安全
D0-178C – 航空電子軟件安全標(biāo)準(zhǔn)
EN 50128 – 鐵路軟件標(biāo)準(zhǔn)
ISO 26262-6:2011 – 汽車功能安全軟件標(biāo)準(zhǔn)
IEC 62304 – 醫(yī)療設(shè)備軟件
IEC 60880 – 核軟件安全
UL 1998 – 家用電器軟件的美國(guó)標(biāo)準(zhǔn)
雖然上述每個(gè)標(biāo)準(zhǔn)的最終域都不同,但每個(gè)標(biāo)準(zhǔn)的意圖是相同的,并且在一個(gè)標(biāo)準(zhǔn)中描述不好的內(nèi)容在另一個(gè)標(biāo)準(zhǔn)中通常描述得更好。
審核編輯:郭婷
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7139瀏覽量
89574 -
代碼
+關(guān)注
關(guān)注
30文章
4825瀏覽量
69043
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
《安全穩(wěn)定的操作系統(tǒng)是汽車座艙交互的基礎(chǔ)》的主題演講
阿里巴巴平頭哥基礎(chǔ)軟件平臺(tái)YoC通過(guò)IEC功能安全認(rèn)證
![阿里巴巴平頭哥基礎(chǔ)<b class='flag-5'>軟件</b>平臺(tái)YoC通過(guò)IEC<b class='flag-5'>功能</b><b class='flag-5'>安全</b>認(rèn)證](https://file.elecfans.com/web1/M00/B6/C6/pIYBAF5ppd-AMAB1AARVKE6Cn-o947.png)
確保嵌入式軟件的功能安全
確保嵌入式軟件的功能安全
汽車功能安全軟件開發(fā)階段軟件架構(gòu)安全設(shè)計(jì)
確保嵌入式軟件的功能安全
獲得ISO 26262:2018 ASIL D軟件功能安全流程認(rèn)證,構(gòu)建成熟車規(guī)系統(tǒng)安全管理體系
汽車系統(tǒng)安全組件在車載網(wǎng)絡(luò)通信架構(gòu)的應(yīng)用
適用于高性能中央控制單元(HPC)的應(yīng)用
智能汽車軟件功能安全的“夾縫生長(zhǎng)”
![智能汽車<b class='flag-5'>軟件</b><b class='flag-5'>功能</b><b class='flag-5'>安全</b>的“夾縫生長(zhǎng)”](https://file1.elecfans.com/web2/M00/89/94/wKgaomSIGaWAT4oEAAA36PpLuRQ561.png)
您需要了解的嵌入式系統(tǒng)軟件的功能安全與信息安全
![您需要了解的嵌入式系統(tǒng)<b class='flag-5'>軟件</b>的<b class='flag-5'>功能</b><b class='flag-5'>安全</b>與信息<b class='flag-5'>安全</b>](https://file.elecfans.com/web2/M00/77/2C/poYBAGNjCPaAT0AfAACBAmZYsBU041.png)
普華基礎(chǔ)軟件與旗芯微合作打造車規(guī)級(jí)MCU的整體軟件解決方案
8月8日在線研討會(huì) | 如何快速開發(fā)量產(chǎn)級(jí)別功能安全應(yīng)用軟件
![8月8日在線研討會(huì) | 如何快速開發(fā)量產(chǎn)級(jí)別<b class='flag-5'>功能</b><b class='flag-5'>安全</b>應(yīng)用<b class='flag-5'>軟件</b>](https://file1.elecfans.com/web2/M00/00/DA/wKgaomarQtSARZxxAABa-KRUtfA840.png)
評(píng)論