Aktywne Wpisy
Zupa-jeza +244
Marzy mi się Polska w której takie komentarze są wyśmiewane, a nie lajkowane. Całe nasze życie w stadzie polega na stawianiu sobie ograniczeń, żebyśmy się nie pozabijali i żeby to jakoś działało. C--j tam, że 2tys zginie, 10tys zostanie rannych i 100tys postronnych osób będzie miało traumy do końca życia. Prawo do mojego z--------u jest najważniejsze. Gdybyśmy wszyscy mieli taki mental to dalej byśmy siedzieli w pubie w oparach dymu i śmierdzieli
nie_odpisuj +1
Dajcie mi jakąś randomową (bardzo) dobrą radę. Obojętnie jaką ( ͡° ͜ʖ ͡°)
#kiciochypyta #tinder #zwiazki #samotnosc #wygryw #gruparatowaniapoziomu
#kiciochypyta #tinder #zwiazki #samotnosc #wygryw #gruparatowaniapoziomu
1) Crowdstrike to firma amerykańska firma zajmująca się cyberbezpieczeństwem. Celują w rynek enterprise. Dostarczają własne sterowniki, które są wykonywane w Windows kernel mode.
2) Poza sterownikiem, częścią ich delivery są różne definicje wirusów, malware i cholera wie czego.
3) Problem spowodowała właśnie aktualizacja tych definicji, nie samego drivera. Otóż okazało się, że driver jest dość głupi i po prostu skanuje wybraną lokalizację w poszukiwaniu definicji. Jeśli znajdzie odpowiednie pliki, to próbuje je załadować. Nie jest jasne, jakie checki wykonuje przed załadowaniem, ale nie spodziewam się tutaj szału.
4) Plik z nowo dodaną definicją okazał się pusty, zawierał same zera. Nie zatrzymało to jednak drivera, który na jego podstawie najprawdopodobniej próbował wyliczyć jakiś adres. Oczywiście, nie miał szans zrobić tego poprawnie, dlatego ten adres był bezpośrednio z pupy - wartość, którą widziałem w jednym tłicie to 0xc9. A po wyliczeniu tego adresu, driver próbował się dobrać do pamięci pod nim. Nie mogło to się skończyć dobrze.
Side note - skoro adres nie był NULLem, czy innym None, Rustowe unwrap chyba raczej tutaj by nie pomogło (ale się nie znam, więc mogę się mylić).
5) Około 8500000 maszyn na całym świecie zostało dotkniętych tym problemem. Naprawa nie jest skomplikowana, ale wymaga *fizycznego* dostępu do każdej maszyny ( ͡º ͜ʖ͡º)
Moje komentarze
- Wczytywanie plików na YOLO, bez odpowiedniej weryfikacji w kernel mode to nie tylko potężna luka bezpieczeństwa, ale objaw nieskończonej głupoty. Sam driver podobno był certyfikowany przez Microsoft, ale nie wiem na czym dokładnie taka certyfikacja polega i czy sprawdzali kod.
- Crowdstrike najprawdopodobniej zdecydował się zaimplementować mechanizm wczytywania różnych definicji z zewnętrznych plików, żeby ominąć konieczność certyfikacji drivera po każdym update. Taka przyjemność pewnie zajmuje trochę czasu i do najtańszych nie należy.
- Windows teoretycznie posiada mechanizm wywalania spartaczonych driverów. No ale posiada też coś takiego jak "boot install drivers" - drivery, które koniecznie muszą być załadowane, żeby system wstał. Oczywiście, Crowdstrike w swej mądrości oznaczył swój driver jako "boot install" xDDD
- Jedynym sensownym mechanizmem obrony przed takimi akcjami jest podział na dwie partycję - instalujemy update na partycji A i próbujemy się z niej zbootwać. Jeśli to się nie uda, bootujemy się z partycji B, która nie zawiera update.
- Podobno Microsoft zamiast dawać możliwość uruchamiania kodu 3rdparties w kernel mode, chciał udostępnić API związane z cyberbezpieczeństwem. Ale UE się wtrąciła, twierdząć że byłaby to praktyka monopolistyczna. Także xD
Moje pytania
- Dlaczego Crowdstrike wypuścił pusty plik?
- Dlaczego nie dodali żadnych sanity checków podczas ładowania plików, a potem Microsoft to przyklepał?
- Czy ten driver został poprawiony? Czy wrzucenie pustego pliku w odpowiednie miejsce na dysku nadal wywali cały system?
#programowanie #programista15k #pracait
Ciekawy jest fragment mówiący o tym, że Microsoft chciał ograniczyć dostęp 3rd party toolom do kernela już w 2006 roku, ale regulacja UE wymusiła udostępnienie dostępu na takim samym poziomie jak ma soft Microsoftu, żeby nie blokować konkurencji ( ͡° ͜ʖ ͡°)
Po drugie to był
@Krolik: Link? Poza tym, w obecnej sytuacji nie wierzę w nic, co mówi CS. A po necie latają hexdumpy z tym plikiem pełne zer.
Wyobrażacie sobie, że elektrownią atomową w Polsce zarządza jakaś guwnokorporacja która w ramach oszczędności całe IT łącznie z infrastrukturą
@groman43: Przy istnieniu b-tree file systems jak np. btrfs to brzmi jak rozwiązanie z epoki kamienia łupanego. W takim btrfs po prostu robisz snapshot przed aktualizacją, do którego możesz wrócić w
Oprogramowanie antywirusowe nigdy nie powinno mieć uprawnień na poziomie kernela. Nieważne co firmy security gadają. Wystarczy że jakiś chinol czy rusek zatrudni się w takiej firmie i puści jakiegoś sprytnego backdoora.
@groman43: Jak wygląda taka certyfikacja przez Microsoft? Mają dostęp do kodu i robią review?
Bo jeśli nie, to mogliby jedynie zweryfikować to jakimś zestawem testów - i tutaj już zależy czy faktycznie były tam same zera (dość oczywisty test) czy jakaś inna magiczna zawartość.
@bungaBunga: Nie wiem, ale chętnie się dowiem.
@groman43: no nie do końca tak. MS chciał dać takie API, ale Defender dalej miałby możliwość działania w kernel modę. EU powiedziała, że tak nie może być (bo to *jest* praktyka monopolistyczna). Więc mogą dać takie API, ale Defender też tego