Microsoft próbuje wykorzystać globalną awarię w celu podważenia działań regulacyjnych Unii Europejskiej, wymierzonych w praktyki monopolistyczne firmy
Bodaj największą w historii globalną awarią informatyczną dotknięte były w zeszły piątek wyłącznie systemy z rodziny Windows – ale wyjątkowo nie była ona (bezpośrednio) winą Microsoftu.
Nie przeszkodziło to jednak gigantowi technologicznemu próbować bezceremonialnie zrzucić winę na Unię Europejską, a konkretnie na porozumienie między firmą a Komisją Europejską, które w 2009 roku zakończyło dochodzenie dotyczące praktyk monopolistycznych producenta Windowsa.
Microsoft próbuje cynicznie wykorzystać globalną awarię w celu podważenia działań regulacyjnych Unii Europejskiej, wymierzonych w praktyki monopolistyczne firmy.
Zeszłotygodniowa (19 lipca) awaria wyłączyła z użycia przynajmniej 8.5 miliona komputerów i maszyn wirtualnych, spowodowała odwołanie tysięcy lotów na całym świecie, i unieruchomiła kluczową infrastrukturę informatyczną w tysiącach firm i instytucji – w tym w szpitalach.
Złożyły się na nią dwie bezpośrednie przyczyny.
Po pierwsze, wadliwa aktualizacja danych używanych przez oprogramowanie Falcon firmy CrowdStrike. Falcon to oprogramowanie typu EDR (ang. „endpoint detection and response” – „wykrywanie i reagowanie w punkcie końcowym”), czyli w pewnym uproszczeniu bardziej zaawansowana forma oprogramowania antywirusowego. Ta aktualizacja danych – porównać ją można do aktualizacji bazy sygnatur wirusów zwykłego oprogramowania antywirusowego – zawierała źle sformatowane, nieczytelne, uszkodzone pliki.
Samo w sobie nie powinno to jednak prowadzić do poważnego błędu poprawnie napisanego i wystarczająco dobrze przetestowanego oprogramowania, a już na pewno nie do zawieszenia się czy restartu całego systemu. Oprogramowanie wczytujące jakiekolwiek dane powinno być w stanie zweryfikować ich poprawność, ewentualnie odrzucając uszkodzone pliki.
Drugą bezpośrednią przyczyną był nieznany wcześniej błąd w komponencie oprogramowania Falcon, który interpretuje i ładuje pliki z danymi. W pewnym momencie zabrakło właśnie weryfikacji, czy pliki z danymi są poprawne. To doprowadziło do krytycznego błędu podczas ładowania uszkodzonego pliku.
Ponieważ komponent ten działa na poziomie sterownika trybu jądra – najbardziej uprzywilejowanym poziomie w systemie operacyjnym – błąd ten pociągnął za sobą restart całego systemu.
Sterownik CrowdStrike Falcon jest ładowany od razu przy uruchamianiu się systemu, więc po restarcie sytuacja się powtarzała, i system albo był restartowany ponownie, albo wyświetlany był ekran krytycznego błędu systemu Windows (tak zwany „niebieski ekran śmierci”).
Urządzenia i maszyny wirtualne, na których zainstalowany był CrowdStrike Falcon, i które pobrały wadliwą aktualizację danych, stały się więc bezużyteczne i wymagały bezpośredniej interwencji w celu przywrócenia do stanu używalności.
I o tenże tryb jądra systemu Microsoftowi chodzi. Gdyby CrowdStrike Falcon nie mógł załadować sterownika trybu jądra i zamiast tego działał wyłącznie z przywilejami zwykłego oprogramowania, krytyczny błąd w komponencie odczytującym potencjalnie uszkodzone pliki z danymi nie wyłożyłby całego systemu operacyjnego.
Zaś do tego, by innym podmiotom (zwłaszcza firmom produkującym oprogramowanie antywirusowe i EDR, takim jak CrowdStrike) udostępnić możliwość ładowania sterowników trybu jądra,
Microsoft został zmuszony właśnie przez wspomniane porozumienie z Komisją Europejską z 2009 r.
To porozumienie było wynikiem postępowania dotyczącego praktyk monopolistycznych firmy, prowadzonego przez Komisję Europejską. Między innymi w kontekście oprogramowania antywirusowego.
Oprogramowanie antywirusowe Microsoftu, Windows Defender, miało dostęp do funkcji systemu operacyjnego, do których konkurencja dostępu nie miała. Innymi słowy, Microsoft wykorzystywał swoją kontrolę nad dominującym na rynku systemem operacyjnym Windows do sztucznego utrudniania konkurencji tworzenia dla tego systemu oprogramowania antywirusowego, które byłoby równie skuteczne, co Windows Defender.
Porozumienie zobowiązało Microsoft do udostępnienia pełnej dokumentacji i umożliwienia takiego samego dostępu do funkcji systemu operacyjnego, jaki mają produkty Microsoftu na Windowsie.
A ponieważ Windows Defender korzystał z funkcjonalności wymagających w Windowsie dostępu do trybu jądra systemu, oznaczało to konieczność umożliwienia tworzenia sterowników trybu jądra przez konkurencję na rynku antywirusów. Na przykład firmę CrowdStrike.
Jak pisze dr Ian Brown, doświadczony niezależny konsultant zajmujący się regulacjami Internetu, obwinianie Unii Europejskiej o zeszłotygodniową awarię jest bzdurą: „Nie ma żadnego dobrego powodu, by istotne dla bezpieczeństwa funkcje jądra systemu Windows, używane przez Microsoft we własnych produktach związanych z bezpieczeństwem, nie mogły być poprawnie udokumentowane i udostępnione produktom konkurencji, z wystarczającymi zabezpieczeniami”.
Innymi słowy, to, czy dostęp do odpowiednich funkcji systemu operacyjnego, niezbędnych dla oprogramowania antywirusowego lub EDR, jest w stanie spowodować krytyczny błąd w systemie Windows, zależy wyłącznie od Microsoftu. Porozumienie z UE wymaga tylko tego, by konkurencja miała taki sam dostęp do tych funkcji, jak Windows Defender.
„Zgadzam się z innymi osobami dobrze obeznanymi ze szczegółami systemów z rodziny NT [jak Windows 11 – przyp. red.], że zrzucanie winy na Unię Europejską jest bezpodstawne” – potwierdza w rozmowie ze mną Rairii, ekspert znający systemy z rodziny NT od podszewki (umożliwił m.in. uruchamianie wczesnych wersji tych systemów na… starych Macach).
Uruchamianie elementów systemu antywirusowego w trybie jądra nie jest, technicznie rzecz biorąc, niezbędne.
W systemie macOS (od wersji 10.15), Apple zaimplementowało niezbędne funkcje w sposób, który daje systemom antywirusowym i EDR możliwość skutecznego działania, a jednocześnie chroni system operacyjny przed krytycznymi błędami.
W otwartoźródłowych systemach z rodziny Linux (jak Ubuntu czy Fedora) dostępna jest technologia eBPF, dająca podobne możliwości, przy zachowaniu stabilności systemu.
Microsoft mógł więc wypełnić wymogi porozumienia z EU bez narażania stabilności systemu Windows.
„Gdyby Microsoft udostępnił dobrą alternatywę, nikt nie domagałby się dostępu do jądra systemu” – pisze na Fediwersie Marcus Hutchins, specjalista od bezpieczeństwa informacji, znany z tego, że lata temu powstrzymał infekcję oprogramowania szantażującego WannaCry. – „Powodem dochodzenia dotyczącego praktyk monopolistycznych było to, że próbowali wypchnąć konkurencję z jądra systemu, bez udostępnienia odpowiedniej alternatywy.”
Ale to nie wszystko! Ze względów bezpieczeństwa, sterowniki trybu jądra w systemie Windows muszą być podpisane cyfrowo przez Microsoft. Chodzi o to, by złośliwe oprogramowanie nie mogło mieć tak głębokiego dostępu do systemu.
W ramach procesu podpisywania sterownika Microsoft miał dostęp przynajmniej do tych elementów oprogramowania CrowdStrike Falcon, które działają w trybie najbardziej uprzywilejowanym (i najbardziej niebezpiecznym), zanim zostały dopuszczone do instalacji na urządzeniach i maszynach wirtualnych użytkowników końcowych.
W tym również do tego elementu oprogramowania Falcon, który zawierał odpowiedzialny za globalną awarię błąd w przetwarzaniu plików z danymi.
Microsoft miał więc okazję sprawdzić wadliwy sterownik trybu jądra, dystrybuowany przez CrowdStrike, zanim został on zainstalowany na jakimkolwiek systemie.
Awaria nie była spowodowana przez jakieś losowe, podejrzane oprogramowanie, nad którym Microsoft nie miał żadnej kontroli, bo rzekomo Unia Europejska mu tego zabroniła – a przez oprogramowanie, które zostało sprawdzone, zaakceptowane, i podpisane cyfrowo przez giganta.
Skoro jednak firma Microsoft postanowiła podjąć się wskazywania winnych w spowodowanej przez CrowdStrike globalnej katastrofie infrastruktury informatycznej, warto przypomnieć, że producent Windowsa nie potrzebuje zewnętrznych firm, by powodować poważne problemy dla milionów użytkowników i użytkowniczek.
Dosłownie kilka godzin przed katastrofą informatyczną spowodowaną przez CrowdStrike, infrastruktura chmurowa Microsoftu doświadczyła odrębnej poważnej awarii.
Rozwiązanie antywirusowe Microsoftu, Windows Defender, też ma… skomplikowaną historię. W 2017 roku znaleziono w nim krytyczną podatność, którą można było wykorzystać zdalnie za pomocą kilku linii tekstu umieszczonych na odwiedzonej przez użytkownika stronie internetowej lub w odebranym przezeń e-mailu.
Oprogramowanie Microsoftu mające chronić przed złośliwym oprogramowaniem mogło więc samo stać się wektorem ataku i infekcji – tym bardziej niebezpiecznej, że Windows Defender uruchamiany jest z bardzo wysokimi przywilejami w systemie (musi mieć wszak dostęp do wszystkich pików i procesów).
Tavis Ormandy, ekspert w zakresie bezpieczeństwa informacji i badacz złośliwego oprogramowania, pracujący w Google, określił wtedy ten błąd jako „najgorszy błąd Windowsa ostatnich lat”.
Kolejną podobną, krytyczną lukę bezpieczeństwa (choć nie aż tak łatwą do złośliwego wykorzystania) znaleziono w Windows Defenderze w 2021 roku.
W 2019 Microsoft opublikował aktualizację Windows Defendera, która spowodowała, że w większości wypadków skanowanie systemu kończyło się po przeskanowaniu… zaledwie czterdziestu plików.
Trudno chyba byłoby twierdzić, że te problemy są również winą Unii Europejskiej; choć kto wie, osoby odpowiedzialne za marketing w Microsofcie mogłyby się pewnie i o to pokusić.
To wina Unii Europejskiej. Porozumienie Microsoftu z UE z 2009 r. uniemożliwiło firmie zapobiegnięcie awarii CrowdStrike
Kto jest zatem winny potężnej, globalnej awarii, która wybuchła 19 lipca 2024?
Jak pisałem w zeszłym tygodniu w OKO.press, to problem systemowy. Do katastrof infrastruktury informatycznej wciąż nie podchodzimy tak samo poważnie, jak do katastrof infrastruktury fizycznej – mimo że skutki są często nie mniej groźne.
Jeśli jednak chcemy szukać winnych, zdecydowanie nie jest to Unia Europejska.
Gros odpowiedzialności bez wątpienia spoczywa na firmie CrowdStrike, która niewystarczająco kompleksowo testowała swoje oprogramowanie, nie wyłapała błędu w sterowniku trybu jądra, i opublikowała wadliwą aktualizację danych dla systemu Falcon.
Istnieją uznane praktyki programistyczne oraz metody testowania, które poprawnie stosowane pozwoliłyby uniknąć krytycznego błędu w Falconie.
Ale Microsoft też nie jest bez winy.
Gigant mógł zadbać o to, by niezbędne dla oprogramowania antywirusowego funkcjonalności były dostępne w sposób chroniący stabilność systemu Windows. Twórcy innych systemów operacyjnych byli przecież w stanie to zrobić.
Twierdząc dziś, że porozumienie z 2009 roku zmusza go do obniżenia standardów bezpieczeństwa czy stabilności systemu, Microsoft cynicznie wykorzystuje globalną, dotykającą milionów osób awarię, w celu podważenia działań regulacyjnych Unii Europejskiej.
Specjalista ds. bezpieczeństwa informacji, administrator sieci i aktywista w zakresie praw cyfrowych. Studiował filozofię, był członkiem Rady ds. Cyfryzacji, jest współzałożycielem warszawskiego Hackerspace’a. Pracował jako Dyrektor ds. Bezpieczeństwa Informacji w OCCRP – The Organised Crime and Corruption Reporting Project, konsorcjum ośrodków śledczych, mediów i dziennikarzy działających w Europie Wschodniej, na Kaukazie, w Azji Środkowej i Ameryce Środkowej. Współpracuje z szeregiem organizacji pozarządowych zajmujących się prawami cyfrowymi w kraju i za granicą. Współautor „Net Neutrality Compendium” oraz “Katalogu Kompetencji Medialnych”.
Specjalista ds. bezpieczeństwa informacji, administrator sieci i aktywista w zakresie praw cyfrowych. Studiował filozofię, był członkiem Rady ds. Cyfryzacji, jest współzałożycielem warszawskiego Hackerspace’a. Pracował jako Dyrektor ds. Bezpieczeństwa Informacji w OCCRP – The Organised Crime and Corruption Reporting Project, konsorcjum ośrodków śledczych, mediów i dziennikarzy działających w Europie Wschodniej, na Kaukazie, w Azji Środkowej i Ameryce Środkowej. Współpracuje z szeregiem organizacji pozarządowych zajmujących się prawami cyfrowymi w kraju i za granicą. Współautor „Net Neutrality Compendium” oraz “Katalogu Kompetencji Medialnych”.
Komentarze