Czym jest wirus metamorficzny
Wirus metamorficzny to samoreplikujący się program, który nie tylko ukrywa swój kod, ale go zmienia. Każdą nową kopię tworzy wbudowany silnik, który przepisuje instrukcje, więc kopie zachowują się tak samo, lecz prawie nie mają wspólnych wzorców bajtów. W tym tkwi cały sens: klasyczny antywirus rozpoznaje złośliwy kod po tym, jak on wygląda, a wirus metamorficzny nigdy nie wygląda dwa razy tak samo.
To, co robi po uruchomieniu, to osobna sprawa. Silnik mutacji jest tylko przebraniem, a ładunek może być dowolny: od infekowania plików po keylogger czy cichy kanał eksfiltracji danych. Warto to rozdzielić: silnik decyduje, czy rozpoznasz program, a ładunek decyduje, ile cię to będzie kosztować.
Jak przepisuje sam siebie
Mutacja odbywa się w cyklu, który wirus nosi w sobie, bez żadnej pomocy z zewnątrz.
- 1
Odczyt własnego kodu
Silnik rozkłada ciało wirusa na listę instrukcji, które potrafi zrozumieć i edytować.
- 2
Przekształcenie
Stosuje reguły przepisywania: zamienia instrukcję na równoważną, zmienia kolejność niezależnych bloków lub wstawia nieszkodliwy wypełniacz.
- 3
Odbudowa
Składa zmienione instrukcje w nowe, działające ciało, z nowymi adresami i skokami.
- 4
Infekcja i powtórka
Nowa kopia trafia do celu, a po uruchomieniu zaczyna ten sam cykl od nowa.
Metamorficzny a polimorficzny
Te dwa pojęcia często się mylą. Wirus polimorficzny zachowuje ten sam rdzeń kodu i zmienia tylko otoczkę, zwykle warstwę szyfrującą z innym kluczem za każdym razem. Po zdjęciu otoczki pojawia się to samo ciało, które analitycy mogą dopasować. Wirus metamorficzny nie ma stałego ciała, które dałoby się znaleźć.
| Cecha | Wirus polimorficzny | Wirus metamorficzny |
|---|---|---|
| Co się zmienia | Warstwa szyfrująca i jej dekryptor | Sam kod programu |
| Ciało po rozpakowaniu | Identyczne w każdej kopii | Inne w każdej kopii |
| Co niesie ze sobą | Silnik mutacji otoczki | Silnik, który rozkłada kod i buduje go na nowo |
| Trudność napisania | Umiarkowana | Zdecydowanie większa |
| Słaby punkt | Odszyfrowane ciało da się dopasować | Zachowanie oraz wzorce samego silnika |
Typowe techniki mutacji
Silniki metamorficzne łączą niewielki zestaw przekształceń. Żadne z nich nie jest zaawansowane osobno, a efekt bierze się z nakładania ich przez kolejne pokolenia.
- Podmiana instrukcji: zastąpienie instrukcji inną, która daje ten sam wynik.
- Zmiana kolejności kodu: tasowanie bloków niezależnych od siebie i poprawianie skoków między nimi.
- Zmiana nazw rejestrów: użycie innych rejestrów procesora do tych samych operacji.
- Wstawianie kodu śmieciowego: dodawanie instrukcji, które nic nie robią, na przykład pustych operacji lub działań znoszących się nawzajem.
- Rozwijanie i skracanie: zastąpienie krótkiej sekwencji dłuższym odpowiednikiem albo odwrotnie.
Dlaczego sygnatury zawodzą
Skanowanie sygnaturowe porównuje plik ze wzorcami bajtów pobranymi ze znanych próbek. Metamorfizm uderza w to założenie wprost, bo nowy wariant nie ma żadnego wzorca, który kiedykolwiek zapisano. Wykrywanie przesuwa się więc z tego, jak plik wygląda, na to, co robi.
Pokrewną warstwą jest monitorowanie integralności plików. Nie rozpoznaje ono wirusa w ogóle: zauważa, że chroniony plik się zmienił, choć nikt tej zmiany nie zatwierdził, a to działa niezależnie od wyglądu kodu.
| Podejście do wykrywania | Wymaga znanego wzorca bajtów | Widzi zachowanie w czasie działania |
|---|---|---|
| Dopasowanie sygnatur | ||
| Heurystyka statyczna | ||
| Monitorowanie zachowania | ||
| Piaskownica lub emulacja |
Obrona warstwowa
Ponieważ żadna pojedyncza kontrola nie rozpozna każdego wariantu, obronę buduje się z warstw, które zawodzą w różny sposób. Ochrona stacji końcowych oparta na zachowaniu, biała lista aplikacji i terminowe aktualizacje zmniejszają ryzyko infekcji. Większość infekcji i tak zaczyna się od człowieka, przez wiadomość typu clone phishing albo plik z nośnika wymiennego, dlatego filtrowanie poczty i reguły dla urządzeń liczą się tak samo jak skaner.
Załóż, że któryś wariant w końcu się uruchomi. Segmentacja sieci, konta o minimalnych uprawnieniach i przetestowane kopie zapasowe ograniczają to, czego może dotknąć, i czas sprzątania.
Czysty wynik skanowania nie dowodzi, że komputer jest czysty: wobec próbki metamorficznej skaner sygnaturowy może jedynie zgłosić, że nie znalazł niczego znanego.
Od czego zacząć
Zacznij od pytania, do czego dotarłaby udana infekcja, a nie jak złapać każdy wariant. Zinwentaryzuj stacje końcowe z wrażliwymi danymi, włącz tam wykrywanie oparte na zachowaniu i zadbaj, by nietypowe zmiany plików i wychodzące transfery nie przechodziły niezauważone.
Ostatnią linią obrony są same dane. Kontrola DLP na stacji końcowej, taka jak Anexet DLP, obserwuje kanały, którymi dane opuszczają firmę, więc wyciek można zatrzymać nawet wtedy, gdy program, który go zaczął, nigdy nie został rozpoznany.
Nie zawsze rozpoznasz intruza, ale zawsze możesz patrzeć, co wychodzi drzwiami.
