在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

識別嵌入式Linux設備的安全固件更新機制和開源選項

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Alex Gonzalez ? 2022-10-20 14:31 ? 次閱讀

物聯網IoT)的快速增長引發了數十億聯網無線嵌入式設備的出現。從醫療設備到水箱傳感器智能恒溫器、智能路燈、水監測器等,物聯網的應用范圍比以往任何時候都要廣。

可能出現什么問題?

這些設備中的大多數在設計上都不是惡意攻擊的目標。嵌入式系統傳統上被認為是穩定的產品,但實施成本高昂,投資回報率(ROI)計劃在相當長的生命周期內進行。一旦發貨,它們很少需要更新。開發更新并在該領域實際應用它們的需求和成本隨著智能手機操作系統(OS)如Android的爆發而變得普遍。

突然之間,惡意黑客現在將所有這些易受攻擊的連接設備作為潛在目標,這些設備在不充分的,過時的操作系統和Linux內核上運行,這些操作系統和Linux內核具有尚未修補的已知漏洞,并且可以遠程利用!

這不是一個非常有吸引力的前景。

安全更新:嵌入式與服務器

如今,一類新的現場軟件更新正在出現,這種更新受到安全問題的推動,但也允許工程師添加新功能和修復錯誤。

對于嵌入式設備,固件更新機制不僅必須安全,而且必須可靠,因為它要么更新成功,要么無法恢復到可恢復狀態。軟件更新絕不應該破壞設備,并且應該能夠在無人值守的情況下發生。大多數更新還必須保留以前的設備狀態,盡管在某些情況下,恢復設備可能涉及重置為默認狀態。

還有原子性問題。Linux服務器世界習慣于執行基于包的更新,一切似乎都很好。但嵌入式設備不是服務器。

服務器通常位于受控環境中,可能是安全的,并且具有有保證的電源網絡連接。它還駐留在受監視的可訪問位置,因此即使不希望用戶進行恢復,也可以進行用戶干預。

Linux 服務器通常依賴于包管理,通常是基于 rpm 的(已修改的黃色狗更新程序或 YUM)或基于 deb 的 (apt),具有執行非原子增量更新的依賴關系解析。更新由軟件包版本更新驅動,每個更新都有一組復雜的安裝前/安裝后腳本,這些腳本可能會使系統處于未定義甚至非工作狀態。

不幸的是,嵌入式設備可能無法訪問,可能大部分時間都處于低功耗模式,使用壽命非常長,并且可能遭受可能中斷固件更新的電源或網絡中斷。

最終,基于包管理器的更新不是原子的,因此很難測試和支持它們。這通常會導致丟失對設備上固件實際狀態的跟蹤,以及可怕的“我上次在此設備上更新了什么?”問題。這不適用于期望始終一致執行的嵌入式系統。

圖像更新

更新嵌入式設備的傳統且未經驗證的最佳方法是執行整個映像更新。在裸機設備中,這將是包含所有設備固件的整個映像。在嵌入式Linux設備中,這通常轉換為分區更新,因此分區方案是一個重要的考慮因素,因為它會影響可以執行的軟件更新類型。

嵌入式 Linux 設備通常會將媒體劃分為可以單獨更新的不同分區:

引導加載程序分區: 很少(如果有的話)更新,在現場更新嵌入式設備的引導加載程序將導致設備最終變磚。因此,經過深思熟慮的更新機制會盡可能避免這種情況。

引導/內核分區: Linux 內核和相關工件(如設備樹和 initramfs 映像)通常出于安全性而不是功能原因而發生。通常不需要更新。

根文件系統分區: 存儲操作系統文件的位置通常是只讀不可變的。這也很少更新,但如果應用程序依賴于此處的庫,則可能會更頻繁地發生這種情況。

用戶分區: 用戶應用程序和持久性數據的存儲位置是最常需要更新的分區。

基本上,映像固件更新的范圍可以從整個系統(即內核、根和用戶分區)到其中一些分區。

有兩種類型的映像更新是可能的:對稱的和不對稱的。

對稱: 對稱更新需要正在更新的分區映像的雙重副本,以便可以在另一個正在運行時更新一個分區映像。這通常需要兩個引導/內核分區、兩個根文件系統以及兩個用戶分區。然后,引導加載程序跟蹤給定引導要使用的分區。對稱更新具有最短的停機時間,通常只有重新啟動時間,并允許取消更新。

非 對稱: 非對稱更新使用通常從內存運行的恢復操作系統,具有 Linux 內核和初始化映像。這減少了所需的分區數,因為恢復模式僅存在于一個額外的分區中,并且可以更新任何其他分區。如果更新失敗,可以重試恢復。非對稱更新在更新時具有更長的停機時間,并且不允許用戶取消。

用戶空間更新程序應用程序

通常,更新由用戶空間應用程序執行,該應用程序提取軟件更新包,應用它,并將更新通知引導加載程序。它還需要允許進行安裝后操作。然后,引導加載程序啟動硬件監視程序并嘗試引導。如果引導成功,則硬件看門狗被停用;如果不是,則觸發它,并且引導加載程序會再次嘗試引導。經過多次嘗試后,它要么交換回已知良好的分區,要么進入恢復模式。

一個重要的考慮因素是用戶空間更新固件必須可通過固件更新過程進行更新。另一個風險是,可能會更新到固件更新機制損壞的可啟動系統。不幸的是,有必要回退到引導加載程序或其他恢復機制來更新固件。

某些系統使用引導加載程序來執行更新。這有一些嚴重的缺點。如果必須更新固件更新代碼(例如,由于分區更改),則需要更新引導加載程序,這是非常危險的。引導加載程序在它支持的驅動程序、工具、庫和網絡協議的數量上也非常有限,因此更新發生在資源有限的環境中。

基于簽名映像的開源軟件更新有兩個主要選項,同時支持對稱和非對稱更新:

瑞典語更新(在 GPLv2 許可證下) – 在 Yocto 中通過元更新層支持瑞典語更新(但僅限于對稱更新)。它還包含一個貓鼬Web服務器,Suricatta守護進程,用于將更新從具有REST客戶端的遠程服務器拉取到Eclipse HawkBit [2](一種后端解決方案,用于將軟件更新部署到終端設備)。它目前僅適用于 U-Boot 引導加載程序。

勞克 ,在 LGPLv2.1 許可證下 – RAUC 在約克托中通過元 ptx 層受支持,并支持 Grub 或裸盒引導加載程序。

遠程映像更新

固件更新過程必須能夠從本地源(例如,閃存、USB、μSDUART)進行遠程更新,也可以遠程更新通常稱為無線 (OTA) 更新。OTA 更新使用遠程服務器將更新推送到設備上運行的客戶端。

開源遠程 OTA 固件更新的一些選項包括:

Mender.io ,在 Apache 2 許可證下 – Mender.io 同時用于客戶端和服務器。它在約克托中通過元修正層得到支持。服務器可以充當部署服務器和生成項目管理器,但也包含設備管理控制臺。

數字國際遠程管理器 ,在 MPLv2 許可證下 –Digi遠程管理器具有專有的基于云的服務器和開源客戶端。它在約克托中通過元數字層得到支持。服務器可以充當部署服務器、生成項目管理器,還包含具有設備報告和監視功能的設備管理控制臺。

Eclipse HawkBit ,在日食公共許可證下 – Eclipse HawkBit 是一個 Eclipse 公共許可證服務器,它還充當部署服務器、構建工件管理器和設備管理器,具有設備報告和監視功能。

完整映像更新通常存在大尺寸的問題,這對于帶寬不自由或不寬的資源受限應用程序(如蜂窩)來說可能是個問題。差異映像固件更新是解決此問題的良好折衷方案,因為實際上只傳輸以前版本中的增量。

容器化更新

容器化應用程序的使用簡化了軟件更新用例,因為應用程序可以單獨更新。

容器更新建立在不可變分發(可能是只讀文件系統)上,其中應用程序僅存在于可由容器增量升級的容器中。

使用基于容器的固件更新的開源項目的一些示例如下:

Resin.io – Resin.io 是基于 Docker 的,具有專有的 OTA 更新服務器和 Apache 2 許可客戶端。它通過元樹脂層在Yocto中支撐。

Ubuntu “Snappy” Core–Ubuntu Core 是一個基于 Ubuntu 的最小操作系統,它提供了足夠的功能來更新具有增量的類似容器的應用程序。

還有一些新的操作系統設計用于托管Docker應用程序,這些應用程序最終可能會在嵌入式空間中使用,例如CoreOS [8](在arm64上)和原子計劃(基于Fedora / CentOS / RHEL的操作系統,使用rpm-ostree(基于lipbostree)而不是rpm)。

增量二進制原子操作系統更新

最后,嵌入式市場即將到來的趨勢是增量的每文件原子更新,可以根據需要快速部署或回滾,同時保持完整的部署歷史記錄。

一些開源示例項目:

libOSTree– libOSTree 由一個定義為“操作系統二進制文件的 Git”的庫和命令行工具組成。它使用類似 git 的對象來存儲和部署操作系統增量,每個增量都有一個持久數據的副本。Yocto有一個元更新程序層可以利用它。它也用于操作系統,如項目原子。

swupd – swupd最初是 ClearLinux 的一部分,由英特爾贊助。它與 libOSTree 非常相似,在約克托中通過元-swupd 層支持。

縮小選項范圍

隨著物聯網設備的出現,固件更新不僅僅是一件好事,而且是新產品開發所需的功能。需要盡早考慮固件更新策略的選擇,因為它會影響未來的產品設計決策。與所有早期決策一樣,錯誤的選擇會給開發時間帶來沉重的負擔。

上市時間緊迫的項目可能會傾向于更傳統的、久經考驗的全映像固件更新策略。其中包括通過Yocto項目的元更新層提供的一個,以及企業就緒的OTA更新解決方案,如Digi國際的遠程管理器。

然而,處于前沿的項目可以通過容器化應用程序設計擴展整個系統固件更新方法,該設計允許應用程序與系統更新隔離。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5097

    文章

    19227

    瀏覽量

    308746
  • Linux
    +關注

    關注

    87

    文章

    11357

    瀏覽量

    210839
收藏 人收藏

    評論

    相關推薦

    Made with KiCad(九十四):M5Pi Linux嵌入式開發板

    “ 波哥大作,必須優先安排!M5Pi 是一款開源 Linux 嵌入式開發板,使用全志 F1C200s CPU,擁有漂亮的外殼。”
    的頭像 發表于 12-25 14:53 ?269次閱讀
    Made with KiCad(九十四):M5Pi <b class='flag-5'>Linux</b><b class='flag-5'>嵌入式</b>開發板

    嵌入式 Linux 操作系統配置

    隨著物聯網(IoT)和智能設備的快速發展,嵌入式系統在各個領域扮演著越來越重要的角色。Linux因其開源、靈活和穩定的特性,成為嵌入式系統的
    的頭像 發表于 11-06 10:22 ?700次閱讀

    全志T507-H國產平臺Ubuntu系統正式發布,讓您的應用開發更便捷!

    豐富:提供了強大的安全功能和更新機制,包括防火墻、用戶權限管理和加密等,有助于保護用戶的數據和隱私免受網絡攻擊和惡意軟件的侵害。系統經過嚴格的測試和穩定性驗證,以確保在各種硬件配置下都能穩定運行。高度安全穩定
    發表于 10-29 09:39

    MSP MCUs的安全現場固件更新

    電子發燒友網站提供《MSP MCUs的安全現場固件更新.pdf》資料免費下載
    發表于 10-09 09:21 ?0次下載
    MSP MCUs的<b class='flag-5'>安全</b>現場<b class='flag-5'>固件</b><b class='flag-5'>更新</b>

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統的核心組件,是一種用于控制和數據處理的計算機硬件,其設計旨在嵌入特定設備中執行專門任務。嵌入式主板如同是
    的頭像 發表于 09-30 10:05 ?1106次閱讀

    北京迅為RK3568開發板嵌入式學習之Linux驅動全新更新-CAN+

    北京迅為RK3568開發板嵌入式學習之Linux驅動全新更新-CAN+
    的頭像 發表于 09-04 15:29 ?652次閱讀
    北京迅為RK3568開發板<b class='flag-5'>嵌入式</b>學習之<b class='flag-5'>Linux</b>驅動全新<b class='flag-5'>更新</b>-CAN+

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是嵌入式Linux開發的基本步驟,以及每個步驟的說明。 硬件選擇 在開始
    的頭像 發表于 09-02 09:11 ?668次閱讀

    嵌入式linux開發板怎么操作

    開發板概述 嵌入式Linux開發板是一種專門為嵌入式系統開發而設計的硬件平臺。它具有體積小、功耗低、性能高等特點,廣泛應用于工業控制、智能家居、醫療設備、汽車電子等領域。與傳統的PC機
    的頭像 發表于 09-02 09:09 ?509次閱讀

    嵌入式linux開發板芯片的工作原理

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺,它廣泛應用于工業控制、智能家居、智能交通、醫療設備等領域。
    的頭像 發表于 09-02 09:07 ?512次閱讀

    學習hypervisor嵌入式產品安全設計

    、PRTOS的配套工具等內容。第三部分(第13~15章)介紹嵌入式Hypervisor的高級應用和未來規劃,涵蓋μC/OS-II與Linux內核的虛擬化過程,以及PRTOS社區的愿景等內容。
    發表于 08-25 09:11

    專家力薦|《嵌入式系統原理與開發——基于RISC-V和Linux系統》新書發售

    當前,嵌入式系統已成為智能設備的核心之一,RISC-V+Linux開源力量為嵌入式系統注入強大的創新動力。作為中國RISC-V軟硬件生態領
    的頭像 發表于 07-24 08:20 ?748次閱讀
    專家力薦|《<b class='flag-5'>嵌入式</b>系統原理與開發——基于RISC-V和<b class='flag-5'>Linux</b>系統》新書發售

    嵌入式熱門領域有哪些?

    通過物聯網連接各種物理設備和傳感器,促使它們之間實現信息的交換和數據的共享。從智能家居到智能城市,物聯網的應用不斷擴展,為嵌入式系統工程師帶來了廣泛的就業機會和發展前景。 自動駕駛 自動駕駛技術作為
    發表于 07-16 09:23

    嵌入式熱門發展方向有哪些?

    報警和監控;通過算法分析產品的形狀、顏色和特定特征,嵌入式系統可以檢測和分類產品,提高生產線的效率和質量;在物流領域,嵌入式系統可以通過識別運輸中的貨物狀態、安全檢測和路徑規劃來實現物
    發表于 04-11 14:17

    如何成為一名嵌入式C語言高手?

    相關教材、參加在線課程或者參考編程書籍來系統地學習C語言的基礎知識,并通過編寫簡單的程序進行實踐。 二、深入了解嵌入式系統的硬件架構和工作原理嵌入式系統通常包含微控制器或微處理器等硬件設備,了解這些
    發表于 04-07 16:03

    如何成為一名嵌入式C語言高手?

    相關教材、參加在線課程或者參考編程書籍來系統地學習C語言的基礎知識,并通過編寫簡單的程序進行實踐。 二、深入了解嵌入式系統的硬件架構和工作原理嵌入式系統通常包含微控制器或微處理器等硬件設備,了解這些
    發表于 03-25 14:12
    主站蜘蛛池模板: 欧美一级在线观看视频 | 天天澡天天摸天天添视频 | 成人伊人亚洲人综合网站222 | 黄色录像日本 | 黄色四虎影院 | 国产中日韩一区二区三区 | 婷婷激情五月综合 | 亚欧成人乱码一区二区 | 狠狠操天天操视频 | 操片| 三级完整在线观看高清视频 | 亚洲乱论 | 伊人网在线视频观看 | 视频在线观看免费视频 | 在线资源天堂 | 一区在线免费观看 | 在线视频黄 | 色啦啦影院 | 特黄特色大片免费播放器9 特黄特色大片免费视频播放 | 78m-78模成视频在线 | 亚洲图片综合区另类图片 | 亚洲国产七七久久桃花 | 视频在线精品 | 免费h视频网站 | а中文在线天堂 | 在线看片福利 | 午夜伦伦 | 分分操免费视频在线观看 | 日韩精品一区二区在线观看 | 好大好猛好爽好深视频免费 | 手机免费看大片 | 国产精品免费久久久免费 | 在线视频播放大全 | 不卡精品国产_亚洲人成在线 | 又粗又爽又色男女乱淫播放男女 | 日本在线黄色 | 五月天激情综合网 | 四虎成人精品在永久在线观看 | 男人天堂黄色 | 亚洲已满18点击进入在线观看 | 野外啪啪抽搐一进一出 |