Email or username:

Password:

Forgot your password?
Matthew Garrett

"Linux would have prevented this!" literally true because my former colleague KP Singh wrote a kernel security module that lets EDR implementations load ebpf into the kernel to monitor and act on security hooks and Crowdstrike now uses that rather than requiring its own kernel module that would otherwise absolutely have allowed this to happen, so everyone please say thank you to him

66 comments
growse ❎

@mjg59 are crowdstrike actually using that yet?

I've heard (seventeenth-hand) that they're not supporting Ubuntu 24.04 yet because of eBPF, but am sure it's probably more complicated than that.

In any case, great job on writing the correct interface / abstraction KP!

ticho

@mjg59 @growse That sounds great! We had several production Linux servers crashing just last year because of silent kernel memory corruption by the CS Falcon kernel module, so it's good to know this will cease to be an issue going forward.

growse ❎

@mjg59 i will go hassle the people who owe me a 24.04 image and are using crowdstrike as a reason that it doesn't exist yet. Thanks!

smolwaffle

@growse
They definitely still claim not to support Ubuntu 24.04. That's the same reason why my current employer is insisting that we all migrate to Ubuntu 22.04 rather than 24.04.

I haven't looked at the actual script that checks kernel versions to see if it lists the one used in 24.04.
@mjg59

growse ❎

@smolwaffle @mjg59 i mean, security vendor doesn't support current LTS of major OS distribution is a smell in itself...

Matthew Garrett

@smolwaffle @growse ebpf doesn't entirely abstract you from kernel internals - you still need to deal with internal API and ABI changes, so there's still some work in supporting newer kernels. It just means you'll fail to work rather than taking the entire thing down with you.

growse ❎

@mjg59 @smolwaffle fair, and arguably the important bit.

When it comes to an agent that (typically) another group is foisting on a service, "working" is not a primary concern. "Not taking the box down" is much more significant:)

Nicolas SAPA
@growse @mjg59 Yes they use eBPF on Linux host.
I was pleasantly surprised to see their agent didn't taint the kernel on RHEL 8 and Debian Bookworm.
ᓚᘏᗢ 🦋

@mjg59 that sounds totally fair. Thank you, KP Singh.

baloo

@mjg59 they are using it, but they still have the module implementation available (and this is documented as the preferred option)

waldi

@baloo @mjg59 Could you please extract that module binary? It describes itself as GPL, so no problem in publishing this.

baloo

@waldi @mjg59 and you should ask for a copy of it to legal@

e. hashman

@mjg59 oh hey, that's a big improvement!

Matthew Garrett

@james my understanding is that that affected people still using the old kernel driver (eg, if your os is too old to have the new ebpf hotness)

Tony Yarusso

@mjg59 @james As anecdotal support for this, we do indeed have Linux systems running falcon-sensor, and I don’t recall any issues in April/May/June with it.

ᴺⁱˡᶻ 🍸

@TonyYarusso @mjg59 @james

blog.fefe.de/?ts=9864a262
"April auch für Debian Linux 12 nach dem Update auf Kernel Version 6.1.0-20 im Kombination mit falcon-sensor version 7.10 bis 7.14"

Stijn van Drongelen

@nilz @TonyYarusso @mjg59 @james The "user mode" mentioned as the workaround in that post is eBPF, as opposed to the old driver in "kernel mode".

Notavi

@mjg59 @james Probably relates to this Redhat issue - access.redhat.com/solutions/70

Apparently their latest releases still ship with 5.14, which they apparently maintain as their own branch (mainline considered it EOL back in November 2021).

Do wonder WTF there rationale is for that one.

the vessel of morganna

@StryderNotavi @mjg59 @james That's how Redhat has always worked, they pick a kernel version and stick with it for the entire life cycle of that release, backporting features and bugfixes as needed. It isn't like a vanilla 5.14 kernel at all. EL6 was officially 100% EOL just last July, and that was 2.6.32.

Notavi

@astraleureka @mjg59 @james That makes sense, although it does get me that RHEL 9.0 was released May 2022 with a Kernel that had already been EOL for six months.

I can get why you'd avoid upgrading subsequent releases to keep things stable for enterprise customers, but surely you'd want to start off up to date?

Mike Rochefort :fedora:

@StryderNotavi @astraleureka @mjg59 @james A package freeze occurs before GA, and at that point in time CentOS Stream had 5.14. The term backporting is commonly used, but it makes things sound minor. RHEL engineering rebases entire subsystems in the kernel, it's why the version number can't be used for comparisons. It only marks the starting point; the RHEL 9.4 kernel is more like a 6.5/6.6 kernel today than 5.14.

Vincent Sgherzi

@mjg59 I love ebpf i feel like its a very low key feature

Deus
@mjg59

To my fellow Penguins, pushing this #Crowdstrike incident as a reason to replace #Windows with #Linux is probably not a good move as Crowdstrike broke Linux systems about six weeks back with a similar fuck up - at least according to people on Reddit and Hackernews.

Crowdstrike is the primary failure here. Let's kick their shit to the curb.

Source: https://charcha.social/@npub1552l8p82ahvkqd8hdjkar24nk3r7rqnpsfuuz3q7cmmw6kvke48qvg7545/posts/d2e0bc7d9e1def1d1b9317f74fae787c33e8d3658c98c1d638b76dd936253560

@mjg59

To my fellow Penguins, pushing this #Crowdstrike incident as a reason to replace #Windows with #Linux is probably not a good move as Crowdstrike broke Linux systems about six weeks back with a similar fuck up - at least according to people on Reddit and Hackernews.

Crowdstrike is the primary failure here. Let's kick their shit to the curb.

LovesTha :manaBG: :manaGU:

@mjg59 and that is due to the open nature of Linux. Your friend couldn't write that functionality for the windows kernel.

the vessel of morganna

@lovestha @mjg59 Windows being closed source never stopped the motivated devs. *vaguely gestures at Virtuozzo for Windows, which added full blown container support to Windows Server 2003*

LovesTha :manaBG: :manaGU:

@astraleureka @mjg59 yeah, but it can push you into less robust options ;)

Jean-Francois Mezei

@mjg59 If it runs in kernel mode it can still crash the system. The issue here is code that is fed incorrect data and does not validate it and crashes.

Matthew Garrett

@jfmezei Could you explain how ebpf is going to crash the system

Jean-Francois Mezei

@mjg59 I you have code that runs in kernel mode (the CPU mode) and there is a fault (invalid op code, memory access, divide by 0 etc), then the whole system crashes because there is no fault handler to just crash a process.

Matthew Garrett

@jfmezei Yes. How does ebpf code generate any of those things?

Jason Haar :laserkiwi:

@mjg59 @jfmezei this is what happened with redhat. They apparently backported some ebpf code to their older rhel9 kernel and introduced a bug. Kernel bugs are normally a good way of crashing things. I would guess their testing didn't pick it up, but then third party crowdstrike loads it's complex ebpf ruleset and "goodnight nurse" ! We lost a bunch of servers that way. Thankfully grub made recovery vastly easier than the current windows nightmare

Alex Haydock

@jhaar @mjg59 @jfmezei True, though I do think mjg’s point still stands since the crash there was really as a result of bugs in Red Hat’s backported kernel code for BPF handling, and not because of CrowdStrike’s actual BPF code.

It’s just extremely unfortunate timing for people making the “eBPF would solve this” argument that this BPF handling bug surfaced recently and of all things it was CrowdStrike that managed to trigger it. :blobcatfacepalm:

Jason Haar :laserkiwi:

@alexhaydock Longer term Crowdstrike is probably doing eBPF a favor: giving it a strong workout - discovering bugs/etc. In fact, the same thing happened after Apple stopped allowing kext modules in MacOS. Crowdstrike flipped over to use the new Mac telemetry APIs and hit bugs there too, ...and then Apple fixed them.

Bjørn Kasper

@mjg59 Ubuntu use that for future securities.

Netux

@mjg59 looks like crowdstrike could have dope the same for windows if I understand the basics right.

opensource.microsoft.com/blog/

If they are doing it for Linux and not windows, I think that may be a big enough neglect to destroy the company to lawsuits and maybe even get a couple of people in jail for the financial damage they wrought.

Saupreiss #Präparat500

@Netux

The minus in Company value suggests what the Assets are worth when theyre being sold. Because the Brand is burned now, so its time to be taken over by another corp….

@mjg59

Bjoern

@mjg59 ... if you're using a kernel that supports it, which many RHEL users won't for the next 10 years or so.

Joubin 🛡️

@mjg59 can you link me to source or doc of what you’re referencing?

Jernej Virag :androidHead:

@mjg59 Meanwhile in RedHat mailing lists, crowdstrike ebpf kernel panicking the machine: access.redhat.com/solutions/70 :D

Stephan

@mjg59 Crowdstrike Falcon actually did cause kernel panics in Debian in April and in Red Hat in May. The difference: No sane Linux user is using Crowdstrike in the first place.

Simon Lucy

@mjg59

Mind, it was a sensor configuration, not code and a sensor that isn't on Linux or Mac.

River

@mjg59 And macOS killed off kernel extensions years ago. developer.apple.com/support/ke

We weren’t just lucky.

Brian Reiter

@mjg59 @pluralistic eBPF is a re-implementation of concepts from dtrace to avoid CDDL and not invented here syndrome. Windows has dtrace and AMSI. CrowdStrike implemented its own kernel module using those. What you are saying is that someone demanded a higher quality implementation on Linux or shipping binary kernel extensions for Linux was too much pain for them.

Forest

@mjg59 not to mention that with LUKS, you don't lose access to the disk encryption key, because if you did, you wouldn't be able to use the computer anymore. You have to type it in every single time it boot.

IMO the real problem is that everyone has been giving up ownership of "their" computer, and are just now realizing that hmm, this might be a problem -- if its not yours, you won't have access to fix it in the event something does go wrong. And we all know Linux has its own fair share of ways to brick its boot process.

@mjg59 not to mention that with LUKS, you don't lose access to the disk encryption key, because if you did, you wouldn't be able to use the computer anymore. You have to type it in every single time it boot.

IMO the real problem is that everyone has been giving up ownership of "their" computer, and are just now realizing that hmm, this might be a problem -- if its not yours, you won't have access to fix it in the event something does go wrong. And we all know Linux has its own fair share of ways...

翠星石
@mjg59 Not loading arbitrary proprietary malware onto your computers that loads more of it and poorly formatted config files via a remote backdoor would have prevented it.

What license was the crowdstrike Linux module under?
Alba 🌸 :v_pat:

@mjg59 unfortunately (now I'm very curious as to where the bug was here)

Alba 🌸 :v_pat:

@mjg59 and also, apparently MS did try to force AV vendors out of kernel drivers and through APIs, but they did not cooperate and threatened an antitrust lawsuit. I wonder if Linux could've gotten away with it if it was that big a platform 🤔

Simon

@mjg59 I find these recent takes by the Linux “Master Race” / Community extremely toxic and damaging to the community. Open Source Software is not the answer and has shared it’s own number of recent controversies (ie XC, OpenSSL) but these seem to be forgotten about pretty quickly - just because it’s open doesn’t mean it’s secure. As a software developer and user of MacOS, Windows 11 and Debian 12, I find all 3 OS’s have their place, purpose and reason to co-exist

Matthew Garrett

@Simbo2k6 I don't think open source solves this problem, but this *specific* problem is absolutely solved by Linux and I am not going to generalise beyond that

Go Up