CrowdStrike 2024. Pogrom korporacyjnych Windowsów
Antywirus miał chronić przed wszystkim. Nie ochronił przed sobą.
Wpis z serii Cyfrowy feudalizm
W zeszły piątek, 19 lipca 2024 roku, wielu Polaków odliczało ostatnie godziny przed weekendem. W tym samym czasie w USA dzień się dopiero zaczynał.
Miliony firmowych komputerów z systemem Windows – niczym człowiek otwierający poranną gazetę, żeby zaktualizować swoją wiedzę o świecie – załadowały nowe aktualizacje. W tym jedną rutynową, od programu antywirusowego firmy CrowdStrike.
Bum.
Miliony ekranów zaświeciły się na niebiesko. W tym błękicie pływały komunikaty o błędach, a czasem pojedyncze smutne buźki. :(
.
Słynny „niebieski ekran śmierci”. Informacja, że pokazujący go Windows już ma dość, chrzani to wszystko i idzie spać.
To przełożyło się zapewne na mniej weekendowego snu u wielu osób. Zwłaszcza tych od spraw technicznych. Trzeba było przywrócić do działania całe legiony wykopyrtniętych urządzeń.
Ale ostatecznie się udało i, poza bardziej pechowymi przypadkami, problem został rozwiązany. Trwa teraz ocenianie strat i zadawanie pytań.
Dlaczego, choć dotknęło to Windowsów, nie do końca jest wpadką Microsoftu? Dlaczego uderzyło tak nagle i gwałtownie? Dlaczego, mimo wielkiego obszaru rażenia, trafiło głównie w wielkie organizacje, oszczędzając komputery osobiste?
I przede wszystkim – dlaczego centralizacja i stawianie świata na jednym kruchym filarze nie jest dobrym pomysłem?
Zapraszam na omówienie sprawy!
Jak zawsze, gdy tykam tematów cyberbezpieczeństwa – przypominam, że jestem hobbystą, a to luźny wpis popularyzatorski.
Spis treści
- Obszar rażenia
- Niebieski ekran śmierci
- CrowdStrike
- Techniczna strona awarii
- Rola Microsoftu
- Konsekwencje
Obszar rażenia
Awaria dotknęła wszelkich możliwych branż – w znacznej mierze korporacji międzynarodowych, mających silną obecność w Stanach Zjednoczonych (za moment rozwinę ten wątek). Mocno dostała w kość również Holandia.
Parę migawek z tego całego chaosu:
-
Na całym świecie padły systemy lotnisk, masowo odwoływano loty.
Chaos dodatkowo potęgował fakt, że klienci, którzy zostali na lodzie, udali się do hoteli blisko lotnisk, często sieciówek… Również dotkniętych awarią.
- Oberwały też same linie lotnicze. Z tych znanych w Polsce: Wizz Air i Ryanair.
- W niektórych motelach nie działały zamki elektroniczne; radzono ludziom, żeby nie zamykali drzwi.
- Jeśli wierzyć Wikipedii, błąd wyświetlały popularne, kojarzące mi się z Wielkim Bratem teleekrany reklamowe od Clear Channel.
- Awaria uderzyła też w drużynę Mercedesa, prowadzącą ćwiczenia przed wyścigami Formuły 1. Którą to zresztą drużynę sponsoruje firma winna awarii.
- Dostało się nawet niektórym szpitalom i aptekom, choć chyba głównie w USA. Ludzie musieli przekładać operacje.
- W Polsce, z innych firm obsługujących ludność cywilną, oberwały m.in.: Lotnisko Chopina, Santander Bank, Carrefour.
I tak dalej, było tego dużo więcej.
Jeśli ktoś chce poznać więcej przykładów, to proponuję megawątek na forum HN (ponad 3800 komentarzy, absolutny rekord), dyskusję na Reddicie albo przeszukanie innych portali pod hasłami crowdstrike
, "blue screen"
, bsod
i tak dalej.
Wedle analizy Microsoftu wadliwa aktualizacja uderzyła w 8,5 mln komputerów, ale nie zdziwiłbym się, gdyby kaskadowe efekty dosięgły i kilkudziesięciu milionów. Możliwe, że to największa taka awaria w historii. Pod względem samego zasięgu, nie mówiąc już o konsekwencjach.
To tyle z podsumowania suchych faktów. A na czym cała awaria polegała i skąd się wzięła?
Niebieski ekran śmierci
Aby lepiej zrozumieć całą sytuację, musimy (po-)znać pewną cechę wielu współczesnych systemów, w tym również Windowsa.
Bo widzicie – zazwyczaj systemy operacyjne mają warstwy. Jak cebula. Lub ogry.
System ma swoją część powierzchowną, widoczną, przeznaczoną dla użytkowników. To różne graficzne interfejsy i kontrolki. Ustawienia, które można łatwo zmieniać. Głośność, język, te sprawy.
Programy, jak popularny Word czy Firefox, sa warstwę wyżej. System jest ich fundamentem i są zwykle zależne od niego oraz ustawień, jakie wprowadzimy.
Jeśli któryś z nich przestanie działać wskutek błędu, to wyłączy się zapewne tylko on. Bo system pod spodem pozostaje nienaruszony.
Pod powierzchnią systemu znajduje się natomiast głębsza warstwa, do której użytkownicy zwykle nie zaglądają. A nawet nie mogą w niej grzebać bez uprawnień administratora. To jądro systemu (ang. kernel).
Niebieski ekran, czyli słynny BSOD (Blue Screen of Death, niebieski ekran śmierci) to po prostu błąd na poziomie jądra. A że warstwy wyższe są zależne od niższych, to wpadka na takim poziomie prowadzi do wyłączenia całego komputera.
Niebieski ekran śmierci towarzyszy Windowsom niemal od zarania dziejów. Jedynie nieznacznie zmienił wygląd, zyskując kod QR i smutną buźkę.
Kiedyś przydarzył się na żywo na oczach samego szefa Microsoftu, Billa G., podczas oficjalnej prezentacji Windowsa 98 (uwaga: YouTube).
A czym jest ta ikona wewnątrz jądra? To Falcon Sensor (dosł. „Sokoli Czujnik”) – antywirus od niezależnej firmy CrowdStrike. Część ogólniejszego pakietu usług nazwanych Falcon. Dobrowolnie zainstalowany przez użytkowników.
To dlatego słowa „awaria z winy Microsoftu” są nieco naciągane. Microsoft był tu jak deweloper, który pobudował domy. Duże firmy były jak nabywcy tych domów. Zaś Falcon to gość, którego zaprosili i który narozrabiał, grzebiąc przy instalacji jak Ricky z „Chłopaków z baraków” (YT).
Można oczywiście mieć zastrzeżenia do tego, że deweloper bardziej wszystkiego nie zabezpieczył (jeszcze do tego wrócę). Albo że ogólnie jest zachłanny. Ale sama destrukcja wynikała z działań gościa.
A dlaczego Falcon gnieździ się w jądrze? Bo obecność w dolnej warstwie daje mu przywileje względem tego co wyżej. Może sprawniej dostrzegać wirusy, a one nie mają jak mu zaszkodzić.
Warto też wiedzieć, że piramidka systemowa buduje się od dołu, przy każdym włączeniu urządzenia.
Falcon Sensor uruchamia się na początku. Więc jeśli przy każdym uruchamianiu będzie się psuł, to system nawet się nie włączy i może wpaść w pętlę śmierci. Reset → niebieski ekran → reset…
Kolejna sprawa do wyjaśnienia – dlaczego Falcon uderzył w tak wiele firm? Żeby odpowiedzieć na to pytanie, przedstawię jego autorów.
CrowdStrike
W świecie cyberbezpieczeństwa jest wiele mniejszych, niszowych, mocno wyspecjalizowanych firm. Ale CrowdStrike (będę czasem pisał CS) to coś innego.
Można powiedzieć, że to megakorpo od cyberbezpieczeństwa. Trochę jak Microsoft w branży systemów operacyjnych albo Adobe w świecie tworzenia cyfrowych treści.
Ich kolory to czerwień, logo to pikujący sokół.
Są notowani na amerykańskiej giełdzie – jako CRWD
, gdyby ktoś uznał ich za przyszłościową inwestycję
Na własnej stronie chwalą się tym, że są numerem jeden według rankingu Gartnera (firmy konsultingowej zajmującej się bardziej technicznymi korpo).
Duże giełdowe korpo w USA? Zatem oczywiście ogłaszają z pompą inicjatywy „dobroobywatelskie”, społeczne, ekologiczne itd.
Czyli zapewne płacą innym wielkim podmiotom, żeby zrobiły wszystko za nich i wydały im zaświadczenia. Przykład z ich własnej strony: ClimeCo od kompensowania emisji.
Podwykonawca robi swoje. A CS zyskuje podziw mniej sceptycznych obywateli. Oraz punkciki ESG, którymi może skusić więcej funduszy inwestycyjnych.
Choć to wielki gracz, przed tym piątkiem raczej mało było o nich słychać w codziennym życiu. Nie kojarzę na przykład, żeby ktokolwiek robił memy z tekstem „baza wirusów programu CrowdStrike została zaktualizowana”.
CrowdStrike nie potrzebuje popularności w świecie cywilnym, bo ich klientami są inne wielkie korpo, chcące odhaczyć wymóg dbania o bezpieczeństwo. Analogicznie jak sam CS przy odpowiedzialności społecznej.
A zatem: korporacje płacą CrowdStrike’owi, instalują u siebie ich antywirusa. Mają zaliczony audyt. Nie muszą wprowadzać u siebie głębszych zmian, „podwykonawca wszystko ogarnie”.
Jako dodatkową zachętę CrowdStrike oferuje całą kolekcję modnych słów na czasie, w formie wyliczanki:
Kadry menedżerskie innych korpo, zbałamucone tymi słówkami i widzące, że ich znajomi z pól golfowych podpinają swoje korposy pod CrowdStrike’a, idą za tłumem. Ptaszysko zdobywa Amerykę, budując gniazda w coraz to nowych wielkich organizacjach:
To wyjaśnienie jednej z zagadek. „Dlaczego awaria nie dotknęła zwykłych ludzi?”. Bo raczej nie mają u siebie tego antywirusa. To rzecz z korpoświatka.
Techniczna strona awarii
Wiele firm miało Sokoła w trzewiach swoich Windowsów, a trzewia te były wrażliwe na wszelkie błędy… Ale jakoś przez lata wszystko się toczyło bez większych skandali. Co sprawiło, że rypło akurat kilka dni temu?
Sprawę opisał sam CrowdStrike na oficjalnej stronie. Z polskich stron analizę sytuacji przedstawił Niebezpiecznik. Trochę rozważań przedstawił na Twitterze Patrick Wardle.
Bomba numer 291
Przyczyną błędu były zmiany w jednym z plików, jakie CrowdStrike określa mianem channel files. Z tego co widziałem, to taka ich wewnętrzna nazwa na pliki konfiguracyjne, czyli zawierające ogólne instrukcje wpływające na zachowanie programu.
Widziałem pogłoski, że CrowdStrike mniej rygorystycznie podchodził do takich plików, traktując zmiany w nich jako lżejszy rodzaj aktualizacji; może dlatego błąd się przemknął.
W tym wypadku przyczyną błędu był plik numer 291, mówiący Sokołowi, w jaki sposób powinien monitorować zagrożenia związane z przepływem danych „rurami” (strukturami typu named pipes) między różnymi częściami systemu.
W tym pliku, z tego czy innego powodu, znalazły się jakieś dane „niestrawne” dla Falcona, niepasujące do schematów, jakie spodziewał się odczytać. Następował niespodziewany błąd programu.
Na Twitterze ktoś zwrócił uwagę na to, że wadliwy plik był pełen zer. Mocny sygnał, że coś może z nim być nie tak.
Jak na ironię – produkt CrowdStrike’a jest wyspecjalizowany w tym, żeby dostrzegać podejrzane wzorce w cudzych danych i programach. Ale nie stosował tej czujności wobec plików związanych ze sobą.
Tu nasuwa się logiczny wniosek – jeśli to konkretne pliki odpowiadają za zniszczenia, to może da się je jakoś zmienić albo usunąć? Bingo!
Prosta naprawa
W korporacyjnych realiach szeregowi pracownicy raczej niewiele mogą, gdy ich ekrany pokryją się błękitem. Są na swoich komputerach tylko gośćmi, a dostęp do bebechów ma jedynie administracja.
Ale kiedy grzecznie oddadzą swoje urządzenia, to osoby od spraw technicznych zapewne zabiorą je do swojej okablowanej groty w piwnicy. I zrobią następujące rzeczy, zgodnie z zaleceniami:
- uruchomią Windowsa w trybie awaryjnym;
- przejdą do folderu
C:\Windows\System32\drivers\CrowdStrike
; -
usuną pliki pasujące do wzorca
C-00000291*.sys
.Jak rozumiem, gwiazdka oznacza tu jakiś dalszy ciąg cyfr/znaków, który nie ma większego znaczenia.
W ten sposób Falcon nie znajdzie pliku-bomby, a w międzyczasie dostanie aktualizację, która już podsunie mu bezpieczne, niewybuchowe rzeczy.
Niektórzy wspominali również o usunięciu całego folderu CrowdStrike
albo przynajmniej zmianie jego nazwy. Gdyby usunięcie pliku nie wystarczyło, to zawsze jest to jakaś opcja.
„Czy próbowałeś wyłączyć i włączyć ponownie?”
Istnieje również sposób partyzancki. Jak radzi sam Microsoft, może pomóc wytrwałe resetowanie systemu. W połączeniu z odrobiną szczęścia, bo czasem potrzeba nawet kilkunastu prób.
Jakim cudem to działa? Zapewne, budząc się do życia po włączeniu systemu, ptaszysko CrowdStrike’a zaczyna robić kilka rzeczy naraz. Wysyła do serwerów firmy pytanie o aktualizacje, a jednocześnie zaczyna szperać w plikach.
Zazwyczaj szperanie kończy się pierwsze. Sokół trafia na bombę ukrytą w pliku 291 i wybucha razem z całym systemem, nim doleci aktualizacja.
…Ale może się też zdarzyć, że aktualizacja dotrze pierwsza i podmieni bombę na coś bezpiecznego (albo powie Sokołowi, żeby nie otwierał pliku – nie zagłębiałem się w dokładne działanie).
Samozaoranieszyfrowanie
Najgorzej mają, paradoksalnie, ludzie bardziej dbający o bezpieczeństwo, jeśli szyfrowali dyski programem BitLocker.
To zabezpieczenie przed sytuacją, gdy ktoś wykrada dysk twardy z firmowego komputera i bez problemów odczytuje go na innym urządzeniu. BitLocker, stanowiący część Windowsa, pozwala zaszyfrować dysk. Nie można go odczytać bez podania hasła podczas uruchamiania kompa.
Zwykle takie bezpieczeństwo to zaleta. Ale tym razem jest utrudnieniem, bo nie ma jak się dostać do folderów i usunąć plików od CS-a. Ptaszysko się włącza, nim dysk zostanie odszyfrowany, i konsekwentnie ubija system.
Na szczęście nie wszystko stracone! Przy ustawianiu szyfrowania BitLocker generuje awaryjny klucz odzyskiwania dostępu (recovery key), który należy gdzieś sobie zapisać na czarną godzinę. Wybawienie w sytuacji takiej jak ta. Chyba że:
- klucz gdzieś zaginął przez te wszystkie lata, gdy nikt z niego nie korzystał,
- albo nikt nie pamięta, gdzie został odłożony, a jedyna dokumentacja jest na zablokowanym kompie,
- albo wszystkie zapasowe klucze są trzymane na osobnym komputerze, który również padł przez CrowdStrike’a,
- albo cały dział informatyczny został przeniesiony do Indii.
Jak widać, awaria niektórym dokopała bardziej niż innym
Rola Microsoftu
Microsoftowi dość mocno się dostało za to, że to jego systemy tak nagle padły.
Pojawiły się głosy, że to idealny moment, żeby zakończyć dominację Windowsa i zwrócić się ku alternatywie – systemowi Linux.
Jego kod źródłowy jest otwarty, rozwijany publicznie przez tysiące osób, również z dużych firm informatycznych. Istnieje wiele jego wariantów, nie ma skupienia władzy w rękach jednego dyktatora. Niektóre wersje mają interfejsy bardzo podobne do Windowsa.
Czy niechęć do Windowsa i chęć zmiany są uzasadnione?
Wcześniej wspomniałem, że Microsoft jest trochę jak deweloper, który sprzedał dom klientowi, a klient zaprosił kłopotliwego gościa. Na pewno nie zawiesili komputerów z własnej inicjatywy. Ale parę rzeczy jednak bym im zarzucił.
Nieszczelność systemu
Po pierwsze: mogli bardziej dopracować i uszczelnić możliwości kontaktu między jądrem a modułami gościnnymi.
Ciągnąc analogię deweloperską – teraz jest tak, jakby we wszystkich mieszkaniach oddawanych do użytku zostawiali w jakimś miejscu odkrytą instalację elektryczną. A mogli przecież nieco ją zabezpieczyć, dołożyć izolacji. Ograniczyć gościom możliwość niszczycielskich działań.
Jak wskazuje programista Brendan Gregg we wpisie No more blue fridays, z pomocą może przyjść nowinka zwana eBPF – narzędzia przeznaczone do monitorowania tego, co się dzieje wewnątrz jądra. Na systemie Linux już działają, na Windowsach trwają próby wdrożenia.
Analogia: to tak, jakby zamykać Sokoła i podobne mu moduły gościnne w szczelnym laboratorium. Mają do dyspozycji wszelkie mikroskopy, jakie tylko chcą. Ale nie mogą wyjść i wnieść żadnej bomby z zewnątrz.
Niektórzy zwracają też uwagę na to, że już w zamierzchłych czasach dało się przywrócić system do stanu z czasu ostatniego udanego uruchomienia. Microsoft nie musiałby wynajdować niczego od nowa, wystarczyłoby odkurzyć to przydatne rozwiązanie. Byłoby wybawieniem w sytuacjach kryzysowych.
Ale rozumiem też, że sprawa nie jest zero-jedynkowa. Że Falcon, jako antywirus, jednak potrzebuje pewnych przywilejów, których nie potrzebują inni. Żeby potencjalne wirusy nie mogły go wyprzedzić, wyłączyć, usunąć. Okej, niech będzie.
Dążenia do monopolizacji
Mój drugi, silniejszy zarzut: Microsoft aktywnie spychał organizacje ku monokulturze Windowsa.
Oferowali usługi w pakietach – w taki sposób, że organizacjom wygodniej było brać ekosystem w 100% oparty na Windowsie niż różnicować. Do większych podmiotów potrafili wysyłać całe armie sprzedawców i akwizytorów.
Jaskrawym przykładem jest sprawa Monachium. Jego samorząd zwrócił się ku Linuksowi i rozwiązaniom o otwartym kodzie źródłowym, żeby się uniezależnić.
Microsoft potraktował to osobiście. Zaczął oferować niemalże dumpingowe zniżki, publikować analizy pokazujące Windowsa jako oszczędniejszego, lobbować na poziomie politycznym. Ostatecznie do urzędów wrócił Windows.
W piątkowym przypadku błąd wymagał jednoczesnej obecności Windowsa i CrowdStrike’a. To nieco zawęziło obszar rażenia. Ale co by było, gdyby dotknął aktualizacji samego Windowsa?
Skala strat byłaby niewyobrażalna. I sam Microsoft się do tego ryzyka przyczynił, nie znając umiaru w windowsowaniu świata.
Podsumowując: choć MS nie zawinił wprost, moim zdaniem stworzył klimat dla takich sytuacji jak ta. Więc nie jest mi ich żal i popieram naciski na otwarte alternatywy. Zwłaszcza we wszelkich wrażliwszych sektorach.
Choć jestem za Linuksem, z kronikarskiego obowiązku muszę przyznać, że też kiedyś oberwali przez aktualizację CrowdStrike’a. Miało to miejsce parę miesięcy temu i jakoś nie przebiło się do mediów.
Zasada była bardzo podobna – system ma swoje jądro, dostępne dla uprzywilejowanych programów. W to miejsce trafia Falcon. Jego błąd ubija całe jądro, a zatem cały system. Różnica polega na tym, że na Linuksie nie ma niebieskich ekranów śmierci, a błąd na poziomie fundamentów nazywa się kernel panic („popłoch jądra”).
Linux ma wiele wariantów (dystrybucji). W tym wypadku pierwszy oberwał Debian. Potem awaria dotknęła również systemu Rocky Linux.
Konsekwencje
Afera w większości ma się ku końcowi. Są zapewne firmy, które bardziej oberwały, pogubiły klucze zapasowe itd. Nie zazdroszczę ich pracownikom i ślę wirtualne kondolencje.
Nie zazdroszczę też CrowdStrike’owi. Niebawem pewnie zwrócą się do niego te setki klientów z rankingu Fortune, którymi tak się chwalił. Będą chcieli odzyskać choć część kwot, które stracili w piątek.
Afera pozwoli również dokładniej poznać infrastrukturę firm.
Analogia: wiosną można się przejść i zapamiętać sobie, gdzie kwitną drzewa i krzewy. Takie rośliny zwykle mają owoce, zaś o tej porze roku szczególnie się wyróżniają. Po zapamiętaniu miejsca można tam wrócić po kilku miesiącach w nadziei na zbiory.
W podobny sposób wszyscy zainteresowani (w tym hakerzy) mogą sobie teraz zbierać informacje wymieniane na forach i zdjęciach. Tam, gdzie w piątek było niebiesko, tam jest CrowdStrike. Z taką informacją można zrobić różne rzeczy. Choć niełatwo by było zaplanować atak, który wyrządzi większe szkody niż nasz antywirus
W całej tej sytuacji dostrzegam też bardzo pozytywny aspekt. Oto prosta, zrozumiała dla ludzi katastrofa. Jasne pokazanie zagrożeń związanych z centralizacją.
Nie są nowe. Kiedyś sam je pobieżnie opisałem, niemal na początku istnienia bloga, opierając się na jeszcze starszych źródłach. Nowe jest natomiast nastawienie społeczeństwa.
Podczas większych dyskusji na temat centralizacji i cyfrowego uzależnienia prawie zawsze w komentarzach pojawiały się jakieś cwaniaki. Szydzące z realistów i pesymistów: „Ludzkość się rozwija! Chcesz wrócić do jaskiń, luddysto?”.
I czasem wygrywali dyskusję, bo sceptykom brakowało argumentów bliskich ludziom. Wychodzili na panikarzy snujących katastroficzne wizje.
Ta dyskusja się zmienia. Dzięki aferom takim jak ta z Newagiem, bliskich i zrozumiałych, spopularyzowała się świadomość zagrożenia. Mogę bezproblemowo rozmawiać o tych sprawach z większością znajomych.
Teraz powinno być jeszcze lepiej. Po obecnej aferze można usłyszeć słowa przestrogi w popularnych mediach:
To jest bardzo cenna lekcja dla użytkowników tego oprogramowania, którzy powinni się zastanowić nad pewną heterogenicznością środowisk, bo być może nie zawsze warto polegać na jednym rozwiązaniu
W sprawie wypowiedział się nawet minister cyfryzacji, tonem niepochlebnym wobec cyfrowej zależności, a swoje zdanie potwierdził w kolejnych wywiadach.
Jak widać, wiatr wieje w dobrą stronę. Przeciwnikom centralizacji pozostaje kuć żelazo, póki gorące. Czytać o niej, rozmawiać ze znajomymi, chwalić otwarte rozwiązania. W razie czego mój blog służy przykładami
Oddolne działania i budowanie oporu społecznego potrafią wiele zdziałać – swego czasu rząd Boliwii walczył z własnymi obywatelami, broniąc swojego układziku z korporacją Bechtel; ale gdy ludzie byli nieugięci, politycy ustąpili.
Pozostaje mieć nadzieję, że zmiany będą zachodziły nadal, a ludzie decyzyjni zejdą ze stromej, niebezpiecznej ścieżki uzależnienia, do którego prowadzi obecny „rozwój”.
We are the blue screen planet
And we are numb
You built this wall
For years to come
This sickening mindset
You must overcome
Now!
Był to wpis z serii Cyfrowy feudalizm
Ministerstwo Cyfryzacji
[sytuacja pokazuje] również, jak ważna jest różnorodność oprogramowania, z którego korzystamy oraz bycie przygotowanym na różne sytuacje. To także znak, że jeśli cały świat będzie korzystać z usług jednej firmy, każda awaria unieruchomi cały świat