2018年,《彭博商業周刊》的一篇文章做出了驚人斷言,聲稱中國間諜部門在電路板中插入了毫米級芯片,從而在為亞馬遜、蘋果等公司生產的服務器中制造了后門。這一說法遭到了相關公司和美國國土安全部直接明確的駁斥。不過,電路板的確極易遭受入侵。已經有十幾個系統級攻擊的例子記錄在案。我們非常了解惡意軟件和偽造集成電路,而印刷電路板自身的弱點則直到現在才開始得到應有的重視。本文講述了印刷電路板制造中的一些最突出的弱點。
幸運的是,彌補這些弱點的方法相對比較簡單,而且其中許多方法只需要良好的工程實踐即可。要了解電路板是如何被入侵的,有必要先回顧一下其制作過程。印刷電路板通常包含成千上萬個元件。(在填充元件之前,也稱為印刷線路板,即PWB。)印刷電路板的目的是提供固定元件的結構支撐,并提供元件與信號和電源連接所需要的布線。印刷電路板的設計者首先需要創建兩個電子文檔:一個電路原理圖和一個布局設計圖。原理圖描繪了所有元件及其連接方式。
布局設計圖描繪了完成的裸板以及物體(包括元件及其標簽)在線路板上的位置,稱為參考指示符。(參考指示符極為重要,大多數組裝流程以及設計和采購流程都與參考指示符有關。)一塊印刷電路板并非全是元件。大多數電路板都包含空的元件封裝,稱“未填充元件”。這是因為電路板通常包含用于調試和測試的額外電路,或者電路板是為了實現多種目的而制造的,因此可能會有包含更多元件的版本或更少元件的版本。
檢查完原理圖和布局設計圖后,布局設計圖將被轉換為一組文件。最常見的文件格式為“Gerber”,或RS-274X。它由ASCII格式的命令組成,表明電路板上的圖形。第二個ASCII格式的文件為鉆孔文件,顯示電路板上打孔的位置。接下來,制造商會使用這些文件來創建掩模,用于蝕刻、打印和在電路板上鉆孔。之后,會對電路板進行測試。
接下來,“拾取和放置”機器會把表面貼裝元件放在電路板上正確的位置,然后印刷電路板會經過一個烘烤裝置,所有焊料被一次性融化。之后是放置通孔元件(通常是手工放置),電路板會經過一臺機器,該機器能夠將焊料應用到所有的通孔銷上。這是一項復雜的工作。一個8針、4電阻的網絡只能覆蓋2毫米×1.3毫米的區域,而且一些元件封裝非常小,只有0.25毫米×0.13毫米大。隨后是檢查、測試、根據需要維修電路板,并進一步組裝成可行的產品。
攻擊可以發生在這些設計步驟中的任何一步。
第一種攻擊會向原理圖添加額外元件。這種攻擊可能是最難發現的,因為原理圖通常被視為設計者意圖的最準確反映,因此具有權威性。這種攻擊還有一種變化形式,即向原理圖添加一個無害的元件,然后在生產中使用該元件的惡意修改版本。這類攻擊使用了看似合法卻含有硬件特洛伊木馬的元件,雖然不在本文的討論范圍之內,但我們應嚴肅對待。無論哪種情況,其對策都是仔細審查原理圖,這也是在任何情況下都應該采取的措施。其中一項重要的保護措施是讓其他設計團隊的人員來進行檢查,用他們的“新眼睛”來發現那些不必要的元件。第二種攻擊會向布局設計圖添加額外元件。
這個過程雖然很簡單,但由于將布局設計圖與原理圖進行比較需要進行特定的過程檢查,因此很難僥幸成功,至少需要布局技術人員偽造比較結果。要應對這種形式的攻擊很簡單,只需讓一位工程師或一組工程師(這樣更好)檢查布局設計圖與原理圖的比較步驟并簽字。第三種類型的攻擊是修改Gerber和鉆孔文件。從安全角度來看,Gerber和鉆孔文件有3個要點。第一,它們是ASCII格式的,因此可以在非常常見的文本編輯工具中對其進行編輯;第二,它們是人類可讀的;第三,它們不包含簽名或校驗等的內置加密保護。由于一套完整的Gerber文件可以長達幾十萬行,所以這種攻擊方式非常有效,很容易被漏查。例如,攻擊者可以插入一個看起來像是靜電放電二極管的東西。該電路的設計文件由16個Gerber文件和鉆孔文件組成。在這16個文件中,有9個文件需要修改;在這9個文件中,有7個文件總共有79行不同,還有2個文件需要修改,每個文件大約300行。后兩個文件是關于電源層和接地層的信息。
更加熟練的攻擊(比如添加稱為過孔的垂直連接)將顯著減少需要重寫的行數。不受保護的Gerber文件很容易受到攻擊,在設計公司和光刻掩模生產之間任一環節的入侵都可能攻擊Gerber文件。由于Gerber文件以行業標準為基礎,因此獲取更改信息相對簡單。有人可能會說,保護文件的標準加密方法也可以保護Gerber文件。雖然這樣的保護措施能在傳輸過程中保護Gerber文件,但文件到達目的地時這些保護措施是否有效尚不清楚。幾乎所有電路板都不是由其設計公司生產的。此外,雖然大多數第三方制造商都是信譽良好的公司,但這些公司通常不會為客戶記錄他們為保護這些文件所采取的步驟。還有一種保護文件的方法:以注釋的形式向文件的內部內容添加數字簽名、加密哈希或其他類型的驗證碼。
不過,只有在掩模制作流程很晚才對文件進行身份驗證時,這種保護才有效;理想情況是,制作光刻掩模的機器還能夠對文件進行身份驗證。或者,機器可以保留實際用于創建掩模的文件的加密哈希,以便制造商審核該過程。無論哪種情況,掩模制造機本身都需要安全處理。
如果這3種攻擊有一種成功,不良行為者便能在組裝好的電路板中添加一個實際的物理元件。這可以通過3種方式實現。
首先,可以在生產過程中添加額外元件。這很困難,因為需要改變供應鏈才能將元件添加到采購過程中,要對拾取和放置機器進行編程以放置該零部件,還要將一卷零部件連接到機器。換言之,這需要多個不良行為者的合作,這種共謀可能需要一個公司或一個國家才能完成。其次,可以在維修和返工環節添加額外元件,這比生產階段更容易實現。組裝好的電路板需要手工返工很常見。例如,一個有2 000個元件的電路板的第一次通過率(零缺陷電路板的分數)可能低于70%。有缺陷的電路板需要技術人員手工添加或移除元件;一名技術人員每天可以輕松地添加幾十個秘密元件。雖然不是每一塊電路板都有額外元件,但攻擊仍有可能成功,特別是在運輸環節有同謀能將被入侵的電路板運送給目標客戶時。請注意,這種攻擊(修改Gerber文件、在維修環節插入元件、有選擇性地運輸元件)只需要3個人就能成功。第三,可以在生產后的環節中手動向電路板添加元件,比如在倉庫中。由于可能出現在途攻擊,所以需要公司檢查進貨的電路板,以確認未填充元件仍然處于未填充狀態。
知道如何破壞印刷電路板只是完成了一半的工作。
攻擊者還必須知道計算機主板上的最佳目標是什么。他們會嘗試控制數據總線,特別是具有低數據速率和低引腳數兩個共同點的數據總線。高速總線(如SATA、M.2和DDR)對數據速率非常敏感,額外元件造成的延遲很可能會使它們無法正常工作。引腳數較少的元件則更容易加入設計中;因此,引腳數較少的總線更容易成為攻擊目標。在一塊PC主板上,有3條這樣的總線。
第一個是系統管理總線(SM總線),大多數PC主板都是通過SM總線來控制電壓調節器和時鐘頻率的,遵守的是飛利浦半導體公司1982年制定的二線制內部集成電路(I2C)標準。這個標準沒有加密,允許眾多獨立于CPU的連接設備直接訪問關鍵的板載元件,例如電源。SM總線上的秘密元件可以實現兩類系統攻擊。它能改變調節器的電壓設置并損壞元件,還可以通過冒充另一臺設備或故意干擾輸入數據的方式來干擾處理器和板載傳感器之間的通信。第二個目標是串行外圍接口(SPI)總線,它是摩托羅拉在20世紀80年代中期開發的一種四線總線。
大多數現代閃存元件都使用這種總線,因此很可能是訪問重要代碼的總線,例如BIOS(基本輸入/輸出系統)。針對SPI總線的精心密謀的攻擊,有可能改變從附加內存芯片讀取的數據的任何部分。在訪問BIOS時進行的修改可能會更改開機過程中完成的硬件配置,從而為惡意代碼留下一條通道。第三個目標是LPC(Low Pin Count,低引腳計數)總線,它特別容易受到攻擊,因為對其進行的攻擊可以破壞計算機的操作、遠程訪問電源和其他重要的控制功能,并危害開機過程的安全。這條總線包含7個必選信號和6個可選信號;用于將計算機的CPU連接到傳統設備(如串行和并行端口),或者連接到機箱上的物理交換機,在許多現代PC中,它的信號控制著風扇。
LPC總線非常易受攻擊,因為許多服務器使用它來連接單獨的管理處理器和系統。這款處理器稱為基板管理控制器(BMC),即使主處理器崩潰或尚未安裝操作系統,它也可以執行基本的內務管理功能。它很方便,因為它允許遠程控制、維修和診斷服務器元件。大多數BMC都有一個專用的以太網端口,因此對BMC的攻擊也可能影響網絡訪問。
BMC還有對SPI總線的直通連接,許多處理器都會通過這一通道加載BIOS。這是一個有目的的設計決策,因為它允許通過BMC對BIOS進行遠程修補。許多主板還會使用LPC總線訪問實施可信平臺模塊(TPM)標準的硬件,TPM標準可以提供加密密鑰和一系列其他服務來保護計算機及其軟件。
圍繞這些總線可以查找秘密元件。
可以通過機器進行搜索。在自動化方面,有佛羅里達網絡安全研究所(位于蓋恩斯維爾)主管馬克?M.特拉尼普爾(Mark M. Tehranipoor)開發的系統。該系統使用了光學掃描、顯微鏡、X射線斷層掃描和人工智能來比較印刷電路板及其元件與原設計。或者手動搜索,包括四輪檢查。雖然這些手動方法可能比較耗時,但不需要對每塊單板都這樣做,而且需要的專門技術也很少。第一輪,檢查電路板上是否有缺少參考指示符的元件。這是一個鮮明的信號;在正常的生產過程中,不可能制造出這種有問題的電路板。找到這樣的元件很可能表明電路板的布局文件(即Gerber和鉆孔文件)受到了攻擊,因為這一步是最有可能在不添加參考指示符的情況下添加元件的地方。
當然,沒有參考指示符的元件本身也是重大設計錯誤,在任何情況下都值得關注。第二輪檢查中,要確保原理圖、布局設計圖和材料清單中包含每個參考指示符。偽造的參考指示符也明顯表明有人篡改了電路板的布局文件。第三輪檢查重點關注元件封裝的形狀和大小。例如,如果原理圖上有一個4針零件,而布局設計圖或電路板上卻有一個8針封裝,那么這就是黑客攻擊的明顯證據。第四輪應該檢查電路板上所有未填充的部分。
未填充的地方出現元件,這很可能真的是失誤造成的,也可能是蓄意破壞的標志,因此這兩種情況都需要檢查。如你所見,現代主板(有的有成千上萬個微粒大小的元件)很容易遭到破壞。其中一些漏洞有可能使人得以訪問重要的系統功能。實際上,簡單的方法便能檢測甚至阻止大多數攻擊。與惡意軟件一樣,對問題的高度敏感度和認真仔細的審查可以阻止攻擊。
作者:Samuel H. Russ、Jacob Gatlin
編輯:黃飛
評論
查看更多