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