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:
- 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.
- 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.
- 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:
- 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.
- 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ł.
- 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 „