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