Co to są DGA i jak je wykryć?

Algorytmy generacji domeny (DGA) to klasa algorytmów, które okresowo i dynamicznie generują dużą liczbę nazw domen. Zazwyczaj domeny są wykorzystywane przez złośliwe oprogramowanie i botnety jako punkty spotkań, które ułatwiają wywołanie zwrotne do serwerów dowodzenia i kontroli złośliwego aktora. DGA umożliwiają złośliwemu oprogramowaniu generowanie dziesiątek tysięcy domen dziennie, z których zdecydowana większość jest niezarejestrowana. Ogromna liczba niezarejestrowanych domen jest wykorzystywana do maskowania zarejestrowanych domen, umożliwiając zainfekowanym botnetom unikanie wykrywania i odstraszania za pomocą systemów wykrywania zabezpieczeń opartych na sygnaturach lub reputacji adresów IP.

Pierwszą znaną rodziną złośliwego oprogramowania, która korzystała z DGA, był Kraken w 2008 roku. Później tego samego roku robak Conflicker rozgłosił taktykę DGA. Nawet po 10 latach wciąż można znaleźć Conflickera lub jeden z jego wariantów w niektórych dzisiejszych sieciach.

Wraz z rosnącym rozprzestrzenianiem się złośliwego oprogramowania, stosowanie DGA stało się bardziej wszechobecne.

Cele wykrywania DGA

Ponieważ aktywność DGA jest znaczącym wskaźnikiem naruszenia bezpieczeństwa, krytyczne staje się wykrycie takich działań w sieci. Istnieją trzy poziomy wykrywania DGA, a każdy kolejny poziom koreluje ze wzrostem dotkliwości. Wykrywanie na późniejszych poziomach jest trudniejsze, ale bardziej krytyczne.

Jeśli zostanie wykryty DGA, oznacza to, że jeden lub więcej systemów zostało zainfekowanych przez złośliwe oprogramowanie oparte na DGA i stało się botnetami. Należy podjąć pewne działania. Pierwszym celem jest zidentyfikowanie dotkniętych systemów, odpowiednie ich czyszczenie lub poddanie kwarantannie, aby zapobiec eskalacji.

Następnym celem jest ustalenie, czy dana nazwa domeny DGA jest zarejestrowana. Jeśli domena jest zarejestrowana, stała się aktywnym serwerem Command & Control, co stanowi duże zagrożenie dla Twojej sieci. Zainfekowane systemy, obecnie botnety, mogą wykorzystywać te serwery do dzwonienia do domu i otrzymywania poleceń od złośliwego napastnika. Dlatego drugim elementem skutecznego systemu detekcji DGA jest możliwość odróżnienia domen zarejestrowanych od niezarejestrowanych.

Na przykład DGA może generować 1000 domen z xyzwer1, xyzwer2…. do xyzwer1000. Haker musi zarejestrować tylko jedną domenę, tj. Xyzwer500, a nie pozostałe 999 domen. Jeśli można zidentyfikować zarejestrowaną domenę i skojarzony z nią adres IP, informacje mogą zostać wykorzystane do zablokowania kanału komunikacyjnego między docelowym systemem a serwerem Command & Control. Ponadto dane wywiadowcze powinny być propagowane do wszystkich innych systemów prewencji lub wykrywania w celu zablokowania wywołania zwrotnego do tego serwera z dowolnego systemu w sieci.

Ostatnim, ale najważniejszym celem systemu wykrywania DGA jest ustalenie, czy wywołanie zwrotne powiodło się z zarejestrowanymi domenami i czy nawiązano kontakt między zainfekowanymi systemami a serwerem Command & Control. Jeśli taka aktywność zostanie wykryta, może to oznaczać, że pewne szkody już zostały wyrządzone. Być może złośliwe oprogramowanie w Twojej sieci zostało zaktualizowane lub zostało zainstalowane nowe złośliwe oprogramowanie. Wrażliwe dane mogły zostać ujawnione.

Jak działa DGA Detection?

Aktywność DGA jest wykrywana poprzez przechwytywanie i analizowanie pakietów sieciowych, zwykle w pięciu ogólnych krokach.

Krok 1 - Wykryj aplikację DNS
Wykrywanie rozpoczyna się poprzez żądanie DNS i / lub komunikaty odpowiedzi. DNS jest podstawowym protokołem internetowym, a większość zapór ogniowych ma politykę zezwalającą na wychodzący ruch DNS na zarezerwowanym porcie 53. Jednak haker może wykorzystać port 53 do wysyłania swojego ruchu bez przestrzegania standardowego formatu wiadomości DNS. Ten atak nazywa się tunelowaniem DNS. Do dokładniejszej identyfikacji aplikacji DNS zalecany jest silnik Deep Packet Inspection (DPI).

Krok 2 - Wyodrębnij nazwy domen
Po zidentyfikowaniu aplikacji sieciowej jako DNS należy wyodrębnić nazwy domen w zapytaniach DNS i wiadomościach z odpowiedziami. Aby wyodrębnić właściwą nazwę domeny, zawartość wiadomości DNS musi zostać dokładnie przeanalizowana, a do wykonania tego zadania wymagany jest silnik DPI.

Krok 3 - Wykryj dowolne DGA
Należy przeprowadzić analizę domen wyodrębnionych z wiadomości DNS, aby określić, czy są to domeny DGA. To chyba najbardziej skomplikowany krok. Wyzwanie polega na ograniczeniu zarówno fałszywie pozytywnych, jak i fałszywie negatywnych wyników. Mechanizmy wykrywania ewoluowały dramatycznie w ciągu ostatnich ponad 10 lat.
Niektóre mechanizmy opierają się na stosunkowo prostej Entropii Shannona.
https://www.splunk.com/blog/2015/10/01/random-words-on-entropy-and-dns.html
Niektóre mechanizmy opierają się na bardziej wyrafinowanych Ngramach przedstawionych przez Fiodora na konferencji Hitb
Ostatnio, wraz z upowszechnieniem się uczenia maszynowego, jego metodologie zostały również zastosowane do wykrywania DGA. Uczenie maszynowe może łączyć funkcje Ngrams, Shannon Entropy, a także długość nazw domen, aby wpływać na decyzje. Wypróbowano kilka modeli uczenia maszynowego. Jest bardzo dobry post na blogu Jaya Jacobsa z 2014 roku opisujący ten proces.
Oto kolejny detektor DGA typu open source oparty na uczeniu maszynowym z Markov Chain:
https://github.com/exp0se/dga_detector

Krok 4 - Wykryj zarejestrowane domeny DGA
Aby wykryć, czy nazwa domeny DGA jest zarejestrowana, należy sprawdzić odpowiedzi DNS. Samo śledzenie żądań DNS nie wystarczy - system detekcji powinien śledzić całą transakcję, aby ułatwić korelację między informacjami.

Krok 5 - Wykryj ruch do zarejestrowanych domen DGA
Kiedy większość istniejących systemów wykrywania DGA koncentruje się na wykrywaniu, czy nazwa domeny jest domeną DGA, często zapominają o ostatnim pytaniu, najważniejszym: czy jest jakiś ruch, który został wysłany do zarejestrowanych domen DGA? Aby wykryć to w odpowiednim czasie, wykrywanie domeny DGA musi być ściśle połączone z inspekcją ruchu sieciowego. Wyniki muszą zostać przekazane z powrotem do silnika inspekcji ruchu bezpośrednio przed dokonaniem jakichkolwiek uszkodzeń.

Krok 6 - Blokowanie ruchu do zarejestrowanych domen DGA
Chociaż z technicznego punktu widzenia nie jest to część wykrywania, jeśli istnieje integracja z systemem prewencyjnym, takim jak zapora lub IPS, należy natychmiast wstawić regułę, aby zablokować cały ruch do zarejestrowanych domen.

Świetny system wykrywania DGA powinien wykonać wszystkie 5 kroków. Doskonały system wykrywania DGA powinien również obejmować krok 6. Niestety, większość dzisiejszych systemów wykrywania DGA zatrzymuje się na etapie 3 lub 4.

Wniosek
Ponieważ DGA są trudne do wykrycia za pomocą systemu wykrywania lub zapobiegania opartego na sygnaturach lub reputacji, stały się one dość popularne wśród twórców złośliwego oprogramowania.
Do przeprowadzenia wykrywania wymagany jest inteligentny system wykrywania. Doskonały system wykrywania DGA musi wyodrębniać informacje o nazwach domen z transakcji DNS, przeprowadzać dokładną analizę w celu wykrycia statusu DGA, sprawdzać status rejestracji podejrzanych domen, korelować z inspekcją ruchu sieciowego w celu oceny poziomu naruszenia bezpieczeństwa i idealnie integrować się z systemami prewencji, aby uniknąć dalszych kompromis. Aby zredukować zarówno fałszywe alarmy, jak i fałszywe negatywy, należy poważnie rozważyć uczenie maszynowe. Tylko dzięki wszechstronnej i wszechobecnej inteligencji na każdym etapie zagrożenie można naprawdę złagodzić.

Zasoby

Repozytorium na Github autorstwa Andreya Abakumove zawiera algorytmy generowania nazw domen, a także słowniki złośliwych nazw domen.

Przewiń do góry