【 軟體無所不在 5-2】微處理器底層也可能出現風險

今日的微處理器內部還有一層比所有軟體使用的機器碼更低階的程式在運作,那就是所謂的微指令 (microcode)。這些微指令通常隨處理器而異,不過當微處理器出現問題時,可透過修改微指令的方式來修正機器碼的錯誤。之前鬧得沸沸揚揚的 Spectre 和 Meltdown 處理器漏洞,就是透過修改微指令的方式來修正。不過,這樣的修改也存在著風險,因為如果沒有改好,很可能會讓微處理器徹底毀於一旦。由於伺服器通常不能任意重新開機,因為它們必須執行一些重要的企業流程,基於這一點,前述的修補絕不能等閒視之。

微處理器底層也可能出現風險

微指令既然可以修改,意味著就連微處理器晶片也可被視為軟體。且近來似乎更掀起了一股認識如何重新程式化微處理器的風潮。不僅如此,還有其他幾種類型的處理器也可被程式化,例如:可針對特定工作單次程式化的「特殊應用晶片」(ASIC)、可隨時重新程式化的「現場可程式化邏輯閘陣列」(FPGA),以及專門處理類比訊號的「數位訊號處理器」(DSP)。

FPGA 正逐漸被當成特化的協作處理器來使用,例如:影像處理、網路資料過濾,或是其他高效能運算。一些較單純的 CPU 也已經可以用 FPGA 來實做。雖然未來的裝置應該不會由一系列可重新程式化通用晶片所構成,但在某些應用上確實可行。除此之外,還有一種沒有太多人關注的特化 DSP。行動電話和某些裝置為了應付各種版本的無線射頻標準,都將其無線射頻模組設計成所謂的「軟體定義無線射頻」(SDR) 裝置,如此一來,只需單一模組就能透過程式的修改來應付各種不同標準。市面上有許多 DVB-T 電視訊號 USB 接收器都採用 Realtek 的晶片,事實上,這就是一種寬頻 SDR 裝置。許多專案也都利用這款極便宜的接收器來接收無線訊號,少了它,就得使用價格更昂貴的其他套件。

隨著這些不同的可程式化處理器逐漸廣為人知、日益普及,再加上人們對它們的興趣逐漸提高,這類處理器也越來越有可能被用於惡意攻擊。

下期待續:【 軟體無所不在 5-3】-擁有軟體存取權限的車廠等製造商,才知道的隱藏版功能