當(dāng)我們深入研究汽車行業(yè)軟件和安全性的關(guān)系時(shí)會(huì)發(fā)生什么?讓我們首先來(lái)看一下其它行業(yè)的安全軟件開(kāi)發(fā)狀態(tài),例如金融服務(wù)和醫(yī)療行業(yè)。2008年,許多創(chuàng)建軟件的公司都專注于構(gòu)建系統(tǒng)。這些系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)都提前將安全納入其中。事實(shí)證明,如果構(gòu)建的軟件是安全的,那么保護(hù)軟件免受黑客攻擊就容易很多。在系統(tǒng)中,針對(duì)可能有缺陷且易受攻擊的軟件尋找外圍解決方案,并使用防火墻保護(hù)實(shí)際上就像是天方夜譚。
在軟件開(kāi)發(fā)過(guò)程中,越來(lái)越強(qiáng)調(diào)軟件安全性。所以技術(shù)人員都認(rèn)同在軟件開(kāi)發(fā)早期就要納入安全性。在軟件生命周期的早期識(shí)別、修復(fù)漏洞和設(shè)計(jì)缺陷,可以節(jié)省企業(yè)后期補(bǔ)救的時(shí)間和成本,以便企業(yè)可以在產(chǎn)品其它方面進(jìn)行更多投入。
這種理念在汽車領(lǐng)域同樣適用。在汽車出廠,銷售給消費(fèi)者之前,制造商需要確保成車的安全性,包括車輛性能和軟件。汽車很快就像“輪子上的智能手機(jī)”,內(nèi)置許多軟件,設(shè)計(jì)汽車這樣的復(fù)雜工件時(shí),制造商不能只是祈禱他們的軟件和所有供應(yīng)商的軟件都是安全的。事實(shí)上,就像關(guān)注冶金軸承、防撞安全氣囊、安全帶和材料一樣,制造商也必須關(guān)注軟件安全以保證現(xiàn)代汽車的安全。
我們可以進(jìn)一步將安全類推,汽車安全不僅僅是汽車碰撞測(cè)試。當(dāng)然,碰撞測(cè)試很重要。但是通過(guò)汽車的碰撞測(cè)試發(fā)現(xiàn)的簡(jiǎn)單問(wèn)題只能通過(guò)重新設(shè)計(jì),如此一來(lái),成本會(huì)變得高昂。通過(guò)運(yùn)行滲透測(cè)試找到代碼中的漏洞,然后在軟件開(kāi)發(fā)人員將所有工序都完工后再修復(fù)它,同樣成本高昂、不可取。
缺乏安全設(shè)計(jì)會(huì)怎么樣?
工程設(shè)計(jì)也需要權(quán)衡。當(dāng)汽車制造商在設(shè)計(jì)一輛汽車時(shí),決定燃油箱多大以平均每個(gè)油箱的里程數(shù)是必須要做的決定。將油箱布局到汽車的哪個(gè)位置也需要做同樣的決定。這些決策可能是通過(guò)反復(fù)試驗(yàn)和總結(jié)失敗經(jīng)歷才做出的,但僅限于在汽車生產(chǎn)之前得出解決方案。
汽車推出市場(chǎng)后一旦出現(xiàn)問(wèn)題,后果不堪設(shè)想。從典型的福特Pinto案例可見(jiàn)一斑。福特忽略了加固Pinto的油箱,其油箱在碰撞時(shí)很容易破裂,導(dǎo)致汽車起火。雖然提出了重新設(shè)計(jì)的計(jì)劃,但福特決定采用針對(duì)事故進(jìn)行賠償4,900萬(wàn)美元的方案,而不是采取措施花費(fèi)1.13億美元的成本來(lái)解決這一問(wèn)題。因此,此問(wèn)題依然存在,而且沒(méi)有合適的解決方案。這件事情幾十年后依然困擾著福特公司。
基于媒體的負(fù)面報(bào)道和美國(guó)國(guó)家公路交通安全管理局(National Highway Traffic Safety Administration)對(duì)此情況的調(diào)查,福特于1978年召回了1971年至1976年生產(chǎn)制造的所有Pintos以進(jìn)行安全升級(jí)。如今40年過(guò)去了,我仍然想借此來(lái)證明一點(diǎn),盡管安全不像油箱(它是一個(gè)系統(tǒng)屬性),但是軟件是非常重要的。軟件安全是我們現(xiàn)在知道如何去解決的問(wèn)題。事實(shí)上,我們需要在軟件設(shè)計(jì)階段考慮安全性(就像油箱設(shè)計(jì)的例子),隨后在代碼設(shè)計(jì)階段也要考慮安全性。
汽車制造已經(jīng)有比較悠久的歷史。隨著越來(lái)越多的軟件融入這一行業(yè)并滲透到汽車設(shè)計(jì)中,我們必須將軟件安全和工程安全視為同等重要。軟件可以實(shí)現(xiàn)安全性,我們也知道如何做到,而且我們必須做到這一點(diǎn)。
軟件安全的第一步是什么?
軟件安全的第一步是要找到專業(yè)的人來(lái)負(fù)責(zé)這項(xiàng)工作。成立軟件安全小組,并且讓一位有話語(yǔ)權(quán)的高管來(lái)負(fù)責(zé)這個(gè)小組。這個(gè)軟件安全小組的任務(wù)是負(fù)責(zé)開(kāi)發(fā)公司強(qiáng)大的軟件安全計(jì)劃。值得注意的是,軟件安全小組的員工最好是具備安全知識(shí)的軟件人員,而不僅僅是懂防火墻的網(wǎng)絡(luò)工程師。
建立軟件安全小組是企業(yè)采用軟件安全構(gòu)建成熟度模型(BSIMM),并加入BSIMM社區(qū)的基本要求。BSIMM現(xiàn)在已經(jīng)成為軟件安全和內(nèi)置安全性的重要標(biāo)準(zhǔn)之一。BSIMM擁有100多個(gè)公司成員,代表許多垂直行業(yè),但是很遺憾的是并沒(méi)有汽車行業(yè)的代表。汽車行業(yè)應(yīng)該利用BSIMM,以推動(dòng)自身在軟件安全方面快速發(fā)展。
盡管現(xiàn)在汽車中的軟件仍然是一個(gè)早期的概念,但黑客不會(huì)等到行業(yè)成熟之后再發(fā)起攻擊。在日益互聯(lián)的網(wǎng)絡(luò)生態(tài)系統(tǒng)中,從充當(dāng)密鑰的智能手機(jī)應(yīng)用程序到自動(dòng)駕駛汽車的智能芯片,有太多可能出錯(cuò)的方式。如果系統(tǒng)由于軟件缺陷而出現(xiàn)故障,或者黑客利用惡意軟件控制汽車,事情將會(huì)變得雪上加霜。
因此,我們必須積極主動(dòng),應(yīng)對(duì)軟件安全問(wèn)題,確保內(nèi)置到汽車的軟件的安全性。組建軟件安全小組,對(duì)企業(yè)的軟件安全能力進(jìn)行基準(zhǔn)測(cè)試,評(píng)比企業(yè)創(chuàng)建的軟件或者從其他供應(yīng)商購(gòu)買(mǎi)的軟件的優(yōu)勢(shì)和弱勢(shì),制定明確的藍(lán)圖,以加強(qiáng)軟件的安全性,從而推動(dòng)業(yè)務(wù)并保護(hù)客戶的利益。