由于其不可測(cè)試性,因此無法證明軟件的安全性,而是在過去使用相對(duì)簡(jiǎn)單的邏輯,使用安全繼電器等實(shí)現(xiàn)。
然而,鑒于軟件為系統(tǒng)帶來的靈活性和強(qiáng)大功能,它在安全方面的使用是不可避免的。隨著IEC 61508-3等新標(biāo)準(zhǔn)的出現(xiàn),設(shè)計(jì)人員可以通過遵循過去已被證明可以提供安全軟件的一組技術(shù)來證明他們的軟件足夠安全。
圖2 - 軟件的強(qiáng)大功能
使軟件與硬件不同的因素包括:
軟件不會(huì)錄制,所以通常沒有硬性截止日期(換句話說,“一個(gè)項(xiàng)目如何遲到一年——一次一天”——布魯克斯·勞)
功能可以在發(fā)布后添加 - “他們查看了該軟件并發(fā)現(xiàn)它很好。但他們必須有這個(gè)功能......“——?dú)w功于麥考密克·
軟件幾乎可以做任何事情,并且經(jīng)常被要求 - “靈活性的詛咒”
軟件在硬件上運(yùn)行
雖然軟件不會(huì)磨損,也不會(huì)像硬件那樣出現(xiàn)隨機(jī)故障,但它可能包含系統(tǒng)錯(cuò)誤。系統(tǒng)誤差是只能通過設(shè)計(jì)更改(即更改代碼)來消除的錯(cuò)誤。系統(tǒng)誤差始終存在,但僅在出現(xiàn)一組特定條件時(shí)才暴露出來。硬件可靠性使用傳統(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)樗鼪]有記錄在需求中
設(shè)計(jì)錯(cuò)誤 – 使用不正確的算法,缺乏自檢......
編碼錯(cuò)誤 – 無限循環(huán)、語法錯(cuò)誤....
硬件引起的錯(cuò)誤 – 例如閃存中的位翻轉(zhuǎn)更改指令
接口錯(cuò)誤 – 與軟件硬件接口相關(guān)的問題
那么,安全標(biāo)準(zhǔn)怎么說。他們提倡一組方法和過程,旨在減少在代碼中引入未檢測(cè)到的錯(cuò)誤的機(jī)會(huì)。下面的生命周期模型是由IEC 61508:2010倡導(dǎo)的,我將在以后的博客中回到它。這個(gè)過程是整體的,從需求到架構(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ā)流程很好地覆蓋。
無論您正在開發(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 – 家用電器軟件的美國標(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文章
7157瀏覽量
89664 -
代碼
+關(guān)注
關(guān)注
30文章
4830瀏覽量
69110
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論