Światowa awaria komputerów

Spis treści

Pod koniec tygodnia świat obiegła informacja o przeogromnych problemach związanych z awarią komputerów korzystających z systemu Windows.

Później zaczęły pojawiać się dyskusje kto tej awarii jest winien:

  • firma Microsoft,
  • czy może dostawca oprogramowania „antywirusowego” CrowdStrike?

Tym bardziej, że ta ostatnia bardzo szybko zdiagnozowała problem i przyznała się do błędu: podczas wprowadzania kolejnej poprawki wprowadzono do systemu Windows plik, który powodował zatrzymanie komputera zaraz po starcie i tak zwany blue screen of death — niebieski ekran śmierci.

Aplikacja Falcon firmy CrowdStrike to oprogramowanie nadzorujące pracę systemu Windows i chroniące komputer przed różnymi atakami. Zapewne nie jest zbyt popularne wśród indywidualnych użytkowników, ale ze względu na renomę firmy wybierane przez duże korporacje.

Gdy już komputery przestały działać pojawił się bardzo głośny komunikat: To nie cyberatak! Choć, osobiście, nie wiem skąd się bierze takie przekonanie: jak już się zaatakuje dostawcę istotnego komponentu systemu, nie ma potrzeby bawić się w atakowanie milionów komputerów.

Microsoft jest winny w tym sensie, że wyprodukował i wypromował System Operacyjny, który jest tak popularny, że używa go praktycznie każdy, a — co gorsza — ciągle wymaga dodatkowego oprogramowania, żeby chronić go przed atakami. Dostawców oprogramowania jest multum i żaden z „programów antywirusowych” nie daje 100% pewności bezpieczeństwa.

Natomiast pierwsza podstawowa wina firmy CrowdStrike polega na tym, że zaproponowany model nanoszenia poprawek: równocześnie na wszystkie komputery w razie jakiegokolwiek problemu kończy się tak jak się kończy… Krytyczne poprawki powinny być wprowadzanie stopniowo: najpierw na kilku, niezbyt ważnych stanowiskach, a dopiero gdy wszystko jest OK na kolejnych.

Drugi błąd to dopuszczenie przez tak znaną i wysoko cenioną firmę do publikacji tak zabójczej poprawki1.

Rynek na wpadkę zareagował dosyć gwałtownie, co widać na poniższym wykresie.

Akcje firmy CrowdStrike Holdings Inc.
Akcje firmy CrowdStrike Holdings Inc.

Kolejnym problemem z banalnie prostą naprawą „zepsutego” komputera polega na tym, że firma Microsoft wprowadziła w swoim systemie rozwiązanie (Bitlocker) pozwalające na kryptograficzną ochronę plików systemu operacyjnego zapisywanych na dyskach. W normalnych warunkach, gdy aktywowana, właściwie nie sprawia żadnych problemów i jest niewidoczna.

Problem pojawia się, gdy trzeba uruchomić system w trybie awaryjnym i wprowadzić zmiany w składnikach systemu. Wówczas trzeba podać klucz odblokowujący bitlockera. I trzeba wiedzieć gdzie ten klucz jest. Generalnie w korporacjach, gdzie komputery zarządzane są centralnie, nie powinno to być problemem, w przypadku gdy użytkownik do logowania do systemu używa konta Microsoft — klucz pamiętany jest w chmurze Microsoft. W każdym innym przypadku trzeba go sobie gdzieś zachować: albo wydrukować albo zapisać na jakimś nośniku zewnętrznym… I nie zgubić.

Na koniec, nie da się systemu naprawić zdalnie: trzeba usiąść przed komputerem i wykonać stosunkowo proste czynności. W przypadku setek terminali będzie to problemem.

Pojawił się nawet mem sugerujący, że wszystko to wydarzyło się aby ściągnąć personel IT z Home Office albo, że teraz komputer jest na prawdę bezpieczny

“You can’t get malware if you can’t boot your PC”
You can’t get malware if you can’t boot your PC

Na koniec o obrazku tytułowym tego wpisu. Sugerował on, że również Las Vegas Sphere został zaatakowany przez ten problem. Łatwo było się przekonać, że tak nie jest, bo to co jest wyświetlane na jego ekranie można na bieżąco oglądać w transmisji na żywo.

Na koniec, ponieważ problem nie dotyczył użytkowników komputerów Mac i z systemem Linux opracowano obrazek, który może być użyty jako tło pulpitu, albo lepiej jako ekran wygaszacza zawierający obraz ekranu BSOD.

Blue screen of Death
Blue screen of Death

Update 1 (20 lipca 2024, 20:50)

  1. Ekspert od cyberbezpieczeństwa Troy Hunt stwierdził:

    I dont think it’s to early to call it: this will be the largest IT outage in history.

  2. Według firmy Microsoft ucierpiało 8,5 miliona komputerów z systemem Windows.

  3. Pojawiły się doniesienia mówiące, że hakerzy wykorzystują zamieszanie dostarczając niezorientowanym użytkownikom pliki mające rzekomo naprawiać problem, a zawierające złośliwe oprogramowanie.

Update 2 (21 lipca 2024, 8:00)

  1. W dyskusjach pojawia się informacja, że nie był to pierwszy wypadek tego typu. Kilka lat temu jeden z powszechnie stosowanych programów antywirusowych potraktował jeden z plików pojawiających się w kolejnych poprawkach systemu jako niebezpieczny, poddał go kwarantannie i doprowadził do analogicznej sytuacji.

  2. Okazuje się, że to nie pierwsza „wtopa” firmy CrowdStrike. Kilka miesięcy temu ich oprogramowanie stosowane na komputerach z systemem operacyjnym Debian (Linux), po automatycznym zainstalowaniu poprawek doprowadziło do analogicznej sytuacji. Wówczas firma reagowała na problem bardzo ospale.

  3. Udostępnione analizy kodu feralnego pliku pozwoliły stwierdzić, że błąd związany był z dereferencją niezainicjowanego wskaźnika. Dosyć typowy błąd (początkujących programistów). Dla programistów w C taka sytuacja powstaje gdy w kodzie jest coś takiego:

    int * ptr;
    *ptr = 10;
    
    • deklarujemy zmienną wskaźnikową ptr ale nie nadajemy jej żadnej wartości; oczywiście powstaje pytanie jaką wartość zmienna przyjmuje?
    • następnie w miejsce pamięci wskazywanej przez ptr wstawiamy jakąś wartość; system traktuje to jako poważny błąd i zatrzymuje wykonanie kodu.

    Kompilator w tym przypadku może2 poinformować takim ostrzeżeniem:

    ptr.c:6:14: warning: ‘ptr’ is used uninitialized
    

    ale kto czyta takie komunikaty?

    Wykonanie tego kodu kończy się komunikatem:

    Segmentation fault (core dumped)
    

Update 3 (21 lipca, 21:30)

  1. To o czym pisałem w Update 2 (ten wypadek potraktowania pliku systemowego jako podejrzanego) przydarzył się firmie McAfee, którą wówczas kierował (CTO) George Kurtz. Odszedł z niej i założył firmę CrowdStrike i dziś jest jej CEO.

  2. Firma Microsoft, aby ułatwić naprawę zepsutych systemów przygotowała obraz bootowalnego systemu, który, po uruchomieniu, usuwa feralne pliki. żeby z niego skorzystać trzeba mieć odpowiednio odblokowany BIOS.

    Oczywiście problem hasła BitLockera jest ciągle aktualny…

Update 4 (23 lipca, 18:30)

Świat powoli zaczyna zapominać o katastrofie…

  1. …ale największy amerykański przewoźnik lotniczy Delta Airlines jeszcze dziś (wtorek, 23 lipca) odwoływał loty. Łącznie odwołała około 5500 lotów. Ręczna naprawa kilkunastu tysięcy terminali wymaga sporo czasu. Spowodowało to zainteresowanie władz federalnych USA.
  2. Pojawiły się pierwsze szacunki kosztów awarii. Wahają się one od 1 miliarda dolarów do dziesięciu/dziesiątek miliardów. Australia szacuje swoje koszty na około 1+ miliard dolarów (australijskich).
  3. Wartość (giełdowa) firma CrowdStrike spadła o kilkanaście miliardów dolarów.
  4. Firma CrowdStrike podała, że feralny (błędny) kod był dostępny jedynie przez niecałe 90 minut, ale oprogramowanie automatycznie, stosunkowo często sprawdza czy są poprawki i (automatycznie) je instaluje. W tym czasie zdołał zainfekować 8,5 mln komputerów…

  1. Inna rzecz, że firma we wpisie tłumaczącym co się stało, dodaje zachętę pobrania bezpłatnej, demonstracyjnej wersji ich oprogramowania… ↩︎

  2. I takie ustawienia są w naszym laboratorium w sali 604. I studenci masowo ten komunikat ignorują. ↩︎

Wojciech Myszka
Wojciech Myszka
dr inż. adiunkt

Tak się tylko rozglądam…