Threat Inteliigence / OSINT / NETSEC / NATSEC

Maltego – analizując duże i małe kropki

W poprzednich postach zajmowaliśmy się OSINTowym zbieraniem informacji w różnych dziedzinach, tym razem przyjrzymy się natomiast konkretnemu narzędziu. Narzędziu nie byle jakiemu, bo stanowiącemu prawdziwy kombajn który znacznie ułatwia zarówno zbieranie danych jak i ich interpretacje. Mowa tutaj o Maltego zdecydowanie jednym z moich ulubionych OSINTowych narzędzi. Łączy ono funkcje zbierania informacji, katalogowania ich i wspomaga analizę poprzez graficzne przedstawienie rezultatów. Dodatkowo dla celów niekomercyjnych jest dostępne w wersji darmowej – Community Edition – także każdy może korzystać z jego dobrodziejstw. Maltego to rozbudowane i potężne narzędzie, na początek przyjrzymy się więc podstawnym funkcjonalnościom i zasadom działania.

Zaczynając od samego początku, program możemy pobrać ze strony maltego.com, dostępne są wersje na Windowsa, Linuxa i Maca:

Naturalnie program znajdziecie również wśród oprogramowania zainstalowanego na Ronan.

Dodatkowo aby skorzystać z transformacji, czyli operacji na obiektach pozwalających na zbieranie danych musimy zarejestrować darmowe konto tutaj.

Po instalacji przy pierwszym uruchomieniu będziemy musieli jeszcze tylko wybrać rodzaj licencji – tutaj korzystać będziemy z darmowej Maltego Community Edition, i zalogować się na konto utworzone wcześniej. W końcu ukaże nam się ekran powitalny na którym oprócz, wiadomości od producenta, zobaczymy listę dostępnych do zainstalowania transformacji:

Podstawowe to Standard Transforms CE – czyli zbiór transformacji, które producent udostępnia w ramach darmowej wersji, i CaseFile Entities – obiekty z w pełni offlinowej wersji Maltego o nazwie CaseFile, których instalacja sprawi, że grafy utworzone w CaseFile będą kompatybilne z tymi z Maltego. Jak widzimy zarówno kategorii pakietów jak i opcji cenowych jest całkiem sporo. Do użytku prywatnego będą nas interesować dwie kategorie: w pełni darmowe Free i Bring your own key. W przypadku tej drugiej kategorii instalacja pakietu jest darmowa, jednak aby skorzystać z jego funkcjonalności będziemy musieli wprowadzić dane dostępowe jak np.: klucz API. Możemy więc skorzystać z serwisów, które również oferują darmowe konta i posiadają opcje dostępu przez aplikacje trzecie jak VirusTotal, PassiveTotal czy HybridAnalysis. Możliwość zbierania danych z zewnętrznych serwisów to zresztą jedna z największych zalet Maltego. Może ono w ten sposób stać się interfejsem łączącym wiele źródeł informacji i prezentować je w ujednolicony sposób – włączając w to sytuacje, że na jednym obiekcie takim jak domena możemy stosować transformacje różnych dostawców uzyskując kompletny obraz sytuacji. Sama instalacja pakietów ogranicza się do wciśnięcia przycisku Install i ewentualnego podania danych logowania do serwisu.

Przejdźmy więc teraz do głównego środowiska pracy i otwórzmy pusty graf (aby lepiej zobrazować obszar roboczy pododawałem już kilka przykładowych obiektów). Aby dodać obiekt zwyczajnie przeciągamy z lewego obszaru Entity Palette do obszaru grafu:

Obszar roboczy składa się z trzech głównych cześći:

  1. Na górze znajdziemy pasek narzędzi analogiczny choćby do tych w edytorach tekstu. Mamy tutaj dostęp do funkcjonalności z zakresu wyświetlania grafu, analiza (jak zaznaczenie wszystkich połączeń wychodzących od danego obiektu), grupowanie dużej ilości obiektów czy funkcje eksportu i importu oraz kolaboracji na jednym grafie.
  2. Duży prostokąt na środku to główny obszar roboczy, tutaj będziemy widzieli efekty transformacji i maszyn których użyjemy i możemy manipulować grafem tak aby analizować informacje.
  3. Po lewej, prawej i na dole obszaru roboczego znajdziemy narzędzia pomocnicze które pomagają w operacjach na obiektach. I tak po lewej stronie umieszczona jest paleta obiektów, a gdy klikniemy na dany obiekt poniżej zobaczymy listę transformacji i maszyn które można na nim wykonać. Pod grafem, w oknie Output, wyświetlany są logi uruchamianych transformacji – w ten sposób możemy zobaczyć ile rezultatów przyniosła transformacja bądź czy podczas jej wykonywania wystąpiły błędy. W końcu po prawej stronie umieszczone zostało okienko Overview które pokazuje schemat całego grafu – przydatne szczególnie jeżeli mamy już bardzo dużo obiektów. W tym samym miejscu po wybraniu zakładki Machines znajdziemy logi wykonywania maszyn podobne trochę do tych z panelu Output, jednak odnoszące się do maszyn a nie pojedynczych transformacji. Poniżej, w panelu Detail View, wyświetlane są szczegóły typu obiektu jaki wybraliśmy – możemy tutaj więc znaleźć informacje np.: dotyczące tego czy dany obiekt pochodzi z pakietu Maltego czy od zewnętrznego dostawcy. I w końcu na dole znajdziemy również dwie zakładki – Property View i Hub Transforms Input. W pierwszej umieszczone są informacje odnośnie obiektu w kontekście grafu jak liczba wychodzących i przychodzących linków, a w drugiej informacje o zmiennych z których korzystają transformacje.

Teraz przyjrzyjmy się typom obiektów, jako przykłady wybrałem kilka obiektów z różnych kategorii:

Maltego najczęściej kojarzone jest z analizą aktywności w cyberprzestrzeni – fragmenty grafów bardzo często znajdziemy w raportach threat intelligence, choćby tutaj w niedawnym raporcie Recorded Future na temat Chińskiej aktywności wywiadowczej. W istocie jednak paleta możliwości jest dużo szersza co chciałem w tym miejscu pokazać. Obiekty podzieliłem na trzy grupy:

  1. Po lewej stronie na górze umieściłem te najbardziej klasyczne i związane z analizą infrastruktury sieciowej. Mamy tutaj więc adres IP, domenę, ASN, serwery mailowe i DNS czy obiekty na portalach społecznościowych jak hashtag na Twitterze. Transformacje na nich umożliwią wykrycie powiązań pomiędzy elementami infrastruktury jak na przykład domeny hostowane na tym samym adresie IP.
  2. Po lewej stronie na dole możemy zobaczyć elementy z modułów dodatkowych – od lewej jest tam obiekt z Passive Total, adresy portfela Bitcoin i Etherum i obiekt GreyNoise. Korzystając z rozszerzeń będziemy więc mogli dodawać do naszych dochodzeń informacje z kolejnych źródeł.
  3. W końcu po prawej stronie wrzuciłem kilka przykładowych elementów zupełnie nie związanych ze sferą cyber. Obiekty te najczęściej wykorzystywane są przez analityków zajmujących się bardziej „offlinowymi” dochodzeniami i znajdziemy je domyślnie zainstalowane w CaseFile. Analityk zajmujący się mapowaniem członków grup terrorystycznych może więc ręcznie nanosić strukturę organizacji korzystając z obiektów takich jak terrorysta, diler narkotyków, broń rakietowa czy broń chemiczna. Dodatkowo znajdziemy wiele obiektów związanych z lokalizacjami jak port, lotnisko, więzienie czy sklep. Nawet więc, jeżeli nie korzystamy z transformacji ze względu na naturę naszej pracy, Maltego może pomóc nam jako „notatnik analityka” wizualizując powiązania które odkryliśmy na podstawie zewnętrznych dochodzeń.

Po zapoznaniu się z podstawami przejdźmy do praktycznego wykorzystania możliwości Maltego z zakresu zbierania i analizy informacji. Jako przykładowych danych możemy użyć indykatorów aktywności ze wspomnianego już raportu Recorded Future:

Obiekty możemy ręcznie dodać przeciągając odpowiednie obiekty z palety i dodając wartości, lub przygotować plik csv do zaimportowania:

Aby pokazać jak wygląda proces importu i przygotowania danych wybierzemy te drugą opcję. Po zapisaniu danych do pliku CSV w ulubionym arkuszu kalkulacyjnym wybieramy opcję importu zewnętrznego grafu z menu:

Następnie wybieramy odpowiedni plik i pierwszą decyzją którą musimy podjąć, to jak dane z kolumn mają zostać połączone:

Ponieważ potrzebujemy zwykłego powiązania pierwszej kolumny do drugiej, wybierzemy ręczne łączenie i samodzielnie określimy połączenia. Dalej musimy wybrać rodzaj obiektów jakie mają być przypisane do kolumn, w moim przypadku Maltego nie określiło obiektów poprawnie, najpierw usunąłem powiązania poprzez opcję Unmap all. Następnie wybrałem ręcznie typ Hash dla pierwszej kolumny i Domain dla drugiej:

Następnie wybieramy rodzaj połączenia kolumn, możemy to zrobić graficznie przeciągając strzałkę od pierwszej do drugiej kolumny w zakładce Connectivity Graph:

W końcu Maltego pokaże nam dodatkowe opcje importu jak to, czy zaimportować całą tabelę, czy tylko wybrane wiersze, możemy zaakceptować tutaj domyślne ustawienia. Po imporcie pokaże nam się taki graf:

Jak widzimy domeny, które występowały w tabeli kilka razy, ponieważ był powiązane z kilkoma hashami, zostały automatycznie połączone. Widzimy więc ile próbek złośliwego oprogramowania jest powiązane z daną domeną. Aby szybko zebrać podstawowe informacje o domenach możemy skorzystać z maszyny Footprint L1, która pokaże dane o infrastrukturze na której stoją domeny:

Jak widzimy 3 spośród domen łączy wspólny adres IP. Ciągnąc dalej ten wątek możemy odwrócić proces i znaleźć inne domeny na tym samym adresie poprzez transformacje To DNS name from passive DNS. Znajdziemy tak kolejne domeny, które mogą potencjalnie być interesujące dla naszych poszukiwań:

Teraz z kolei spróbujemy pójść inna drogą i wykorzystamy maszynę od PassiveTotal – ponownie, do wykorzystania tych funkcjonalności wystarczy darmowe konto na https://community.riskiq.com i instalacja pakietu w Maltego na ekranie startowym.

Tym razem przybliżyłem wykres do pojedynczej domeny, gdyż maszyna PassiveTotal dostarczy nam dużo więcej danych. Przede wszystkim uzyskamy szczegółowe informacje o rejestracji domeny, uwzględniając datę, kraj i podmiot rejestrujący. Jeżeli chodzi o te dane to często będziemy spotykać się z ukrywaniem danych za usługami prywatnej rejestracji będziemy musieli więc wgryźć się w dane aby wyłuskać coś ciekawego. Do wyszukiwania punktów wspólnych moim ulubionym narzędziem jest widok organiczny, który znajdziemy na pasku narzędzi po lewej stronie obszaru roboczego jako trzeci w kolejności:

W widoku tym obiekty, które były wzbogacane o dane zbierane w transformacjach stają się centrami, z informacjami zgromadzonymi dookoła – w ten sposób łatwo zauważymy punkty połączeń pomiędzy centrami. Aby jeszcze bardziej uwypuklić rezultaty możemy skorzystać z narzędzi, które zmieniają wielkość obiektów zależnie od ilości połączeń. I tak wybierając wielkość według połączeń wychodzących, nasze domeny wyjdą zdecydowanie na pierwszy plan:

A jeżeli zdecydujemy się na wielkość według połączeń od zróżnicowanych obiektów, największe staną się części wspólne analizowanej infrastruktury:

Tutaj np: bardzo wyraźnie widać upodobanie do używania Cloudflare w budowaniu infrastruktury. Spójrzmy teraz na drugi zestaw indykatorów które zaimportowaliśmy – hashy złośliwego oprogramowania. Zdecydowanie przydadzą się zewnętrzne pakiety transformacji, które pozwolą na odpytanie o informacje o hashach w bazach danych malwareu. Najbardziej popularną z nich jest zdecydowanie VirusTotal. Podobnie jak w przypadku PassiveTotal możemy uzyskać dostęp do klucza API w ramach darmowego konta community. Spróbujmy więc odpytać o hashe poprzez transformacje VT:

Jak widzimy Maltego odnalazło powiązanie hashy z konkretnymi plikami w bazie VirusTotal, teraz właśnie przydadzą nam się zakładki Detail View i Property View, gdyż tam odnajdziemy szczegóły dotyczące obiektu:

Wyszukiwanie informacji o próbkach malware’u jest dla mnie osobiście dość nietypową sytuacją – najczęściej przy śledzeniu kampanii proces wygląda odwrotnie. Z analizy próbek uzyskuje indykatory jak domeny czy adresy IP które pozwalają budować wiedzę na temat wykorzystanej infrastruktury. Jeżeli jednak zaczniemy od zewnętrznego raportu tak jak w tym przypadku, zdecydowanie ważną informacją będzie to czy znajdują się one w ogóle w bazach danych. Będzie to świadczyło o tym na ile kampania jest już rozpoznana przez innych badaczy, a przede wszystkim poinformuje nas czy próbki są dostępne do pobrania w celu dalszej analizy.

Wracając jednak do Maltego, spójrzmy na nasz graf w całości:

Stosując więc zaledwie kilka narzędzi i podstawowe typy obiektów na podstawie danych z zewnętrznego raportu mogliśmy sami wyszukać charakterystyczne cechy infrastruktury z której korzystały, w tym przypadku, Chińskie służby. Dodatkowo dzięki zewnętrznej transformacji of VirusTotal, zebraliśmy podstawowe informacje o plikach powiązanych z kampanią i wskazówki co do dalszych działań – czyli dowiedzieliśmy się, że próbki są dostępne w bazie VT. To oczywiście ułamek możliwości Maltego, dodatkowo skupiony na jednym z możliwych obszarów – analizie operacji cyber. Mam jednak nadzieję, że pokazałem podstawy pracy z tym narzędziem, które pomogą we własnych analizach 🙂

Jedna myśl na temat „

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

pl_PLPolish