在GitHub Actions中执行eBPF

在GitHub Actions中执行eBPF

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

Keploy希望将其工具集成到GitHub流水线中,以确保拉取请求的安全合并和部署。由于Keploy使用eBPF跟踪网络调用,需要sudo权限,因此面临在GitHub上获取此权限的问题。eBPF可以监控系统调用和网络活动,自动生成测试用例。GitHub的runner提供的有限sudo权限足以支持Keploy的功能。

🎯

关键要点

  • Keploy希望将其工具集成到GitHub流水线中,以确保拉取请求的安全合并和部署。
  • Keploy使用eBPF跟踪网络调用,需要sudo权限,这在GitHub上面临挑战。
  • eBPF可以监控系统调用和网络活动,自动生成测试用例。
  • GitHub的runner提供的有限sudo权限足以支持Keploy的功能。
  • 典型的合并周期包括创建PR、运行工作流和合并。
  • 工作流是通过YAML文件定义的自动化过程,响应仓库中的事件。
  • eBPF允许安全、高效地跟踪和监控内核和用户空间进程。
  • Keploy计划在每次向主分支发送拉取请求时运行eBPF。
  • GitHub托管的runner不允许编辑或配置cgroups,但可以使用eBPF钩子捕获网络活动。
  • GitHub和Gitlab允许在runner上附加kprobes钩子,而Bitbucket则不允许。
  • GitHub runner提供类似root的权限,适合运行基于eBPF的工具。
  • eBPF可以在GitHub Actions中运行,而无需完全的root访问权限。
  • eBPF可以提取网络数据的元数据,如源和目标IP、端口和协议。
  • 在OpenWRT中启用eBPF需要重新编译内核并启用相关配置选项。
  • Keploy使用eBPF监控网络调用,以便在不修改应用代码的情况下自动生成测试用例。
  • GitHub工作流使用YAML文件定义步骤和runner,确保在每个PR中进行一致的测试。
➡️

继续阅读