eBPF 威胁模型和验证器代码审计

文摘   2024-11-18 06:48   中国香港  

两份由 eBPF 基金会赞助的研究报告审计了 eBPF 的安全性,并提供了部署指导、内置控制和建议。

犹他州盐湖城 – Cilium + eBPF 日(KubeCon 北美) – 2024 年 11 月 12 日 – eBPF 基金会宣布发布由 ControlPlane 制作的 eBPF 安全威胁模型[1],以及由 NCC Group 制作的 eBPF 验证器代码审计[2]

安全威胁模型

该安全威胁模型由 ControlPlane 在 eBPF 基金会的赞助下进行,审查了 eBPF 部署的安全指导,以及如何减轻潜在的威胁和漏洞。研究发现,eBPF 是一种高度安全的技术,得益于其内置的安全特性,包括确保 eBPF 程序安全的验证器。

威胁建模的方法结构如下:

  1. 我们在构建什么? 了解 eBPF 是什么,以及 eBPF 程序是如何工作的。
  2. 可能出现什么问题? 在威胁模型范围内定义一个简单的高层场景,开发攻击树,探索攻击者如何利用 eBPF 进行恶意活动。
  3. 我们能做些什么来应对可能出现的问题? 一旦确定了威胁,与之对应的 eBPF 内置控制和最终用户建议被映射出来。
  4. 我们的工作做得好吗? 最后,审查威胁模型的结果,为 eBPF 采用者提供实用指导。

为了解决识别出的威胁,报告作者提出了几项建议:

  1. 最小权限原则:仅授予 eBPF 程序必要的权限。
  2. 供应链安全:确保 eBPF 工具和库的完整性。
  3. 定期更新:保持内核和 eBPF 工具更新至最新安全补丁。
  4. 监控和日志记录:实施强有力的监控和日志记录,以检测和响应安全事件。
  5. 威胁建模:定期进行威胁建模演练,识别潜在的漏洞和风险。
  6. 禁用非特权 eBPF:默认禁用非特权 eBPF,以减少攻击面。

验证器代码审计

eBPF 基金会聘请 NCC Group 对 eBPF 验证器进行安全源代码审查。审查内容包括:

  • 确定 eBPF 验证器试图证明的属性。
  • 对 eBPF 验证器主要逻辑的源代码审查,通常通过 kernel/bpf/verifier.c 中的 do_check() 函数调用。
  • 审查中发现的任何问题,可能使 eBPF 源代码绕过验证器的约束,从而影响 eBPF 验证器的正确运行,导致保密性、完整性和可用性问题。

总体而言,代码审查发现 eBPF 社区在识别和修复错误方面非常有效。报告指出,尽管 eBPF 验证器是确保 eBPF 部署安全的重要工具,但并不是唯一的工具,因为 eBPF“设计为利用 Linux 权限模型来控制对 eBPF 的访问,从而减轻验证器内安全问题的影响。”

评估发现了几个代码缺陷。最显著的发现是一个漏洞,使具有特权的攻击者能够读取和写入任意内核内存(find_equal_scalars)。

该漏洞已得到社区的修复。报告还提出了其他建议,以改善验证器的安全性,例如重构复杂函数并在文档中添加有关验证器执行内容的详细信息。

“虽然 eBPF 是一项强大的工具,但采用主动的安全措施至关重要,比如我们刚刚完成的第三方安全审计,” eBPF 基金会董事会主席、Isovalent 联合创始人兼 CTO Thomas Graf 说。“此外,通过了解潜在风险并实施威胁模型中的建议缓解策略,组织可以安全地利用 eBPF。”

eBPF 基金会资源

  • 了解成员[3]机会
  • 探索 eBPF 项目生态[4]
  • 订阅邮件列表[5]
  • 访问 eBPF 的 GitHub[6] 或 Slack[7] 获取其他资源
参考资料
[1]

eBPF 安全威胁模型: https://www.linuxfoundation.org/hubfs/eBPF/ControlPlane%20%E2%80%94%20eBPF%20Security%20Threat%20Model.pdf

[2]

eBPF 验证器代码审计: https://www.linuxfoundation.org/hubfs/eBPF/eBPF%20Verifier%20Security%20Audit.pdf

[3]

成员: https://ebpf.foundation/become-a-member/

[4]

eBPF 项目生态: https://ebpf.foundation/projects/

[5]

邮件列表: https://lists.ebpf.foundation/g/main

[6]

GitHub: https://github.com/ebpffoundation

[7]

Slack: https://ebpf.io/slack/


点击【阅读原文】阅读网站原文。


文章转载自LFAPAC点击这里阅读原文了解更多

CNCF概况(幻灯片)

扫描二维码联系我们!




CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请关注CNCF微信公众号。

CNCF
云原生计算基金会(CNCF)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。
 最新文章