Linux容器能否彌補IoT的安全短板?
盡管受到日益增長的安全威脅,但對物聯網(IoT)的炒作沒有顯示減弱的跡象。為了刷存在感,公司們正忙于重新規劃它們的物聯網方面的路線圖。物聯網大潮迅猛異常,比移動互聯網革命滲透的更加深入和廣泛。IoT 像黑洞一樣,吞噬一切,包括智能手機,它通常是我們通向物聯網世界的窗口,有時也作為我們的匯聚點或終端。
新的針對物聯網的處理器和嵌入式主板繼續重塑其技術版圖。自從9月份推出面向物聯網的Linux和開源硬件系列文章之后,我們看到了面向物聯網網關的 “Apollo Lake]” SoC 芯片Intel Atom E3900以及三星新的Artik模塊,包括用于網關并由Linux驅動的64位 Artik 7 COM 及自帶RTOS的 Cortex-M4 Artik。 ARM為具有ARMv8-M和TrustZone安全性的IoT終端發布了Cortex-M23 和 Cortex-M33芯片。
Artik 7
講道理,安全是這些產品的賣點。最近攻擊 Dyn 服務并在一天內摧毀了美國大部分互聯網的Mirai僵尸網絡將基于Linux的物聯網推到臺前-當然這種方式似乎不太體面。就像 IoT 設備可以成為 DDoS 的幫兇一樣,設備及其所有者同樣可能直接遭受惡意攻擊。
Cortex-M33 和 -M23
Dyn 攻擊事件更加證明了這種觀點,即物聯網將更加蓬勃地在受控制和受保護的工業環境發展,而不是家用環境中。這不是因為沒有消費級物聯網安全技術,但除非產品設計之初就以安全為目標,否則如我們的智能家居集線器系列中的許多解決方案一樣,后期再考慮安全就會增加成本和復雜性。
在物聯網系列的最后這個未來展望的部分,我們將探討兩種基于 Linux 的面向Docker的容器技術,這些技術被提出作為物聯網安全解決方案。容器還可以幫助解決我們在物聯網框架中探討的開發復雜性和互操作性障礙的問題。
我們與 Canonical 的Ubuntu客戶平臺工程副總裁Oliver Ries討論了Ubuntu Core和適用于Docker的容器式Snaps包管理技術。我們還就新的基于 Docker的物聯網方案ResinOS采訪了Resin.io首席執行官和聯合創始人Alexandros Marinos。
Ubuntu Core Snaps
Canonical 面向物聯網的Snappy Ubuntu Core版本的Ubuntu是圍繞一個類似容器的快照包管理機制而構建的,并提供應用商店支持。 snaps 技術最近自行發布了用于其他Linux發行版的版本。去年 11 月 3 日,Canonical發布了 Ubuntu Core 16,該版本改進了白標應用商店和更新控制服務。
傳統 Ubuntu(左)架構 與 Ubuntu Core 16
快照機制提供自動更新,并有助于阻止未經授權的更新。 使用事務系統管理,快照可確保更新按預期部署或根本不部署。在 Ubuntu Core 中,使用 AppArmor 進一步加強了安全性,并且所有應用程序文件都是只讀的且保存在隔離的孤島中。
LimeSDR
Ubuntu Core 是我們最近展開的操作系統調查的一部分,現在運行于 Gumstix 主板、Erle機器人無人機、Dell Edge 網關、Nextcloud Box、LimeSDR、Mycroft 家庭集線器、英特爾的 Joule 和符合 Linaro 的 96Boards 規范的 SBC(單板計算機)上。 Canonical 公司還與 Linaro 物聯網和嵌入式(LITE)部門集團在其96Boards 物聯網版(IE) 上達成合作。最初,96Boards IE 專注于 Zephyr 驅動的 Cortex-M4 板卡,如 Seeed 的BLE Carbon,不過它將擴展到可以運行 Ubuntu Core 的網關板卡上。
“Ubuntu Core 和 snaps 具有從邊緣到網關到云的相關性,”Canonical 的 Ries 說。 “能夠在任何主要發行版(包括 Ubuntu Server 和 Ubuntu for Cloud)上運行快照包,使我們能夠提供一致的體驗。 snaps 可以使用事務更新以免故障方式升級,可用于安全性更新、錯誤修復或新功能的持續更新,這在物聯網環境中非常重要。”
Nextcloud盒子
安全性和可靠性是關注的重點,Ries 說。“snaps 應用可以完全獨立于彼此和操作系統而運行,使得兩個應用程序可以安全地在單個網關上運行,”他說。 “snaps 是只讀的和經過認證的,可以保證代碼的完整性。
Ries 還說這種技術減少開發時間。“snap 軟件包允許開發人員向支持它的任何平臺提供相同的二進制包,從而降低開發和測試成本,減少部署時間和提高更新速度。 “使用 snap 軟件包,開發人員完可以全控制開發生命周期,并可以立即更新。snap包提供了所有必需的依賴項,因此開發人員可以選擇定制他們使用的組件。”
ResinOS: 為 IoT 而生的 Docker
Resin.io 公司,與其商用的 IoT 框架同名,最近剝離了該框架的基于 Yocto Linux 的 ResinOS 2.0,ResinOS 2.0 將作為一個獨立的開源項目運營。 Ubuntu Core 在 snap 包中運行 Docker 容器引擎,ResinOS 在主機上運行 Docker。極致簡約的 ResinOS 抽離了使用 Yocto 代碼的復雜性,使開發人員能夠快速部署 Docker 容器。
ResinOS 2.0 架構
與基于 Linux 的 CoreOS 一樣,ResinOS 集成了 systemd 控制服務和網絡協議棧,可通過異構網絡安全地部署更新的應用程序。但是,它是為在資源受限的設備(如 ARM 黑客板)上運行而設計的,與之相反,CoreOS 和其他基于Docker的操作系統(例如基于Red Hat的Project Atomic)目前僅能運行在 x86 上,并且更喜歡資源豐富的服務器平臺。 ResinOS 可以在 20 中 Linux 設備上運行,并不斷增長,包括 Raspberry Pi,BeagleBone 和Odroid-C1 等。
“我們認為 Linux 容器對嵌入式系統比對于云更重要,”Resin.io 的 Marinos 說。“在云中,容器代表了對之前的進程的優化,但在嵌入式中,它們代表了姍姍來遲的通用虛擬化“
BeagleBone Black
當應用于物聯網時,完整的企業級虛擬機有直接訪問硬件的限制的性能缺陷,Marinos 說。像OSGi和Android 的Dalvik這樣的移動設備虛擬機可以用于 IoT,但是它們依賴 Java 并有其他限制。
對于企業開發人員來說,使用 Docker 似乎很自然,但是你如何說服嵌入式黑客轉向全新的范式呢? “Marinos 解釋說,”ResinOS 不是把云技術的實踐經驗照單全收,而是針對嵌入式進行了優化。”此外,他說,容器比典型的物聯網技術更好地包容故障。“如果有軟件缺陷,主機操作系統可以繼續正常工作,甚至保持連接。要恢復,您可以重新啟動容器或推送更新。更新設備而不重新啟動它的能力進一步消除了故障引發問題的機率。”
據Marinos所說,其他好處源自與云技術的一致性,例如擁有更廣泛的開發人員。容器提供了“跨數據中心和邊緣的統一范式,以及一種方便地將技術、工作流、基礎設施,甚至應用程序轉移到邊緣(終端)的方式。”
Marinos 說,容器中的固有安全性優勢正在被其他技術增強。“隨著 Docker 社區推動實現鏡像簽名和鑒證,這些自然會轉移并應用到 ResinOS,”他說。“當 Linux 內核被強化以提高容器安全性時,或者獲得更好地管理容器所消耗的資源的能力時,會產生類似的好處。
容器也適合開源 IoT 框架,Marinos 說。“Linux 容器很容易與幾乎各種協議、應用程序、語言和庫結合使用,”Marinos 說。“Resin.io 參加了 AllSeen聯盟,我們與使用 IoTivity和Thread的伙伴一起合作。”
IoT的未來:智能網關與智能終端
Marinos和Canonical的Ries對未來物聯網的幾個發展趨勢具有一致的看法。首先,物聯網的最初概念(其中基于MCU的端點直接與云進行通信以進行處理)正在迅速被霧化計算架構所取代。這需要更智能的網關,也需要比僅僅在 ZigBee 和WiFi之間聚合和轉換數據更多的功能。
其次,網關和智能邊緣設備越來越多地運行多個應用程序。第三,許多這些設備將提供板載分析,這些在最新的智能家居集線器上都有體現。最后,富媒體將很快成為物聯網組合的一部分。
最新設備網關: Eurotech 的ReliaGate 20-26
最新設備網關: Advantech 的 UBC-221
“智能網關正在接管最初為云服務設計的許多處理和控制功能,”Marinos 說。“因此,我們看到對容器化的推動力在增加,可以在IoT設備中使用類似云工作流程來部署與功能和安全相關的優化。去中心化是由移動數據緊縮、不斷發展的法律框架和各種物理限制等因素驅動的。”
Ubuntu Core 等平臺正在使“可用于網關的軟件爆炸式增長”,Canonical 的 Ries 說。“在單個設備上運行多個應用程序的能力吸引了眾多單一功能設備的用戶,以及現在可以產生持續的軟件收入的設備所有者。”
兩種 IoT 網關: MyOmega MYNXG IC2 Controller
兩種 IoT 網關: TechNexion 的 LS1021A-IoT Gateway
不僅是網關-終端也變得更聰明。“閱讀大量的物聯網新聞報道,你得到的印象是所有終端都運行在微控制器上,”Marinos 說。“但是我們對大量的 Linux 終端,如數字標牌,無人機和工業機械等直接執行任務,而不是作為操作中介(數據轉發)感到驚訝。我們稱之為影子 IoT。”
Canonical 的 Ries 同意,對簡約技術的專注使他們忽視了新興物聯網領域。“輕量化的概念在一個發展速度與物聯網一樣快的行業中初現端倪,”Ries 說。“今天的高級消費硬件可以持續為終端供電數月。”
雖然大多數物聯網設備將保持輕量和“無頭”(一種配置方式,比如物聯網設備缺少顯示器,鍵盤等),它們裝備有如加速度計和溫度傳感器這樣的傳感器并通過低速率的數據流通信,但是許多較新的物聯網應用已經使用富媒體。 “媒體輸入/輸出只是另一種類型的外設,”Marinos 說。 “總是存在多個容器競爭有限資源的問題,但它與傳感器或藍牙競爭天線資源沒有太大區別。”
Ries 看到了工業和家庭網關中“提高邊緣智能”的趨勢。“我們看到人工智能、機器學習、計算機視覺和上下文意識的大幅上升,”Ries 說。“為什么要在云中運行面部檢測軟件,如果相同的軟件可以在邊緣設備運行而又沒有網絡延遲和帶寬及計算成本呢?“
當我們在這個物聯網系列的開篇故事中探索時,我們發現存在與安全相關的物聯網問題,例如隱私喪失和生活在監視文化中的權衡。還有一些問題如把個人決策交給可能由他人操控的 AI 裁定。這些不會被容器,快照或任何其他技術完全解決。
如果 AWS Alexa 可以處理生活瑣事,而我們專注在要事上,也許我們會更快樂。或許有一個方法來平衡隱私和效用,現在,我們仍在探索,如此甚好。