this post was submitted on 22 Jul 2024
258 points (97.8% liked)

Technology

58303 readers
17 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 76 points 4 months ago* (last edited 4 months ago) (7 children)

We all hate Microsoft for turning Windows into an ad platform but they aren't wrong.

They are legally required to give Crowdstrike or anyone complete low level access to the OS. They are legally required to let Crowdstrike crash your computer. Because anything else means Microsoft is in control and not the software you installed.

It's no different than Linux in that way. If you install a buggy device driver on Linux, that's your/the driver's fault, not Linux.

[–] [email protected] 56 points 4 months ago* (last edited 4 months ago)

You are not wrong, but people don't want to hear it. Do we want to retain control over what goes into kernel space or not? If so, we have to accept that whatever we stuff in there can crash the entire thing. That's why we have stuff like driver signatures. Which Crowdstrike apparently bypassed with a technical loophole from how I understand it.

[–] [email protected] 4 points 4 months ago (1 children)

But what if Windows have something similar to eBPF in Linux, and CS opted to use it, will this disaster won't happen at all or in a much smaller scale and less impactful?

[–] [email protected] 5 points 4 months ago (2 children)

Crowdstrike managed to fuck up Linux through eBPF just as well.

https://access.redhat.com/solutions/7068083

If you load hacky shit into the kernel it can always find a way to make a nasty surprise. eBPF is a little bit better fence, not some miracle that automatically fixes shitty code.

[–] [email protected] 2 points 4 months ago* (last edited 4 months ago)

But these eBPF loader bugs are fixed now. Windows drivers are still causing BSODs and will continue to do so until Microsoft adopts eBPF.

[–] [email protected] 1 points 4 months ago
[–] [email protected] -1 points 4 months ago* (last edited 4 months ago) (1 children)

~~The thing is, Microsoft's virus-scanning API shouldn't be able to BSOD anything, no matter what third-party software makes calls to it, or the nature of those calls. They should have implemented some kind of error handler for when the calls are malformed.~~

~~So this is really a case of both Crowdstrike and Microsoft fucking up. Crowdstrike shoulders most of the blame, of course, but Microsoft really needs to harden their API to appropriately catch errors, or this will happen again.~~

I'm an idiot. For some reason, I was thinking about the Windows Defender API, which can be called from third-party applications.

[–] [email protected] 11 points 4 months ago (1 children)

I don't believe there was any specific API in use here, for virus scanning or not. I suppose maybe the device driver API? I am not a kernel developer so I don't know if that's the right term for it.

Crowdstrike's driver was loaded at boot and caused a null pointer dereference error, inside the kernel. In userspace, when this happens, the kernel is there to catch it so only the application that caused it crashes. In kernelspace, you get a BSOD because there's really nothing else to do.

https://youtube.com/watch?v=wAzEJxOo1ts

[–] [email protected] 5 points 4 months ago

I stand corrected. For some reason, I was thinking they used the actual Windows Defender API, which can be called programmatically from third-party applications, but you're correct, it was a driver loaded at boot. Microsoft isn't at all at fault, here.