biznes finanse technologie praca handel Eko Energetyka polska i świat
Obserwuj nas na:
BiznesINFO.pl > Technologie > Globalna awaria Windowsa. Microsoft publikuje instrukcję, znamy przyczyny. Czy katastrofie można było zapobiec?
Maciej Olanicki
Maciej Olanicki 20.07.2024 14:23

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

niebieski ekran śmierci
Fot. Flickr/Joybot (CC BY-SA 2.0)

Ś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.

Powiązane
D.Tusk, premier RP
Donald Tusk zamyka dwie granice. Polskie bojówki na zachodzie ze wsparciem Nawrockiego
Karol Nawrocki
Nawrocki odsłania karty. Padły nazwiska składu Kancelarii Prezydenta. Polacy mogą się zdziwić
BiznesINFO.pl
Obserwuj nas na: