内核中的威胁模型和漏洞评估特征 Linux

Linus Torvalds 批准了一份内核文档,该文档概述了处理安全相关漏洞的流程,定义了威胁模型,明确了哪些内核漏洞被视为安全漏洞,并讨论了如何处理使用人工智能识别出的漏洞。该文档由 HAProxy 的作者、资深内核开发者 Willy Tarreau 编写。 Linux负责维护多个稳定的内核分支。该框架基于对近期发现的关键内核漏洞(1、2、3、4)的讨论达成的共识,这些漏洞在补丁发布前就已经披露,并且借助人工智能技术,立即创建了可用的漏洞利用程序。

大多数安全漏洞都将公开报告,以便尽可能覆盖更广泛的受众,并找到最佳解决方案。另有一个私有邮件列表,仅用于发送关于易被利用、对众多用户构成威胁、且允许攻击者获取更高权限或功能的紧急漏洞报告。

使用人工智能助手发现的漏洞应始终公开讨论,因为此类问题通常由多位研究人员同时发现。但是,不应在报告中披露漏洞利用程序本身;只需提及漏洞的可用性,并在维护者请求时私下分享即可。

AI助手生成的报告提交规则另有详细说明。此类报告数量庞大,有时有助于识别代码中审查不严谨的部分的错误,但由于其质量低下且不准确,维护人员往往会忽略它们。AI生成报告的主要要求如下:

  • 简洁明了,没有废话,开篇就阐明了要点和重要细节。
  • 纯文本,不包含 Markdown 标签或任何装饰。
  • 理解威胁模型并提供可验证的事实(例如,“该漏洞允许任何用户获得 CAP_NET_ADMIN 权限”),而不是对漏洞后果进行理论推测和臆断。
  • 在提交报告之前,请务必彻底测试 AI 生成的漏洞利用程序的功能,并确保该问题可以重现。
  • 利用人工智能开发和测试针对已发现问题的解决方案。

根据维护人员的统计,大多数以漏洞修复为名义提交的错误报告实际上并非漏洞,应按普通错误处理。目前已开发出内核威胁模型来区分漏洞和普通错误。 Linux以下各项功能和保障措施中,违反这些措施可能被视为漏洞:

  • 用户级隔离:文件访问仅限所有者,进程内存其他用户无法访问,对其他进程禁用 ptrace,IPC 和网络通信隔离。
  • 基于能力的保护:没有 CAP_SYS_ADMIN,您无法更改内核配置、内存或系统状态;没有 CAP_NET_ADMIN,您无法更改网络设置或拦截流量;没有 CAP_SYS_PTRACE,您无法监视其他用户的进程。
  • 用户 ID 命名空间 (CONFIG_USER_NS) 允许非特权用户创建自己的隔离环境,从中他们无法影响全局命名空间,例如更改时间、加载模块或挂载块设备。
  • 调试接口(/proc/kmsg、perf、debugfs)可以访问机密信息,但只有在管理员明确授予访问权限后才能访问这些接口。

以下功能不被视为漏洞:

  • 使用过时的内核分支。
  • 启用开发者选项或降低安全性的选项(例如 CONFIG_NOMMU)进行构建。
  • 设置不安全的 sysctl 设置、命令行选项、文件系统访问权限、功能,或者允许非特权用户访问特权接口(例如,对 procfs 和 debugfs 的写入权限)。
  • 仅供内核开发和调试使用的功能(例如 LOCKDEP、KASAN 和 FAULT_INJECTION)存在问题,这些功能不建议在生产配置中启用。
  • 处于 STAGING 阶段或标记为实验性、不安全或损坏的驱动程序、模块和子系统存在问题。
  • 使用第三方内核模块或非官方内核分支。
  • 要求过多的权限,例如要求以 root 用户身份或由具有 CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_SYS_RAWIO 和 CAP_SYS_MODULE 权限的用户执行操作。
  • 理论上的攻击需要实验室条件、数十亿次尝试、硬件模拟或修改、不成比例的成本以及不切实际的配置(例如,拥有数万个 CPU 核心的系统)。
  • 绕过安全机制(例如 ASLR)但未展示漏洞利用。缺乏参数验证和错误返回码,且这些错误返回码没有明显的后果。
  • 攻击者无法控制的意外信息泄露,例如错误消息中的残留数据和内核内存地址/指针泄露,这些泄露无法直接利用。
  • 如果驱动程序未声明适用于不受信任的介质,则在挂载损坏的磁盘映像时会出错。运行 fsck 实用程序可以检测并修复磁盘映像问题。
  • 除非系统专门配置为防止此类攻击(IOMMU),否则需要物理访问硬件、修改硬件或连接硬件设备(例如 DMA 攻击板和逻辑分析仪)的攻击将无法奏效。
  • 通过调整权限和限制,解决了功能和性能方面的问题。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster