Malware podpisany przez Microsoft? Trojan Zloader omija podpisy cyfrowe

Check Point Research informuje o złośliwym oprogramowaniu obecnym w plikach noszących podpis cyfrowy Microsoftu. Trojan bankowy Zloader wykorzystuje jako jeden z etapów infekcji zmodyfikowaną bibliotekę DLL Narzędzia do Rozwiązywania Problemów Windows. Microsoft nie podpisał jednak trojana. Nikt także nie wykradł z Redmond podpisu. Zatem jak to możliwe?

Trojan Zloader omija podpisy cyfrowe
Trojan Zloader omija podpisy cyfrowe
Źródło zdjęć: © PxHere
Kamil J. Dudek

Podpisywanie plików wykonywalnych w Windows to podstawowa metoda weryfikacji autentyczności i bezpieczeństwa programu. Podpis cyfrowy jest dołączany do końca pliku i pokrywa większość kodu wykonywalnego pliku PE, choć można podpisywać także inne pliki, nie tylko EXE. Podpisy są sprzężone z systemową bazą zaufanych certyfikatów i podlegają konfiguracji za pomocą Usług Kryptograficznych Windows.

Ostatnimi czasy okazało się jednak, że istnieje wiele sposobów, na które można oszukać mechanizm podpisów. Bez konieczności kradzieży części prywatnej certyfikatu, co pozwalałoby na podpisywanie dowolnych plików w cudzym imieniu.

Bardzo wyrozumiała weryfikacja

Sposoby te to oczywiście rezultaty błędów, dziur i słabości w implementacji mechanizmu podpisów w Windows. Microsoft wielokrotnie łatał usługi kryptograficzne dla podpisów plików, dzięki czemu czasami likwidował poważne słabości i wprowadzał bokiem sporo zamieszania. Na przykład, łata na podatność CVE-2020-1599 wprowadziła ochronę przed bezkarnym "dopisywaniem" złośliwych treści do podpisanego pliku bez jego unieważniania, ale jest ona włączona tylko w ograniczonym stopniu.

Dzieje się tak ze względu (między innymi) na inną podatność, CVE-2020-1464, która po naprawie doprowadziła do oznaczania oficjalnego instalatora Google Chrome jako pliku ze sfałszowanym podpisem. Microsoft już osiem lat temu, przy okazji CVE-2013-3900, wiedział, że naprawa nadmiernie liberalnej weryfikacji podpisów doprowadzi do problemów.

To przykra cena zgodności z 20-letnim rozwiązaniem. Windows 2000, wprowadzający przystępny mechanizm podpisów na desktop, obfitował w wiele genialnych i sprytnych pomysłów z zakresu bezpieczeństwa. Okazało się jednak, że niemała ich część była zaimplementowana bez odporności na przyszłych cyberprzestępców.

VBS i HTA

Opisany przez Check Point Research trojan Zloader jest stworzony przez kogoś, kto wyciągnął lekcje z łatanych podatności, odkrył częściowo jedynie włączone zabezpieczenia i poświęcił czas na wymyślenie metody nadużycia mechanizmu podpisów. W jaki sposób to osiągnięto? Ależ oczywiście znowu dzięki środowisku Visual Basic Script oraz formatowi HTA. Jakżeby inaczej.

Działa to następująco: podpis cyfrowy pokrywa sekcje kodu w pliku DLL, więc nie da się wstrzyknąć złośliwego kodu bez unieważnienia podpisu. Ale można wstrzyknąć dodatkowe dane w sam podpis - jako dodatkową sekcję. Nie da się już dopisywać danych za podpisem (to właśnie robił Google), ale sam podpis jest na tyle elastyczny, że można dorzucić do niego śmieci, bez naruszenia jego struktury.

Zloader wykorzystuje plik DLL podpisany przez Microsoft. Podpis jest poprawny, a kod, który pokrywa, jest bezpieczny i faktycznie pochodzi z Redmond. Jednakże w sekcji przeznaczonej na podpis jest trochę "luzu". Wystarczy go na tyle, by umieścić tam... skrypt w języku Visual Basic.

VBS i MSHTA okazują się być niezwykle wyrozumiałe. Wykonanie "skryptu", w którym 98 proc. treści to binarny kod wykonywalny, a dopiero 2 proc. na końcu to skrypt, który ma jakiś sens, jest możliwe. VBS potraktuje po prostu całą resztę pliku jako "błąd składni" i wykona tylko część, którą rozumie. Oprogramowanie antywirusowe zwróci uwagę na to, że w systemie działa WSH (interpreter Visual Basica, coraz częściej jest to dowód na złośliwe działanie), ale zobaczy, że zajmuje się on plikiem "z Microsoftu", więc odwoła alarm.

Nie do naprawy

Ta fantastyczna sztuczka została już załatana przez Microsoft, ale poprawkę trzeba... włączyć. Microsoft opisał ją w notatce KB2915720. Oprogramowanie antywirusowe nigdy nie osiągnie wyrafinowania umożliwiającego wykrycie aż tak złożonych nadużyć. Wreszcie, narzędzia do analizy integralności nie mogą się opierać tylko na podpisie cyfrowym. Konieczne jest także sprawdzanie sum kontrolnych.

Malware wykorzystujący słabości podpisów plików wykonywalnych będzie coraz popularniejszy. I będzie to dotyczyć nie tylko trików jak ten wyżej, ale także plików podpisanych przez Microsoft przez przeoczenie. Takich "niewytłumaczalnych" plików było już w 2021 roku kilkanaście.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (27)