硬體中的駭客:下一個安全威脅

軟體病毒的危害似乎還不夠,為我們數字世界的方方面面提供動力的微晶片在工廠中也容易被篡改。後果可能不堪設想

您曾經可靠的手機突然宕機。鍵盤不再起作用,也無法撥打或接收電話或簡訊。您嘗試關機,但沒有任何反應。您取出電池並重新插入;手機只是恢復到宕機狀態。顯然,這不是普通的故障。幾小時後,您得知這並非個別問題:數百萬人也看到他們的手機突然莫名其妙地宕機。

這可能是我們體驗大規模硬體攻擊的一種可能方式——這種攻擊根植於日益複雜的積體電路,這些積體電路是我們每天依賴的許多裝置的大腦。這些電路變得如此複雜,以至於沒有一組工程師可以理解其設計的每個部分;相反,來自遙遠大陸的工程師團隊設計晶片的各個部分,所有部分在晶片印刷到矽片上時才首次組合在一起。電路非常複雜,以至於不可能進行詳盡的測試。任何植入晶片程式碼中的漏洞都不會被注意到,直到它被某種觸發器啟用,例如特定的日期和時間——就像特洛伊木馬一樣,它在安全進入硬體內部後才發起攻擊。

硬體攻擊的物理性質使其可能比蠕蟲病毒、病毒和其他惡意軟體更成問題。病毒可以從一臺機器跳到另一臺機器,但原則上也可以從它感染的任何系統中完全清除。相比之下,除了更換受感染的單元外,沒有其他方法可以修復硬體攻擊。至少,目前還沒有。


支援科學新聞報道

如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保未來能夠繼續講述有關塑造我們當今世界的發現和思想的有影響力的故事。


修復系統性的惡意硬體問題的難度讓網路安全專家夜不能寐。任何使用微處理器的東西——也就是說,幾乎所有電子產品——都是脆弱的。積體電路是我們通訊系統和世界電力供應的核心。它們定位現代客機上的襟翼,並調節您汽車防抱死制動系統中的動力。它們用於訪問銀行金庫和自動取款機以及執行股票市場。它們構成了我們軍隊使用的幾乎所有關鍵系統的核心。精心設計的攻擊可能會使商業陷入停頓,或使我們軍隊或政府的關鍵部門癱瘓。

由於特洛伊木馬硬體可能會隱藏多年才被啟用,因此硬體漏洞可能已經植入——甚至很可能已經植入。儘管尚未證實發生過大規模硬體攻擊,但它們是不可避免的。

正如我們從打擊基於軟體的網路攻擊中所熟知的那樣,相對少數將技術技能用於惡意目的的人可能會產生重大影響。因此,與其問硬體攻擊是否會發生,不如問更好的問題是:這些攻擊將採取什麼形式?它們將產生什麼後果?而且,也許最重要的是,我們能做些什麼來檢測和阻止它們,或者至少最大限度地減少它們的影響?

逐塊構建
積體電路或晶片只是蝕刻在單片半導體材料(最常見的是矽)上的電子電路。現代積體電路的物理尺寸非常小——不超過幾平方釐米,通常要小得多——但可以包含數十億個電晶體。現代晶片的複雜性本身就造成了使特洛伊木馬攻擊成為可能的漏洞。

現代晶片分為稱為塊的子單元,這些子單元執行不同的功能。例如,在手機的處理器中,一個塊可能是可用於儲存攝像頭捕獲的影片幀的記憶體。第二個塊可能會將該影片壓縮成 MPEG 檔案,第三個塊可能會將這些檔案轉換成可以透過天線傳輸的形式。資料在這些塊之間透過系統匯流排移動,系統匯流排就像連線晶片不同部分的高速公路。

當一家公司開始設計新的積體電路時,它首先會規劃電路需要哪些功能塊。其中一些塊將在內部設計,要麼從頭開始,要麼作為公司早期晶片中使用的塊設計的修改。其他塊將從第三方獲得許可,這些第三方可能專門從事某種型別的功能——例如,從天線接收資料。

來自第三方的塊不是以物理矽片的形式出現,因為構建積體電路的目標是將所有功能塊都印刷在同一表面上。相反,該塊以資料檔案的形式出現,該檔案完整地描述了應如何將該塊蝕刻到矽片上。該檔案可能有數千行長,這使得人類實際上不可能讀取該檔案並理解其中發生的一切。塊提供商通常還會提供一些軟體,塊購買者可以使用這些軟體來模擬該塊在各種情況下的響應方式。在印刷任何電路之前,主導公司會將所有模型塊連線到計算機模擬中,以確保晶片按預期執行。只有當模型透過一系列測試後,公司才會開始耗時且昂貴的物理積體電路製造過程。

漏洞就在這裡:由於惡意硬體需要特定的觸發器才能啟用,晶片製造商將不得不針對每種可能的觸發器測試其模型,以確保硬體是乾淨的。這根本不可能——可能的觸發器範圍太廣了。除了行動電話示例中描述的基於日期的觸發器等內部觸發器外,駭客還可以使用外部觸發器,例如接收包含特定字元集的文字或電子郵件訊息。公司會盡最大努力進行測試,即使這必然意味著僅測試非常小比例的可能輸入。如果一個塊按預期執行,則假定它執行正常。

信任問題
在積體電路設計的早期,沒有人需要擔心駭客。最初的設計完全是在內部建立的,由為共同目標努力的小團隊執行。由於這種組織安全,設計人員建立了開放協議,假定晶片的不同部分會按預期執行。(這段歷史與網際網路早期做出的選擇相呼應,當時一個小型學術界構建了一個開放平臺,假定每個人都會表現良好。這種假定未能經受住網際網路發展的考驗。)

然而,在當今世界,單個大型積體電路的設計過程可能涉及來自多個大陸地點的數百甚至數千人的貢獻。隨著這種設計經歷各個開發階段,部分設計儲存在許多不同的物理平臺上,並在許多方之間反覆交換。例如,一家美國製造商可能會將公司不同部門的設計與來自美國、歐洲和印度的第三方供應商的設計相結合,然後在中國的工廠製造晶片。這些全球網路近年來已成為現實,它們為降低成本和提高效率做出了巨大貢獻。但這使得安全性比過去在一個設施中完成所有事情時複雜得多。鑑於大型積體電路設計所涉及的人員數量和複雜性,始終存在未經授權的外部人員可能獲得訪問許可權並在未被檢測到的情況下破壞設計的風險。

內部人員破壞設計的風險也非常小——但並非為零。雖然參與電路設計任何方面的絕大多數人都會努力交付質量最高的設計,但與任何安全問題一樣,即使是極少數具有內部訪問許可權的人員的惡意行為也可能造成重大問題。

理想情況下,潛在的攻擊者永遠不會有機會在積體電路的設計和製造過程中獲得訪問許可權,從而確保永遠不會發生硬體攻擊。這是國防高階研究計劃局 (DARPA)(五角大樓運營的研究機構)透過其“積體電路信任計劃”追求的戰略。DARPA 正在設計流程,以確保設計和製造鏈中的所有步驟都由已知值得信賴的公司和人員在安全環境中執行。(此外,該機構還在資助對晶片進行新測試方法的研究,然後再將晶片放入美國武器系統。)然而,在現實世界中,為確保設計過程安全而採取的行動永遠不是完美的。

硬體設計人員還應構建能夠識別和響應正在發生的攻擊的電路,就像車載警察部隊一樣。雖然社群當然應該採取一切合理措施來阻止潛在的犯罪分子犯罪,但任何負責任的社群也認識到,這些努力,無論多麼善意和徹底,永遠不會 100% 有效。擁有能夠對犯罪發生時快速且適當做出反應的警察部隊至關重要。

保護電路
一種可以有效檢測和響應攻擊的電路稱為安全電路。這些晶片具有少量額外的電路,專門用於查詢可能揭示問題的行為。如果懷疑發生攻擊,安全電路將識別攻擊型別並嘗試最大限度地減少由此造成的損害。

在手機宕機的示例中,故障可能是由單個塊行為失常引起的。該塊透過系統匯流排與所有其他塊互動。反過來,該匯流排有一個匯流排仲裁器——一個交通警察,它決定什麼資訊可以在什麼時間透過匯流排傳輸。然而,交通警察的比喻並不完美。雖然交通警察可以指示交通何時開始和何時停止,但匯流排仲裁器的許可權較小。它可以授予一個塊開始透過匯流排傳送資訊的許可權,但該塊可以保留該訪問許可權,只要它想保留多久就保留多久——這仍然是很久以前假定塊始終會正常執行的遺留問題。問題就在這裡。

在典型的系統中,一個塊將僅在必要的時間內保留對系統匯流排的訪問許可權,然後放棄它供其他塊使用。匯流排仲裁器看到系統匯流排可用,然後將其分配給另一個塊。但是,如果一個塊無限期地保持對匯流排的控制,則將無法在積體電路內移動更多資料,並且系統將宕機。

相比之下,安全積體電路會不斷檢查以確保不同塊之間的通訊沒有中斷。當它檢測到一個塊壟斷對匯流排的訪問時,安全積體電路可以透過隔離惡意塊來做出響應。然後,它可以利用其可程式設計邏輯硬體儲存來替換丟失的功能。此過程可能會減慢整體執行速度,但至少可以保持裝置正常工作。

然而,公開的攻擊可能不是最危險的威脅。隱蔽攻擊可能會更糟糕。在隱蔽攻擊中,裝置看起來執行正常,但實際上它正在惡意地執行。例如,手機可能會秘密開始將所有傳入和傳出的簡訊副本傳輸給第三方。毫無戒心的觀察者不會注意到任何異常,並且攻擊可能會無限期地持續下去。

安全積體電路將為防禦此類攻擊提供至關重要的防禦。晶片將不斷監控進出積體電路的資料量和型別,並將此移動與預期的資料流進行統計比較。任何異常都將被標記為潛在的資料洩漏,並且晶片將要麼提醒使用者,要麼開始自行阻止洩漏。

除了採取措施應對特洛伊木馬攻擊對其自身執行的影響外,積體電路還可以將攻擊型別通知其他裝置,從而使它們能夠採取先發制人的行動來避免攻擊(或至少最大限度地減少其影響)。鑑於幾乎所有系統現在都具有網路連線,這種通知並非像看起來那麼牽強。例如,如果遇到攻擊的電路可以識別發起觸發器,則它可以提醒其他電路篩選該特定訊息。

只有當負責管理安全性的電路部分本身是安全且值得信賴的,這裡描述的措施才有效。這可能看起來像一個迴圈論證——另一種說法是,保護電路的唯一方法是保護電路——但電路中專門用於安全性的元件僅佔總體設計的一小部分。它們可以在內部設計,以確保只有高度信任的各方才能訪問。

下一步該怎麼做
由於政府、學術研究人員和商業部門的努力,網際網路安全取得了巨大進步。積體電路安全的狀態卻並非如此,它大致處於 15 年前網際網路安全的狀態:人們越來越意識到這個問題值得關注,但防禦策略尚未完全制定,更不用說付諸實踐了。

防止硬體攻擊的綜合方法需要在多個層面上採取行動。旨在確保受損硬體永遠不會出門的策略,例如 DARPA 的計劃,是一個良好的開端。但最重要的是,我們必須開始實施安全設計措施,例如此處討論的那些措施,這些措施可以防禦正在發生的攻擊。這些防禦措施不會是免費的。與其他領域的安全性一樣,積體電路安全性將需要花費時間、金錢和精力。各種各樣的選項代表了安全有效性和實施成本之間的權衡。幸運的是,有可能以適度的成本提供有效的安全性。

安全積體電路包含少量額外的邏輯。在我的研究小組在加州大學洛杉磯分校進行的研究中,我們發現積體電路尺寸的增加通常為幾個百分點。考慮到為確保功能塊正常執行而採取的步驟可能會消耗一些時鐘週期,否則這些時鐘週期可能會用於核心操作任務,因此通常在執行速度方面也會付出代價。然而,我們再次發現速度降低在相對而言很小,並且在某些情況下,如果使用暫時處於休眠狀態的邏輯和功能塊執行安全措施,則根本不會發生速度降低。

保持硬體安全將不可避免地成為一場軍備競賽,需要不斷創新才能領先於最新的攻擊,軟體世界的情況也是如此。雖然新電路無法像用於修復軟體中發現的安全漏洞那樣透過網際網路下載,但現代積體電路具有許多可重新配置的方面,如果在積體電路設計過程中採取適當的步驟,這些方面可用於自動替換在發生攻擊時變得無法工作的硬體部件。工程靈活性是我們最好的防禦。

即使硬體攻擊不可避免,但這並不意味著它們必須成功。

© .