r   e   k   l   a   m   a
r   e   k   l   a   m   a

Bashware: Wine w Linuksie na Windowsie 10 pozwala na niewidzialne malware

Strona główna AktualnościBEZPIECZEŃSTWO

Bashware – taką nazwę otrzymała opracowana przez twórców złośliwego oprogramowania nowa technika ataku na Windowsa 10, która pozwala obejść wszystkie wykorzystywane dziś programy antywirusowe. Jak sugeruje nazwa, wykorzystywana jest w tym celu powłoka bash, część Windows Subsystem for Linux (WSL) – linuksowego podsystemu Windowsa.

PowerShell jest niewątpliwie bardzo dobrą i zaawansowaną powłoką systemową, ale świat używa przede wszystkim uniksowych technologii i brak czegoś, co pozwoliłoby uruchamiać normalne, dobrze znane narzędzia konsolowe znacząco utrudniał Microsoftowi konkurowanie z Apple o programistów spoza światka Visual Studio. Wbudowanie w Windows 10 wziętego z Ubuntu środowiska linuksowego, uruchamianego na podsystemie windowsowego kernela, zmieniło tę sytuację.

W marcu zeszłego roku WSL zadebiutował w Windowsie 10, a rok później był już na tyle dojrzały, że można było z nim śmiało pracować. Microsoft zapowiada, że WSL stanie się domyślną częścią Windowsa 10 wraz z wydaniem aktualizacji Fall Creators Update. I wraz z tym, stanie się kolejną drogą do ataków na Windowsa.

r   e   k   l   a   m   a

Badacze z firmy Check Point przedstawili właśnie bardzo skuteczną metodę ukrycia złośliwej aktywności w Windowsie 10 przed nawet najskuteczniejszymi antywirusami, która korzysta z możliwości, jakie oferuje wbudowany w ten system operacyjny linuksowy podsystem. Chodzi tu o nową klasę procesów o nazwie Pico, które po prostu są dla antywirusów niewidzialne, a które wykorzystywane są przy uruchamianiu linuksowych programów.

Procesy Pico są minimalnymi kontenerami zawierającymi linuksowe binarki typu ELF, pozbawionymi całej typowej dla procesów Windowsa NT struktury. Zarówno aplikacje linuksowe jak i system działają w całości w pojedynczym procesie, w izolowanym środowisku w przestrzeni użytkownika. Wszystkie linuksowe wywołania systemowe trafiają do kernela Windowsa, po drodze konwertowane przez sterowniki lxss.sys i lxcore.sys w normalne wywołania API Windowsa.

Mimo jednak kompletnego braku cech charakterystycznych procesów Windowsa, Pico mają takie same możliwości jak one. Dzięki temu otwierają drogę do Bashware: naprawdę pomysłowego obejścia windowsowych zabezpieczeń w czterech krokach.

1. Napastnik musi sprawdzić, czy WSL jest włączone. Sprawdza w tym celu stan sterowników Pico, a jeśli ich nie ma, to doinstaluje je systemowym narzędziem DISM. Jedna komenda wydana w tle jest niewidzialna dla użytkownika, nie budzi żadnych alarmów.

2. WSL do działania wymaga włączenia trybu deweloperskiego – ma to być ochrona przed nadużyciami. Można to jednak zrobić w niezauważony dla użytkownika sposób, ustawiając dwa klucze w Rejestrze. Co prawda potrzeba do tego uprawnień lokalnego administratora, ale mało to jest na Windowsa znanych ataków podwyższenia uprawnień? Co więcej, chwilę po przeprowadzeniu tej operacji, Bashware może z powrotem zmienić Rejestr, nie pozostawiając żadnych śladów uaktywnienia WSL.

3. Kolejny krok to zainstalowanie Linuksa, ponieważ linuksowa instancja nie ma wciąż żadnego systemu plików. Robi się to jednym poleceniem, Lxrun /install – w tle po cichu pobrany zostanie obraz Ubuntu 16.04, który za chwilę stanie się całkowicie sprawnym, niezależnym od Windowsa i jego zabezpieczeń środowiskiem uruchomieniowym. Co można dalej zrobić?

4. Teraz czas na prawdziwie multiplatformowe malware. W tym celu Bashware instaluje w środowisku WSL… Wine. Tak, ta opensource’owa warstwa kompatybilności Windowsa dla systemów uniksowych działa już po pewnych poprawkach w WSL, pozwalając uruchomić windowsowe binarki wewnątrz linuksowego systemu działającego w ramach windowsowego systemu. Wine konwertuje wywołania Windows API na wywołania zgodne z POSIX. Tak więc windowsowe malware uruchomione w Wine zostaje przekonwertowane na POSIX, by następnie zostać przekonwertowane przez sterownik Pico na wywołania jądra NT, które wykona bez oporów to, co dostarczyło lxcore.sys.

W ten sposób, jak demonstrują badacze CheckPointa, można na Windowsie uruchomić dowolne windowsowe malware, całkowicie poza zasięgiem antywirusów.

To jednak nie koniec problemów z WSL: przypadkiem okazało się, że instalator Linuksa w Windowsie LxRun.exe jest podatny na sytuację hazardu (race condition). Jeśli napastnik zmodyfikuje pobierane przez instalator archiwum plików po tym, jak zostało pobrane, ale przed jego rozpakowaniem, napastnik może dowolnie zmodyfikować pobrany obraz Linuksa – zapomniano o sprawdzeniu jego autentyczności. Windows nawet podpowiada, kiedy zrobić tę podmianę, po pobraniu archiwum generuje jego skrót SHA256 i zapisuje go do pliku… nic z tym skrótem więcej nie robiąc.

Zmieniony linuksowy system plików to zaś wielka okazja: z jego poziomu mamy dostęp do systemów plików NTFS, podpiętych w Linuksie jako /mnt, z pełnymi uprawnieniami do czytania, pisania i uruchamiania windowsowych plików z poziomu WSL, z obejściem mechanizmów UAC.

Zademonstrowany przez CheckPointa atak jest spełnieniem przepowiedni Alexa Ionescu z firmy Crowdstrike, który podczas zeszłorocznej konferencji BlackHat ostrzegał, że Ubuntu osadzone w Windowsie jest znacznie mniej bezpieczne, niż normalne dystrybucje Linuksa. Jest tak, ponieważ problemy z kompatybilnością wymogły wyłączenie większości mechanizmów ochronnych jądra. Ionescu ostrzegał też wówczas, że złośliwy linuksowy kod mógłby wywoływać API Windowsa, przeprowadzając trudne do wychwycenia przez mechanizmy obronne Microsoftu ataki.

Dzięki zastosowaniu Wine jest jak widać jeszcze lepiej. Póki programy antywirusowe nie nauczą się analizować procesów Pico, użytkownicy Windowsa 10 pozostaną przed takimi atakami bezbronni.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.