想像一下,在你的紀念日、生日或節日,有新的包裹指名遞送給你。你滿懷期待地打開包裹,發現裡面是最新的物聯網(IoT)科技小物,也許是活動紀錄器,或甚至是可連網的灑水系統控制器,總之是你一直想要的東西。您(你)心想:「太棒了!」,但這到底是誰送的呢?把送件人這件事先放一旁,你迅速將裝置安裝好,並使用家中Wi-Fi網路的登入資料,將此裝置與你的智慧型手機配對。砰!此刻,不知不覺中,你為攻擊者製造了機會,讓他能取得你寶貴的資料。

到現在,大部份的人都知道釣魚詐騙(phishing)電子郵件是用來將惡意軟體置入個人運算裝置,但如果像上述情境,網路釣魚攻擊利用物聯網的邊緣節點做為誘餌呢?隨著攻擊者與攻擊計畫變得日益縝密和成熟,上述情況也變得越來越有可能發生。除了攻擊者的專業知識不斷增加之外,消費者越來越能接納新的技術,推動物聯網的擴展,也增加接收物聯網邊緣節點「誘餌」的機率。

20171124_NXP_NT41P1

所以,上述情境中,有哪些地方做錯了?主角原本可以做些什麼來防止事情發生?有許多情境可能造成此類攻擊的成功,這些攻擊將熟悉的產品改變用途,成為惡意攻擊的工具。裝置製造商並未適當地保護最初安裝的韌體,以及裝置部署後發佈的韌體更新。

正如實現加密法的暗門功能,在製造和開發嵌入式裝置的過程中,可以採取一些簡單的步驟,讓此類攻擊特別難以在裝置實際使用時進行。運用正確技術,即可將韌體置入內建記憶體中,並將其永久鎖定。韌體更新也可以用加密方式來保護。

讓我們來檢視如何使用恩智浦(NXP)的安全技術防止此種攻擊威脅。恩智浦的Kinetis微控制器(MCU)及啟用的開機載入程式Kinetis Bootloader或KBOOT,整合軟硬體功能,實現安全的韌體初始佈建,並保護終端裝置未來下載的韌體。KBOOT是安裝於快閃記憶體或ROM中的開機載入程式,搭配其他內建工具,可在整個產品生命週期間,啟動Kinetis MCU的程式設計作業。

20171124_NXP_NT41P2

這個KBOOT啟動程式提供軟體防火牆,並可使用加密的硬體加速功能,來處理將韌體編程至內建或外部記憶體的作業,進而運用Kinetis MCU的安全技術。KBOOT可辨識晶片層級的安全設定。在某些裝置上,一旦進入安全模式,使用KBOOT進行韌體編程的唯一方式,就是利用加密的二進位(Binary)檔案。任何試圖更新韌體的動作都會失敗。這代表只有安全二進位金鑰(Secure Binary Key)的持有者所建立的檔案,才能被接受,並使用KBOOT將韌體下載至Kinetis MCU。

KBOOT隨附完整的原始程式碼,具備高度可自訂性,能夠進行更多的客製化修改,來加強應用程式韌體的安全性。例如,Kinetis MCU可以設定將開機載入程式置於快閃記憶體中,並透過晶片的安全設定,來讓此程式變得無法修改。有了這項保護機制,攻擊者就必須完全移除和更換IC晶片,才能進行複製。由於KBOOT是開放原始碼軟體,因此可以加以修改,來量身打造終端使用者所要的加密和完整性檢查演算法。建置超強大安全機制的一項可能做法,就是除了KBOOT之外,再另外使用嵌入式安全元件,利用安全伺服器來新增裝置的驗證機制,以強化整個產品生命週期的安全性。

身為消費者,對於此種針對式的網路釣魚攻擊,我們能做的實在不多。即使知道攻擊發生的可能性,也無法確保我們能隨時受到保護。但是,恩智浦提供因應此種威脅的解決方案,透過KBOOT軟體和Kinetis MCU,將讓嵌入式開發人員更輕鬆地整合所需的韌體保護功能,以確保這些攻擊能夠化解。