情況簡介
隨著黑客技術的發展,以前那種利用軟體漏洞、系統漏洞等進行攻擊的方式極有可能在未來風光不在,取而代之的是一種從硬體入侵的攻擊方式。最近一些網路安全人員給電腦的晶片(CPU)刷入惡意的Firmware固件,使未經許可的攻擊者輕易地進入系統,而電腦管理員本身在系統里卻無法發覺,用這種攻擊方式的人被形象地稱之為“硬體黑客”。
“硬體黑客”從最關鍵的硬體晶片入手,對CPU的電路做一些細微的修改,以達到刷入一些惡意固件的目的,一旦成功就可以逃避所有防火牆以及防毒軟體、安全輔助工具的追蹤,即便是電腦使用者本人(管理員)也根本不會查覺,除非電腦硬體損壞,否則此固件將是一個永久的“黑客之門”,供黑客隨意出入,而且重灌系統等強力防黑措施對它也無濟於事。
但同時這種黑客手段也有其局限性,必須實際接觸到要“黑”電腦的硬體才可以,所以一般能達到作案條件的只能是出售惡意硬體的黑客、電腦的公司內部員工以及電腦維修人員。如果採購渠道正規,電腦使用和維修很規範,就可避免“硬體黑客”的威脅。此外,大家還要加強區域網路內部伺服器的訪問控制、入侵防禦等安全措施,進一步保證區域網路的安全。
在不久的將來,除了令人頭疼的軟體漏洞外,硬體安全漏洞也將受到黑客的青睞,硬體廠商們不但要考慮硬體的實用性,還不得不考慮硬體的安全問題。
破壞力
你曾經可靠的手機突然當機,鍵盤全部罷工,電話無法撥打或接聽,簡訊也不能收發,甚至正常關機都不行。無奈之下,你取下電池強行關機,但重新開機後手機再次當機。這顯然不是普通故障。幾小時後,你發現不止你的手機這樣,還有上百萬人跟你一樣,手機突然無故當機。
這是人們遭受到一場大規模硬體攻擊之後可能發生的情況。這場攻擊的根源在於越來越複雜的積體電路,它們正是人們日常依賴的各種設備的核心部件。現代積體電路已經非常複雜,任何一個工程師團隊都不足以了解他們設計電路中的所有部分。因此,積體電路的研發工作現在都由世界各地的團隊共同完成,每個團隊只負責整個設計的一部分,在印刷電路板之前,才把各部分設計集成起來。電路複雜性也決定了根本不可能用窮舉法來測試它。晶片中的任何一個編碼缺陷往往都會潛伏很長的時間,直至被一些觸發條件(如特定的數據或時間)激活——這有點像木馬病毒,在發作前會一直安全地存儲在硬體中。
無法修復
硬體攻擊的物理本質使得它的潛在危害遠勝病毒及其他惡意軟體。軟體病毒可在機器之間傳播,但從理論上說,人們可從任何受感染的系統中徹底清除它們。然而計算機在遭受硬體攻擊後是無法修復的,至少目前還不行,除非更換硬體。修復系統的惡意硬體非常困難。所有使用微處理器的設備,甚至可以說所有的電子設備,都很脆弱。積體電路在現代通信系統及全球電力供應系統里處於核心地位,在飛機上負責襟翼的定位,在汽車防抱死剎車系統(ABS)中負責調節制動力,在銀行保險庫和ATM機上負責安全授權,在股票市場負責交易運作。積體電路還是武裝部隊使用的幾乎所有關鍵系統的核心。可以想像,一起精心策劃的硬體攻擊,能夠讓金融系統癱瘓,或者讓軍隊或政府的關鍵部門陷入混亂。
由於硬體木馬在激活之前可以隱藏很多年,它們也許、甚至非常可能已被植入硬體缺陷中了。雖然到目前為止尚未證實有大規模硬體攻擊發生,但是這類攻擊是不可避免的。
從基於軟體的網路攻擊中人們可以看得非常清楚,即使很少一部分人不懷好意地使用黑客技術,都會造成巨大的危害。因此,人們需要考慮的問題不是硬體攻擊是否會發生,而攻擊將採用何種方式?攻擊步驟是什麼?而最重要的問題或許是,如何檢測並阻止攻擊,或者至少降低攻擊帶來的損失。
模組化
晶片內部:晶片包含一系列功能模組,每個模組執行一種特定任務。模組間的數據經系統匯流排傳送,一個叫做匯流排仲裁器的模組會對匯流排上的數據流進行控制。
示意圖 |
以手機為例,數據可能會從記憶體(1)傳送到執行計算的模組(2),然後再傳送到負責信息編碼和解碼的模組(3),最後再傳送到負責與晶片外部交換數據的模組(4)和(5)。
出錯的時候:晶片會一直正常工作,直到其中的流氓電路被激活並發起攻擊。觸發條件可以有多種形式,如特定數據和時間,或者是外部傳送的特定編碼格式數據包中的“喚醒呼叫”。一旦激活,木馬隨即就會公開或秘密地展開攻擊。
示意圖 |
在隱蔽攻擊中,流氓電路的行為不會留下任何痕跡。隱蔽攻擊特別令人擔憂,因為沒有明顯跡象表明運行出現了問題。但是,流氓電路會將機密數據傳送到晶片外部的某個地址,或配合其他受感染的系統發動攻擊。
簡單來講,積體電路,也就是我們常說的晶片,是一種刻蝕在半導體晶片(通常是矽)上的電路。現代晶片非常小,最大也就幾平方厘米,但可容納數十億個電晶體。由於現代晶片擁有如此高的複雜性,一些可能被木馬利用的漏洞也存在其中。
根據功能不同,現代晶片可劃分成若干個子單元,即模組(block)。以手機處理器為例,有的模組用於存儲相機拍攝的視頻,有的用於把視頻壓縮成MPEG檔案,有的可將MPEG檔案轉換成可無線傳輸的格式。模組間的數據通過系統匯流排(systembus)傳輸,後者就像是連線晶片不同部分的高速公路。
當一家公司著手設計新款晶片時,首先要規劃出晶片所需的功能模組。其中一些模組是自主設計的,要么從零開始設計,要么對自家早期產品加以改進。其他一些功能模組,比如通過天線接收數據的模組,則可以從專門開發特定功能的第三方那裡獲得使用許可。
從第三方那裡獲取的模組並不是一塊塊實際的晶片,因為製造積體電路的目的就是要把所有功能模組印刷到同一塊晶片上。相反,那些模組是以數據檔案的形式提供的,其中完整地描述了模組被刻蝕到矽片上的方法。這樣的檔案可以包含數千條指令,人們要想讀懂其中的內容幾乎是不可能的。模組供應商通常還會向購買者提供一些軟體,模組買家可以用它來模擬該模組在不同情況下的使用效果。在晶片開始印製之前,設計公司還會將所有模組集成在一起,建立模型並使用計算機進行仿真測試,以保證晶片能夠按照設計初衷正常工作。只有模型通過這一系列測試,公司才會開始漫長而且耗資巨大的實體晶片製造。
示意圖 |
示意圖 |