ebpfsnitch VS mysqld-bpf

Compare ebpfsnitch vs mysqld-bpf and see what are their differences.

ebpfsnitch

Linux Application Level Firewall based on eBPF and NFQUEUE. (by harporoeder)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
ebpfsnitch mysqld-bpf
9 1
688 3
- -
0.0 2.6
6 months ago over 2 years ago
C++ Python
BSD 3-clause "New" or "Revised" License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

ebpfsnitch

Posts with mentions or reviews of ebpfsnitch. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-02.
  • Notes on BPF and eBPF
    2 projects | news.ycombinator.com | 2 Jan 2022
    BPF is indeed a pretty interesting technology. As the knowledge about it becomes more widespread, I anticipate that we will unlock some new capabilities both in terms of tracing. Brendan Gregg's book (https://www.brendangregg.com/bpf-performance-tools-book.html) serves as a good intro to this, although you probably only need to read a small chunk of it as a lot of it is reference-book-style material.

    The author's mentioned that you can trace MySQL with USDT, which is a tracepoint inserted by the developer at select locations in the code. Unfortunately, this feature has been removed in MySQL 8.0. This makes it significantly more difficult to trace MySQL, although it's not impossible. I've done a proof of concept of this in this repo with uprobe[1], which indeed allow you to hook into any userspace function. This is not stable tho, as any MySQL upgrade risks incompatibilities, while USDT would be stable. My appeal to Oracle to re-add this functionality[2] has been unfortunately rejected, which I think is a mistake.

    [1]: https://github.com/shuhaowu/mysqld-bpf

    [2]: https://bugs.mysql.com/bug.php?id=105741

    Another thing that I've been recently thinking of is using BPF to validate programs written for real-time Linux (via PREEMPT_RT). To my understanding, one of the main thing to avoid is page faults [3]. With the proper BPF tracing scripts, I think we can validate that programs indeed avoids page faults in integration testing. I'm not sure if it is super useful yet, but as I'm trying to write a few RT programs, it's something that came to my mind.

    [3]: https://lwn.net/Articles/837019/

    In addition to tracing (so bpftrace-based/bcc-based tools), I've recently discovered that there there are:

    1. ebpfsnitch (https://github.com/harporoeder/ebpfsnitch): which is an application-level firewall without kernel modules.

    2. ebpf-traffic-monitor (https://source.android.com/devices/tech/datausage/ebpf-traff...): which appears to be using BPF to account for traffic for different apps on Android.

    There are apparently also use cases in the context of security, but I'm not familiar with it.

  • Little Snitch Linux Alternative
    2 projects | /r/linux | 3 Sep 2021
    Doesn't look like it's updated any more but there is eBPFSnitch
  • Landlock merged in mainline for Linux 5.13
    3 projects | news.ycombinator.com | 19 May 2021
    There is a sort of opensnitch based on ebpf but not sure is fully feature completed as you intended:

    https://github.com/harporoeder/ebpfsnitch

  • eBPFSnitch - Linux Application Level Firewall based on eBPF and NFQUEUE
    1 project | /r/coolgithubprojects | 17 Mar 2021
  • harporoeder/ebpfsnitch
    1 project | /r/devopsish | 15 Mar 2021
  • EBPFSnitch: An eBPF based Linux Application Firewall
    1 project | /r/linux | 15 Mar 2021
    1 project | /r/patient_hackernews | 14 Mar 2021
    1 project | /r/hackernews | 14 Mar 2021
  • EBPFSnitch: An eBPF Based Linux Application Firewall
    3 projects | news.ycombinator.com | 14 Mar 2021

mysqld-bpf

Posts with mentions or reviews of mysqld-bpf. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-01-02.
  • Notes on BPF and eBPF
    2 projects | news.ycombinator.com | 2 Jan 2022
    BPF is indeed a pretty interesting technology. As the knowledge about it becomes more widespread, I anticipate that we will unlock some new capabilities both in terms of tracing. Brendan Gregg's book (https://www.brendangregg.com/bpf-performance-tools-book.html) serves as a good intro to this, although you probably only need to read a small chunk of it as a lot of it is reference-book-style material.

    The author's mentioned that you can trace MySQL with USDT, which is a tracepoint inserted by the developer at select locations in the code. Unfortunately, this feature has been removed in MySQL 8.0. This makes it significantly more difficult to trace MySQL, although it's not impossible. I've done a proof of concept of this in this repo with uprobe[1], which indeed allow you to hook into any userspace function. This is not stable tho, as any MySQL upgrade risks incompatibilities, while USDT would be stable. My appeal to Oracle to re-add this functionality[2] has been unfortunately rejected, which I think is a mistake.

    [1]: https://github.com/shuhaowu/mysqld-bpf

    [2]: https://bugs.mysql.com/bug.php?id=105741

    Another thing that I've been recently thinking of is using BPF to validate programs written for real-time Linux (via PREEMPT_RT). To my understanding, one of the main thing to avoid is page faults [3]. With the proper BPF tracing scripts, I think we can validate that programs indeed avoids page faults in integration testing. I'm not sure if it is super useful yet, but as I'm trying to write a few RT programs, it's something that came to my mind.

    [3]: https://lwn.net/Articles/837019/

    In addition to tracing (so bpftrace-based/bcc-based tools), I've recently discovered that there there are:

    1. ebpfsnitch (https://github.com/harporoeder/ebpfsnitch): which is an application-level firewall without kernel modules.

    2. ebpf-traffic-monitor (https://source.android.com/devices/tech/datausage/ebpf-traff...): which appears to be using BPF to account for traffic for different apps on Android.

    There are apparently also use cases in the context of security, but I'm not familiar with it.

What are some alternatives?

When comparing ebpfsnitch and mysqld-bpf you can also consider the following projects:

opensnitch - OpenSnitch is a GNU/Linux interactive application firewall inspired by Little Snitch.

firejail - Linux namespaces and seccomp-bpf sandbox