Jeep 黑客和大眾汽車排放丑聞這樣的汽車軟件問題成為了今年的頭條,表明公眾開始重視之前從未考慮過的汽車軟件安全問題了。一些專家認為強制要求某些軟件開源是解決問題的一個好辦法。盡管如此可以讓軟件被公眾監督,但開放代碼這個事情本身卻不能給你帶來保障。就像 Sam Liles 最近發給我的郵件所說的一樣,開源并不能夠阻止破殼漏洞ShellShock的出現 。
Liles 博士曾是普渡大學網絡取證專業的教授。在那時,他和他的學生研究汽車以及其他物聯網設備的網絡安全問題。他說,多層防御已經接近死亡,換言之我們不能再依賴于多弄幾層的安全保護了。我們的手機和其他個人設備可能泄露我們正在做的事情,例如:我們去了哪兒,我們正在和誰交流,或其他更加隱私的活動等。這些設備和它們所包含的信息,存在于我們的私人和工作網絡中。顯然一個被入侵的手機可能被利用,入侵者可以訪問其發現的所有信息,甚至把病毒傳播給與它相連接的所有電子設備。
單就這些設備的數量本身就是一個巨大挑戰。Liles 提出一些問題:“誰來做這個級別的事件響應?”更重要的是,誰來審核所有的代碼? Eric S. Raymond 在《大教堂與集市》中寫道,“只要有足夠多的眼睛,所有的問題都將不是問題,” 此稱之為林納斯定律。但我們不能僅僅只依賴于足夠多的眼睛來發現問題。假 如像 OpenSSL 這樣重大的項目都會由于缺少資金而導致 Heartbleed 這類漏洞的話,那么誰來檢查這些我們每天都用到的數以百萬行代碼的軟件呢?
開源的代碼就真的絕對安全?
雖然 2011 年美國航空航天局和國家公路交通安全管理局做的關于豐田汽車意外加速事件的調查表明:“沒有證據證明電子故障是導致大量意外加速的原因”,但是其他研究人員已經確定汽車可以通過軟件來加速。IOActive 報告中寫道:“如果電源管理 ECU 被破壞,我們將能夠很容易的改變速度,這個時候汽車是非常不安全的”。顯然,軟件已經是現代汽車安全的重要組成部分之一。
然而,與 Liles 團隊做類似研究的仍然很少。單純分析軟件是非常困難的。Liles 認為:“計算機取證模塊幾乎很少被內置到系統中,但是為了使證據具有法律效力,往往需要借助逆向工程。”此外,物聯網設備所帶來的威脅需要從研究方式上進 行根本解決。解決掉一些舊的信息保障,安全體系學說,基于神學、半真理性的,過時的技術理論等。
那么,到底要不要將開源思想融入進去呢?不管代碼是否開源,一些意外的錯誤仍然存在。心臟滴血Heartbleed , 破殼漏洞ShellShock等 漏洞的存在確實證實了許多開源軟件同樣存在一定的漏洞。有些人為的錯誤在開源代碼中有著更加巨大的風險。開源在某種程度只是給我們提供了一種監管方式,我 們可以方便的查看、檢驗源代碼實際的運作情況。當汽車成為開放的系統并與我們的電話,互聯網相連之后,這其中的安全問題也變得愈加突出。