Qtap: An eBPF agent that captures pre-encrypted network traffic, providing rich context about egress connections and their originating processes.
An eBPF agent that captures traffic flowing through the Linux kernel. By attaching to TLS/SSL functions, data is intercepted before and after encryption and then passed to flexible plugins with full visibility along with all of the available context - process/container/host/user/protocol/etc. Qtap makes it possible to understand what’s happening with your egress traffic, without modifying apps, installing proxies, or managing certs.
Qtap shows you exactly what data is being sent and received in its original, unencrypted form while operating out-of-band with minimal overhead, without adding latency or disrupting application performance.
Qtap can augment your existing observability piplines or can be used as a foundational component for a custom solution, like Qpoint, in a variety of ways, including:
For more information see the “How It Works” section of our website.
Want to give Qtap a test run? Spin up a temporary instance in Demo mode! See the traffic in real time right in your terminal.
# Run Qtap in demo mode
$ curl -s https://get.qpoint.io/demo | sudo sh
Or install and start running right away!
# Install the Qtap agent
$ curl -s https://get.qpoint.io/install | sudo sh
# Run with defaults!
$ sudo qtap
Converse with Qpoint devs and the contributors in Github Discussions.
/sys/kernel/btf/vmlinux
exists on your system.sudo
CAP_BPF
, host pids, and privileged. For example:docker run \
--user 0:0 \
--privileged \
--cap-add CAP_BPF \
--cap-add CAP_SYS_ADMIN \
--pid=host \
--network=host \
-v /sys:/sys \
--ulimit=memlock=-1 \
us-docker.pkg.dev/qpoint-edge/public/qpoint:v0 \
tap \
--log-level=info
$ git clone https://github.com/qpoint-io/qtap.git
$ make build
Makefile
targetsThese are the most commonly used targets by Qpoint devs:
build
- generates the eBPF binaries and builds the Go applicationgenerate
- generates the eBPF binariesrun
- runs a debug instance of the Qtapci
- runs all of the ci checks (nice to use before pushing code)This project is currently in early development. We’re excited to share our work with the community and welcome your feedback! While we’re actively improving things, please note that:
We welcome contributions through GitHub issues and appreciate your understanding that we’re a small team balancing multiple priorities. We value constructive feedback that helps us make this project better.
Thank you for checking out our work!
By submitting contributions to this project, you agree to the Contributor License Agreement. This agreement allows us to include your contributions in both the open source and commercial versions.
This project is dual-licensed under AGPLv3.0 (for open source use) and a commercial license (for commercial use).