TE
TechEcho
StartseiteTop 24hNeuesteBesteFragenZeigenJobs
GitHubTwitter
Startseite

TechEcho

Eine mit Next.js erstellte Technologie-Nachrichtenplattform, die globale Technologienachrichten und Diskussionen bietet.

GitHubTwitter

Startseite

StartseiteNeuesteBesteFragenZeigenJobs

Ressourcen

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. Alle Rechte vorbehalten.

Show HN: Using eBPF to see through encryption without a proxy

214 Punktevon tylerflintvor etwa 10 Stunden
Hi HN, I&#x27;m Tyler Flint, one of the creators of qtap.<p>For a while now, my team and I at Qpoint.io have been grappling with the challenge of understanding what&#x27;s actually happening inside the encrypted traffic leaving our production systems. Modern apps rely heavily on third-party APIs (think payment processors, data providers, etc.), but once TLS kicks in, figuring out exactly what data is being sent, identifying PII exposure, or debugging integration issues becomes incredibly difficult without resorting to complex and often brittle solutions.<p>Traditional approaches like forward proxies require terminating TLS (MITM), managing certificates, and often introduce performance bottlenecks or single points of failure. Network firewalls usually operate at L3&#x2F;L4 and lack payload visibility. We felt there had to be a better way.<p>That&#x27;s why we built qtap. It&#x27;s a lightweight agent that uses eBPF to tap into network traffic at the kernel level. The key idea is to hook into common TLS libraries (like OpenSSL) before encryption and after decryption. This gives us deep visibility into the actual request&#x2F;response payloads of HTTPS&#x2F;TLS traffic without needing to terminate the connection or manage certs. Because it leverages eBPF, the performance impact is minimal compared to traditional methods.<p>With qtap, we can now see exactly which external services our apps are talking to, inspect the payloads for debugging or security auditing (e.g., spotting accidental PII leaks), monitor API performance&#x2F;errors for third-party dependencies, and get a much clearer picture of our egress traffic patterns.<p>We&#x27;ve found this approach really powerful for improving reliability and security posture. We&#x27;ve packaged qtap as a Linux Binary, Docker container, and Helm chart for deployment.<p>This is still evolving, but we&#x27;re excited about the potential of using eBPF for this kind of deep, yet non-intrusive, visibility.<p>We&#x27;d love to get the HN community&#x27;s feedback:<p><pre><code> Do you face similar challenges monitoring encrypted egress traffic? What are your thoughts on using eBPF for this compared to other methods? Any suggestions or potential use cases we haven&#x27;t considered? </code></pre> Happy to answer any questions!

23 comments

brendangreggvor etwa 1 Stunde
To everyone building these things: Please add a disclaimer to say something like:<p>&quot;This is not a vulnerability: eBPF currently requires root access to do this. Also, eBPF makes this easy but does not make it possible, as debuggers, interposers&#x2F;shims, and other tools can also attach to pre-encryption points, and therefore banning eBPF (as some people want to do after seeing projects like this) would not actually improve security, but it would instead _reduce_ security as it would prevent eBPF-based security solutions from being used.&quot;
评论 #43933140 未加载
hamburglarvor 4 Minuten
With the minimal perf impact, does that mean it is not 100% guaranteed to catch all traffic? I’d think you’d have to insert yourself synchronously into the comms or allow some to get past unseen (eg when systems are heavily loaded).
bbkanevor etwa 10 Stunden
Does this work for Go binaries? My understanding is that Go programs do all the encryption &quot;in the process&quot; so the data is encrypted before eBPF can intercept it. I&#x27;d love to be wrong about that!
评论 #43928612 未加载
评论 #43928485 未加载
zxillyvor etwa 8 Stunden
There&#x27;s a similiar tool <a href="https:&#x2F;&#x2F;github.com&#x2F;gojue&#x2F;ecapture">https:&#x2F;&#x2F;github.com&#x2F;gojue&#x2F;ecapture</a>
评论 #43933441 未加载
评论 #43930948 未加载
compscidrvor etwa 10 Stunden
Have been following this project for a while, cool stuff!<p>I work a bunch with vpn-like networking on Android phones and it would be cool to have a bit of info on how I might get something like working on phones. I guess its probably not your typical usecase.<p>Currently since the project is a VPN client, I already intercept all of the packets, I have a pcap writer and can write to files or a tcp sockets and connect wireshark to it - but it needs a bunch of complication to setup the keys so that I can see through encryption, so anything that would make that process easier would be great.
评论 #43928585 未加载
plicensevor 34 Minuten
Do you support Java? If so, how do you do this for Java?
评论 #43933386 未加载
eptcykavor etwa 9 Stunden
I know that arguing that SSLKEYLOGFILE is all you need will just be a different version of the rsync&#x2F;dropbox comment, but I do wonder under what circumstances is one able to strace a binary and isn’t able to make it dump session keys? I read the headline and set high hopes on finding a nifty way to mitm apps on Android - alas, I’m not sure this would work there necessarily.
评论 #43933340 未加载
评论 #43932173 未加载
评论 #43929991 未加载
worldsaviorvor etwa 10 Stunden
Isn&#x27;t there already mechanisms for patching specific SSL libraries to view encrypted requests (e.g. frida)? What is the benefit of using eBPF?
评论 #43928897 未加载
pclmulqdqvor etwa 10 Stunden
To hook into OpenSSL, don&#x27;t you either need dynamic linking or userspace programs to compile your hooks in? Go and many Rust and C++ binaries tend to prefer static linking, so I wonder if this solution is workable there.
评论 #43928572 未加载
kristopolousvor etwa 9 Stunden
Just found out about a related things: <a href="https:&#x2F;&#x2F;github.com&#x2F;cle-b&#x2F;httpdbg">https:&#x2F;&#x2F;github.com&#x2F;cle-b&#x2F;httpdbg</a><p>Anyone have any experience with it?
评论 #43929449 未加载
mrbluecoatvor etwa 4 Stunden
Was going to ask if it was only passive monitoring or active controlling and found <a href="https:&#x2F;&#x2F;docs.qpoint.io&#x2F;appendix&#x2F;qcontrol-beta" rel="nofollow">https:&#x2F;&#x2F;docs.qpoint.io&#x2F;appendix&#x2F;qcontrol-beta</a><p>&gt; Security enforcement: Allowing or denying traffic based on precise conditions<p>Very cool. What are your supported log sinks?
评论 #43932392 未加载
tecleandorvor etwa 5 Stunden
Can it output pcap files or anything similar I can import onto Wireshark or a similar tool? Haven&#x27;t found anything checking the docs...
评论 #43932255 未加载
Severianvor etwa 7 Stunden
Kinda related, anyone know of something similar for Windows? This is definitely going in my toolkit, but I need something similar for Windows client traffic inspection (tls 1.2+) to get the full picture. Working with proprietary client&#x2F;server coms over tls. Can use a special debug build, but requires shutting down and replacing. Need something in-sutu.
nikolayasdf123vor etwa 10 Stunden
sounds like a security breach. how you ensure this does not become link in some next complex CVE?
评论 #43929025 未加载
评论 #43928841 未加载
dahatebvor etwa 8 Stunden
Does it also work on android? Afaik ebpf is also available there.
评论 #43930130 未加载
评论 #43930465 未加载
octoberelevenvor etwa 7 Stunden
I don&#x27;t have any answers&#x2F;questions, but reading through the discussion, all I can say at this point is — Super impressive guys!
CMCDragonkaivor etwa 3 Stunden
Does this work in NixOS?
评论 #43932944 未加载
onnimonnivor etwa 4 Stunden
Is there anything like this but for MacOS?
评论 #43932249 未加载
jakedatavor etwa 2 Stunden
Stream any good movies lately?
0nethacker1vor etwa 9 Stunden
I like the fact this doesn&#x27;t impact performance like MITM solutions do.
评论 #43929154 未加载
armitronvor etwa 8 Stunden
There are many independent implementations of the same idea (given how easy it is to implement) but all suffer from similar shortcomings:<p>1. uprobes can be expensive and add latency (they force a context switch and copy data), especially when the hooked functions are called a lot<p>2. EBPF is not widely available outside of Linux, requires elevated privileges (compared to a MITM proxy that requires no privileges and works with every OS)<p>3. Doesn&#x27;t work with JVM, Rust, any runtime that doesn&#x27;t use the hooked functions
评论 #43930407 未加载
delusionalvor etwa 8 Stunden
What does the usage pattern look like for this. Will I need to be root to run it, and can it run from inside a container without &quot;real&quot; host root?<p>I&#x27;m always looking for a way to make sniffing traffic from inside a container easier, and if I could attach a debug sidecar with something like an eBPF based SSL pre-master key extractor (both on incoming and outgoing requests) it starts to feel a lot like having network JTAG.
评论 #43930126 未加载
adampkvor etwa 10 Stunden
How easy is the set up, does this need to be deeply integrated in each step of the life-cycle?
评论 #43928686 未加载