長期維護嵌入式 Linux 核心變得容易
Pengutronix 核心黑客 Jan Lübbe 總結了嵌入式 Linux 中正在不斷增長的安全威脅,並在這次歐洲嵌入式 Linux 會議上概述了一個計劃,以保持長期裝置的安全和功能完整。 Linux 基金會
安全漏洞只發生在 Windows 上的好日子正在快速過去。惡意軟體黑客和拒絕服務老手們正在越來越多地瞄準過時的嵌入式 Linux 裝置,因此在 10 月的歐洲嵌入式 Linux 會議(ELCE)上的幾個演講的主題就與修復 Linux 安全漏洞相關。
最值得去聽的講演之一是 Pengutronix 核心黑客 Jan Lübbe 的《長期維護或管理(或免管理)嵌入式系統 10 年以上》。在總結嵌入式 Linux 中不斷增長的安全威脅後,Lübbe 制定了一項計劃,以確保長期裝置的安全和功能完整。 Lübbe 說:“我們需要遷移到更新、更穩定的核心,並進行持續維護以修復關鍵漏洞。我們需要做上游更新和自動化流程,並建立一個可持續的工作流程。我們沒有理由讓系統中仍留有過時的軟體。”
隨著 Linux 裝置變得越來越老,傳統的生命週期過程已經不再適用。 Lübbe 說:“通常,你會從 SoC 供應商或主線上獲取核心、構建系統,並新增到使用者空間。你可以定製和新增程式,並做一些測試。但是,在此之後有 15 年的維護階段,你最好期望平臺不會發生變化、不會想要新增新的功能、不需要實施管理調整。”
所有這些變化,越來越多地導致你的系統暴露出新的錯誤,並需要大量更新以才能與上游軟體保持同步。 Lübbe 說:“在核心中發生導致問題的錯誤並不總是無意的”。對於去年在 Allwinner 核心中發現的後門,他又補充說:“這些供應商的核心從來不會執行主線核心社群的審查流程”。
Lübbe 繼續說:“你不能認為你的供應商一直沒問題。也許只有一兩個工程師檢視過後門程式碼這塊。如果補丁釋出在 Linux 核心郵件列表上,就不會有這種事,因為總會有人注意到。硬體供應商不關心安全或維護,也許你會在一兩年後得到更新,但是即使這樣,他們從一個固定版本開始開發,到他們釋出穩定的版本通常需要幾年的時間。如果你在這個基礎上再開始開發,可能又過了半年,這就更過時了。”
越來越多的嵌入式開發人員在長期穩定(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
相關文章
- 面試題庫(長期維護)面試題
- 開發資料大全(個人整理,長期維護)
- 長期迭代的系統如何管理維護測試用例?
- 七種方法讓 Python 程式碼更容易維護Python
- Torvalds: 寫linux核心的人更加容易找工作Linux
- 搭建容易維護難!谷歌機器學習系統血淚教訓谷歌機器學習
- 系統維護開發核心祕籍
- 企業網站後期如何維護?網站
- 一臺智慧手機的系統維護週期有多長才算合理?
- 快應用開發教程及資源彙總,長期維護,持續更新中。。。
- 10gDataguard最大效能模式後期維護文件模式
- 管理與維護Linux系統Linux
- Linux RHCS 基礎維護命令Linux
- 騰訊大資料智慧營銷平臺讓“尋 TA ”變得更容易大資料
- 如何讓運維指標變得更有價值?運維指標
- Linux 核心測試的生命週期Linux
- Linux作業系統好嗎?Linux運維學習容易嗎Linux作業系統運維
- linux中oracle的日常維護命令LinuxOracle
- LINUX SWAP的檢視與維護Linux
- 中國超3億人存在睡眠障礙 長期失眠容易情緒低落
- 使用 jquery 實現 css hover 長期維持效果jQueryCSS
- IT職場:TPM是如何確定裝置維護週期的?
- opensuse linux操作維護學習筆記Linux筆記
- linux軟RAID的建立和維護LinuxAI
- Swift 開發的工具類,主要是提供正規表示式及其它,Github會長期維護?並增加SwiftGithub
- chattr命令如何使用?Linux運維核心命令Linux運維
- 網站優化到後期該如何更好的維護排名?網站優化
- 資訊系統資料維護的週期和頻率
- 認真規劃外包關係將獲得長期回報(轉)
- 伺服器長時間執行如何做好維護伺服器
- Linux Shell Awk獲得外部變數(變數傳值)簡介Linux變數
- 專案二 管理與維護Linux系統Linux
- 專案二 管理與維護Linux系統Linux
- Linux下MySQL安裝和日常維護(1)LinuxMySql
- Linux下MySQL安裝和日常維護(2)LinuxMySql
- Linux下MySQL安裝和日常維護(3)LinuxMySql
- LINUX的系統核心空間的保護(轉)Linux
- CUPS讓Linux列印變得更輕鬆(轉)Linux