虽然大多数组织目前无法直接访问 EBPF 专业知识,但今年可以选择配置配置了 EBPF 和功能扩展层的工具,这将更有帮助。
翻译自 ebpf: meaner hooks, more webassembly and observability due, by bCameron Gain是Revecom Media的创始人兼首席分析师。 他对电脑的痴迷始于 20 世纪 80 年代初,当时他入侵了 Space Invaders 游戏机,以每天 25 美分的价格在当地街机厅连续玩。 EBPF无疑在2023年取得了推广效果,2024年我们将看到更多有趣的发展。 这主要是因为 EBPF 已经证明了它的适用性,它在监控、可观察性、网络和安全方面的持续采用,以及开源社区的不懈努力。 这一切都始于 2010 年伯克利数据包过滤器与 Linux 内核的合并,然后在 2014 年成为“扩展”并称为 EBPF。 如今,EBPF 已经证明了它可以通过钩子提供的各种日志、指标、跟踪和其他信息的价值。 这些钩子来自底层应用程序、基础架构工具、CI CD 以及支持开发人员、运营团队和 SRE 的已部署 Linux 内核。 也就是说,它要充分发挥其潜力仍然存在一些挑战。
让我们看看 2024 年会发生什么。
去年或 2023 年,开源工作取得了很大进展。 亮点包括 Kubernetes 和云原生 EBPF 项目(如 Cilium)从 CNCF 毕业。 此外,通过Kubescape、Inspektor Gadget、Hubble、Tetragon和Falco等工具,EBPF的适用性和采用率继续提高。 而且,正如 Gartner 所指出的,值得注意的是,这些开源开发利用了 EBPF,这些工具正在帮助组织满足其业务和安全可观测性需求。 Gartner 建议,大多数企业缺乏直接利用 EBPF 的专业知识,应选择配置了 EBPF 和功能扩展层的工具。
Gartner 分析师 Tony Harvey 和 Jason Donham 在《2023 年计算能力炒作周期》中写道:“虽然这对技术供应商和超大规模企业来说是现实的,但大多数企业缺乏构建和集成基于 EBPF 的能力所需的专业知识和技能。 换句话说,在沙盒环境中使用 EBPF 可能很有趣,但不要在没有信任已建立的 EBPF 工具和流程来确保组织的安全策略的情况下尝试它。
同时,解决方案将取决于如何不断改进和交付主要支持EBPF开发的开源项目。
企业管理协会(EMA)分析师Torsten Volk表示:“目前,EBPF主要是一种'被动'技术,它直接从操作系统内核监听相关系统数据。 例如,这种被动性质限制了基于 EBPF 的可观测性平台可以提供的自动检测程度。 “如果 EBPF 允许这些可观测性平台通过系统调用和网络请求自动检测过程传递上下文数据,那么自动检测可以变得更加开箱即用,因为它可用于关联内核和应用程序。 根据 Volk 的说法,这种自动检测可以自动编译到应用程序中,而无需应用程序开发团队进行任何更改。 “然而,虽然我将这种级别的自动检测描述为'可观测性的圣杯',但允许应用程序在内核级别对系统数据进行更改可能成为一个非常棘手的问题,因为这些更改对系统安全性、稳定性和整体性能的潜在影响。 沃尔克说。 “另一方面,内核级别的自动检测甚至可以提高应用程序性能,因为 EBPF 的编译和运行速度比解释更快。 ”
EBPF 很大程度上归功于其独特的能力,它不仅为漏洞和攻击检测提供可观测性,而且还可以识别和修复漏洞。 此外,它在区分漏洞和提供漏洞上下文方面发挥着关键作用,这些漏洞可以与需要立即修复的攻击或 CI CD 过程中发生的轻微错误配置区分开来。
正如 Isovalent 首席开源官 Liz Rice 在《学习 EBPF:对 Linux 内核进行编程以增强可观测性、网络和安全性》一书中所写的那样,“安全工具和可观察报告事件之间的区别在于,安全工具需要区分在正常情况下预期的事件和指示潜在恶意活动的事件。 赖斯强调,EBPF作为一项核心技术,可以创建“建立在事件检测之上的工具,从而产生基于EBPF的安全工具,可以检测甚至防止恶意活动。 通过这种方式,Liz 得出结论,EBPF 将安全性与其他形式的可观察性区分开来。 我们预计会与EBPF工具和项目进行更多集成。 例如,Isovalent 创造的纤毛将与各种工具和工艺广泛集成。 例如,扩展了 CILIUM 的边界网关协议 (BGP) 功能,允许 Kubernetes 工作负载与传统服务工作负载无缝连接。 Rice在接受The New Stack采访时表示,并将Tetragon的安全事件报告与SIEM集成,为安全团队提供详细的取证,以调查恶意事件。 此外,还将添加与其他技术的集成,例如 WebAssembly,这是有前途的,尽管不如 EBPF 稳定。 这种集成将利用 WebAssembly 将应用程序分发到连接端点的通道中的能力,EBPF 有助于维持闭环。 “我们可以把 WebAssembly 看作是一个用户空间沙箱,把 EBPF 看作是一个内核沙箱,每个沙箱都允许在各自的领域进行定制,”Rice 说。 “因此,可以合理地预期基础设施工具可以以互补的方式将两者的功能结合起来。 这种集成的一个例子是 Wasm Envoy 插件中的自定义高级 L7 处理,结合 EBPF 实现的 Cilium 网络,“Rice 说,”以创建满足组织定制需求的高级动态网络功能。 ”
最终,EBPF可以被编译成WebAssembly,自动将可观测性注入应用程序容器,并可能自动检测,“无论它们正在运行什么,”Volk说。 “EBPF 与 WebAssembly 的集成非常令人兴奋,”Volk 说。 “从安全角度来看,由于 EBPF 运行在内核中,而 WebAssembly 运行在 Linux 操作系统的用户空间中,因此将两者结合起来可以为整个应用程序堆栈提供增强的隔离。 ”
毫无疑问,人工智能不仅将在未来几个月和几年内对社会产生深远的影响。 看看人工智能如何与EBPF一起应用或使用,这将是非常有趣的。 这仍然是一个非常笼统的想法,因为实际应用尚不清楚。 关于EBPF将如何表现或AI将如何与EBPF整合的猜测纯粹是猜测。
与此同时,有趣的是,网络如何与 EBPF 结合使用,而不仅仅是依赖像 ChatGPT 这样的 LLM 来实现网络安全。 看看这种动态在 2024 年如何发展将很有趣。 “我所期望的一个例子是由人工智能创建并由CILIUM执行的网络策略,”赖斯说。 “我们已经看到这方面的一些实验,就像大多数 ChatGPT 应用程序一样,它们不够可靠,无法依赖它,但我希望这种情况会有所改善。 ”
此外,Volk说,使用EBPF将内核级数据从操作系统的用户空间添加到当前的遥测流中,为LLM提供了重要的背景,以便做出更好的决策,并向人类安全工程师推荐更具体的补救措施。 “此外,EBPF与LLM的集成使LLM能够根据其在系统级别的影响来实施和评估安全策略,”Volk说。 “这就是事情变得非常技术化的地方。 ”
EBPF 旨在提供网络范围的定制功能,从内核或跨运行时扩展,尤其是对于 Kubernetes。 但是,由于 EBPF 与 Linux 内核集成,这对某些人来说可能是一个安全问题。 毕竟,除了攻击者之外,没有人想要一个可以直接访问操作系统和 CPU 的恶意 **。
为了解决此 EBPF 安全问题,EBPF 验证器会检查**,并且仅当验证器根据 GPL 获得许可时才授予 EBPF 写入权限。 当然,没有什么是完全可以预防的。 正如 Rice 所指出的,验证者会检查程序是否安全运行,但不能保证程序不是恶意的。 “例如,我可能会编写一个EBPF程序,将数据包丢弃到一个地址,因为它是第一个恶意流量,或者我可能会编写一个程序作为黑客来阻止某个地址,以达到某种不良目的,”赖斯说。 “验证者无法分辨两者之间的区别。 如上所述,同样重要的是,不要在内部定制自己的 eBPF 工具,而是要依赖经过适当审查的供应商。 “这就是为什么只加载和运行你信任的最佳供应商的EBPF程序很重要的原因,”赖斯说。 内核中正在进行工作,以帮助用户验证 ebpf 程序(很像应用程序的链安全检查)。
我实际上参与这些事情是为了好玩,当它带来善意时。 因此,我期待并希望在 2024 年披露一个漏洞,不仅是为了好玩,也是为了进一步加强 EBPF 的网络加密。
然而,正如 Rice 所指出的,“EBPF 可以广泛地定制网络功能,但更典型的是依赖其他内核加密实现(如 Wireguard),而不是在自定义 EBPF 程序中加密。 ”
此外,根据定义,当你增加应用层与内核层交互的能力时,系统的攻击面也会增加,Volk指出。 “这很直观,因为这就是为什么Linux最初是为了将内核与应用程序分开而创建的,”Volk说。 “然而,自 Linux 首次创建以来已经过去了这么多年,我们现在可能有一种方法可以允许应用程序有条件地访问内核,而不会冒着整个农场受到损害的风险。 ”