No More Blue Fridays

From Brendan Gregg’s blog:

In the future, computers will not crash due to bad software updates, even those updates that involve kernel code. In the future, these updates will push eBPF code.

Friday July 19th provided an unprecedented example of the inherent dangers of kernel programming, and has been called the largest outage in the history of information technology. Windows computers around the world encountered blue-screens-of-death and boot loops, causing outages for hospitals, airlines, banks, grocery stores, media broadcasters, and more. This was caused by a config update by a security company for their widely used product that included a kernel driver on Windows systems. The update caused the kernel driver to try to read invalid memory, an error type that will crash the kernel.

For Linux systems, the company behind this outage was already in the process of adopting eBPF, which is immune to such crashes. Once Microsoft’s eBPF support for Windows becomes production-ready, Windows security software can be ported to eBPF as well. These security agents will then be safe and unable to cause a Windows kernel crash.

eBPF (no longer an acronym) is a secure kernel execution environment, similar to the secure JavaScript runtime built into web browsers. If you’re using Linux, you likely already have eBPF available on your systems whether you know it or not, as it was included in the kernel several years ago. eBPF programs cannot crash the entire system because they are safety-checked by a software verifier and are effectively run in a sandbox. If the verifier finds any unsafe code, the program is rejected and not executed. The verifier is rigorous — the Linux implementation has over 20,000 lines of code — with contributions from industry (e.g., Meta, Isovalent, Google) and academia (e.g., Rutgers UniversityUniversity of Washington). The safety this provides is a key benefit of eBPF, along with heightened security and lower resource usage.

eBPF has to be one of the most brilliant innovations to come out of Linux kernel development. Remeber:

If your company is paying for commercial software that includes kernel drivers or kernel modules, you can make eBPF a requirement. It’s possible for Linux today, and Windows soon. While some vendors have already proactively adopted eBPF (thank you), others might need a little encouragement from their paying customers. Please help raise awareness, and together we can make such global outages a lesson of the past.


Posted

in

by

Tags:

Discover more from Unixism

Subscribe now to keep reading and get access to the full archive.

Continue reading