安全审计、API 调试和集成工作都反复碰到同一堵墙:流量经过 TLS 加密,要弄清应用程序真正发送了什么,通常需要搭建中间人代理、安装证书、重新配置每个客户端,并接受在已改变的路径上增加的延迟。

可观测性公司 Qpoint 推出的 qtap 从加密实际发生的地方入手。它的 eBPF 代理扫描每个进程的二进制文件和库,查找 TLS 符号,并通过用户空间探针挂接 SSL_read 和 SSL_write,以原始未加密形式捕获数据,并附上代理永远看不到的上下文:进程、容器、主机、用户和协议。对于静态链接的程序,通过直接探测二进制文件来处理;维护者在发布帖中解释说,Go 二进制文件通过预先计算的各版本结构偏移加上 ELF 扫描器来覆盖。

其成果是无需插桩即可进行检测:无需修改应用程序、无需代理、无需证书管理,并声称以最小开销带外运行。该项目于 2025 年 5 月在 Hacker News 上发布,获得 259 分和 78 条评论;到目录编制时,Apache-2.0 仓库已显示 1.5k 星和 289 次提交,Qpoint 正在基于同一代理构建其出口流量的可观测性产品。

在加密开始处读取明文,而不是在流量通过处

挂接 SSL_read 和 SSL_write 将观察点放在明文存在的确切位置,因此无需在网络上解密任何内容。

无需代理和证书意味着可以检测遗留系统、第三方二进制文件和短生命周期进程,而无需触碰它们。

内核视角携带进程、容器、主机和用户上下文,网络级代理无法归属。

由于是观察流量而非改道流量,应用程序自身的连接路径和延迟保持不变。

开源代理并带有演示模式,让社区可以检验该方法,这也正是 Go 二进制文件问题公开出现并得到解答的方式。

加密流量在其产生边界处是明文;在那里利用内核级可见性进行拦截,就可以在不修改任何应用程序的情况下对其进行检测。

到目录编制时,qtap 在 Apache 2.0 许可下已获得 1.5k 星和 289 次提交,作者仍称其为早期开发。该仓库附带 Chrome DevTools 风格的 Web 界面、OpenTelemetry 追踪和指标端点、示例 Grafana 仪表板,以及一键式演示和安装脚本;其背后的公司 Qpoint 基于同一代理构建出口流量的清单和告警产品。

从这里,追溯依据

参考来源

  1. Show HN: Using eBPF to see through encryption without a proxy news.ycombinator.com
  2. qpoint-io/qtap – eBPF agent that captures pre-encrypted traffic github.com