BiznesINFO.pl Technologie Globalna awaria Windowsa. Microsoft publikuje instrukcję, znamy przyczyny. Czy katastrofie można było zapobiec?
Fot. Flickr/Joybot (CC BY-SA 2.0)

Globalna awaria Windowsa. Microsoft publikuje instrukcję, znamy przyczyny. Czy katastrofie można było zapobiec?

20 lipca 2024
Autor tekstu: Maciej Olanicki

Środowiska biznesowe bazujące na systemach Windows i wykorzystujące oprogramowanie CrowdStrike w piątek 19 lipca uległy masowej awarii. Dziś wiemy już więcej o dokładnych przyczynach problemów, a Microsoft opublikował właśnie zalecania, jak sobie z nimi radzić.

Awaria CrowdStrike - co poszło nie tak?

O zasięgu i skutkach wczorajszej awarii napisano bardzo wiele, dziś jednak dysponujemy bardziej szczegółowymi informacjami co do przyczyn. Nad problemem pochylił się Zach Vorhies, były pracownik Google i sygnalista, który stwierdził, że winę za wczorajszą awarię ponosi coś, co programiści systemowi wiedzą od dawna. Mechanizmy bezpieczeństwa pamięci w języku C++, a w zasadzie ich ograniczone działanie wynikające z konieczności stosowania tzw. wskaźników to ogromny problem współczesnego IT.

W jednym z plików konfiguracyjnych sterowników dostarczonych przez CrowdStrike, a wykorzystywanych do analizy behawioralnej dokonywanej w celu zapewnienia cyberbezpieczeństwa, znalazł się wskaźnik na region pamięci 0x9c (lub 156). W dużym uproszczeniu - wskazano (błąd ludzki niewychwycony w testach) niewłaściwy region przestrzeni adresowej pamięci , który jest niedostępny dla jakiegokolwiek programu. Działanie każdego programu, który spróbuje uzyskać dostęp do pamięci zostanie automatycznie zakończone przez Windowsa . A że program działał z najwyższymi uprawnieniami, to mógł dokonywać niemożliwego, co skończyło się pętlą ponownych uruchomień Windowsa o zasięgu globalnym.

Awaria witryny Sejmu. Hołownia: atak DDoS. A może zwykła niekompetencja?

Microsoft publikuje oficjalne zalecenia

Dziś dostępne są już oficjalne instrukcje dla administratorów, które pozwalają zarówno na ominięcie problemu, jak i przywrócenie komputerów do sprawności. Nie odbiegają one od zaleceń opublikowanych wczoraj i sprowadzają się do uruchomienia systemu w trybie awaryjnym, a następnie ręcznego usunięcia pliku SYS, w którym niewłaściwie zaadresowano pamięć. Plik ten znajduje się w lokalizacji C:\Windows\System32\drivers\CrowdStrike, a jego nazwa to C-00000291*.sys .

Zobacz: Elon Musk wpłaci miliony dolarów na kampanię prezydencką. Wesprze jednego kandydata

Pod uwagę należy oczywiście wziąć takie czynniki jak szyfrowanie pamięci komputera z użyciem BitLockera. Dlatego na zabezpieczonych w ten sposób maszynach do przejścia w tryb awaryjny konieczne jest wprowadzenie klucza, który uzyskać można - rzecz jasna po wcześniejszym uwierzytelnieniu - pod adresem aka.ms/aadrecoverykey .

Czy można było temu zapobiec?

Chybione akurat w tym przypadku wydają się argumenty, według których gdyby nie praktyki nadużywania pozycji lidera i stosowania mechanizmu vendor lock-in, to do wczorajszego globalnego krachu by nie doszło. Wszak na rynku rozwiązań związanych z cyberbezpieczeństwem panuje duża konkurencja i nikt nie zobowiązał administratorów do korzystania z rozwiązań CrowdStrike i przyznawania im najwyższych, systemowych uprawnień.

Podobne opłakane w skutkach wpadki zdarzały się i będą zdarzać , trudno nawet sobie wyobrazić, w jaki sposób miałyby być zwalczane, skoro zaawansowane oprogramowanie służące do zapewniania cyberbezpieczeństwa działa z najwyższymi uprawnieniami. Można oczywiście mieć pretensje do Microsoftu , że jeden plik może zepsuć cały system operacyjny, ale tu powraca argument o tym, że nie ma przymusu korzystania z usług dostawcy wadliwego pliku. Podobnie jak nie ma przymusu korzystania z wadliwego systemu operacyjnego.

Problem nie wystąpiłby, gdyby nie inherentne problemy oprogramowania napisanego w języku C++ . Sam Microsoft ocenił przed laty, że w wyniku wadliwych mechanizmów bezpiecznego zarządzania pamięcią w C i C++ bierze się w Windowsie ok. 70 proc. wszystkich błędów i luk bezpieczeństwa. Dlatego coraz więcej jest zwolenników pisania oprogramowania systemowego w bezpiecznym dla pamięci języku Rust, jednak ilość legacy kodu, który trzeba będzie przepisać z C i C++ jest gigantyczna, co daje nikłe szanse na rychłe wyeliminowanie ryzyka awarii takich jak wczorajsza.

Przestaną działać miliony linków. Google szykuje nam kolejną katastrofę
Porażka rządowego pomysłu na walkę z tym oszustwem. Miała być baza danych, są pustki
Obserwuj nas w
autor
Maciej Olanicki

Dziennikarz biznesinfo.pl. W przeszłości redaktor prowadzący dobreprogramy.pl, miesięcznika „IT Professional”, współpracownik Wirtualnej Polski. Adres dla sygnalistów: olanicki@protonmail.com.
 

Chcesz się ze mną skontaktować? Napisz adresowaną do mnie wiadomość na mail: redakcja@biznesinfo.pl
polska i świat praca handel finanse Energetyka Eko technologie