维护嵌入式 Linux 内核——So Easy

news2024/11/26 10:42:16
导读Pengutronix 内核黑客 Jan Lübbe 总结了嵌入式 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 和主线列表上的安全公告。你只需要问自己“该安全公告是否影响到了你”。他补充说:“如果你的内核足够新,就没有太多的工作。你不会希望通过在新闻中看到你的设备才获得有关你的产品的反馈。”

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616078.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【InsCode AI 创作助手】关于编程人员的未来发展趋势,看看AI们怎么说

一、你平时会使用这类AI工具吗?你对这类型的工具有什么看法? 1)会经常使用AI工具吗? 是的,我在生活和工作中经常会使用AI工具,尤其是chatGPT(3.5)和文心一言,关于midjour…

【微信小程序开发】第 5 节 - 小程序代码的构成

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、了解项目的基本组成结构 3、小程序页面的组成部分 4、JSON 配置文件 4.1、json 配置文件的作用 4.2、app.json 文…

http首部(下)

开始头大,哈哈,这个东西真的很无聊且枯燥,奈何最近的学习中经常用到这些知识,还是过一遍比较放心。上一篇博客中我们讨论了http报文首部,其划分为请求头和响应头。请求头主要由请求行、请求字段、通用字段、实体字段组…

ChatGPT请不要和打工人争辩今天星期几

目录 1 今天星期几2 聊聊ChatGPT与工具的结合 1 今天星期几 周五了,一个星期快结束了,闲来问问chatgpt (gpt-3.5) 今天 ( 2023.06.03星期五)星期几😁,chatgpt给出的回答如下: 今天是2023年6月2号没错&…

Linux系统下安装配置 Nginx 详细教程介绍

Linux系统下安装配置 Nginx 详细教程介绍 一、下载 Nginx 安装包 打开Nginx官网 :nginx: download 然后我们找到一个版本,把鼠标移动到上面,右键 - 复制链接地址 我们使用 wget 命令把Nginx安装包下载到/usr/local/目录中 安装wget yum…

基于html+css的图展示110

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

sid,eld,sidd dataset介绍,dng图像处理

文章目录 SID dataset1. SID dataset 概述2. SID 读取和显示代码3. 一些示例 SIDD datasetELD datasetDNG camera pipeline SID dataset 1. SID dataset 概述 SID 是Learning to See in the Dark 论文中提出的暗光raw数据集 其中包括两个相机的拍摄数据 Sony alpha7S II 和 …

实战演练 | 在 Navicat 16 中创建视图

为了规范化数据库表,常常会将高级别表中的冗余列抽取到单独的子表中。这通常是由于某些字段与父实体具有一对多关系而发生的。例如,请参考以下使用 Navicat Data Modeler 生成的模型: 评估最初是 ups 表的一部分,但这导致了数据冗…

没素材也可以剪辑,根据画面描述搜索影片素材!

随着社交媒体的普及,越来越多的人开始喜欢用短视频分享自己的生活。但是,在剪辑过程中,素材的质量和多样性是很重要的。如果你缺乏素材,可以考虑根据画面描述去搜索一些适合的影片素材。 首先,你需要确定自己需要什么…

自学黑客(网络安全),学习集锦奉上!

想学网络安全,不知道学习方向?我整理了一份渗透测试学习方法,话不多说,上干货。 web安全知识学习(理论期) 学习web安全基础知识、html语言、python、java、数据库等等。另外端口也可以学习一下3306、3389…

安全中级3:apache中间件漏洞

一、apache换行解析漏洞(apache版本在2.4.0~2.4.29) 1.原理 该程序是采用黑名单的形式,如果文件后缀名不在名单内即可上传,所以 a.php\x0A不在黑名单列表中,可以上传。但是在fpm-php中x0A是换行符,所以apa…

数据中台浅析(之二)

数据中台浅析 1. 引言 在当今的数字化时代,数据被誉为"新的石油",越来越多的企业和组织开始深度挖掘数据的价值。在这个过程中,数据中台逐渐成为了数据管理和分析的核心架构,让我们来深入了解一下它。 1.1 数据中台…

数据结构基础-队列

队列 概述 计算机科学中,queue 是以顺序的方式维护的一组数据集合,在一端添加数据,从另一端移除数据。习惯来说,添加的一端称为尾,移除的一端称为头,就如同生活中的排队买商品 In computer science, a qu…

chatgpt赋能python:Python声音分析的应用

Python 声音分析的应用 Python是一种强大的编程语言,具有广泛的应用和使用场景,而其在声音分析领域中的应用也是相当广泛的。本文将会介绍Python在声音分析方面的应用。 什么是声音分析? 声音分析是指通过计算机技术对声音信号进行分析&am…

centos 7 安装部署MySQL主主模式

主机:192.168.1.108,192.168.1.109 192.168.1.108主机上操作 上传mysql安装包(略) tar zxf mysql.5.7.35.tar.gz –C /data mkdir /var/log/mariadb 使用root用户创建 chown –R unioncloud. /var/log/mariadb 使用root用户执行 切…

SCM Manager XSS漏洞复现(CVE-2023-33829)

一、漏洞描述 漏洞简述 SCM-Manager 是一款开源的版本库管理软件,同时支持 subversion、mercurial、git 的版本库管理。安装简单,功能较强,提供用户、用户组的权限管理 ,有丰富的插件支持。由于在MIT的许可下是开源的&#xff0…

如何给证件照替换背景颜色?一键替换证件照背景色的方法

证件照换背景的优点 在申请各种证件时,一张合格的证件照是必不可少的。然而,在拍摄证件照时,往往因为背景、光线等问题导致照片质量不佳。因此,将证件照的背景更换为统一的纯色背景就显得尤为重要。 证件照换背景的主要优点包括…

合并文件解决HiveServer2内存溢出方案

一、文件过多导致HiveServer2内存溢出 1.1查看表文件个数 desc formatted yanyu.tmp• 表文件数量为6522102 1.2查看表文件信息 hadoop fs -ls warehouse/yanyu.db/tmp• 分区为string 类型的time字段,分了2001个区。 1.3.查看某个分区下的文件个数为10000个 …

Jmter压测试

1、常规性能测试--压测 1、添加线程组 线程数模拟用户数,线程数1表示1个用户,如果模拟10个用户就设置线程数为10 Ramp-Up表示在多长时间内开启多少个线程,如果设置为10,表示10s内开启对应的线程数 循环次数 永远表示如果不惦记…

Hibernate+Lombok进行表与表之间关系时插入数据时栈溢出

报错信息如下: 当使用Hibernate和Lombok处理表与表之间的关系时,在插入数据时可能会遇到栈溢出错误。这篇博客将详细讨论此问题的原因,并提供解决办法。 标题: HibernateLombok进行表与表之间关系时插入数据时栈溢出 问题背景 Hibernate是一…