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

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

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

12.09.2017 15:37

PowerShell jest niewątpliwie bardzo dobrą i zaawansowanąpowłoką systemową, ale świat używa przede wszystkim uniksowychtechnologii i brak czegoś, co pozwoliłoby uruchamiać normalne,dobrze znane narzędzia konsolowe znacząco utrudniał Microsoftowikonkurowanie 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, żemożna było z nim śmiałopracować. Microsoft zapowiada, że WSL stanie się domyślnączęścią Windowsa 10 wraz z wydaniem aktualizacji Fall CreatorsUpdate. I wraz z tym, stanie się kolejną drogą do ataków naWindowsa.

Badacze z firmy Check Point przedstawiliwłaśnie bardzo skuteczną metodę ukrycia złośliwejaktywności w Windowsie 10 przed nawet najskuteczniejszymiantywirusami, która korzysta z możliwości, jakie oferuje wbudowanyw ten system operacyjny linuksowy podsystem. Chodzi tu o nową klasęprocesów o nazwie Pico, które po prostu są dla antywirusówniewidzialne, a które wykorzystywane są przy uruchamianiulinuksowych programów.

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

Obraz

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

  1. Napastnik musi sprawdzić, czy WSL jest włączone. Sprawdza wtym celu stan sterowników Pico, a jeśli ich nie ma, to doinstalujeje systemowym narzędziem DISM. Jedna komenda wydana w tle jestniewidzialna dla użytkownika, nie budzi żadnych alarmów.
  1. WSL do działania wymaga włączenia trybu deweloperskiego –ma to być ochrona przed nadużyciami. Można to jednak zrobić wniezauważony dla użytkownika sposób, ustawiając dwa klucze wRejestrze. Co prawda potrzeba do tego uprawnień lokalnegoadministratora, ale mało to jest na Windowsa znanych atakówpodwyższenia uprawnień? Co więcej, chwilę po przeprowadzeniu tejoperacji, Bashware może z powrotem zmienić Rejestr, niepozostawiając żadnych śladów uaktywnienia WSL.
  1. Kolejny krok to zainstalowanie Linuksa, ponieważ linuksowainstancja nie ma wciąż żadnego systemu plików. Robi się tojednym poleceniem, Lxrun /install – w tle po cichu pobrany zostanieobraz Ubuntu 16.04, który za chwilę stanie się całkowiciesprawnym, niezależnym od Windowsa i jego zabezpieczeń środowiskiemuruchomieniowym. Co można dalej zrobić?
  1. Teraz czas na prawdziwie multiplatformowe malware. W tym celuBashware instaluje w środowisku WSL… Wine. Tak, ta opensource’owawarstwa kompatybilności Windowsa dla systemów uniksowych działajuż po pewnych poprawkach w WSL, pozwalając uruchomić windowsowebinarki wewnątrz linuksowego systemu działającego w ramachwindowsowego systemu. Wine konwertuje wywołania Windows API nawywołania zgodne z POSIX. Tak więc windowsowe malware uruchomione wWine zostaje przekonwertowane na POSIX, by następnie zostaćprzekonwertowane przez sterownik Pico na wywołania jądra NT, którewykona bez oporów to, co dostarczyło lxcore.sys.

W ten sposób, jak demonstrują badacze CheckPointa, można naWindowsie uruchomić dowolne windowsowe malware, całkowicie pozazasię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 pobieraneprzez instalator archiwum plików po tym, jak zostało pobrane, aleprzed jego rozpakowaniem, napastnik może dowolnie zmodyfikowaćpobrany obraz Linuksa – zapomniano o sprawdzeniu jegoautentyczności. Windows nawet podpowiada, kiedy zrobić tępodmianę, po pobraniu archiwum generuje jego skrót SHA256 izapisuje go do pliku… nic z tym skrótem więcej nie robiąc.

Zmieniony linuksowy system plików to zaś wielka okazja: z jegopoziomu mamy dostęp do systemów plików NTFS, podpiętych wLinuksie jako /mnt, z pełnymi uprawnieniami do czytania, pisania iuruchamiania windowsowych plików z poziomu WSL, z obejściemmechanizmów UAC.

Zademonstrowany przez CheckPointa atak jest spełnieniemprzepowiedni Alexa Ionescu z firmy Crowdstrike, który podczaszeszłorocznej konferencji BlackHat ostrzegał, że Ubuntu osadzone wWindowsie jest znacznie mniej bezpieczne, niż normalne dystrybucjeLinuksa. Jest tak, ponieważ problemy z kompatybilnością wymogływyłączenie większości mechanizmów ochronnych jądra. Ionescuostrzegał też wówczas, że złośliwy linuksowy kod mógłbywywoływać API Windowsa, przeprowadzając trudne do wychwyceniaprzez mechanizmy obronne Microsoftu ataki.

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

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (89)