Model zaufania w Windows 10 wciąż łatwo ominąć – aktualizacje raczej nie pomogą

Strona główna Aktualności
Model zaufania w Windows 10 wciąż łatwo ominąć (depositphotos)
Model zaufania w Windows 10 wciąż łatwo ominąć (depositphotos)

O autorze

System Windows, wbrew pozorom, rozwija się bardzo szybko i na wielu polach. Zmiany ogłoszone dla przeklętej, wycofanej chwilowo wersji 1809 dotyczą również wbudowanego antywirusa. Windows wzbogaca się o ochronę na najpopularniejszych polach: przeglądarek internetowych i bezpieczeństwa w kwestii ransomware. Jednak aby poznać prawdziwe trendy w przemyśle złośliwego oprogramowania, trzeba szukać gdzie indziej, niż w optymistycznych ogłoszeniach Microsoftu. Kampanie reklamowe wymyślane dla luk w zabezpieczeniach (jak Meltdown i Spectre), bogate w logotypy i diagramy, oraz „modne” tematy typu ransomware to tak naprawdę powierzchowne wiadomości z branży bezpieczeństwa IT. Prawdziwe szkodniki są mniej eleganckie i niepodatne na masową reklamę. Co gorsza, Windows 10 (nawet najnowszy!), nie chroni przed nimi najlepiej. Wynika to z faktu, że problemy tkwią w samych założeniach projektowych systemu.

Obecnie mamy do czynienia z dwoma głównymi kłopotami bez rozwiązania. Mowa o wirusach bezplikowych oraz zestawianiu niestandardowego „środowiska uruchomieniowego”. Ta druga kwestia, kryjąca się pod enigmatyczną i długą nazwą, to zestaw zagrożeń polegających na rażącym nadużywaniu wbudowanej funkcjonalności. Innymi słowy – jeżeli system jest dziś mocno chroniony i bezpieczny, a antywirus chroni przeglądarkę internetową przed pobraniem szkodliwego/obcego kodu, należy próbować wyrządzać szkody za pomocą „legalnych” narzędzi.

W ten sposób, ambitni i uparci ludzie szukają zapomnianych, niedocenianych albo przypadkowych funkcji w komponentach systemu przeznaczonych do zupełnie innych zastosowań. Dzięki temu powstała baza z dokumentacją takich kwiatków. O jakich konkretnie nadużyciach mowa? Na przykład o pobieraniu plików narzędziem do rozpakowywania archiwów. Uruchamianiu programów jako wygaszacz ekranu. Albo uruchamianiu kodu w ramach działania innego programu.

To wszystko brzmi bardzo ogólnie. Aby zrozumieć skalę zagrożenia, posłużmy się zatem przykładem. Systemowe narzędzie CERTUTIL, mały program zaszyty wewnątrz Windows i służący do instalacji certyfikatów bezpieczeństwa (działa w tle, bez okien, nieinteraktywnie) można wykorzystać do pobierania plików, zaciemnienia ich, a następnie ukrycia w strumieniu alternatywnym innego pliku. Dlaczego jest to w ogóle możliwe? Otóż podczas projektowania narzędzia CERTUTIL, które musi umieć np. pobrać i zainstalować certyfikat w tle, nie zadbano o żadne ograniczenia: program potrafi pobierać dowolny plik z dowolnego miejsca i nie przejmuje się, czy to certyfikat, czy nie. A dlaczego jest to problem? Cóż, przeglądarki internetowe można chronić antywirusem i różnymi wtyczkami pilnującymi pobierania z nieznanych miejsc. Ale systemowego narzędzia do certyfikatów nikt nie będzie pilnować: nie jest to obcy kod, tylko zaufane narzędzie.

Podobnych przykładów są tuziny: okienko drukowania zawsze ładuje część swoich elementów graficznych, korzystając z konkretnej biblioteki (PrintDialog.DLL). Dzięki temu, możemy skopiować program z okienkiem w dowolne miejsce, w którym znajduje się jakiś złośliwy DLL o takiej nazwie. Kod z niego zostanie załadowany i bardzo często nie wzbudzi podejrzeń, ponieważ po pierwsze – nie jest plikiem EXE, tylko biblioteką, a po drugie – przecież załadowano go z użyciem „bezpiecznego” zaufanego komponentu systemu.

Taką klasę nadużyć ujęto pod nazwą „LOLBin”: Living-Off-The-Land Binaries. Czyli programy działające poza swoim wytyczonym obszarem. Aby spełniać definicję “LOLBin”, należy wykazywać jak najwięcej z niniejszych cech:

  • Być programem podpisanym cyfrowo przez Microsoft, najlepiej być komponentem samego systemu operacyjnego, co usuwa konieczność pobierania z internetu.
  • Posiadać opcję uruchamiania innych programów, najlepiej z parametrami. Dzięki temu możliwe jest omijanie odgórnie narzucanych „białych list” dopuszczalnego oprogramowania.
  • Zapisywać pliki wykorzystując funkcjonalność alternatywnych strumieni danych, pozwalających ukryć pliki wewnątrz innych plików. Jest to wbudowana i „legalna” funkcjonalność systemu plików NTFS, domyślnego w Windows.
  • Pobierać pliki z sieci lokalnej i z internetu. Ponieważ ograniczenia pobierania są zazwyczaj nakładane na przeglądarki i pocztę, a pobieranie z wykorzystaniem innych programów jest wykluczane białymi listami, systemowe programy, które można nakłonić do cichego pobierania potrafią być cenne.
  • Pomijanie ostrzeżeń Kontroli Konta Użytkownika. System Windows posiada wbudowany mechanizm minimalizacji uprawnień. Każdy program, nawet uruchamiany przez administratora, domyślnie pracuje na prawach ograniczonych, chyba że jawnie „poprosi” o wyższe. Wtedy na tzw. bezpiecznym (przyciemnionym) pulpicie pojawia się niesławny alert UAC, pytający o prawo do uruchomienia programu jako administrator. Ta nieoceniona funkcja, wprowadzona wraz z Vistą, była powszechnie niezrozumiana i znienawidzona, przez co Microsoft zdecydował się ją zepsuć: teraz ostrzeżenie pojawia się tylko, jeżeli prośba o uprawnienia pochodzi od programu niebędącego częścią systemu. Jeżeli więc uda się nakłonić element Windowsa do niecnych działań, ominie on alert UAC i sięgnie po prawa samodzielnie. Dlatego należy domyślnie ustawiać suwak UAC „na samą górę”, by pytał zawsze. Można to zrobić w Panelu Sterowania.

Pozostałymi cechami są: zdolność do kompilowania kodu (przykład wykorzystania wbudowanego w Windows kompilatora C# pojawił się na blogu dobrychprogramów), umiejętność przeszukiwania pod kątem poświadczeń – albo poprzez kradzież biletów, albo przez przeszukiwanie żywcem pod kątem jawnie zapisanych haseł w katalogu SYSVOL.

Narzędzi spełniających wybrane podzbiory powyższego zestawu jest mnóstwo. Co gorsza, wiele komponentów, o których mowa, zachowuje się w niebezpieczny sposób od dawna, np. od czasów systemu Windows 2000. Sytuacji nie poprawia to, że nowe wersje systemów świadomie demontują zabezpieczenia, a w dodatku dostarczają nowe programy, tworzone z użyciem złych praktyk (jak inaczej wytłumaczyć ładowanie biblioteki po nazwie i względnej ścieżce?).

Naprawa programów wykazujących szkodliwe LOL-tendencje jest bardzo mało prawdopodobna. Przede wszystkim dlatego, że bardzo często „tak ma być” i niekorzystne zachowanie jest po prostu działaniem zgodnie z założeniami projektowymi. Ponadto, istotne przebudowanie znanych narzędzi natychmiast doprowadzi do problemów z kompatybilnością. Wreszcie, liczba programów do poprawki jest tak duża, że zatrzymałoby to prace nad nowymi funkcjami Windows. Historia odnotowała już taki przypadek 15 lat temu, gdy rozwój systemu został zatrzymany celem porządnego załatania Windows XP, ale dziś jest to już całkowicie niewyobrażalne (choć konieczne).

Należy również mieć świadomość zastosowań dla odkryć takiego rodzaju. Dla samodzielnych, klienckich komputerów nie ma znaczenia, czy złośliwy kod jest pobieralny przez CERTUTIL, skoro użytkownik i tak otwiera program FAKTURA.EXE przesłany przez chińską Pocztę Polską. Ale w środowiskach monitorowanych, jak używane w firmach domeny Active Directory, takie cudaczne metody wykonywania kodu to horror. W najlepszym wypadku prowadzi do tak zwanych „ruchów lateralnych”: przechodzenia między komputerami bez podnoszenia uprawnień. Z punktu widzenia uwierzytelniania jest to działanie legalne, ale obiektywnie jest bez sensu i nieuchronnie musi oznaczać próby wyszukiwania słabości w sieci. O wiele gorszą kwestią jest praktyczna utrata kontroli nad badaniem procesów: o wiele łatwiej administratorom znaleźć program „chiński-trojan.exe”, afgański, niepodpisany „svchost.exe”, niż patrzeć, czy systemowy MOBSYNC.EXE zajmuje się synchronizowaniem dokumentów, czy właśnie kopie BitCoiny.

Wyczerpującą prezentację na temat LOLBin przedstawił niedawno Oddvar Moe (aż trudno uwierzyć, że to prawdziwe imię i nazwisko!), jeden z opiekunów projektu.

© dobreprogramy