長期維護嵌入式 Linux 核心變得容易

2 贊 回覆發表於2017-03-02

Pengutronix 核心黑客 Jan Lübbe 總結了嵌入式 Linux 中正在不斷增長的安全威脅,並在這次歐洲嵌入式 Linux 會議上概述了一個計劃,以保持長期裝置的安全和功能完整。 Linux 基金會

安全漏洞只發生在 Windows 上的好日子正在快速過去。惡意軟體黑客和拒絕服務老手們正在越來越多地瞄準過時的嵌入式 Linux 裝置,因此在 10 月的歐洲嵌入式 Linux 會議Embedded Linux Conference Europe(ELCE)上的幾個演講的主題就與修復 Linux 安全漏洞相關。

最值得去聽的講演之一是 Pengutronix 核心黑客 Jan Lübbe 的《長期維護或管理(或免管理)嵌入式系統 10 年以上》。在總結嵌入式 Linux 中不斷增長的安全威脅後,Lübbe 制定了一項計劃,以確保長期裝置的安全和功能完整。 Lübbe 說:“我們需要遷移到更新、更穩定的核心,並進行持續維護以修復關鍵漏洞。我們需要做上游更新和自動化流程,並建立一個可持續的工作流程。我們沒有理由讓系統中仍留有過時的軟體。”

隨著 Linux 裝置變得越來越老,傳統的生命週期過程已經不再適用。 Lübbe 說:“通常,你會從 SoC 供應商或主線上獲取核心、構建系統,並新增到使用者空間。你可以定製和新增程式,並做一些測試。但是,在此之後有 15 年的維護階段,你最好期望平臺不會發生變化、不會想要新增新的功能、不需要實施管理調整。”

所有這些變化,越來越多地導致你的系統暴露出新的錯誤,並需要大量更新以才能與上游軟體保持同步。 Lübbe 說:“在核心中發生導致問題的錯誤並不總是無意的”。對於去年在 Allwinner 核心中發現的後門,他又補充說:“這些供應商的核心從來不會執行主線核心社群的審查流程”。

Lübbe 繼續說:“你不能認為你的供應商一直沒問題。也許只有一兩個工程師檢視過後門程式碼這塊。如果補丁釋出在 Linux 核心郵件列表上,就不會有這種事,因為總會有人注意到。硬體供應商不關心安全或維護,也許你會在一兩年後得到更新,但是即使這樣,他們從一個固定版本開始開發,到他們釋出穩定的版本通常需要幾年的時間。如果你在這個基礎上再開始開發,可能又過了半年,這就更過時了。”

越來越多的嵌入式開發人員在長期穩定Long Term Stable(LTS)核心上構建長期產品。但這並不意味著沒事了。Lübbe 說:“一個產品釋出後,人們經常不再遵循穩定的發行鏈,也不再應用安全補丁。這樣你會得到兩個最糟糕的結果:過時的核心和沒有安全性。你失去了多人測試的好處。”

Lübbe 指出,使用像 Red Hat 這樣的面向伺服器的發行版的 Pengutronix 客戶經常由於快速的定製、需要系統管理員干預的部署和升級系統而遇到問題。

“更新對一些東西有用,特別是在 x86 上,但每個專案基本上是自己建立基礎設施來更新到新版本。”

許多開發人員選擇把向後移植作為更新長期產品的解決方案。Lübbe 說:“開始時很容易,但是一旦你不處於專案的維護範圍,他們就不會告訴你所使用的版本是否受到一個 bug 的影響,因此很難判斷一個修復是否相關。於是你不停打補丁和更新,而 bug 也在不斷累積,而這些你必須自己維護,因為其他人不使用這些補丁。使用開源軟體的好處就丟失了。”

跟隨上游專案

Lübbe 認為,最好的解決方案是跟蹤由上游專案維護的版本。“我們主要關注基於主線核心的開發,所以我們在產品和主流核心及其他上游專案之間儘可能沒有差別。長期系統在主線核心上得到很好的支援。大多數不使用 3D 圖形的系統只需要很少的補丁。較新的核心版本還有很多新的強化功能,這些可以減少漏洞的影響。

跟隨主線發展對許多開發人員來說似乎令人畏懼,但是如果從一開始就這樣,然後堅持下去,就會相對容易一些,Lübbe 說:“你需要為系統上做的一切制定流程。你總需要知道什麼軟體正在執行,這在使用良好的構建系統時會更容易。每個軟體版本應定義完整的系統,以便你可以更新相關的一切。如果你不知道那裡有什麼,你就不能解決它。你也需要一個自動測試和自動部署更新。”

為了“減少更新週期”,Lübbe 建議在開始開發時使用最新的 Linux 核心,並且在進入測試時才轉到穩定的核心。之後,他建議每年將系統中的所有軟體(包括核心、構建系統、使用者空間、glibc 和元件(如 OpenSSL))更新為當年上游專案支援的版本。

Lübbe 說:“得到更新並不意味著你需要部署。如果沒有看到安全漏洞,你可以把補丁放在一邊,需要時它再用就行。”

最後,Lübbe 建議每個月檢視釋出公告,並且每週檢查 CVE 和主線列表上的安全公告。你只需要問自己“該安全公告是否影響到了你”。他補充說:“如果你的核心足夠新,就沒有太多的工作。你不會希望通過在新聞中看到你的裝置才獲得有關你的產品的反饋。”


via: https://www.linux.com/news/event/ELCE/2017/long-term-embedded-linux-maintenance-made-easier

作者:ERIC BROWN 譯者:geekpi 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章