去年10月21日,一系列重量級網站——包括Twitter、PayPal、Spotify、Netflix、《紐約時報》以及《華爾街日報》等等——遭遇服務中斷。引發事故的原因并非這些網站本身出了什么問題,而是遭到一場聲勢浩大的分布式拒絕服務(DDoS)攻擊。
這場攻擊將矛頭直指域名系統(簡稱DNS)服務供應商——其職責在于將互聯網上各站點的名稱翻譯為數字地址。此次事件中受到影響的DNS供應商為Dyn公司,其服務器在短時間內收到大量虛假DNS查詢請求,導致系統資源被占用,流量擁塞,服務器無力回應合法用戶真正的DNS查詢操作。
越來越多的物聯網設備淪為DDoS攻擊的工具DDoS攻擊相當常見,但有兩大特征使得此次事件變得非常特別。
首先,由于Dyn公司是全球知名DNS供應商,因此受此攻擊活動影響的各類網站眾多。
另外,偽造的請求并非來自由臺式機及筆記本電腦構成的普通僵尸網絡,而是數千萬臺小型聯網設備。其中包括與互聯網對接的攝像頭、家庭路由器等,這些設備通常被稱為物聯網組,簡稱IoT。
預計到2020年將有數百億聯網設備多年以來,聯網設備的數量(包括手機、智能手表、健身追蹤器、家用恒溫器以及其它各類傳感器)已經遠遠超過全球總人口。到2020年,預計互聯網之上將存在數百億個這樣的小裝置。蓬勃發展的物聯網亦成為人類文明史當中推進速度最快的新興經濟體系。在大多數情況下,這樣迅猛的發展勢頭將給工程師乃至整個社會帶來巨大的鼓舞與刺激。
物聯網設備安全問題堪憂然而,物聯網領域頭頂一直籠罩著安全與隱私相關威脅的烏,而且其規模遠超人類以往所見。
數字化系統極易受到惡意黑客們未授權訪問、個人數據及其它信息竊取、信息鎖定勒索甚至是系統整體下線等攻擊活動的影響,而Dyn公司正是實實在在的受害者之一。
這是黑客與計算機安全專家之間開始進行新一輪軍備競賽,并迫使我們每一位局外人為各類計算機上運行的軟件進行安全更新。總結來講,目前的安全形勢成了一場不斷升級的貓鼠游戲,黑客方面的攻擊手段日益復雜,而軟件補丁則不斷出新——這一切都給物聯網的未來發展帶來了棘手的挑戰。
其主要原因之一在于,針對物聯網的攻擊活動有可能對電網、供電以及醫療衛生等關鍵基礎設施造成災難性的后果。
而另一個值得擔憂的是,批量化生產的智能設備可能并不具備充足的硬件資源以通過編程方式抵御其在生命周期內可能面臨的種種威脅。無論人們是否準備好迎接這些無處不在且即將進一步普及的計算設備,這些設備都已經逐漸滲透進生活之中。
為什么需要硬件補丁來擺脫這種困境?一種潛在方式,即建議將構建物聯網的各類小型裝置進行升級,從而確保其硬件能夠解決未來可能出現的種種安全威脅。這自然會給設計工作帶來挑戰,但從我們的角度出發,這正是智能設備所應該具備的設計方式。
物聯網設備為何容易被入侵?為什么物聯網設備會被如此輕而易舉地入侵?最顯而易見的答案之一就是物聯網設備數量龐大。面對數十億臺設備,其中總是會帶來數以百萬計的惡意行為,甚至是成功入侵。另外,接入互聯網的每一臺受入侵設備都可能會進一步嘗試感染其它設備。因此在物聯網當中,攻擊活動將兇猛。
而之所以需要為物聯網設備中安全漏洞所引發的災難性后果作好準備,另一大重要原因在于其個性化因素。我們目前擁有的各類小型數字系統能夠追蹤并記錄我們的一系列日常活動,包括人們的睡眠、人際往來、保健措施以及瀏覽模式等等。來自這些設備的信息通常經由互聯網被傳遞至中央存儲庫及服務器進行存儲與分析——但這同時意味著,任何能夠入侵這一通信流程的惡意人士都能夠訪問人們生活最真實的個人信息。
對于此類攻擊活動的另一種擔憂,則源自其同物理世界之間的頻繁交互。一旦家中的智能烤面包機或者是工廠中的傳感器遭遇黑客入侵,可能導致受控機器引發災難性的后果。
硬件設備使用壽命差異要求不同的解決方案面對這些挑戰,用于保護計算機安全的傳統機制恐怕并不足以解決問題。一方面,大多數為筆記本電腦、臺式機、服務器甚至手機所設計的保護功能都需要消費大量電力。而對于手表或者傳感器這類節點性質的微型裝置,由于其天然要求低電量消耗,因此上述安全方案將無能為力。
除此之外,保護機制通常在設計中僅面向需要運行周期為數年的計算系統。人們每三到四年就會更換一臺臺式機或者筆記本電腦,而智能手機與平板電腦的更換頻率往往更高。智能汽車、聯網電表或者智能交通燈等裝置的使用壽命一般更長,而且在某些情況下甚至需要以數十年作為運作周期。因此,通過替換的方式修復舊有安全問題的可行性將大打折扣,同時,制造商也無法預測其設備可能需要具備怎樣的硬件資源,從而應對未來可能會面臨的種種潛在攻擊活動。
物聯網設備——例如圖中的智能燈泡——能夠被輕松入侵并受到惡意軟件的感染,其隨后則可傳染同一網絡當中的其它設備。未來的補丁式硬件也許能夠降低此類威脅。
事實上,如今的我們甚至很難想象這些設備的未來使用方式,更遑論以十年甚至二十年為周期的威脅預測。也許到時候我們的冰箱將能夠與自動駕駛車輛進行通信,以確保后者會及時提醒用戶何時需要采購雜貨。然而,廚房當中一枚受到入侵的智能燈泡也能夠獲取到這些信息,并借此興風作浪。要預測未來各類智能小工具的使用情況,進而判斷其遭到入侵所引發的后果我們根本不能預測。這就需要通過特殊的方式設計這些系統,從而確保其有能力保護我們免受未來可能發生的攻擊方式的威脅。
傳統的補丁升級易被人忽視那么,工程師們如何才能實現物聯網安全?在尋找這一解決方案時,其完全踏入了充滿未知的新領域,這里存在大量未知數,卻鮮有明確的答案。盡管安全專家們需要盡最大努力開發出能夠應對已知威脅的保護舉措,但其同樣需要設計設備以保證其能夠通過配置與升級應對意外發生的漏洞與入侵。而就目前而言,最可行的實現方法就是硬件補丁。
“補丁”在計算領域是個廣為人知的概念,至少在軟件領域是如此。
如今的人們非常了解軟件的更新需求,并意識到其是實現手機與電腦持續安全運行的必要前提。我們大多數人會定期收到通知,其中顯示新的軟件已經準備好進行安裝。但隨著此類提醒越來越多,人們越來越不重視,甚至忽視,直到放棄抵抗,同意進行更新。
在通常情況下,某些應用程序會停止工作以進行自動更新,但這往往會耗費相當多的時間甚至導致重大業務中斷,這也是用戶們不愿主動接受軟件更新的原因。然而,這些安全更新確實非常必要——因為典型的計算設備每月都會暴露出數十種新型漏洞。
補丁機制僅針對軟件或者“固件”進行到目前為止,補丁機制僅針對軟件或者“固件”進行,而人們也往往習慣性地將這種作法引入小型計算裝置——即認定底層硬件本身具備不可變屬性。但在安全專家們看來,工程師們不僅應當允許軟件進行補丁安裝,亦應允許物聯網設備硬件具備補丁修復能力。
為什么要這樣?因為在某些情況下,人們可能無法單純通過修改軟件的方式修復一切安全漏洞。舉例來說,硬件可能負責實現目前安全的加密算法,但其也許會在系統生命周期結束之前過時。解決這種潛在風險的惟一方法,就是在設備制造完成后確保其采用可重新配置型硬件。
實現補丁式硬件的另一個重要原因在于,小型聯網設備往往僅利用極低電量進行運作,而對特定功能而言軟件實現途徑往往比純硬件實現要消耗更多能源。因此,工程師們通常無法設計出一款僅立足通用硬件即可通過運行軟件完成所需功能的小型低功耗產品——相反,必須采用專用硬件才能實現這項目標。更具體地講,軟件實利可能并不足以帶來必要的安全性提升。
智能手表 當中往往包含用戶姓名、地址、出生日期、體重、性別、心率以及其它健康信息。而此類設備可能極易受到黑客攻擊的影響。
補丁式硬件的實現面臨重重困難很明顯,補丁式硬件的設計要真正契合物聯網的需要,前提之一是其必須能夠在極為嚴格的功率限制下正常工作。
舉例來說,一部分無線傳感器的平均運行電流僅為數微安。目前能選擇且適合此類場景的解決方案只有一種——現場可編程門陣列(簡稱FPGA)。這是一種通用型芯片,用戶可以在其上對邏輯進行配置。而安全研究人員在這一研究領域當中作出的貢獻,則是開發出了一種能夠滿足不同安全要求的架構,且其緊密圍繞FPGA構建而成。
為了理解其運作原理,我們假定一塊芯片立足一臺小型設備以進行長期物聯網功能部署。其可能是一枚智能燈泡、一臺智能冰箱,或者是其它智能設備。在安全研究人員提出的架構當中,人們將這套集中式硬件組件稱為安全策略引擎,其負責管理一套綜合性關鍵安全事件集,具體包括系統當中各設計組件之間以及同外部的通信機制。
舉例來說,安全策略引擎可能要求用于通信機制的加密密鑰僅供某些特定硬件組件訪問。為了執行此項規則,該安全策略引擎必須管理各組件之間的密鑰共享功能,同時禁止一切不滿足指定安全性要求的交換請求。如果某一天,當安全研究人員意識到某一硬件組件當中存在安全漏洞,那么該如何立即禁止其訪問加密密鑰?如果硬件無法進行變更,那么一切保護都將成為空談。
假設這套安全策略引擎利用FPGA所構建,由于FPGA能夠進行升級,因此安全研究人員完全可以為其安裝補丁。即如果需要保護設備免受新近發現的安全風險所影響,則可以修復硬件以執行一組新的安全要求,且繼續保證其運行功耗與預期相符。
設備組成復雜增加硬件補丁設計難度上述想法在理論層面看似非常簡單,但在實踐當中仍存在大量有待解決的細節。這是因為,即使是小型數字設備,其中也往往包含著大量由第三方所設計的多種不同硬件組件。在這一領域當中,此類成果皆屬于知識產權,簡稱IP。安全策略引擎需要追蹤不同知識產權間的通信內容,從而確保其能夠強制執行安全要求并發現違規情況。另外,安全策略引擎還需要訪問各個知識產權組件當中的關鍵安全事件,從而正確對這些事件作出標記并加以響應。
這需要建立起一個特殊的接口,從而允許各知識產權供應商利用一套通用機制阻止硬件與安全策略引擎之間進行直接通信。但這種接口目前尚不存在,且相關標準的出臺可能還需要很長一段時間。幸運的是,大多數知識產權成果已經擁有了所謂調試接口,其通常用于檢查該知識產權是否能夠在芯片制造完成后正常運行。如果我們將安全策略引擎接入到此接口處,該引擎即可追蹤之前提到的各組件中的大量不同事件。如果新的安全性要求指向已被確認為對知識產權進行驗證至關重要的各類事件,且需要對其加以監控或者響應,硬件補丁應當允許該安全策略引擎直接追蹤相關事件,而無需對知識產權本身作出變動。
當然,如果新的安全性要求提出不可通過調試接口對知識產權中的事件進行訪問,研究人員將非常被動,只希望這種情況能夠越少越好,畢竟隨著時間的推移,各知識產權供應商只會提供更為豐富的調試接口——至少在知識產權的標準安全接口被開發出來之前是這樣。
從長遠角度來看,隨著安全專家越來越多地了解實際需求,他們將能夠為這些低功耗設備開發出更為靈活的保護機制。正如目前所普遍使用的安全補丁一樣,硬件補丁安裝也將成為物聯網上的例行事件。當下的挑戰在于找到一種通行性方法,使得這些系統能夠 無痛方式定期自我升級,且不至于帶來現在令眾多用戶所厭惡的軟件升級影響。
現已有小型聯網設備自動化軟件更新方法當前已經存在不少專門面向各類小型互聯網接入設備(例如手機)的自動化軟件更新方法,業界將其稱為“無線”(簡稱OTA)更新。在這樣的機制中,自然需要確保僅僅真實的軟件升級得到加載,且機制本身必須足夠強大以保證升級期間發生的電源或者通信鏈路故障不致給目標設備帶來“破壞”。當進行硬件配置自動更新時,也必將采用類似的保障能力。不過在小型物聯網裝置中,這些要求恐怕難以滿足,因為這類設備通常并不具備支持這種復雜任務所需要的硬件或者軟件容量。
雖然就目前來講,仍然很難在無需用戶或者系統管理員以手動方式對數十、數百甚至數千臺設備進行手動升級的前提下保障物聯網安全。但這樣的現狀需要得到有效改善,而自動升級系統也將隨著設備本身的換代而愈發強大。真有這么一天,相信屆時構成物聯網的各類組件已經具有足夠的靈活性。即使這些設備的數量增長至數萬億之巨,仍然能夠保證其擁有合理的安全性水平。