Bootkit 2009_Kaspersky

Transkrypt

Bootkit 2009_Kaspersky
Bootkit 2009
18 czerwca 2009
Siergiej Golowanow
Starszy analityk zagrożeń, Kaspersky Lab
Wiaczesław Rusakow
Członek zespołu zajmującego się analizowaniem złożonych zagrożeń, Kaspersky Lab
Wstęp
Obecna sytuacja
Ochrona
Wnioski
Wstęp
W 2008 roku pisaliśmy o szkodliwym programie o nazwie Backdoor.Win32.Sinowal, który stanowił poważne
zagrożenie, ponieważ stosował najbardziej zaawansowane w tym czasie technologie:
1. Spersonalizowane infekowanie osób odwiedzających zhakowane strony internetowe poprzez
wykorzystywanie wielu różnych luk w zabezpieczeniach, łącznie z lukami zero-day.
2. Wykorzystywanie najbardziej zaawansowanych technologii rootkit oraz wirusów sektora startowego w
celu infekowania MBR-a. Infekowanie sektora startowego dysków było bardzo popularne w czasie,
gdy szkodliwe programy po raz pierwszy zaczęły się pojawiać; stare technologie przeżywają obecnie
odrodzenie, są jednak podnoszone do nowego poziomu. Problem pogarsza fakt, że wiele z
najnowszych rozwiązań antywirusowych nie potrafi skanować MBR-a, ponieważ uznano, że ten
sposób infekcji nie stanowi już zagrożenia.
3. Wykorzystywanie nieustannie migrujących serwerów C&C i serwerów infekcji (adresy IP oraz nazwy
domen są ciągle modyfikowane). Zainfekowane komputery wykorzystywały wyspecjalizowane
algorytmy w celu tworzenia nazw domen, aby wyszukiwać swoje centra C&C. Ta sama technologia
została następnie zaiplementowana w szkodliwych programach należących do rodziny Kido
(Conficker).
W ciągu roku wymienione wyżej podejścia i technologie stały się "klasyką" i obecnie są implementowane w
szeregu różnych szkodliwych programach. Jednak twórcy bootkita nie spoczęli na laurach i nadal rozwijają
oraz implementują te technologie w bardziej wyrafinowanej postaci.
W rezultacie, bootkit stanowi najbardziej wyrafinowany współczesny szkodliwy program. Ukrywa się przed
rozwiązaniami bezpieczeństwa, które w większości nie potrafią go wykrywać.
Pod koniec marca 2009 roku analitycy z firmy Kaspersky Lab odkryli, że w Internecie rozprzestrzeniała się
nowa modyfikacja bootkita. W artykule tym przeanalizowano jego sposób działania i rozprzestrzeniania się.
Obecna sytuacja
Poniżej zostały opisane najistotniejsze zmiany w bootkicie:
1. Rozprzestrzenianie
Obecnie bootkit rozprzestrzenia się za pośrednictwem zhakowanych stron internetowych, zasobów
pornograficznych oraz stron z pirackim oprogramowaniem. Prawie wszystkie serwery biorące udział w
procesie infekcji posiadają wyraźny rosyjski ślad: stanowią część tak zwanych programów partnerskich, w
których właściciele stron internetowych współpracują z autorami szkodliwych programów. Takie "programy
partnerskie" są niezwykle popularne w rosyjskich i ukraińskich światkach cyberprzestępczych.
Mechanizm stosowany do tworzenia nazw domen dla strony zawierającej exploity również stanowi
stosunkowo nową technologię.
Gdy użytkownik odwiedzi zainfekowaną stronę internetową, na jego komputerze zacznie uruchamiać się
specjalnie stworzony skrypt. Skrypt ten wykorzystuje aktualną datę na komputerze w celu wygenerowania
nazwy strony, do której użytkownik zostanie przekierowany w celu pobrania stworzonego dla niej exploita.
Fragment skryptu (odszyfrowany) wykorzystywanego do generowania nazwy domeny dla strony
zawierającej exploity
Technologia ta niemal całkowicie uniemożliwia wykorzystywanie klasycznych metod opartych na czarnych
listach w celu zablokowania dostępu do stron zawierających exploity. Jednak analiza algorytmu
wykorzystywanego do generowania nazw domen pozwala określić, które z nazw domen zostaną
wykorzystane, a następnie zablokować je.
Oprócz tworzenia nazw domen poprzez wykorzystywanie aktualnej daty umieszczony w zainfekowanych
stronach internetowych skrypt tworzy ciasteczka ważne przez 7 dni. Uniemożliwia to ponowne otwarcie w
przeglądarce strony z pakietem narzędzi hakerskich Neosploit w przypadku wielokrotnego odwiedzenia przez
użytkownika zainfekowanej strony internetowej. Skrypt szuka ciasteczek, a gdy je znajdzie i nadal będą
ważne, nie stworzy nazwy domeny i użytkownik nie zostanie przekierowywany do Neosploita.
2. Technologie rootkit
Bootkit nadal stosuje metodę polegającą na infekowaniu MBR-a w celu załadowania swojego sterownika
przed uruchomieniem się systemu operacyjnego. Sterownik jest wykorzystywany do uniemożliwienia
wykrywania i leczenia zainfekowanego rekordu startowego. Pierwsze wersje przechwytywały procedurę IRP
Driver/ Disk; jednak ze względu na ewolucję technologii zwalczania szkodliwych programów twórcy wirusów
musieli znacznie zmodyfikować tę technikę. W porównaniu z poprzednimi wariantami najnowsza wersja
rootkita wykorzystuje bardziej zaawansowaną technologię w celu ukrycia swojej obecności w systemie. Żaden
z innych znanych obecnie rootkitów nie wykorzystuje opisanych niżej metod.
Podczas startu zainfekowany sterownik sprawdza, czy istnieje aktywny debugger. Jeżeli tak, rootkit nie ukryje
zainfekowanego MBR-a i nie ujawni jego obecności w systemie w żaden sposób.
Aby stać się niewidocznym, rootkit zastępuje wskaźnik urządzenia jednym ze swoich własnych; w tym
przypadku mamy do czynienia z określoną strukturą, w której zainfekowany sterownik zamienia wskaźnik na
funkcję (ParseProcedure).
Przechwytywanie funkcji w celu zastąpienia MBR-a
Jeżeli dysk fizyczny jest otwarty na dostęp programu antywirusowego w trybie niskopoziomowym,
przechwycona funkcja zostanie wywołana. Procedura IRP sterownika zostanie przechwycona na niższym
poziomie niż \Driver\Disk oraz funkcje, które są wywoływane, gdy uprzednio otwarty dysk jest zamknięty. Jak
tylko dysk zostanie zamknięty, wszystkie funkcje przechwytujące powracają do stanu pierwotnego.
Sterownik ATAPI niskiego poziomu w zainfekowanym systemie
Na osobną uwagę zasługuje kod sterownika, który również przeszedł znaczące modyfikacje. Większość
kluczowych funkcji, które instalują procedury przechwytujące funkcje systemu operacyjnego lub same są
takimi procedurami przechwytującymi, zmieniła kształt, co znacznie komplikuje analizę szkodliwego kodu.
Przykład zaszyfrowanych funkcji przechwytujących
Ochrona
Mimo że najnowszy wariant bootkita został zidentyfikowany przez wiele firm antywirusowych, które
zaimplementowały pewne metody umożliwiające wykrywanie go, Kaspersky Lab jest na razie jedyną firmą,
która zapewnia użytkownikom skuteczną ochronę przed bootkitem na każdym etapie.
Gdy użytkownik odwiedzi zainfekowaną stronę, Kaspersky Internet Security blokuje:
1. Dostęp do strony zawierającej exploity:
2. Skrypty, które tworzą i pobierają exploity:
3. Najbardziej niebezpieczne i najnowsze exploity:
Co najważniejsze, Kaspersky Internet Security potrafi wykryć aktywnego bootkita i wyleczyć zainfekowany
komputer.
Pierwsza wersja Sinowala pojawiła się na początku 2008 roku. Jednak do października poprzedniego roku
wykrywanie i leczenie zostało zaimplementowane tylko w 4 z 15 najpopularniejszych rozwiązaniach
antywirusowych.
Niestety, wariant bootkita z 2009 roku jest tak samo poważnym zagrożeniem jak jego poprzednicy. Ochrona
przed nim została zaimplementowana w oprogramowaniu Kaspersky Internet Security:
Po zidentyfikowaniu zagrożenia rozwiązanie antywirusowe potrafi obejść wszystkie procedury przechwytujące
zainstalowane przez rootkita i wyleczyć zainfekowany MBR:
Niezwykle istotne jest, aby rozwiązanie antywirusowe potrafiło zapewnić ochronę na każdym etapie - zarówno
podczas odwiedzania zainfekowanej strony przez użytkownika jak i leczenia aktywnej infekcji. Jeżeli
zagrożenie nie zostanie zidentyfikowane na żadnym etapie procesu infekcji, szkodnik może obejść
mechanizmy ochrony w celu zainfekowania komputera, w wyniku czego szkodliwy program będzie
niewidoczny przez długi czas.
Wnioski
Bootkit nadal jest poważnym zagrożeniem oraz najszybciej ewoluującym szkodliwym programem. Najbardziej
interesujące technologie tworzenia wirusów oraz procedury rozprzestrzeniania można znaleźć właśnie w tym
bootkicie.
Firmy antywirusowe muszą śledzić wszystkie modyfikacje bootkita. Przewidujemy, że w ciągu krótkiego czasu
nowe technologie, podobne do tych zastosowanych w bootkicie, będą szeroko implementowane przez wielu
innych twórców wirusów.
Jeszcze większe znaczenie ma usprawnienie obecnych produktów i technologii antywirusowych, które
potrafią skutecznie zwalczać nie tylko próby infekowania komputerów, ale również wykrywać złożone
zagrożenia działające na bezprecedensowo niskim poziomie w systemie operacyjnym.
Źródło:
Kaspersky Lab
Materiał został opublikowany na portalu Viruslist.pl