当前位置: 首页 > 科技观察

嵌入式Linux内核的长期维护变得容易

时间:2023-03-18 12:50:37 科技观察

Pengutronix内核黑客JanLübbe总结了嵌入式Linux中日益增长的安全威胁,并在本次欧洲嵌入式Linux会议上概述了确保长期设备安全的计划。安全且功能齐全。安全漏洞只发生在Windows上的美好时光正在一去不复返。恶意软件黑客和拒绝服务老手越来越多地瞄准过时的嵌入式Linux设备,因此10月份在欧洲嵌入式Linux大会(ELCE)上的几场演讲将围绕修复与安全漏洞相关的Linux展开。最好的演讲之一是Pengutronix内核黑客JanLübbe的《长期维护或管理(或免管理)嵌入式系统 10 年以上》。在总结了嵌入式Linux中日益增长的安全威胁后,Lübbe制定了一项计划,以确保设备的长期安全和功能。“我们需要迁移到更新、更稳定的内核,并持续维护以修复关键错误,”Lübbe说。“我们需要进行上游更新并使流程自动化,并建立可持续的工作流程。有过时的软件。”随着Linux设备变老,传统的生命周期流程不再适用。“通常,你从SoC供应商或主线获取内核,构建系统,然后添加到用户空间。你可以自定义并添加到程序中,并进行一些测试。但在那之后,有一个15年的维护阶段,”吕布说,你绝对不希望平台发生变化,你不想添加新功能,你不需要实施管理调整。”所有这些变化越来越多,使您的系统面临新的错误,需要大量更新才能与上游软件保持同步。“导致内核问题的错误并不总是无意的,”Lübbe说。至于去年在全志内核中发现的后门,他补充说:“这些供应商的内核从未经过主线内核社区的审查过程。”Lübbe继续说道:“你不能假设你的供应商总是没问题。可能只有一两个工程师看过后门代码。如果补丁在Linux内核邮件列表上发布,就不会有这样的事情,因为有总会有人注意到。硬件供应商不关心安全或维护,也许你会在一两年后获得更新,但即便如此,他们通常需要几年时间才能从固定版本到发布稳定版本。如果在此基础上开始开发,可能又是半年,就更落伍了。“越来越多的嵌入式开发人员正在长期稳定(LTS)内核上构建长期产品。但这并不意味着它没问题。产品发布后,人们通常不会遵循稳定内核,”Lübbe说。分发链和安全补丁不再应用。这样你就会两全其美:一个过时的内核和没有安全性。你失去了多人测试的好处。Lübbe指出,由于需要系统管理员干预的快速定制、部署和升级系统,使用像RedHat这样面向服务器的发行版的Pengutronix客户经常会遇到问题。“更新对某些事情很有用,尤其是在x86上,但每个项目本质上都是构建自己的基础设施来更新到新版本。”许多开发人员选择反向移植作为更新长期产品的解决方案。“这很容易上手,但一旦你不在项目的维护范围内,他们就不会告诉你你使用的版本是否受到错误的影响,”Lübbe说,因此很难判断修复是否相关。所以你不断的打补丁更新,bug不断的积累,这些你必须自己去维护,因为其他人不会使用这些补丁。使用开源软件的好处就失去了。“跟踪上游项目Lübbe认为最好的解决方案是跟踪上游项目维护的版本。”我们主要专注于基于主线内核的开发,所以我们尽可能的减少产品与主线内核和其他上游项目的差异。长期系统在主线内核上得到很好的支持。大多数不使用3D图形的系统只需要很少的补丁。较新的内核版本还具有许多新的强化功能,可以减少漏洞的影响。遵循主线对许多开发人员来说似乎令人望而生畏,但如果你从头开始并坚持下去就相对容易了,Lübbe说:“你需要为你在系统上做的每一件事制定一个流程。你总是需要知道什么是软件使用良好的构建系统时运行更容易。每个软件版本都应定义完整的系统,以便您可以更新所有相关内容。如果您不知道其中的内容,则无法修复它。您还需要一个自动化测试和自动部署更新。为了“减少更新周期”,Lübbe建议从最新的Linux内核开始开发,只有在进入测试时才转向稳定的内核。之后,他建议系统上的所有软件(包括内核、构建系统、用户空间、glibc和组件(如OpenSSL))为上游项目当年支持的版本。“获得更新并不意味着你需要部署,”Lübbe说。如果您没有看到安全漏洞,您可以将补丁放在一边,直到您需要它为止。***,Lübbe建议每月检查一次发布公告,每周检查一次CVE和主线列表以获取安全公告。您只需要问自己“此安全公告对您有影响吗?”他补充说:“如果你的内核足够新,那么它就没什么大不了的。你不想通过在新闻中看到你的设备来获得对你产品的反馈。”