News for hackers. Stuff that matters.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by rwmj on Sunday July 21, 2024 @05:03AM (#41023591)
Zero effort to fuzz test the parser too. I mean, we know how to harden parsers against bugs and attacks, and any semi-competent fuzzer would have caught such a trivial bug.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by mavhc on Sunday July 21, 2024 @05:18AM (#41023662)
AV software is a great target for malware, badly written, probably runs too much stuff in the kernel, tries to parse everything
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by Comfy-Tinwork on Sunday July 21, 2024 @07:25AM (#41024287)
And at the very least straight to system level access if not more.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by MyFedora on Sunday July 21, 2024 @08:02AM (#41024484)
Anti-cheats also whitelist legit AV drivers, even though cheaters exploit them to no end.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by londons_explore on Sunday July 21, 2024 @08:47AM (#41024700)
AV software needs kernel privilidges to have access to everything it needs to inspect, but the actual inspection of that data should be done with no privilidges.

I think most AV companies now have a helper process to do that.

If you successfully exploit the helper process, the worst damage you ought to be able to do is falsely find files to be clean.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by bornfreddy on Monday July 22, 2024 @07:17AM (#41033114)
> ...the worst damage you ought to be able to do is...

Ought. But it depends on the way the communication with the main process is done. I wouldn't be surprised if the main process trusts the output from the parser just a tiny bit too much.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by chrisjj on Sunday July 21, 2024 @05:16AM (#41023652)
The triggering file was all zeros.

It is not possible that only this pattern caused the crash, and fuzzing omitted to try this unfuzzy pattern?

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by Retr0id on Sunday July 21, 2024 @07:04AM (#41024161)
Competent fuzzers don't just use random bytes, they systematically explore the state-space of the target program. If there's a crash state to be found by feeding in a file full of null bytes, it's probably going to be found quickly.

A fun example is that if you point AFL at a JPEG parser, it will eventually "learn" to produce valid JPEG files as test cases, without ever having been told what JPEG file is supposed to look like. https://lcamtuf.blogspot.com/2014/11/pulling-jpegs-out-of-th...

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by rwmj on Sunday July 21, 2024 @08:18AM (#41024563)
AFL is really "magical". It finds bugs very quickly and with little effort on our part except to leave it running and look at the results occasionally. We use it to fuzz test a variety of file formats and network interfaces, including QEMU image parsing, nbdkit, libnbd, hivex. We also use clang's libfuzzer with QEMU which is another good fuzzing solution. There's really no excuse for CrowdStrike not to have been using fuzzing.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by monsieurbanana on Sunday July 21, 2024 @05:50AM (#41023821)
In my limited experience, I thought any serious fuzzing program does test for all "standard" patters like only null bytes, empty strings, etc...
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by omeid2 on Sunday July 21, 2024 @06:00AM (#41023861)
The files in question has a magic number is "0xAAAAAAAA" so it is not possible that the file was all zeros.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by formerly_proven on Sunday July 21, 2024 @05:54AM (#41023839)
Instrumented fuzzing (like AFL and friends) tweaks the input to traverse unseen code paths in the target, so they're super quick to find stuff like "heyyyyy, nobody is actually checking if this offset is in bounds before loading from that address".
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by gliptic on Sunday July 21, 2024 @05:41AM (#41023772)
No, it wasn't. Crowdstrike denied it had to do with zeros in the files.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by jojobas on Sunday July 21, 2024 @06:24AM (#41023969)
At this point I wouldn't be paying too much attention to what Crowdstrike is saying.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hello_moto on Sunday July 21, 2024 @10:25AM (#41025315)
Have to speak the truth albeit at minimum, in case legal...
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by kchr on Sunday July 21, 2024 @11:51AM (#41025934)
Which also explains why they, only if needed to cover their back legally, confirm or deny details being shared on social and mass media.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by watwut on Sunday July 21, 2024 @05:41AM (#41023774)
Possible? Yes. Likely? No.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by layer8 on Sunday July 21, 2024 @12:22PM (#41026140)
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by jatins on Sunday July 21, 2024 @09:02AM (#41024784)
You are seriously overestimating the engineering practises at these companies. I have worked in "enterprise security" previously though not at this scale. In a previous life I worked with of the engineering leaders currently at Crowdstrike.

I'll bet you this company has some arbitrary unit test coverage requirements for PRs which developers game be mocking the heck out of dependencies. I am sure they have some vanity sonarqube integration to ensure great "code quality". This likely also went through manual QA.

However I am sure the topic of fuzz testing would not have come up once. These companies sell checkbox compliance, and they themselves develop their software the same way. Checking all the "quality engineering" boxes with very little regards for long term engineering initiatives that would provide real value.

And I am not trying to kick Crowdstrike when they are down. It's the state of any software company run by suits with myopic vision. Their engineering blogs and their codebases are poles apart.