Threat Inteliigence / OSINT / NETSEC / NATSEC

Obserwując Internetowe domy – analizujemy domeny i ich infrastrukturę

Jednym z najczęstszych zadań związanych z OSINTem i threat intelligence jest analiza domen Internetowych pod kątem infrastruktury jaka za nimi stoi i informacji o podmiotach odpowiedzialnych za ich stworzenie. Domeny stanowią bowiem istotny element operacji cyber, kiedy mogą służyć do komunikacji C2, dostarczenia złośliwego oprogramowania jak i operacji informacyjnych, dostarczając spreparowane treści. A z pewnością ich analiza jest istotnym elementem threat intelligence w ramach analizy incydentów bezpieczeństwa, i pozwala rozszerzyć wiedzę o napastniku, którego działania staramy się zmapować choćby na Diamond Model. W bardziej ogólnym kontekście natomiast informacja o właścicielach domeny, serwisach jakie są dostępne na serwerze czy to gdzie zostały zarejestrowane pomaga w odnalezieniu powiązań pomiędzy aktywnościami i intencji autorów. Przykładowo więc rzekomo niepowiązane serwisu propagujące pewne treści mogą być dziełem tej samej organizacji, a wyśledzenie punktów wspólnych w charakterystyce domen może pomóc w odkryciu prawdziwej skali aktywności.

Ze względu na to jaką istotną funkcje pełni analiza domen, do dyspozycji mamy bardzo wiele narzędzi – w tym sporo darmowych. Z drugiej strony jednak nie sposób nie zauważyć, że zakres informacji zmienił się na przestrzeni ostatnich lat co wymusza zmiany metodologii poszukiwań. Jest to związane z wprowadzeniem GDPR, które wymusiło na podmiotach rejestrujących domeny ukrywanie danych osobowych związanych z rejestracją, ale również zwykłym wyścigiem zbrojeń pomiędzy analitykami, a rejestrującymi domeny. Niezależnie od regulacji prawnych, praktyka korzystania z prywatnej rejestracji która ukrywa dane o podmiocie rejestrującym, korzystania z hostingów które nie interesują się za bardzo kiedy korzystają z nich operatorzy malware’u i tak dalej stała się powszechna. Sprawia to, że wiele domen używanych do wrogiej aktywności ma podobne cechy ogólne, a analitycy muszą brać pod uwagę więcej elementów takich jak serwery DNS, certyfikaty TLS bądź składnie samej nazwy domeny w celu odnalezienia powiązań. Przechodząc do rzeczy, przyjrzymy się informacjom o domenie które możemy zebrać i narzędziom które w tym pomogą.

Zaczynając od podstaw, domena to ciąg znaków którzy służy identyfikacji zasobów poprzez DNS. Kiedy więc wpisujemy adres w przeglądarkę Internetową, ta odpytuje serwery DNS o rekordy które pozwalają na przeprowadzenie połączenia – jak adres IP. Korzystając z zebranych danych przeglądarka umożliwia nam więc interakcje z zasobami korzystajac z nazw łatwych do zapmiętania jak wikipedia.org. Aby uzyskać domenę i móc edytować jej właściwości, tak aby kierowała do wybranych przez nas zasobów, musimy ją zarejestrować korzystając z usług podmiotu rejestrującego nazwy domen posiadającego akredytacje co do konkretnej domeny najwyższego poziomu (jak np.: .pl). Po zarejestrowaniu możemy edytować jej rekordy jak A (adres IPv4), AAAA (adres IPv6) czy MX (serwer mailowy), kierując odwiedzających do odpowiednich zasobów. Tak w dużym uproszczeniu wygląda mechanizm działania domen, a teraz zobaczmy ile informacji o domenie możemy uzyskać z zewnątrz.

Najbardziej podstawowym narzędziem jest WHOIS, czyli system uzyskiwania informacji o danych rejestracyjnych domen. W najprostszym wydaniu możemy skorzystać narzędzia whois w terminalu Windowsa bądź Linuxa i zobaczyć dane o interesującej nas domenie:

Na przykładzie wp.pl widzimy podstawowe informacje takie jak serwery nazw, to kiedy została utworzona i kiedy należy odnowić domenę czy adres rejestratora. Widzimy również, że domena nie korzysta z DNSSEC, czyli rozszerzenia umożliwiającego kryptograficzną weryfikacje poprawności danych i źródła ich pochodzenia. Jeżeli nie chcemy korzystać z narzędzia lokalnie, to możemy skorzystać z jednego z wielu serwisów który odpyta za nas o informacje, np.: Domain Tools. Oprócz suchego rekordu, Domain Tools pokaże również profil domeny wzbogacony o dodatkowe informacje:

Widzimy więc tutaj również adres IP wraz z informacją ile stron jest tam hostowanych, fizyczną lokalizacje serwera, ASN i typ serwera. Domain Tools dostarcza takie dane gdyż poza zwykłym narzędziem do odpytania o WHOIS, w swojej ofercie ma również bardziej zaawansowane narzędzie do analizy – Iris – więc dostarcza tutaj niejako przedsmak możliwości. Pozostańmy jednak na razie przy ogólnodostępnych informacjach. Jak wspomniałem wcześniej, o tym gdzie skieruje nas domena, decydują skonfigurowane rekordy DNS. Możemy wiec spojrzeć na zgromadzone w nich informacje korzystając choćby z mxtoolbox.com. Jednym z bardziej intersujących wartości jest TXT – umożliwia ono właścicielowi dodanie dowolnych wartości tekstowych. Pierwotnie miało ono służyć dodawaniu komentarzy w formie zrozumiałej dla człowieka, jednak obecnie często możemy znaleźć tam dane wykorzystywane przez usługi zewnętrzne. Za przykład weźmy moją własną domenę – jeżeli śledzicie mnie na Twitterze, wiecie, że korzystam z nicka lawsecnet, i skrzynki kamil.bojarski@lawsec.net. Spojrzenie na zawartość pola TXT pozwoli w tym przypadku ustalić, że dostawcą usług dla mojej skrzynki jest ProtonMail:

Znajdziemy tam bowiem klucz który otrzymałem od ProtonMail i umieściłem w rekordzie DNS w celu potwierdzenia, że faktycznie jestem właścicielem domeny. Jeżeli wrócimy do naszego poprzedniego przykładu z wp.pl, to również odnajdziemy tam podobne wpisy:

Tym razem jednak odnoszące się do usług Facebooka i Googla. W obu przykładach znajdziemy również rekord SPF, który stanowi zabezpieczenie przed podszywaniem się pod nadawcę maili i identyfikuje serwery uprawnione do wysyłania wiadomości w imieniu domeny.

Kolejnymi wartościami wartami uwagi są zapisy MX i NS, odpowiedzialne odpowiednio za serwery mailowe i serwery nazwy dla domeny. W praktyce threat intelligence związanej ze śledzeniem infrastruktury wykorzystywanej w atakach, wartości zawarte w tych rekordach często mogą służyć nam jako punkt zaczepienia do znajdowania potencjalnie powiązanych domen. Dla wp.pl zapisy te wyglądają tak:

Przez długi czas moim ulubionym narzędziem do analizy infrastruktury sieciowej był PassiveTotal, dostępny również w darmowej wersji Community Edition. Niestety jednak, możliwości darmowej wersji zostały mocno ograniczone w zakresie tego jak daleko wstecz sięgają i jakie dane są dostępne, co znacznie obniżyło wartość tego źródła. Wciąż może jednak warto przyjrzeć się możliwością jakie może nam zaoferować (ostatecznie jednak za darmo 😛 ). Jednym z najbardziej charakterystycznych elementów interfejsu jest kalendarz przedstawiający kiedy domena była dostępna i do jakich adresów prowadziła:

Poniżej znajdziemy zakładki prowadzące do widoków przedstawiających szczegółowe informacje. Tutaj jednak możemy przeżyć lekki zawód, gdyż jak wspomniałem możliwości wersji darmowej są mocno okrojone. Wciąż dostępne są jednak następujące widoki:

  • Resolutions – adresy IP do których kierowała domena.
  • WHOIS – podgląd danych WHOIS. W wersji płatnej możemy tutaj śledzić również jak i kiedy zmieniały się zawarte dane.
  • Certificates – hashe SHA-1 i dane certyfikatów TLS dla domeny i poddomen. Bardzo przydatne narzędzie w pracy analityka threat intelligence, gdyż na podstawie ponownego wykorzystania certyfikatu można śledzić tworzeni infrastruktury C2 – tutaj przykład od analityków z ThreatConnect.
  • Subdomains – poddomeny, również bardzo przydatne gdy już potwierdzimy, że dana domena jest dla nas intersująca i chcemy bliżej przyjrzeć się temu co kryje.
  • OSINT – informacje o tym czy domena znalazła się w publicznych źródłach np.: raportach opisujących kampanie malware’u.
  • Hashes – hashe plików powiązanych z domeną, bardzo ciekawe źródło w zakresie odnajdywania powiązań z monitorowanymi przez nas kampaniami.
  • DNS – jak wskazuje nazwa, zbiór rekordów DNS dla danej domeny.

Narzędzie takie jak PassiveTotal czy SuperToolbox dobrze sprawdzają się kiedy musimy sprawdzić konkretną domenę, jeżeli jednak będziemy porównywać wiele domen i wyszukiwać nowe, choćby przez powiązania serwerów nazw lub użytych certyfikatów TLS, dużo wygodniej będzie skorzystać z narzędzia które graficznie przedstawi rezultaty. Narzędziem takim może być Maltego, które opisywałem już w jednym z postów. Dużą zaletą Maltego jest to, że możemy połączyć różne źródła i korzystać jednocześnie z kilku serwisów, co pozwoli uniknąć ręcznego spisywania danych do zewnętrznej bazy jak np.: arkusza Excela. Dodajemy więc obiekt domenę i klikamy prawym przyciskiem myszy w celu wylistowania dostępnych transformacji:

Zaczynając od podstawowych, dostarczanych z samym Maltego możemy np.: wyszukać serwery nazw dla danej domeny, odkryć inne domeny korzystające z tego samego serwera, a następnie znaleźć serwery mailowe i nazw dla nowo znalezionej domeny:

i korzystając z modułu PassiveTotal dodajemy listę subdomen:

Maltego działa tutaj jako notatnik, na bieżąco dodając nowe informacje do wykresu, co z pewnością jest bardzo wygodne, jednak prawdziwa siła takiej analizy leży w możliwości odpytania od dane kilku domen równocześnie i wychwycenia punktów wspólnych. Jako przykład weźmy trzy domeny wymienione jako wykorzystywane przez APT35 w raporcie Checkpoint. Po dodaniu ich do wykresu i wykonaniu transformacji „To entities from WHOIS [IBM Watson]” natychmiast widzimy punkty wspólne:

Dalej dane możemy porównać z innym źródłem, tym razem wykorzystamy transformację '[PT] Get Whois Details” od PassiveTotal. Dla czytelności pokazuje jedynie fragment wykresu:

Czarne ikony globusa ze znakiem zapytania reprezentują obiekty dodane przez PassiveTotal. Widzimy, że znaleźliśmy tutaj dodatkowe połączenie poprzez serwery nazw „ns7.dynu.com” i „ns1.dynu.com”. Teraz gdy mamy już punkty wspólne możemy poszukać innych domen nie wymienionych w raporcie. Korzystając z odwrotnej transformacji znajdujemy domeny korzystające z serwera „ns7.dynu.com”:

Następnie przeprowadzamy wyszukania na tak odnalezionych domenach, zbierając ponownie dane przez „[PT] Get Whois Details”. Teraz wykres wygląda już dość zawile, zobaczmy jego uproszczony widok:

Pomimo dużej liczby obiektów wyraźnie widoczne są punkty styku grup obiektów które wskazują na wspólne elementy. W naszym przypadku jak widzimy są to serwery nazw i kraj rejestracji:

Ponieważ domeny to identyfikatory elementów infrastruktury sieciowej, to co się za nimi kryje możemy również analizować w kontekście tego jakie zasoby się za nimi kryją – w sposób podobny jaki już opisywałem na counterintelligence.pl. Kolejnym krokiem może być więc wykorzystanie transformacji od Shodan i uzyskanie adresu IP dla każdej z nich. Jak widzimy w tym przypadku jednak, adresy te nie stanowią punktów stycznych (obiekty zaznaczone zewnętrznym pogrubieniem):

W ten sposób przyjrzeliśmy się temu jak za pomocą darmowych narzędzi łatwo odnaleźć szereg informacji o domenach i znaleźć powiązania pomiędzy nimi. W tym miejscu jednak należy wspomnieć o aspektach metodologicznych, które w mojej ocenie są niemniej ważne niż te techniczne. Maltego bardzo przyspiesza odnajdywanie punktów wspólnych, jednak atrakcyjna forma graficznej prezentacji rezultatów może często prowadzić do nadinterpretacji danych i wyszukiwania powiązania których w rzeczywistości nie ma. Analiza domen jest szczególnie podatna na tę pułapkę, gdyż wykonując kolejne transformacje możemy rozszerzać i rozszerzać zasięg poszukiwań, aż znajdziemy połączenie z dowolnym elementem infrastruktury na świecie. A nawet w przypadku mniejszej skali dochodzenia powinniśmy uważnie prześledzić czy faktycznie można stwierdzić, że elementy są powiązane. Powyższe grafy są dobrym przykładem tego zjawiska. Udało nam się odnaleźć szereg innych domen korzystających z tych samych serwerów nazw, jednak jeżeli śledzimy kampanie APT35 czy faktycznie możemy uznać je za powiązane z grupą? Prawdopodobnie nie, są to zwyczajne domeny zarejestrowane u tego samego dostawcy i w związku z tym korzystające z tych serwerów. Podobnie to, że domeny prowadzą do tego samego adresu IP, świadczy najczęściej o tym, że jest to adres serwera hostingodawcy. Aby ustalić prawdziwe powiązania musimy odnaleźć więcej punktów wspólnych, a najlepiej powtarzający się wzór. Najlepiej zacząć od domen co do których charakteru jesteśmy pewni (np.: wszystkie zostały odnalezione podczas analizy komunikacji C2 próbek złośliwego oprogramowania) i stworzyć profil składający się z poszczególnych elementów które w naszej ocenie wynikały z konkretnej decyzji rejestrującego domenę. Może to być konwencja nazewnicza, miejsce rejestracji, podmiot rejestrujący i tak dalej. W ten sposób domena dla celów analizy przestaje być jednostkowym obiektem, a staje się zbiorem charakterystyk tworzących „odcisk palca”. Koncepcje te świetnie przedstawił Joe Slowik w tekście „Analyzing Network Infrastructure as Composite Objects”. Takie podejście pozwoli uniknąć pogoni za pozornymi relacjami i wpadania w króliczę nory wymyślnych powiązań. Wróćmy więc jeszcze do naszych przykładowych domen i spójrzmy jak moglibyśmy zbudować taką charakterystykę:

  • Konwencja nazewnicza – wszystkie domeny zaczynają się i kończą „0”, składają z dwóch anagielskich słów i osadzone są na TLD „xyz”.
  • W danych WHOIS w polu registrar i organization znajdziemy tylko słowo „text”.
  • Jako miasto rejestracji wskazywane są stany USA, nawet pomimo, że w przypadku jednej z domen kraj został określony jako Niemcy.
  • Wspólne servery nazw ns1.dynu.com i ns7.dynu.com.

Łącząc te cztery elementy uzyskujemy już znacznie dokładniejszy opis, który z powodzeniem moglibyśmy wykorzystać do dalszych poszukiwań.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

pl_PLPolish