Microsoft släpper återställningsfix för Crowdstrike

Permalänk
Medlem
Skrivet av nathan:

I grund och botten är detta ett logiskt problem. CrowdStrike nyttjar en bakdörr för att uppdatera en WHQL-certifierad drivrutin på Kernel-nivå. Om den drivrutinen kraschar så måste (!) operativsystemet "krascha", eller BSOD:a för risken är annars att t ex något skrivs över i minnet, du sparar viktig data som då blir förstörd.

Jag har stor förståelse för att CrowdStrike behöver access på Kernel-nivå, men det lägger också allt ansvar på dem och inte Microsoft. Det är också möjligt att CrowdStrike faktiskt rigoröst testat uppdateringen in house, men att det istället är pipeline ut till production som strulade, likväl deras problem tyvärr.

Microsoft kan såklart underlätta, som vi sett här, men jag avundas inte de storföretag som kör Bitlocker också.

Bra summerat men jag tycker inte anvaret för problemet ligger på Crowdstrike.
Det är förstås deras fel att deras produkt kraschade denna gången, men detta hände även för 10 år sedan.

Om några år kan exakt samma fel hända igen, säg med Symantecs produkt. Variabeln i nyheten är Crowdstrike, konstanten är Windows.

Crowdstrike har förstås 0% möjlighet att förhindra Symantec från att orsaka samma fel som Crowdstrike. Microsoft har däremot 100% möjlighet att förhindra det.

Med det resonemanget är det alltså 100% Microsofts ansvar.

Permalänk
Medlem
Skrivet av nathan:

I grund och botten är detta ett logiskt problem. CrowdStrike nyttjar en bakdörr för att uppdatera en WHQL-certifierad drivrutin på Kernel-nivå. Om den drivrutinen kraschar så måste (!) operativsystemet "krascha", eller BSOD:a för risken är annars att t ex något skrivs över i minnet, du sparar viktig data som då blir förstörd.

Jag har stor förståelse för att CrowdStrike behöver access på Kernel-nivå, men det lägger också allt ansvar på dem och inte Microsoft. Det är också möjligt att CrowdStrike faktiskt rigoröst testat uppdateringen in house, men att det istället är pipeline ut till production som strulade, likväl deras problem tyvärr.

Microsoft kan såklart underlätta, som vi sett här, men jag avundas inte de storföretag som kör Bitlocker också.

Nej, att en certifierad drivrutin kan injicera ocertifierad kod eller patcha sig själv till ocertifierad status betyder att det är fel på certifieringsprocessen alternativt att drivrutinen är felaktigt certifierad. Microsoft äger certifieringsprocessen och utför certifieringen. Microsoft måste känna tilll att man låter ocertifierad kod exekvera på kernelnivå. Det är no-no ur mjukvarukritikalitetssynpunkt.
Kraschen var en ren tidsfråga. Hade det inte varit Crowdstrike så hade det varit något annan.

Visa signatur

AMD Ryzen 5800X | MSI RTX 3060 Ti Gaming X Trio | Cooler Master HAF 912 Plus

Permalänk
Medlem
Skrivet av Patriksan:

Nej, att en certifierad drivrutin kan injicera ocertifierad kod eller patcha sig själv till ocertifierad status betyder att det är fel på certifieringsprocessen alternativt att drivrutinen är felaktigt certifierad. Microsoft äger certifieringsprocessen och utför certifieringen. Microsoft måste känna tilll att man låter ocertifierad kod exekvera på kernelnivå. Det är no-no ur mjukvarukritikalitetssynpunkt.
Kraschen var en ren tidsfråga. Hade det inte varit Crowdstrike så hade det varit något annan.

Jag vet inte om jag missuppfattat situationen, men som jag förstått det så är det:

  • Crowdstrike-mjukvaran kommer med en signerad drivrutin som är buggig, men buggarna hade fram tills nyligen inte märkts.

  • De levererar en ny "content"-uppdatering (typ "virusdefinitioner" vad det verkar) med en fil som är felformaterad/innehåller felaktig data.

  • En bugg i drivrutinen triggas.

  • BSOD.

Visa signatur

Desktop spel m.m.: Ryzen 9800X3D || MSI X870 Tomahawk Wifi || MSI Ventus 3x 5080 || Gskill FlareX 6000 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Arbetsstation: Ryzen 7945HX || Minisforum BD790i || Asus Proart 4070 Ti Super || Kingston Fury Impact 5600 65 GB || WD SN850 2TB || Samsung 990 Pro 2TB || Fractal Ridge
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem
Skrivet av evil penguin:

Jag vet inte om jag missuppfattat situationen, men som jag förstått det så är det:

  • Crowdstrike-mjukvaran kommer med en signerad drivrutin som är buggig, men buggarna hade fram tills nyligen inte märkts.

  • De levererar en ny "content"-uppdatering (typ "virusdefinitioner" vad det verkar) med en fil som är felformaterad/innehåller felaktig data.

  • En bugg i drivrutinen triggas.

  • BSOD.

Jag menar det faktum att det "inte märkts" är dålig certifiering, som utförs av Microsoft enligt Microsofts föreskrifter.

En enskild bugg dyker ju upp då och då. Certifieringsprocesser skall vara utformade för att fånga dessa. Denna bug (krasch) var så uppenbar att den mest rudimentära certifieringen hade upptäckt den. Dålig certifiering är dålig kvalitet hela tiden.

Visa signatur

AMD Ryzen 5800X | MSI RTX 3060 Ti Gaming X Trio | Cooler Master HAF 912 Plus

Permalänk
Medlem
Skrivet av evil penguin:

Jag vet inte om jag missuppfattat situationen, men som jag förstått det så är det:

  • Crowdstrike-mjukvaran kommer med en signerad drivrutin som är buggig, men buggarna hade fram tills nyligen inte märkts.

  • De levererar en ny "content"-uppdatering (typ "virusdefinitioner" vad det verkar) med en fil som är felformaterad/innehåller felaktig data.

  • En bugg i drivrutinen triggas.

  • BSOD.

Det är min uppfattning av situationen också, kort sagt var det ett sätt för ovaliderad kod från internet att exekveras i kontexten av en signerad drivrutin.

Det i sig är illa nog, men det blev ytterligare problematiskt när drivrutinen i fråga registrerades som en "boot start driver", vilket innebär att windows ser den som nödvändig för att kunna boota.

Att detta är dåligt verkar ändå uppenbart för alla med lite koll så jag tror MS kommer göra någon form av insats för att blocka det framöver. Om inte tekniskt i windows så åtminstone policymässigt, exempelvis att de inte ger WHQL-cert till drivrutiner som har funktioner för autouppdatering.

Permalänk
Medlem
Skrivet av 0cool:

Några snabba tankar delvis baserat på befintliga lösningar: man kan ha en "last known good"-snapshot för alla moduler som laddas under boot, funkar den inte kör man förra som funkade. Man kan tvinga saker som körs i bootsekvensen att ha en validerings-sandbox (kör modulen simulerat i en sandbox först, om den smäller skippar du den annars kör du den utanför sandboxen).
Windows kunde haft ett tredje lager förutom kernel- och usermode och haft kernelmode helt immutable och kryptografiskt signerad. All lågnivå-information som antivirusprogram och andra behöver kunde tillhandahållits av en immutable kärna som inte kan smittas av malware. (Lite som MacOS numera). Även MS egna applikationer kunde följt den mekanismen för att följa EU-direktivet.

Är inte helt övertygad, last known good som lösning skulle kunna leda till att ett system saknar något som "måste" finnas på systemet för att det exempelvis ska följa policy, som en EDR. En threat actor skulle potentiellt kunna utnyttja det för att stänga av ett EDR i systemet genom att få OS att hantera EDR som att det leder till en krasch.

Resten av dina idéer är nog bra, men är inte del av det moderna Windows och skulle kräva en (väldigt stor? är lekman här) insats för att bygga om hur Windows funkar med sandboxing eller ett till mode som bara är till för OS-kärnan medan ex ett EDR fortfarande har full systemtillgång till andra processer som i kernelmode etc. Det ser jag inte sker om MS inte ändrar på typ allt, det kan ju ske i framtiden och vore ju klart bättre.

Skrivet av Timmy Fox:

Operativsystem är komplexa grejer och det är inte alltid så lätt som att bara "inaktivera den här filen".

Visst kanske det hade funkat i det här fallet, men i hundra andra fall kan det enkelt leda till att andra saker slutar fungera och både företag och användare blir frustrerade när sina system inte fungerar korrekt för att OS:et hejvilt bestämmer sig för att stänga av en massa programvaror helt fritt.

Bättre med safe mode som det fungerar idag, gör felsökningen mycket lättare än att låta Windows gissa sig fram.

Instämmer till stor del här.

Skrivet av nathan:

I grund och botten är detta ett logiskt problem. CrowdStrike nyttjar en bakdörr för att uppdatera en WHQL-certifierad drivrutin på Kernel-nivå. Om den drivrutinen kraschar så måste (!) operativsystemet "krascha", eller BSOD:a för risken är annars att t ex något skrivs över i minnet, du sparar viktig data som då blir förstörd.

Jag har stor förståelse för att CrowdStrike behöver access på Kernel-nivå, men det lägger också allt ansvar på dem och inte Microsoft. Det är också möjligt att CrowdStrike faktiskt rigoröst testat uppdateringen in house, men att det istället är pipeline ut till production som strulade, likväl deras problem tyvärr.

Microsoft kan såklart underlätta, som vi sett här, men jag avundas inte de storföretag som kör Bitlocker också.

Min åsikt också.

Skrivet av evil penguin:

Jag vet inte om jag missuppfattat situationen, men som jag förstått det så är det:

  • Crowdstrike-mjukvaran kommer med en signerad drivrutin som är buggig, men buggarna hade fram tills nyligen inte märkts.

  • De levererar en ny "content"-uppdatering (typ "virusdefinitioner" vad det verkar) med en fil som är felformaterad/innehåller felaktig data.

  • En bugg i drivrutinen triggas.

  • BSOD.

I stora delar ja.

Skrivet av 0cool:

Det är min uppfattning av situationen också, kort sagt var det ett sätt för ovaliderad kod från internet att exekveras i kontexten av en signerad drivrutin.

Det i sig är illa nog, men det blev ytterligare problematiskt när drivrutinen i fråga registrerades som en "boot start driver", vilket innebär att windows ser den som nödvändig för att kunna boota.

Att detta är dåligt verkar ändå uppenbart för alla med lite koll så jag tror MS kommer göra någon form av insats för att blocka det framöver. Om inte tekniskt i windows så åtminstone policymässigt, exempelvis att de inte ger WHQL-cert till drivrutiner som har funktioner för autouppdatering.

Man kan alltid hoppas, det är väldigt oklart i det jag läst om det är så att "drivern" som Falcon installerar sig som är det som whql-certas och inte dess andra komponenter, eller om det är tänkt att hela mjukvaran ska inkluderas i certningen (vilket då gör det väldigt konstigt att det har sluppit igenom då certningstiden bör göra det omöjligt att certa varje content-update om det sker flera ggr per dygn).

Oavsett, bra poänger.

Visa signatur

WS - 980x/48GB/MSI Big Bangx58/2xIntel PT Gbe/Seasonic x760/3xSSD@120GB/8xSeagate@250GB/GTX670/Dell U2711 Win7x64/VmWare WS9 och massa stuff.
NAS - AMD C60-I/8GB/2xIntel PT Gbe/FSP Pico@90w/SSD@120GB/5xSeagate_o_WD@2TB WinServer2k8r2/Flexraid/Crashplan/Hyper-V----> idle@20w

Permalänk
Medlem
Skrivet av Morna:

Är inte helt övertygad, last known good som lösning skulle kunna leda till att ett system saknar något som "måste" finnas på systemet för att det exempelvis ska följa policy, som en EDR. En threat actor skulle potentiellt kunna utnyttja det för att stänga av ett EDR i systemet genom att få OS att hantera EDR som att det leder till en krasch.

Last known good skulle boota med skyddet i samma state som det var förra gången, tex genom att ha bootfiler på ett filsystem med cow-snapshots. Ändringar skrivs som en diff som kan slopas om man behöver göra en rollback. I detta fallet hade man bootat utan att ha de senaste sys-filerna från Crowdstrike, inte utan crowdstrike.

Om den mekanismen kan manipuleras av en angripare är man redan ägd, är man orolig för det borde man vara än mer orolig för att skyddet man valt är kasst. Som det visade sig vara i fredags.

Permalänk
Medlem
Skrivet av 0cool:

Last known good skulle boota med skyddet i samma state som det var förra gången, tex genom att ha bootfiler på ett filsystem med cow-snapshots. Ändringar skrivs som en diff som kan slopas om man behöver göra en rollback. I detta fallet hade man bootat utan att ha de senaste sys-filerna från Crowdstrike, inte utan crowdstrike.

Om den mekanismen kan manipuleras av en angripare är man redan ägd, är man orolig för det borde man vara än mer orolig för att skyddet man valt är kasst. Som det visade sig vara i fredags.

Ja, jag förstår hur du menar men jag tycker att det förutsätter exempelvis att NTFS får en cow-funktion, eller att man kan köra ReFS på boot-driven då ReFS har bättre möjligheter för snapshots och att funktionen kan särskilja på vilken komponent det är som orsakar felet, exempelvis en uppdateringsfil och inte hela mjukvaran. Alltså att din tänkta funktion skulle ta bort uppdateringsfilen istället för att blocka mjukvaran den hör till (och att saker inte går sönder för att mjukvaran kan hantera att den inte har en uppdateringsfil etc etc).

Görs nåt sånt automatiskt så behöver ju skyddet också ta hänsyn till datafiler som kan ha förändrats under tiden (om det skulle fungera som nån form av sandboxie/deepfreeze på steroider.

Tror vi skriver lite runt varandra (eller jag mest kanske) men jag menar att det är rimligt att vara riskmedveten och att utgå från att vi inte kan hundra säkert säga att din funktion kommer vara skyddad från manipulation. En bör agera som att ett läge inte exkluderar ett annat, defense in depth osv.

Visa signatur

WS - 980x/48GB/MSI Big Bangx58/2xIntel PT Gbe/Seasonic x760/3xSSD@120GB/8xSeagate@250GB/GTX670/Dell U2711 Win7x64/VmWare WS9 och massa stuff.
NAS - AMD C60-I/8GB/2xIntel PT Gbe/FSP Pico@90w/SSD@120GB/5xSeagate_o_WD@2TB WinServer2k8r2/Flexraid/Crashplan/Hyper-V----> idle@20w

Permalänk
Medlem
Skrivet av Morna:

Tror vi skriver lite runt varandra (eller jag mest kanske) men jag menar att det är rimligt att vara riskmedveten och att utgå från att vi inte kan hundra säkert säga att din funktion kommer vara skyddad från manipulation. En bör agera som att ett läge inte exkluderar ett annat, defense in depth osv.

Absolut, poängen i det jag säger är bara att det är lösbart på många sätt.

Visst kan man klanta sig och skapa nya problem vad man än gör men tänker man så gör man ju aldrig någonting. Vilket också skapar problem.

I fredags fick vi ju reda på att riskmedvetenhet hos diverse bolag ledde till att de installerade en mjukvara som kör ovaliderad kod från internet i kernelmode på servern. Ibland blir det inte som man tänkt sig.

Men det går ändå att lösa problem, man får inte ge upp. Se bara vad Apple gjorde med APFS. En miljard enheter, iphones, ipads, appletvs, etc fick ett helt nytt filsystem med stöd för cow, snapshots mm och ingen normal användare märkte något när det hände. Det kunde gått hur illa som helst men det funkade fint.

De gjorde det dessutom utan att en incident som Crowdstrike visade hela världen att något måste göras.

Permalänk
Medlem

En preliminär root cause: https://www.crowdstrike.com/falcon-content-update-remediation...

Tldr om jag förstår rätt.

Huvudorsaken ska vara att en komponent i Falcon, Validator, haft en bugg och inte uppfattat problemet i channel-filen

En annan komponent, Interpreter, har inte heller uppfattat problemet och kört innehållet i uppdateringen.

CS lägger in fler valideringssteg än vad de redan har, ger slutkunder fler möjligheter att hantera denna typ av content, staggered rollout etc.

Min läsning är att de lagt väldigt mycket tillit till att deras processer funkar och att de inte behöver sådant i denna del av produkten.

Visa signatur

WS - 980x/48GB/MSI Big Bangx58/2xIntel PT Gbe/Seasonic x760/3xSSD@120GB/8xSeagate@250GB/GTX670/Dell U2711 Win7x64/VmWare WS9 och massa stuff.
NAS - AMD C60-I/8GB/2xIntel PT Gbe/FSP Pico@90w/SSD@120GB/5xSeagate_o_WD@2TB WinServer2k8r2/Flexraid/Crashplan/Hyper-V----> idle@20w

Permalänk
Medlem
Skrivet av Patriksan:

Jag menar det faktum att det "inte märkts" är dålig certifiering, som utförs av Microsoft enligt Microsofts föreskrifter.

En enskild bugg dyker ju upp då och då. Certifieringsprocesser skall vara utformade för att fånga dessa. Denna bug (krasch) var så uppenbar att den mest rudimentära certifieringen hade upptäckt den. Dålig certifiering är dålig kvalitet hela tiden.

Jag är faktiskt benägen att hålla med här.
Om man under cert-processen märker att mjukvaran läser in filer som kan uppdateras, så hade en av dom första grejorna jag testat varit att slänga dit en ”trasig” fil.

Hur man inte har märkt att det inte finns något skydd mot detta är under all kritik.

Permalänk
Medlem
Skrivet av Morna:

Ja, jag förstår hur du menar men jag tycker att det förutsätter exempelvis att NTFS får en cow-funktion, eller att man kan köra ReFS på boot-driven då ReFS har bättre möjligheter för snapshots och att funktionen kan särskilja på vilken komponent det är som orsakar felet, exempelvis en uppdateringsfil och inte hela mjukvaran. Alltså att din tänkta funktion skulle ta bort uppdateringsfilen istället för att blocka mjukvaran den hör till (och att saker inte går sönder för att mjukvaran kan hantera att den inte har en uppdateringsfil etc etc).

Problemet är att MS drog ReFS ur utvecklarnas händer innan den var klart för att desperat visa Enterprise-kunderna för Big Data att man hade en filsystem som inte slog i NTFS fragmenteringsgräns.

Och då kom det inte med för system-OS viktiga funktioner där den viktigaste och mest fatala bristen för windows skall kunna fungera var att den inte har stöd för hårda länkar ala. Posix-style, det är mycket annat som också är bristfälligt och ReFS är idag i stort sett bara en big-storage-filsystem som tas till när NTFS inte längre räckte till - det är också därför som den har i princip stoppats tillbaka till garderoben igen och bara fins på windowsserver-nivå - i alla fall för att kunna skapa nya ReFS-filsystem medans användning och läsning gick att köra på win-pro om jag mins rätt.

NTFS själv har ingen COW-struktur utan det försöker man emulera i ett mjukvarulager med VSS/shadowcopy där systemet arbetar mot en virtuell lager av filsystem som ligger ovanpå NTFS genom VSS som sedan alla filacess-API:er går igenom, men detta är inget som är igång i samband med i tidiga steg i en bootprocess och knappt lämnat UEFI-steget utan i stort sett hela windows måste vara igång när detta är aktivt.

---

I slutändan med all lappande och lagande är att MS verkligen behöver titta på en modernt system-filsystem - men man kan inte göra som med ReFS utvecklarteam att man slänger uppgiften på en undersysselsatt programmerargrupp utan erfarenhet av filsystembyggande och design och säger till dem att gör något som liknar BTRFS men inte så mycket att det kan anklagas för plaigat - och just det - tidplanen och milstolparna är absolut viktigaste att följa!!, mer än kvalitén på koden och funktionalitet så länge skrivna filerna inte längre begränsas av antalet fragment!!, för detta måste levereras inom xx-månader !!!

(har läste blogg från en utvecklare som var med i den teamet - kan inte har varit rolig alls att bli forcerad in i något som är långt utanför gruppens kompentens-zon och ingen ledare/designer som verkligen förstår filsystem och vad som är viktigt där och vilka misstags som gjorts tidigare och helst inte skall upprepas, och framförallt grovt underskatta i tiden det tar innan man har en bra och stabil filsystem som tål stress utan katastrofala haverier)

Permalänk
Medlem
Skrivet av BasseBaba:

Jag är faktiskt benägen att hålla med här.
Om man under cert-processen märker att mjukvaran läser in filer som kan uppdateras, så hade en av dom första grejorna jag testat varit att slänga dit en ”trasig” fil.

Hur man inte har märkt att det inte finns något skydd mot detta är under all kritik.

Det är alltid lätt att vara efterklok när skadan väl har visats och man ser en väg varför det hände...

Krasst sett så är det nog rätt många företags konfigfiler och annan typ av datafiler som skulle behöva börja testas med randomiserade bitfel i ganska hög takt, kan visa att systemet inte beter sig olämplig och också helst kan upptäcka felen och ha 'safe operation' för dem. mycket check/hashvärden blir det - men hjälper ändå inte om det är 'syftningsfel' som får en för felet korrekt checksumma påhängd efter sig - tex en datastruktur får en rad med '0' fast det aldrig skall bli bara '0' någon gång.

Permalänk
Medlem
Skrivet av xxargs:

Problemet är att MS drog ReFS ur utvecklarnas händer innan den var klart för att desperat visa Enterprise-kunderna för Big Data att man hade en filsystem som inte slog i NTFS fragmenteringsgräns.

Och då kom det inte med för system-OS viktiga funktioner där den viktigaste och mest fatala bristen för windows skall kunna fungera var att den inte har stöd för hårda länkar ala. Posix-style, det är mycket annat som också är bristfälligt och ReFS är idag i stort sett bara en big-storage-filsystem som tas till när NTFS inte längre räckte till - det är också därför som den har i princip stoppats tillbaka till garderoben igen och bara fins på windowsserver-nivå - i alla fall för att kunna skapa nya ReFS-filsystem medans användning och läsning gick att köra på win-pro om jag mins rätt.

NTFS själv har ingen COW-struktur utan det försöker man emulera i ett mjukvarulager med VSS/shadowcopy där systemet arbetar mot en virtuell lager av filsystem som ligger ovanpå NTFS genom VSS som sedan alla filacess-API:er går igenom, men detta är inget som är igång i samband med i tidiga steg i en bootprocess och knappt lämnat UEFI-steget utan i stort sett hela windows måste vara igång när detta är aktivt.

---

I slutändan med all lappande och lagande är att MS verkligen behöver titta på en modernt system-filsystem - men man kan inte göra som med ReFS utvecklarteam att man slänger uppgiften på en undersysselsatt programmerargrupp utan erfarenhet av filsystembyggande och design och säger till dem att gör något som liknar BTRFS men inte så mycket att det kan anklagas för plaigat - och just det - tidplanen och milstolparna är absolut viktigaste att följa!!, mer än kvalitén på koden och funktionalitet så länge skrivna filerna inte längre begränsas av antalet fragment!!, för detta måste levereras inom xx-månader !!!

(har läste blogg från en utvecklare som var med i den teamet - kan inte har varit rolig alls att bli forcerad in i något som är långt utanför gruppens kompentens-zon och ingen ledare/designer som verkligen förstår filsystem och vad som är viktigt där och vilka misstags som gjorts tidigare och helst inte skall upprepas, och framförallt grovt underskatta i tiden det tar innan man har en bra och stabil filsystem som tål stress utan katastrofala haverier)

Bra inlägg!

Visa signatur

WS - 980x/48GB/MSI Big Bangx58/2xIntel PT Gbe/Seasonic x760/3xSSD@120GB/8xSeagate@250GB/GTX670/Dell U2711 Win7x64/VmWare WS9 och massa stuff.
NAS - AMD C60-I/8GB/2xIntel PT Gbe/FSP Pico@90w/SSD@120GB/5xSeagate_o_WD@2TB WinServer2k8r2/Flexraid/Crashplan/Hyper-V----> idle@20w