News for hackers. Stuff that matters.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by mtlmtlmtlmtl on Sunday July 21, 2024 @04:52AM (#41023539)
There's at least five different things that went wrong simultaneously.

1. Poorly written code in the kernel module crashed the whole OS, and kept trying to parse the corrupted files, causing a boot loop. Instead of handling the error gracefully and deleting/marking the files as corrupt.

2. Either the corrupted files slipped through internal testing, or there is no internal testing.

3. Individual settings for when to apply such updates were apparently ignored. It's unclear whether this was a glitch or standard practice. Either way I consider it a bug(it's just a matter of whether it's a software bug or a bug in their procedures).

4. This was pushed out everywhere simultaneously instead of staggered to limit any potential damage.

5. Whatever caused the corruption in the first place, which is anyone's guess.

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.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dartos on Sunday July 21, 2024 @08:02AM (#41024488)
Bugs happen.

Not staggering the updates is what blew my mind.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by londons_explore on Sunday July 21, 2024 @08:51AM (#41024726)
Since the issue manifested at 04:09 UTC, which is 11pm where Crowdstrikes HQ is, I would guess someone was working late at night and skipped the proper process so they could get the update done and go to bed.

They probably considered it low risk, had done similar things of times hundreds of times before, etc.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by kchr on Sunday July 21, 2024 @11:57AM (#41025973)
A good reminder of the fact that your Thursday might be someone else's Friday.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dartos on Sunday July 21, 2024 @09:06AM (#41024803)
> They probably considered it low risk

Wild that anyone would consider anything in the “critical path” low risk. I would bet that they just don’t do rolling releases normally since it never caused issues before.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hello_moto on Sunday July 21, 2024 @10:27AM (#41025333)
Companies these days are global btw.

Not everyone is working on the same timezone.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by londons_explore on Sunday July 21, 2024 @10:56AM (#41025553)
They don't appear to have engineering jobs in any location where that would be considered regular office hours...
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hello_moto on Sunday July 21, 2024 @11:42AM (#41025882)
https://crowdstrike.wd5.myworkdayjobs.com/crowdstrikecareers

I see remote, Israel, Canada.

https://crowdstrike.wd5.myworkdayjobs.com/en-US/crowdstrikec...

This one specifically Spain and Romania

I know they bought companies all over the globe from Denmark to other locations.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by londons_explore on Sunday July 21, 2024 @12:51PM (#41026336)
0409UTC is 07:09 AM in Israel. Doubt an engineer was doing a push then either...

All the other engineering locations seem even less likely.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by vitus on Sunday July 21, 2024 @02:02PM (#41026824)
On Friday, no less. (Israel's weekend is Friday / Saturday instead of the usual Saturday / Sunday.)
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by d1sxeyes on Monday July 22, 2024 @06:45AM (#41032923)
Not sure of Crowdstrike's specific arrangements, but a lot of Israelis do work on Friday mornings.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by HDThoreaun on Sunday July 21, 2024 @10:02PM (#41030235)
Their sales pitch is being the first to apply patches for any virus. I think it makes sense to try to push as quickly as possible when speed of updates is core to your sales pitch.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by RoyalHenOil on Tuesday July 23, 2024 @10:54AM (#41046611)
Marketing is supposed to sell the product, not lead the product. They need to get their priorities straight.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by ratorx on Sunday July 21, 2024 @06:49AM (#41024081)
I’d also maybe add another one on the Windows end:

6) some form of sandboxing/error handling/api changes to make it possible to write safer kernel modules (not sure if it already exists and was just not used). It seems like the design could be better if a bad kernel module can cause a boot loop in the OS…

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by leosarev on Sunday July 21, 2024 @08:14AM (#41024541)
There is sandboxing API in Windows. It's called running programs in userspace.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hello_moto on Sunday July 21, 2024 @10:44AM (#41025462)
Run what a userspace?
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by layer8 on Sunday July 21, 2024 @12:26PM (#41026163)
It’s a tough problem, because you also don’t want the system to start without the CrowdStrike protection. Or more generally, a kernel driver is supposedly installed for a reason, and presumably you don’t want to keep the system running if it doesn’t work. So the alternative would be to shut down the system upon detection of the faulty driver without rebooting, which wouldn’t be much of an improvement in the present case.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by ratorx on Sunday July 21, 2024 @01:27PM (#41026586)
I can imagine better defaults. Assuming the threat vector is malicious programs running in userspace (probably malicious programs in kernel space is game over anyway right?), then you could simply boot into safe mode or something instead of crashlooping.

One of the problems with this outage was that you couldn’t even boot into safe mode without having the bit locker recovery key.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by layer8 on Sunday July 21, 2024 @01:31PM (#41026621)
You don’t want to boot into safe mode with networking enabled if the software that is supposed to detect attacks from the network isn’t running. Safe mode doesn’t protect you from malicious code in userspace, it only “protects” you from faulty drivers. Safe mode is for troubleshooting system components, not for increasing security.

I don’t know the exact reasoning why safe mode requires the BitLocker recovery key, but presumably not doing so would open up an attack vector defeating the BitLocker protection.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by Uvix on Sunday July 21, 2024 @03:44PM (#41027579)
Normally BitLocker gets the key from the TPM, which will have its own driver that's likely disabled in Safe Mode.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by discostrings on Sunday July 21, 2024 @04:43PM (#41027930)
The BitLocker configurations I've seen over the last few days don't require the recovery key to enter safe mode.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by sm_1024 on Sunday July 21, 2024 @06:23PM (#41028793)
Doesn't microsoft support eBPF on Windows?

https://github.com/microsoft/ebpf-for-windows

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by nullfrigid on Monday July 22, 2024 @10:18AM (#41034691)
If you know the answer why are you asking the question?
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by 0xBDB on Monday July 22, 2024 @03:14PM (#41038588)
No. Not in production yet. But that should solve this problem once it's available for any company that uses it (and I believe CrowdStrike is heavily involved with it).
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by simonh on Sunday July 21, 2024 @05:16AM (#41023650)
There is a story out that the problem was introduced in a post processing step after testing. That makes more sense than that there was no testing. If true it means they thought they’d tested the update, but actually hadn’t.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hulitu on Sunday July 21, 2024 @06:44AM (#41024055)
6. No development process, no testing.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by krisoft on Sunday July 21, 2024 @07:34AM (#41024336)
How is that different from point 2?
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by rco8786 on Sunday July 21, 2024 @08:25AM (#41024607)
Number 4 continues to be the most surprising bit to me. I could not fathom having a process that involves deploying to 8.5 million remote machines simultaneously.

Bugs in code I can almost always understand and forgive, even the ones that seem like they’d be obvious with hindsight. But this is just an egregious lack of the most basic rollout standards.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by mbreese on Sunday July 21, 2024 @11:47AM (#41025906)
For me, number 1 is the worst of the bunch. You should always expect that there will be bugs in processes, input files, etc… the fact that their code wasn’t robust enough to recognize a corrupted file and not crash is inexcusable. Especially in kernel code that is so widely deployed.

If any one of the five points above hadn’t happened, this event would have been avoided. However, if number 1 had been addressed - any of the others could have happened (or all at the same time) and it would have been fine.

I understand that we should assume that bugs will be present anywhere, which is why staggered deployments are also important. If there had been staggered deployments, the. The damage would have happened, but it would have been localized. I think security people would argue against a staged deployment though, as if it were discovered what the new definitions protected against, an exploit could be developed quickly to put those servers that aren’t in the “canary” group at risk. (At least in theory — I can’t see how staggering deployment over a 6-12 hour window would have been that risky).

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by timmytokyo on Sunday July 21, 2024 @12:13PM (#41026080)
They're all terrible, but I agree #1 is particularly egregious for a company ostensibly dedicated to security. A simple fuzz tester would have caught this type of bug, so they clearly don't perform even a minimal amount of testing on their code.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by nsguy on Sunday July 21, 2024 @03:02PM (#41027300)
Totally agree. Not only would a coverage guided fuzzer catch this they should also be adding every single file they send out to the corpus of that automated fuzz testing so they can get somewhat increased coverage on their parser.

There may not be out of the box fuzzers that test device drivers so you hoist all the parser code, build it into a stand-alone application, and fuzz that.

Likely this is a form of technical debt since I can understand not doing all of this day #1 when you have 5 customers but at some point as you scale up you need to change the way you look at risk.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by fluidcruft on Sunday July 21, 2024 @07:43PM (#41029455)
Seems like it would be easy enough to add a new checkbox for this to audits.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by jayd16 on Sunday July 21, 2024 @06:28PM (#41028844)
You admit that bugs are inevitable and then claim a bug free parser as the most important bullet. That seems flawed to me. It would certainly be nice, but is that achievable?

Policy changes seem more reliable and would catch other, as of yet unknown classes of bugs.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by marsten on Sunday July 21, 2024 @09:12PM (#41029988)
This shouldn't be an either-or situation; you do all of the above. A simple validating parser in the client would be easy to write and would have easily caught a null payload.

What looks especially bad for Crowdstrike is how many things (relatively simple things) had to fail in order for this to slip through. It's like walking into Fort Knox, grabbing a gold bar, and walking out unimpeded. A complete systemic failure.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by throwaway5752 on Sunday July 21, 2024 @06:49PM (#41029011)
I disagree. Has to be 4, something will always go wrong, so you have to deliver in cohorts.

That goes equally if it was a Windows Update rolled out in one motion that broke the falcon agent/driver, or if it was Crowdstrike. There is almost no excuse for a global rollout without telemetry checks, whether it's security agent updates or os patches.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by contravariant on Sunday July 21, 2024 @07:23PM (#41029284)
It might be the worst mistake, but number 1 was always going to happen sometime.

And even testing can't be trusted 100%, because writing code that does the right thing and code that tests things correctly are about equally hard, they just aren't always hard simultaneously.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by gitfan86 on Sunday July 21, 2024 @08:47AM (#41024701)
They probably don't get to claim agile story points until the ticket is in finished state. And they probably have a culture where vanity Metrics like "velocity" are prioritized
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by nmg on Sunday July 21, 2024 @09:07AM (#41024805)
This would answer the question that i've not heard anyone asking:

what incentivized the bad decisions that led to this catastrophic failure?

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by phs318u on Sunday July 21, 2024 @09:18AM (#41024870)
My understanding is that the culture (as reported by some customers) is quite aggressive and pushy. They are quite vocal when customers don’t turn in automatic updates.

It makes sense in a way - given their fast growth strategy (from nowhere to top 3) and desire to “do things differently” - the iconoclast upstarts that redefine the industry.

Or to summarise - hubris.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hello_moto on Sunday July 21, 2024 @10:22AM (#41025298)
To catch 0day quickly, EDR needs to know "how".

The "how" here is AV definition or a way to identify the attack. In CS-speak: content.

Catching 0day quickly results in good reputation that your EDR works well.

If people turn off their AV definition auto-update, they are at-risk. Why use EDR if folks don't want to stop attack quickly?

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by LtWorf on Sunday July 21, 2024 @06:41PM (#41028943)
In theory you're correct. In practice it seems that crowdstrike has crashed systems with their updates much more often than 0day attacks.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hello_moto on Sunday July 21, 2024 @08:17PM (#41029661)
How many times?

This is one bsod on windows 10. I saw another kernel panic on specific Linux distro.

What else?

One thing that is funny is that quite a few of their competitors are taking this opportunity to shit on them via Twitter and by marketing themselves as better than CrowdStrike.

Twitter, with all its issues, apparently has a feature to prevent fake news and that feature will show crowd source sentiment to debunk fake news, in this case, Twitter users showed how many times Crowdstrike competitor BSOD windows

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by phs318u on Sunday July 21, 2024 @09:01PM (#41029931)
Bottom line is this: there is absolutely no good reason for not doing rolling updates. Do a few and make sure they are ok. Keep rolling out in groups. This single approach alone would've meant that this event was of marginal impact to most of the public, as sysadmins would've had the opportunity to halt further updates and work on remediating their first group (typically non-critical servers). Rolling out to everything all at once is just bad practice, period.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by hello_moto on Sunday July 21, 2024 @09:56PM (#41030191)
Put yourself in the customer shoes: who wants to sign up to be rolled first?

There's best practice and then there's customer

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by RoyalHenOil on Tuesday July 23, 2024 @10:43AM (#41046499)
Give those customers a discount.

The solution to customer reluctance to being the guinea pig is not to force every customer to be a guinea pig.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by LtWorf on Monday July 22, 2024 @12:45AM (#41030990)
> This is one bsod on windows 10. I saw another kernel panic on specific Linux distro.

The red hat one. But they also did it to debian with a different issue, and I think another distro as well.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by 77pt77 on Sunday July 21, 2024 @11:37AM (#41025850)
> They are quite vocal when customers don’t turn in automatic updates.

I'm sorry but this is the customer's fault.

If I'm using your services you work for me and you don't get to bully me into doing whatever you think needs to be done.

People that chose this solution need to be penalized, but they won't.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by mbreese on Sunday July 21, 2024 @11:50AM (#41025926)
Customers don’t always have a choice here. They could be restricted by compliance programs (PCI, et al) and be required under those terms to have auto updates on.

Compliance also has to share some of the blame here, if best practices (local testing) aren’t allowed to be followed in the name of “security”.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by nerdjon on Sunday July 21, 2024 @12:04PM (#41026022)
This needs to keep being repeated anytime someone wants to blame the company.

Many don’t have a choice, a lot of compliance is doing x to satisfy a checkbox and you don’t have a lot of flexibility in that or you may not be able to things like process credit cards which is kinda unacceptable depending on your company. (Note: I didn’t say all)

CrowdStrike automatic update happens to satisfy some of those checkboxes.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by cruffle_duffle on Sunday July 21, 2024 @11:37AM (#41025847)
Oh the games I have to play with story points that have personal performance metrics attached to them. Splitting tickets to span sprints so there aren’t holes in some dudes “effort” because they didn’t compete some task they committed to.

I never thought such stories were real until I encountered them…

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dboreham on Monday July 22, 2024 @02:37AM (#41031484)
Save yourself while you still can.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by thundershart on Sunday July 21, 2024 @10:06AM (#41025207)
Surely, CrowdStrike's safety posture for update rollouts is in serious need of improvement. No argument there.

But is there any responsibility for the clients consuming the data to have verified these updates prior to taking them in production? I haven't worn the sysadmin hat in a while now, but back when I was responsible for the upkeep of many thousands of machines, we'd never have blindly consumed updates without at least a basic smoke test in a production-adjacent UAT type environment. Core OS updates, firmware updates, third party software, whatever -- all of it would get at least some cursory smoke testing before allowing it to hit production.

On the other hand, given EDR's real-world purpose and the speed at which novel attacks propagate, there's probably a compelling argument for always taking the latest definition/signature updates as soon as they're available, even in your production environments.

I'm certainly not saying that CrowdStrike did nothing wrong here, that's clearly not the case. But if conventional wisdom says that you should kick the tires on the latest batch of OS updates from Microsoft in a test environment, maybe that same rationale should apply to EDR agents?

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by kiitos on Sunday July 21, 2024 @12:00PM (#41025994)
> But is there any responsibility for the clients consuming the data to have verified these updates prior to taking them in production

In the boolean sense, yes. United Airlines (for example) is ultimately responsible for their own production uptime, so any change they apply without validation is a risk vector.

In pragmatic terms, it's a bit fuzzier. Does CrowdStrike provide any practical way for customers to validate, canary-deploy, etc. changes before applying them to production? And not just changes with type=important, but all changes? From what I understand, the answer to that question is no, at least for the type=channel-update change that triggered this outage. In which case I think the blame ultimately falls almost entirely on CrowdStrike.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by cozzyd on Sunday July 21, 2024 @01:43PM (#41026687)
Arguably United airlines shouldn't have chosen a product they can't test updates of, though maybe there are no good options.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by chrisoconnell on Monday July 22, 2024 @11:11AM (#41035370)
>Arguably United airlines shouldn't have chosen a product they can't test updates of, though maybe there are no good options.

I used to work with regional parks and recreation departments, and they would not approve any updates that did not go through UAW environments that we had set up. All updates had to be deployed to their UAW, thoroughly tested, before going to their production environment.

I get this this is slightly different, but I'd imagine Airlines, Banks, and Hospitals would have far more strict UAW policies to avoid a single vendor from kneecapping operations.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by suzzer99 on Sunday July 21, 2024 @01:54PM (#41026763)
Yeah one of the major problems seems to be CrowdStrike's assumptions that channel files are benign. Which isn't true if there's a bug in your code that only gets triggered by the right virus definition.

I don't know how you could assert that this is impossible, hence channel files should be treated as code.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by thundershart on Sunday July 21, 2024 @05:58PM (#41028564)
> From what I understand, the answer to that question is no, at least for the type=channel-update change that triggered this outage. In which case I think the blame ultimately falls almost entirely on CrowdStrike.

Honestly, it hadn't even occurred to me that software like this marketed at enterprise customers wouldn't have this kind of control already available. It seems like an obvious thing that any big organization would insist on that I just took it for granted that it existed.

Whoops.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by janstice on Sunday July 21, 2024 @07:23PM (#41029286)
It seems nuts to me too - MS Defender has this out of the box. From looking at sysadmins on reddit, it seems that CS has a tiered update mechanism, but didn’t use it for this change.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by vel0city on Sunday July 21, 2024 @07:54PM (#41029540)
> Does CrowdStrike provide any practical way for customers to validate, canary-deploy, etc. changes before applying them to production?

They do, but this update bypassed all of those rules.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by jamesfinlayson on Sunday July 21, 2024 @08:53PM (#41029888)
Checks out - my company had lots of issues on Friday afternoon, and when it first happened I wondered who on Earth decided to roll out updates to prod systems on Friday afternoon.

No one at my company apparently.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by Brian_K_White on Sunday July 21, 2024 @10:28PM (#41030382)
"In which case I think the blame ultimately falls almost entirely on CrowdStrike"

I would say on the client for buying into CrowdStrike.

And also the client for having no contingencies and just accepting a vendor pinky-swear as meaningful.

CrowdStrike failed at their responsibilities too, I just mean that so did everyone else.

When you cede your own responsibilities to someone else and don't have that backed up with contractually enforced liability to make you whole when they fuck up, and also don't provide your own contingency so it doesn't really matter what some vendor does, that's on you. That's 100% entirely on you and it doesn't matter if a million other people also did the same utterly thoughtless and lazy thing.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by kiitos on Sunday July 21, 2024 @11:07PM (#41030572)
> I would say on the client for buying into CrowdStrike.

I understand this perspective but I think it misses the forest for the trees. You have to evaluate this kind of stuff in context. Purity tests really smack on tech message boards where nobody has any accountability to any kind of business requirements, but basically no real-world organization operates in that way, so it's all a bit irrelevant.

> When you cede your own responsibilities to someone else ...

This framing is a bit naive, I think. It isn't a boolean. Everything is about risk management, cost/benefit analysis.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by stoolpigeon on Sunday July 21, 2024 @10:36AM (#41025415)
I think point 3 of the grand parent indicates admins were not given an opportunity to test this.

My company had a lot of Azure vms impacted by this and I'm not sure who the admin was who should have tested it. Microsoft? I don't think we have anything to do with crowdstrike software on our vms. ( I think - I'm sure I'll find out this week.)

Edit: I just learned the Azure central region failure wasn't related to the larger event - and we weren't impacted by the crowd strike issue - I didn't know it was two different things. So my second part of the comment is irrelevant.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by thundershart on Sunday July 21, 2024 @10:58AM (#41025561)
Oh, I'd missed point #3 somehow. If individual consumers weren't even given the opportunity to test this, whether by policy or by bug, then ... yeesh. Even worse than I'd thought.

Exactly which team owns the testing is probably left up to each individual company to determine. But ultimately, if you have a team of admins supporting the production deployment of the machines that enable your business, then someone's responsible for ensuring the availability of those machines. Given how impactful this CrowdStrike incident was, maybe these kinds of third-party auto-update postures need to be reviewed and potentially brought back into the fold of admin-reviewed updates.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by volkl48 on Sunday July 21, 2024 @12:59PM (#41026387)
It's not an option. While the admins at the customer have the ability to control when/how revisions of the client software go out (and this, can + generally do their own testing, can decide to stay one rev back as default, etc), there is no control over updates to the kind of update/definition files that were the primary cause here.

Which is also why you see every single customer affected - what you are suggesting is simply not an available thing to do at present for them.

At least for now - I imagine that some kind of staggered/slowed/ringed option will have to be implemented in the future if they want to retain customers.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by layer8 on Sunday July 21, 2024 @12:19PM (#41026126)
Malware signature updates are supposed to be deployed ASAP, because every minute may count when a new attack is spreading. The mistake may have been to apply that policy indiscriminately.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by mrbombastic on Sunday July 21, 2024 @02:20PM (#41026985)
And here I thought shipping a new version on the app store was scary.

Is there anything we can take from other professions/tradecraft/unions/legislation to ensure shops can’t skip the basic best practices we are aware of in the industry like staged rollouts? How do we set incentives to prevent this? Seriously the App Store was raking in $$ from us for years with no support for staged rollouts and no other options.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by avree on Sunday July 21, 2024 @02:27PM (#41027038)
A lot of snarky replies to this comment, but the reality is that if you were selling an anti-virus, identified a malicious virus, and then chose not to update millions of your machines with that virus’s signature, you’d also be in the wrong.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by naasking on Sunday July 21, 2024 @03:14PM (#41027384)
> identified a malicious virus, and then chose not to update millions of your machines with that virus’s signature, you’d also be in the wrong.

No, for exactly the reason we just saw, and the same reason why vaccines are tested before widespread rollout.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by aforwardslash on Sunday July 21, 2024 @04:40PM (#41027904)
On the other hand, diseases vaccines prevent dont have almost instantaneous propagation, thats why they are effective at containing propagation.

As an example, reaction time is paramount to counter many kinds of attacks - thats why blocklists are so popular, and AS blackholing is a viable option.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by rco8786 on Monday July 22, 2024 @07:23AM (#41033157)
I’m not saying don’t update? I’m talking about rolling the update over the course of a short amount of time, like under an hour. With the ability to stop the rollout.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by VirusNewbie on Sunday July 21, 2024 @04:03PM (#41027703)
> But this is just an egregious lack of the most basic rollout standards.

Agreed. It's crazy that the top tech companies enforce this in a biblical fashion, despite all sorts of pressure to ship and all that. Crowdstrike went YOLO at a global scale.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by alsetmusic on Sunday July 21, 2024 @04:06PM (#41027714)
I worked at one of the big ones and we always shipped live to all consumer devices at the same time. But this was for a popular suite of products that generate a lot of consumer demand, so we had a rigorous QA process to make sure this wouldn't be a problem. As I was typing this, it occurred to me that zero people would have cared if this update was staggered making it pretty silly not to.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by trhway on Sunday July 21, 2024 @04:54PM (#41028018)
As the QA manager said in our recent product meeting - "as the canary doesn't work we roll out and test on the production cloud".
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by robomc on Sunday July 21, 2024 @05:19PM (#41028227)
I wonder if there's a concern that staggering the malware signatures would open them up to lawsuits if somebody was hacked in between other customers getting the data and them getting the data.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by thundershart on Sunday July 21, 2024 @06:08PM (#41028668)
> I wonder if there's a concern that staggering the malware signatures would open them up to lawsuits if somebody was hacked in between other customers getting the data and them getting the data.

I'd assume that sort of thing would be covered in the EULA and contract -- but even if it weren't, it seems like allowing customers to define their own definition update strategy would give them a pretty compelling avenue to claim non-liability. If CrowdStrike can credibly claim "hey, we made the definitions available, you chose to wait for 2 weeks to apply them, that's on you", then it becomes much less of a concern.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by otabdeveloper4 on Monday July 22, 2024 @01:57PM (#41037370)
Rolling it all out at once is "security best practices".
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by rco8786 on Monday July 22, 2024 @02:09PM (#41037562)
What's the reasoning here? Extreme time sensitivity?
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by rainsford on Sunday July 21, 2024 @08:50AM (#41024722)
> 2. Either the corrupted files slipped through internal testing, or there is no internal testing.

This is the most interesting question to me because it doesn't seem like there is an obviously guessable answer. It seem very unlikely to me that a company like CrowdStrike pushes out updates of any kind without doing some sort of testing, but the widespread nature of the outage would also seem to suggest any sort of testing setup should have caught the issue. Unless it's somehow possible for CrowdStrike to test an update that was different than what was deployed, it's not obvious what went wrong here.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by bloopernova on Sunday July 21, 2024 @09:10AM (#41024824)
I had read somewhere that the definition file was corrupted after testing, during the final CI/CD pipeline.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dboreham on Monday July 22, 2024 @02:40AM (#41031501)
Because nowadays nobody knows you test the actual bits you're going to ship, not whatever random crap comes out of someone's build script run in a different place and time that's supposed to be the same as what you'll ship.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by shrimp_emoji on Sunday July 21, 2024 @09:21AM (#41024890)
Well, Microsoft led by example with #2: https://news.ycombinator.com/item?id=20557488
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by pclmulqdq on Sunday July 21, 2024 @09:54AM (#41025114)
Number 4 is what everyone will fixate on, but I have the biggest problem with number 1. Anything like this sort of file should have (1) validation on all its pointers and (2) probably >2 layers of checksumming/signing. They should generally expect these files to get corrupted in transit once in a while, but they didn't seem to plan for anything other than exactly perfect communication between their intent and their kernel driver.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by HDThoreaun on Sunday July 21, 2024 @10:00PM (#41030218)
Files dont get corrupted in transit with TCP.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by pclmulqdq on Monday July 22, 2024 @12:46AM (#41030993)
I think you mean: In theory, files don't get corrupted in transit with TCP. In theory, they also don't get corrupted when stored in memory or on disks either.

The only reason any of these things don't cause issues in practice is checksums and error correcting codes.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by HDThoreaun on Monday July 22, 2024 @03:28PM (#41038767)
No, I mean that TCP checks for corruption in transit and has the packets resent in that case. I guess you could be running a buggy implementation, but that seems unlikely with how ubiquitous TCP is.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by pclmulqdq on Monday July 22, 2024 @05:31PM (#41040034)
I would suggest that you read this: https://web.mit.edu/Saltzer/www/publications/endtoend/endtoe...

Errors can show up any time, and usually show up between the parts that checksums correct. On the wire, TCP protects you with a (weak) checksum. Off the wire, your computer and filesystem can still screw things up. Even CPU bugs can do this.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dcuthbertson on Sunday July 21, 2024 @10:41AM (#41025447)
I wonder if it was pushed anywhere that didn't crash, as an extension of "It works on my machine. Ship it!"

I've built a couple of kernel drivers over the years and what I know is that ".sys" files are to the kernel as ".dll" files are to user-space programs in that the ones with code in them run only after they are loaded and a desired function is run (assuming boilerplate initialization code is good).

I've never made a data-only .sys file, but I don't see why someone couldn't. In that case, I'd guess that no one ever checked it was correct, and the service/program that loads it didn't do any verification either -- why would it, the developers of said service/program would tend to trust their own data .sys file would be valid, never thinking they'd release a broken file or consider that files sometimes get corrupted -- another failure mode waiting to happen on some unfortunate soul's computer.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by kchr on Sunday July 21, 2024 @11:54AM (#41025962)
The file extension is `sys` by convention, it's nothing magical to it and it's not handled in any special way by the OS. In the case of CrowdStrike, there seems to be some confusion as to why they use this file extension since it's only supposed to be a config/data file to be used by the real kernel driver.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dcuthbertson on Sunday July 21, 2024 @04:23PM (#41027812)
Thanks. I understand that '.sys' is a naming convention. I'd guess that they used it because those config/data files are used by their kernel driver, and so makes kernel vs user-space files easier to distinguish.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by cynicalsecurity on Sunday July 21, 2024 @12:27PM (#41026167)
I'm betting on them having no internal testing.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by fhub on Sunday July 21, 2024 @03:03PM (#41027304)
#1 could be slit into two parts I think. Microsoft kernel side and CloudStrike module side.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by LtWorf on Sunday July 21, 2024 @04:14PM (#41027752)
> 4. This was pushed out everywhere simultaneously instead of staggered to limit any potential damage.

Most importantly it was never tested at all :D

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dboreham on Monday July 22, 2024 @02:42AM (#41031516)
TBF it was extensively tested. On airline and hospital computers.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by spike021 on Sunday July 21, 2024 @04:51PM (#41027987)
6. Companies using CS have no testing to verify that new updates won't break anything.

Any SWE job I've worked over my entire career, nothing is deployed with new versions of dependencies without testing them against a staging environment first.

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by strunz on Sunday July 21, 2024 @06:06PM (#41028644)
Crowdstrike doesn't give that option. Updates happen without a choice to "keep you safe".
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by bryant on Sunday July 21, 2024 @05:04PM (#41028104)
Of all of these, I think #3 has crowdstrike the most exposed, legally. Companies with robust update and config management protocols got burned by this as well, including places like hospitals and others with mission critical systems where config management is more strictly enforced.

If the crowdstrike selloff continues, I'm betting this will be why.

(There's a chance I'll make trading decisions based on this rationale in the next 72 hours, though I'm not certain yet)

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by cratermoon on Sunday July 21, 2024 @06:21PM (#41028775)
> Individual settings for when to apply such updates were apparently ignored.

I've heard that said elsewhere, but I haven't found a source for it at all. Are you able to point to one for me?

Re:Initial details about why CrowdStrike's CSAgent.sys crashed by WWLink on Monday July 22, 2024 @12:13AM (#41030882)
6. The software architecture where a kernel mode driver is required is faulty and poor design.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by dboreham on Monday July 22, 2024 @02:41AM (#41031508)
7. The operating system vendor that allows buggy kernel drivers to be loaded and run and panic the system.
Re:Initial details about why CrowdStrike's CSAgent.sys crashed by denton-scratch on Monday July 22, 2024 @04:49AM (#41032156)
> or there is no internal testing

Thing is, as far as I can see, deploying this database update to a Windows machine will result promptly and unconditionally in a BSOD. That implies that this update was tried on exactly zero machines before it was shipped.

The bug can't have "slipped through internal testing"; it would have failed immediately on any machine it was loaded on.