即便是最先進(jìn)的汽車(chē)和其他車(chē)輛都隱藏著(zhù)一大批電子設備,其中有成百上千個(gè)處理器和數百萬(wàn)行代碼,但是雖然它們都是被單獨設計的,卻必須在發(fā)動(dòng)機罩下一起工作數年。
據外媒報道,美國密歇根大學(xué)(University of Michigan)的研究人員Baris Kasikci表示,要讓這么一堆系統保持更新,同時(shí)又沒(méi)有安全漏洞是極其困難的。而安全漏洞威脅的不只是車(chē)輛,對宇宙飛船、無(wú)人機和其他正在得到廣泛應用的交通工具構成了更大的威脅。
計算機科學(xué)與工程系教授Kasikci表示:“這有點(diǎn)混亂。一般來(lái)說(shuō),可以在源代碼中修復錯誤,重建軟件并重新部署就可以。但是此類(lèi)移動(dòng)交通工具的環(huán)境對此種模式非常不利,因為會(huì )有很多不同的軟件以及不同種類(lèi)的計算機。”
Kasikci正在領(lǐng)導一個(gè)研究團隊,并研究了一個(gè)名為Ironpatch的系統以解決上述問(wèn)題。該項目為期4年,旨在研發(fā)一個(gè)獨立的補丁系統,以解決汽車(chē)和大型交通工具(如卡車(chē)和航天器)日益嚴重的安全漏洞問(wèn)題。
Ironpatch與計算機系統上常見(jiàn)的軟件補丁完全不同,后者通過(guò)生成一個(gè)計算機系統的副本,然后對其源代碼進(jìn)行更改而生成。接下來(lái),需要對補丁進(jìn)行測試,以確保其不會(huì )干擾軟件的功能。之后,再采用一種稱(chēng)為編譯器的工具重建程序,將源代碼編譯成計算機可以理解的1和0。最后,將其加載到計算機上。
這個(gè)過(guò)程在計算機上運行得很好,但是對于車(chē)輛系統而言就幾乎沒(méi)用了。為進(jìn)行測試,生成系統的準確副本是不可能的,而編輯和重新編譯可能會(huì )以無(wú)法預測到的方式攪亂復雜的代碼網(wǎng)絡(luò )。
Kasikci表示:“會(huì )有成百上千個(gè)處理器運行著(zhù)不同類(lèi)型的軟件,不同版本的軟件,由不同的人以不同的語(yǔ)言編寫(xiě)。隨著(zhù)時(shí)間的推移,這個(gè)系統可能會(huì )發(fā)生變化,如航天器增加了一個(gè)新組件,以監測一個(gè)行星上的地面事件等。以正確的方式復制所有的系統確實(shí)是一項無(wú)法完成的任務(wù)。”
Ironpatch則采用了不同的方法,繞過(guò)了源代碼,直接對運行軟件的二進(jìn)制核心進(jìn)行稱(chēng)為micropatches(微補丁)的微小修改,消除了重新編譯軟件的需要。此外,由于所做出的更改非常微小,因此也可以在不引起其他問(wèn)題的情況將問(wèn)題修復。
Ironpatch是一個(gè)獨立的系統,一旦識別到漏洞,該系統會(huì )自動(dòng)生成、驗證并應用一個(gè)微補丁以消除漏洞,這也消除了向遠程軟件上傳軟件補丁的需求。當該系統位于數百萬(wàn)英里外的航天器上時(shí),這就是一個(gè)特別方便的功能。
研究人員表示:“我們經(jīng)常假設軟件開(kāi)發(fā)人員能夠訪(fǎng)問(wèn)源代碼和復雜的車(chē)輛模擬環(huán)境。不過(guò),有些情況會(huì )讓這種想法變得不具可行性。我們看到越來(lái)越多的人需要一種技術(shù),可以在沒(méi)有完整模擬堆棧或原始源代碼的情況下,為易受攻擊的軟件部署補丁。”
為了避免創(chuàng )建一個(gè)車(chē)輛系統副本用于測試,Ironpatch將把原始軟件和補丁版本轉換成兩個(gè)復雜的數學(xué)方程。然后,Ironpatch會(huì )解決這兩個(gè)方程,從數學(xué)上證明,除了想要做出的修改,這兩個(gè)程序的功能完全相同。
研究人員表示:“由于我們沒(méi)有系統副本來(lái)測試補丁,因此需要用另一種方式證明這個(gè)微補丁不會(huì )改變系統的基本功能。所以,我們采用數學(xué)證明法,來(lái)分析二進(jìn)制代碼,結果顯示打補丁的版本與原始版本的功能相同。”
該項目的目標是讓成熟的系統能夠在發(fā)現安全漏洞時(shí)自動(dòng)生成和部署補丁,從而使即使最復雜的系統都不會(huì )發(fā)生故障。雖然該系統的首個(gè)版本是為卡車(chē)和航天器設計的,但研究人員預測,類(lèi)似的系統最終可應用于更廣泛使用的系統,如汽車(chē)系統。未來(lái),技術(shù)人員還可以在不訪(fǎng)問(wèn)源代碼的情況下診斷和修復計算機軟件。
研究人員表示:“該項研究造成的更廣泛的影響是可以直接在二進(jìn)制代碼中給軟件打補丁,而不需要進(jìn)行編譯等中間步驟,也不需要訪(fǎng)問(wèn)源代碼。因此,該系統可以用于提高汽車(chē)的安全性,甚至可以用于智能家居組件或傳統系統等其他類(lèi)型的計算機,可能還會(huì )進(jìn)行審核工作,以確保軟件的安全,而且可以按照軟件的要求去完成工作。”
(責任編輯:龔磊)