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