bpf-developer-tutorial
OpenSSL
bpf-developer-tutorial | OpenSSL | |
---|---|---|
8 | 152 | |
2,028 | 24,730 | |
5.2% | 2.2% | |
8.5 | 9.9 | |
4 months ago | 1 day ago | |
C | C | |
MIT License | Apache License 2.0 |
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.
bpf-developer-tutorial
-
eBPF Tutorial by Example 9: Capturing Scheduling Latency and Recording as Histogram
Complete source code can be found at: https://github.com/eunomia-bpf/bpf-developer-tutorial/tree/main/src/9-runqlat
-
The Secure Path Forward for eBPF runtime: Challenges and Innovations
We are github.com/eunomia-bpf, build open source projects to make eBPF easier to use, and exploring new technologies, toolchains and runtimes related to eBPF. For those interested in eBPF technology, check out our tutorial code repository at https://github.com/eunomia-bpf/bpf-developer-tutorial and our tutorials at https://eunomia.dev/tutorials/ for practical understanding and practice. The original text of this article is from https://eunomia.dev/blogs/ebpf-security, welcome to star and follow us.
-
eBPF Tutorial by Example: Learning eBPF Step by Step with Tools
GitHub Repo: https://github.com/eunomia-bpf/bpf-developer-tutorial
Github repo: https://github.com/eunomia-bpf/bpf-developer-tutorial
-
Exploring Seven-Layer Protocol Tracing with eBPF: HTTP and Beyond via Socket Filters and Syscall Tracing
Through this article, readers can gain a deep understanding of how to use eBPF technology for tracing seven-layer protocols, particularly HTTP traffic. This knowledge will help enhance the monitoring and analysis of network traffic, thereby improving application performance and security. If you're interested in learning more about eBPF and its practical applications, you can visit our tutorial code repository at https://github.com/eunomia-bpf/bpf-developer-tutorial or our website at https://eunomia.dev/tutorials/ for more examples and complete tutorials.
-
eBPF Practical Tutorial: Capturing SSL/TLS Plain Text Data Using uprobe
You can find the complete source code here: https://github.com/eunomia-bpf/bpf-developer-tutorial/tree/main/src/30-sslsniff
OpenSSL
-
Local Reverse Proxy
If you're going to use a custom local domain name, you might as well use a self-signed SSL certificate. I'll use OpenSSL for this:
-
How to Resolve Node.js ERR_OSSL_EVP_UNSUPPORTED Error
Are you facing the notorious ERR_OSSL_EVP_UNSUPPORTED error in your Node.js applications? This error is a common stumbling block that occurs due to changes in cryptographic operations handling introduced with Node.js version 17. The root of the problem lies in the default configuration of OpenSSL in newer Node.js versions, which restricts the use of certain algorithms. Fortunately, there are effective solutions to overcome this error, ensuring your development process remains smooth and uninterrupted.
-
RVM Ruby 2.6.0 — built with custom openssl version on Ubuntu 22.04
ENV OPENSSL_PREFIX=/opt/openssl ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt WORKDIR /tmp RUN git clone --branch OpenSSL_1_0_2n https://github.com/openssl/openssl.git RUN cd openssl RUN ./config shared --prefix=$OPENSSL_PREFIX --openssldir=$OPENSSL_PREFIX/ssl RUN make RUN make install RUN rvm install 2.6.0 -C --with-openssl-dir=$OPENSSL_PREFIX ENV PATH /usr/local/rvm/bin:$PATH RUN rvm --default use ruby-2.6.0 ENV PATH /usr/local/rvm/bin:/usr/local/rvm/rubies/ruby-2.6.0/bin:$PATH ENV GEM_HOME /usr/local/rvm/rubies/ruby-2.6.0/lib/ruby/gems/2.6.0
-
Heartbleed and XZ Backdoor Learnings: Open Source Infrastructure Can Be Improved Efficiently With Moderate Funding
Today, April 7th, 2024, marks the 10-year anniversary since CVE-2014-0160 was published. This security vulnerability known as "Heartbleed" was a flaw in the OpenSSL cryptography software, the most popular option to implement Transport Layer Security (TLS). In more layman's terms, if you type https:// in your browser address bar, chances are high that you are interacting with OpenSSL.
-
Ask HN: How does the xz backdoor replace RSA_public_decrypt?
At this point I pretty much understand the entire process on how the xz backdoor came to be: its execution stages, extraction from binary "test" files etc. But one thing puzzles me: how can the ifunc mechanism be used to replace something like RSA_public_decrypt? Granted this probably stems from my lack of understanding of ifunc, but I was under the impression that in order for the ifunc mechanism to work in your code, you have to explicitly mark specific function with multiple implementations with __attribute__ ((ifunc ("the_resolver_function"))). Looking at the source code of the RSA function in question, ifunc attribute isn't present:
https://github.com/openssl/openssl/blob/master/crypto/rsa/rsa_crpt.c#L51
So how does the backdoor actually replace the call? Does this means that the ifunc mechanism can be used to override pretty much anything on the system?
-
Use of HTTPS Resource Records
OpenSSL and Go crypt/tls has no support yet, so none of the webservers that depend on them support it. Apache, Nginx, and Caddy, they all need upstream ECH support first.
- https://github.com/openssl/openssl/issues/7482
- https://github.com/openssl/openssl/pull/22938
- https://github.com/golang/go/issues/63369
- openssl-3.2.0 released
- Large performance degradation in OpenSSL 3
- OpenSSL 3.2 Alpha 2
-
Encrypted Client Hello – the last puzzle piece to privacy
If I'm understanding the draft correctly, I think the webserver you're hosting your sites on would need it implemented as it requires private keys and ECH configuration. In the example of nginx since it uses openssl, openssl would need to implement it. I found an issue on their Github but it's still open: https://github.com/openssl/openssl/issues/7482
What are some alternatives?
wasm-bpf - WebAssembly library, toolchain and runtime for eBPF programs
GnuTLS - GnuTLS
libbpf - Automated upstream mirror for libbpf stand-alone build.
Crypto++ - free C++ class library of cryptographic schemes
TripleCross - A Linux eBPF rootkit with a backdoor, C2, library injection, execution hijacking, persistence and stealth capabilities.
mbedTLS - An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API. Releases are on a varying cadence, typically around 3 - 6 months between releases.
xdp-tutorial - XDP tutorial
libsodium - A modern, portable, easy to use crypto library.
bpftune - bpftune uses BPF to auto-tune Linux systems
LibreSSL - LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code. Pull requests or patches sent to [email protected] are welcome.
bcc - BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more
cfssl - CFSSL: Cloudflare's PKI and TLS toolkit