尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
认识 Tetragon:基于 eBPF 的安全监控与强制执行工具
在深入了解思科的内核安全实践之前我们先来认识一下文中提到的核心工具——Tetragon。Tetragon是由 Cilium 社区现属于 CNCF 毕业项目开发的一款开源的、基于eBPFExtended Berkeley Packet Filter的安全可观测性与运行时强制执行工具。它的核心优势包括内核态直接处理与传统安全工具将大量事件推送到用户空间进行分析不同Tetragon 直接在 Linux 内核空间运行过滤与监控逻辑性能开销极低。Kubernetes 原生感知它不仅能深入监控 Linux 进程生命周期、系统调用和网络活动还能无缝结合 Kubernetes 的元数据如 Pod、Namespace 等实现精准到容器级别的安全审计。实时拦截Enforcement它不仅能“看”还能通过 eBPF 钩子在内核中直接修改系统调用返回值等实时阻止可疑或恶意行为。利用 BPF 应对定制内核漏洞思科的挑战与探索思科在为运行定制内核的众多设备部署安全补丁时面临着一些不寻常的挑战。在 2026 年 Linux 存储、文件系统、内存管理和 BPF 峰会上John Fastabend 介绍了利用 BPF 防止漏洞利用的工作。这项技术可以大大缩短响应内核漏洞所需的时间但如果不向内核添加更多钩子hooks它就无法完全发挥作用。Fastabend 首先指出网络交换机的硬件范围很广从小型单机架系统到大型高速设备应有尽有。思科支持的每个平台都有自己的内核团队使用 Yocto 构建定制内核。在任何特定时间这些团队都在支持大量不同的内核——幸运的是其中大多数是稳定内核。所有这些广泛部署、连接互联网且带有定制内核的设备都成了攻击者眼中诱人的目标。显而易见思科会发布安全更新但识别问题、编写修复程序、创建新构建、进行测试、提供给客户并让交换机完成更新需要时间特别是因为重启交换机会导致网络中断。这些中断需要客户计划和管理停机时间从发现漏洞到修补完最后一台脆弱系统整个过程可能需要几个月。Fastabend 这项工作的目标是利用 BPF 实时观察攻击并在无需重启的情况下按需应对。他表示理想情况下整个过程只需几分钟。“我们离那个目标还有一段距离但这正是我们的梦想。”Tetragon 是一款开源的、基于 BPF 的监控与强制执行工具用于收集有关运行系统的“大量数据”。在任何时候交换机上的监控基础设施都可以显示哪些程序在何时运行以及它们建立了哪些网络连接。这些数据存储在时序数据库中。Tetragon 目前确实依赖用户空间代理保持运行但 Fastabend 及其同事一直在努力确保即使攻击者设法杀死了用户空间代理BPF 组件也能继续存活。他解释说当发现新的 CVE通用漏洞披露时他希望能够对照该数据库进行检查以查明它是否曾被利用过。这些数据还可以用来查看攻击的征兆例如数据外泄或与命令与控制CC服务器的连接。一旦识别出漏洞利用就可以直接从 BPF 中对其进行阻止。如果触发漏洞利用需要某个特定的系统调用BPF 可以覆盖该系统调用的返回值以拒绝该操作。还可以使用跟踪点tracepoints来验证内部内核函数的参数是否正确。Fastabend 的团队同时使用了 uprobes 和 kprobes 来实现这一点。不过这些探测点无法可靠地改变返回值因此需要使用 Linux 安全模块LSM钩子来实现。Andrii Nakryiko 询问这种设计每秒要检查并可能拦截多少个事件。Fastabend 解释说网络数据包的路由主要由专用硬件完成因此内核只需管理控制平面流量和用户空间应用程序。总体而言每秒只有数百或数千个事件而不是数十亿个即使交换机每秒正在转发数十亿个数据包。其中一个复杂之处在于Fastabend 的团队还希望使用探测点来对内联函数inlined functions进行操作。这可以通过使用调试符号并在原始偏移量处设置探测点来实现。他解释说思科有一个用于生产所有内核软件包的构建农场。构建机器保存了所有构建的构建 ID 和调试信息包括 BTFBPF Type Format和常规调试符号。这些信息不仅用于调试客户的问题还用于编写特定于所部署内核结构的实时内核补丁或 BPF 程序。Jakub Sitnicki 指出他在将探测点附加到部分内联的函数时遇到了问题因为内核当前的 BTF 中没有包含这些函数被内联位置的信息不过这个问题正在解决中。Alan Maguire 表示这个话题将在他为会议第二天提议的其中一个会议上进行讨论。阻止漏洞利用Fastabend 随后展示了一个 BPF 程序的示例该程序可用于阻止近期“copy fail”漏洞的影响。该程序仅在以会触发漏洞的方式调用splice()系统调用时让其返回一个错误。他承认使用普通的内核实时补丁在技术上也可以做到这一点但思科拥有如此多的并发产品线其上运行着许多不同的稳定内核修补所有这些内核需要投入大量开发人员时间。而通过 BPF同一个程序通常可以在所有支持的内核上运行——只需编写一次然后在每个内核上自动测试以确保它不会破坏任何东西。BPF 盾牌shields在起作用时非常棒但也偶尔会有一些小波折。Fastabend 的团队经常会发现某个 CVE 在受影响的内核子系统中没有任何相关的钩子来构建盾牌。最近就有一个可利用的“释放后重用”use-after-free漏洞在接近问题根源的附近根本没有方便挂载钩子的位置。团队最终选择挂载可能导致触发该漏洞的系统调用但这使得代码变得更加复杂。因此Fastabend 希望在内核中看到的、用于支持此类工作的主要改变是为ALLOW_ERROR_INJECTION()采用更具包容性的政策。该宏用于标记可受内核错误注入框架支配的函数。该框架通常用于测试它允许内核程序员使用自定义 BPF 程序覆盖内部函数的返回值这与 Fastabend 的用例非常契合。不幸的是只有一部分内核函数被标记为可用于错误注入。理想情况下他希望能够使用 BPF 修改任何返回整数的函数的返回值只要该整数与零进行比较并将该错误沿调用栈向上传播。他指出有很多函数都符合这个标准。他认为应该为所有这些函数提供 LSM 钩子并询问这些函数是否可以轻松地做到从 BPF 进行挂载。Nakryiko 认为错误处理代码的复杂性将使任何此类更改都变成一个手动过程。Alexei Starovoitov 建议对于 Rust 代码来说这应该是可以自动完成的因为 Rust 代码中由编译器生成的清理逻辑具有可预测的结构。对于 C 代码他建议让提交漏洞报告的人也引入相关的 LSM 钩子。笔者则建议使用 Coccinelle 来实现这一更改。Fastabend 认为如果最终确实需要手动操作最需要作为目标的区域是内核的 netlink 代码。出于某种原因他的团队发现有大量攻击针对内核的这一区域。将挂载内部内核函数作为防范 vulnerabilities漏洞的技术对于 Linux 内核的其他用户也同样非常有用。他展示的盾牌只有区区几行代码不难看出只要有足够的内核覆盖率这种简单的修复方法就能为公司或发行版提供一种在多个内核版本之间部署 vulnerability mitigations漏洞缓解措施且无忧的途径。话虽如此向相关区域添加 LSM 钩子的工作将是一项重大改变可能需要一些时间——前提是 LSM 维护人员能够批准这项工作。
RELATED

相关推荐

VectorBT:Python量化回测的性能革命与向量化实践

VectorBT:Python量化回测的性能革命与向量化实践

1. VectorBT:Python量化领域的性能革命第一次看到VectorBT的基准测试数据时,我正被传统回测框架的速度问题折磨得焦头烂额。当发现这个框架能在15秒内完成我原本需要25分钟的回测任务时,作为从业八年的量化开发者,我立刻意识到这不…

📅 2026/9/28 2:20:17
广州中央空调维修-周边全小区覆盖-欧米到家本地师傅当日上门|排查准不乱收费不返工|熟悉全城区机型管路|修后有质保|

广州中央空调维修-周边全小区覆盖-欧米到家本地师傅当日上门|排查准不乱收费不返工|熟悉全城区机型管路|修后有质保|

前言岭南盛夏湿热闷热,梅雨季持续绵长,中央空调是广州家庭、别墅与商业办公空间的核心刚需设备。一旦出现制冷疲软、整机不制冷、吊顶内漏水、内机异响、开机跳闸、除湿失效、出风口发霉异味等故障,会严重影响居家舒适感与办公效率&#xff0…

📅 2026/8/24 12:50:36
3天从玩家变创造者:tModLoader终极模组开发指南

3天从玩家变创造者:tModLoader终极模组开发指南

3天从玩家变创造者:tModLoader终极模组开发指南 【免费下载链接】tModLoader A mod to make and play Terraria mods. Supports Terraria 1.4 (and earlier) installations 项目地址: https://gitcode.com/gh_mirrors/tm/tModLoader 你是否曾梦想为泰拉瑞亚…

📅 2026/8/24 12:50:36
MORE NEWS

更多资讯

📰

Woodpecker 配置扩展(Configuration Extension)完全指南:动态修改与生成流水线配置

CI/CDDevOps 【免费下载链接】woodpecker Woodpecker is a simple, yet powerful CI/CD engine with great extensibility. 项目地址: https://gitcode.com/gh_mirrors/wo/woodpecker 点击查看 免费下载 配置扩展(Configuration Extension)是…

📰

ChatGLM微调实战:LoRA+DeepSpeed多卡训练与避坑指南

简介:这份资源面向希望掌握大模型微调与分布式训练的开发者,聚焦如何用LORA结合DeepSpeed在多GPU环境下对ChatGLM进行实战微调。内容涵盖低秩矩阵分解降低通信与存储开销、零冗余优化器与混合精度训练、模型并行与数据并行协调,以及对话生成场…

📰

Corne Classic 分体键盘组装全指南:零件清单、焊接步骤与固件刷写实战

硬件开发嵌入式 【免费下载链接】crkbd Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys. 项目地址: https://gitcode.com/gh_mirrors/cr/crkbd 点击查看 免费下载 Corne Classic(crkbd rev1)是 Corne 系…

📰

在浏览器里跑真正的 Rio 终端内核:librio-wasm 的架构、构建与 JS ABI 实战

开发工具CLI跨平台 【免费下载链接】rio A hardware-accelerated GPU terminal emulator focusing to run in desktops and browsers. 项目地址: https://gitcode.com/gh_mirrors/ri/rio 点击查看 免费下载 librio-wasm 是 Rio 终端内核的 WebAssembly 封装&#x…

📰

漳浦县网站建设避坑:3个漏洞让你损失惨重,怎么选才安全?

漳浦县网站建设避坑:3个漏洞让你损失惨重,怎么选才安全? 很多老板在漳浦县做网站,第一反应就是找个便宜的模板套上去,觉得能看就行。结果呢?网站刚上线两周,后台数据就丢了,或者被搜索引擎降权,甚至直接被黑客挂马。这时候你才后悔,当初那几千块的…

📰

YOLOV5交通标志识别毕设项目:完整数据集+训练代码+PyQt界面

简介:这份资源面向计算机、人工智能相关专业的本科生与研究生,提供一套可直接用于毕业设计、期末大作业或课程设计的交通标志识别检测完整方案,基于YOLOv5深度学习框架实现,适合具备Python基础、希望快速完成高分项目的学习者。压…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬