安全稽核、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 風格的網頁介面、OpenTelemetry 追蹤與指標端點、範例 Grafana 儀表板,以及一鍵展示與安裝腳本,而其背後的公司 Qpoint 以同一個代理程式建構出口流量的盤點與警示產品。

追溯依據

參考來源

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