genode
bcc
Our great sponsors
genode | bcc | |
---|---|---|
14 | 71 | |
8 | 19,450 | |
- | 2.4% | |
0.0 | 9.2 | |
7 days ago | 6 days ago | |
C | C | |
GNU General Public License v3.0 only | 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.
genode
-
Design, Implementation and Evaluation of the SeL4 Device Driver Framework [pdf]
seL4 foundation members[0] are using it.
There's Genode[1], which supports it among other kernels, offering a fancy desktop environment.
However, efforts like this driver framework do help. There's also Makatea[2], an effort to implement a stronger Qubes-like system based on seL4.
0. https://sel4.systems/Foundation/Membership/
1. https://genode.org/
2. https://trustworthy.systems/projects/makatea/
-
eBPF Documentary
> While this is true from a certain perspective, machine code creates a system which must grand access to many things to become usable. A shared file system is a good example of this. Some software could easily echo a line into you .profile that tries to launch a key-logger, and this works in many cases.
That's common, but it's certainly not a requirement to run native code. For example, we've done a pretty good job at retroactively fixing that while preserving backwards compatibility with containers (I can, and have run normal official Firefox binaries inside a docker container with zero access to my real home directory) or sandboxes like flatpak (bubblewrap). If you want to run real native binaries but don't have to preserve backwards compatibility, then it gets easy; genode ( https://genode.org/ ) does a lovely job of truly practicing only giving programs what access you want to give them.
> The expectation of software existing as opaque files creates a huge amount of work for the OS in verifying the exact behaviour of the software as it runs (and in ways which can often be circumvented), rather than a source-based approach in which malware is never allowed to touch the processor.
I think you're overoptimistic regarding what you can do with the source code short of manual (human) auditing. I mean, sure there are things you can scan for to try and catch bad behavior, but in the case of actual malice I wouldn't trust automatic code analysis to protect me.
>> I'm typing this on a nice comfy GNU/Linux box where the only blobs are some firmware
> So you suffer the worst of both worlds then. You've had to download and compile the source yourself, but as the software is designed around being distributed as blobs, so you enjoy none of the benefits that might come from source distribution.
I have no idea why you think either of those things? Depending on the distro I certainly can compile from source on my own box (ex. Gentoo, NixOS), but I can also use precompiled binaries (ex. Debian, NixOS) while still having it be trivial to go find the exact source that went in to the binary package I downloaded (this has gotten even stronger with Reproducibility efforts meaning that I can even verify the exact source and build config that created a specific binary). The actual application software and OS are available as Open Source code that can be audited, with binaries available as a convenience, and the only remaining blobs (unwelcome but impractical to fix so far) are firmware blobs with relatively constrained roles (and on machines with an IOMMU we can even enforce what access they have, which is a nice mitigation).
-
Showstopper: Nobody is writing new operating systems any more
Genode[1] is slowly approaching the point at which I can use it as a daily driver. I hope it makes it before Windows 10 goes away. It will be nice to never have to work about viruses, or spyware, etc., any more. It'll be like a trip back to the free spirited days of DOS and write protected floppy boot disks.
[1] https://genode.org/
- GNU/Hurd strikes back: How to use the legendary OS in a (somewhat) practical way
-
Ask HN: How to get into OS/systems programming in 2023?
I'd dig into genode[1], which is a capability based operating system. You'll likely see an upsurge in interest in capability based systems in the next decade.
[1] https://genode.org/
-
Linux Kernel Ksmbd Use-After-Free Remote Code Execution Vulnerability
Yet another exploit that just wouldn't work on a well-designed system, such as Genode[0].
0. https://genode.org/
-
the maddening truth of using Qubes
Have you looked at Genode? I don't think it's usable day-to-day yet but the concepts seem interesting.
- The Helios Microkernel: Written in Hare
- We've started a RISC-V64 Microkernel OS Project called "Generisc". We're gonna redo eveything an OS is with the "end" goal of a fully fledged running web-browser. Anybody wanna come aboard. Support and ideas is enough. No need for coding if you don't have time, just interest and feedback is good
-
Anyone wanna join me in changing out the Linux kernel with seL4? Not running LFS inside a seL4 hypervisor, but actually a native seL4 OS.
Maybe you should go into details a bit more what you are planning and why. There are (and have been) several approaches here. The most prominent might be Genode (https://www.reddit.com/r/genode, https://genode.org) and joining forces there might be a better approach than starting another project that will get lost in the details and complexity eventually.
bcc
-
eBPF: Unleashing Kernel Magic for Modern Infrastructure
But wait, there's more! Enter the BCC toolkit and library, your trusty sidekick in simplifying the arcane art of writing eBPF applications. With BCC by your side, you'll be wielding eBPF like a seasoned pro in no time.
-
Linux: Easy Keylogger with eBPF (2018)
Nice - I normally use [bash-readline](https://github.com/iovisor/bcc/blob/master/tools/bashreadlin...) when coworking/co-inhabiting a server or training someone.
-
eBPF Documentary
One of the big wins is not so much “build and run your own stuff” but there are very nice low-cost (in terms of compute) performance utilities built on eBPF
https://github.com/iovisor/bcc
There are so many utilities in that list; there’s a diagram midway down the readme which tries to help show their uses. bcc-tools should be available in any distro.
Also, Brendan Gregg does a ton of performance stuff that is worth knowing about if you check out his other work. Not eBPF only. Flame graphs are useful.
- Bpftop: Streamlining eBPF performance optimization
-
eBPF Tutorial by Example 16: Monitoring Memory Leaks
Reference: https://github.com/iovisor/bcc/blob/master/libbpf-tools/memleak.c
- eBPF Tutorial by Example 9: Capturing Scheduling Latency and Recording as Histogram
-
Uprobes Siblings - Capturing HTTPS Traffic: A Rust and eBPF Odyssey
In this article, we'll build a basic version of an HTTPS sniffer, inspired by bcc-sslsniff.py, but we'll use Rust and Aya. We're going to demonstrate the capabilities of uprobes by employing uprobe and uretprobe along with familiar maps like PerCpuArray, HashMap, and PerEventArray. This will be a straightforward example to help us explore how uprobes function.
-
Issue XDP_REDIRECT on other interface in the same namespace
As xpd program I am using the BCC example xdp_redirect_map.py in skb mode as my NIC does not support native mode, attaching the program to veth2 and a dummy function to veth3
-
Linux runtime security agent powered by eBPF
https://github.com/iovisor/bcc/blob/master/docs/reference_gu...
- eBPF Practical Tutorial: Capturing SSL/TLS Plain Text Data Using uprobe
What are some alternatives?
madaidans-insecurities.github.io
libbpf - Automated upstream mirror for libbpf stand-alone build.
omnios-build - Build system for OmniOS
bpftrace - High-level tracing language for Linux eBPF [Moved to: https://github.com/bpftrace/bpftrace]
Helios-NG - Breathing new live in Helios, an OS from the 90's
ebpf-for-windows - eBPF implementation that runs on top of Windows
systemd-for-administrators - A systemd-Handbook written by Lennart Poettering
zfs - OpenZFS on Linux and FreeBSD
qubes-app-linux-usb-proxy - USBIP over qrexec proxy
linux - Linux kernel source tree
manjarno - Why you shouldn't use Manjaro
nokogiri-rust - Ruby FFI wrapper around scraper crate to be used instead of Nokogiri. Status: proof of concept.