Threat Inteliigence / OSINT / NETSEC / NATSEC

RonanVM – Twoja gotowa OSINT maszyna + garść uwag o VMkach

TL;DR – Jeżeli potrzebujesz wstępnie skonfigurowanej maszyny wirtualnej do swoich OSINT śledztw zajrzyj tutaj, gdzie znajdziesz gotowy obraz systemu w formacie OVA który możesz zaimportować do VirtualBox i mieć gotowy, czysty system. Znajdziesz tam też listę narzędzi i dodatkowe informacje o projekcie.

A teraz wersja dłuższa…

Tworzenie maszyny wirtualne służącej do OSINT to proces składający się z dwóch głównych czynności:

  1. Dobór i instalacja narzędzi których potrzebujemy,
  2. Konfiguracja systemu tak aby wygodnie nam się na nim pracowało, a przy tym zapewniał prywatność, tak jak wspominałem w poprzednim poście dotyczącym OPSECu.

Jest to przy tym wysoce indywidulane zajęcie które musi uwzględniać to czym konkretnie chcemy się zajmować, jak lubimy prowadzić notatki i tak dalej. Jeżeli jednak dopiero zaczynamy przygodę z OSINTem możemy jeszcze nie wiedzieć za bardzo czego będziemy potrzebować albo jak dopasować system. Dlatego też aby ułatwić życie wszystkim którzy chcieliby się zajmować OSINTowymi poszukiwaniami przygotowałem RonanVM – obraz systemu który możesz po prostu zaimportować do darmowego VirtualBoxa i mieć czysty system, przygotowany do akcji. Potem może zrobić jego migawkę, sklonować maszynkę tak aby mieć w zapasie nienaruszoną wersję, a jeżeli z jakichś powodów wszystkie te opcje odmówią posłuszeństwa, zwyczajnie zacząć od nowego importu. W ten sposób możesz eksperymentować do woli nie martwiąc się, że w razie awarii będzie zaczynać zupełnie od zera.

Przechodząc do samych funkcjonalności RonanVM, jest to system Ubuntu 20 w którym wprowadziłem pewne delikatne modyfikacje w celu zwiększenia prywatności i łatwości użytkowania i zainstalowałem oprogramowanie służące do gromadzenia i analizy danych. Listę narzędzi i modyfikacji znajdziesz na dedykowanej stronie na counterintelligence.pl tutaj. W tym miejscu chciałbym więc raczej przedstawić ogólne uwagi dotyczące maszyn wirtualnych w OSINT.

Pierwszym wyborem którego musimy dokonać przy tworzeniu maszyny wirtualnej to rozwiązanie wirtualizacyjne. Dwa najpopularniejsze pakiety oprogramowania to Oracle VirtualBox i VMware Player/Workstation. Podstawową różnicą między nimi jest cena – VirtualBox jest w pełni darmowy. VMware Player jest również dostępny za darmo jednak w tej wersji nie mamy dostępu do funkcjonalności snapshotów co z mojej perspektywy właściwie dyskwalifikuje go jako darmowe rozwiązanie. Możliwość szybkiego powrotu do stanu początkowego maszyny, a w przypadku maszyn służących do analizy złośliwego oprogramowania, do stanu sprzed uruchomienia próbki jest kluczowa. Muszę jednak też uczciwie przyznać, że sam korzystam z VMware w wersji płatnej. VMware Workstation Pro w moim odczuciu działa szybciej i stabilniej niż VirtualBox, a dodatkowo wspiera wirtualizacje w tworzonych systemach – możemy więc korzystać z WSL w wirtualizowanym Windowsie bądź Dockerowych obrazów. Nie są to jednak też jakieś krytyczne zalety, także darmowy VirtualBox jest równie wystarczającą platformą. W końcu kluczową funkcją jest możliwość klonowania i eksportowania maszyn. Dobrym nawykiem jest skolonowanie systemu po wstępnej konfiguracji (jako „czysty” system), a następnie tworzenie nowego klona dla każdej analizy jaką będziemy prowadzić. W ten sposób zbierane materiały będą jasno posegregowane pomiędzy maszynami i unikniemy błędów jak zaimportowanie do Maltego tabelki dotyczącej zupełnie niezwiązanej sprawy.

Tworząc maszynę wirtualną musimy też zdecydować o tym jaki „hardware” będzie ona posiadać. Hardware oczywiście w cudzysłowie, gdyż w rzeczywistości będą to zasoby naszego fizycznego komputera wydzielone na potrzeby pracy wirtualki. To ile możemy przeznaczyć zasobów będzie zależało więc głównie od tego jak mocny sprzęt posiadamy. Rozsądnym minimum wydaję się przeznaczenie na maszynę dwóch procesorów, 4GB RAMu i 20GB dla dysku twardego. Kwestią którą również będziemy musieli rozstrzygnąć do sposób łączenia się systemu gościa z Internetem. Wśród wielu opcji które oferują rozwiązania wirtualizacyjne trzy wydają się warte rozważania:

  1. NAT (Network Address Translation) – maszyna nie będzie posiadała własnego adresu IP, tylko będzie korzystać z adresu systemu gospodarza – tworzona jest wewnętrzna sieć prywatna, maszyna uzyskuję adres z usługi DHCP rozwiązania wirtualizacyjnego i NAT odpowiednio kieruje ruchem. Jest to najprostsze, sprawiające zazwyczaj najmniej problemów i domyślnie wybierane rozwiązanie. Dodatkowo możemy się pokusić o pewnego rodzaju zabezpieczenie awaryjne anomizacji łącza. Jeżeli korzystamy w takiej konfiguracji z VPN na komputerze gospodarza to automatycznie będzie nim objęta również maszyna wirtualna. Możemy więc teoretycznie mieć uruchomione dwa VPN i jeżeli z jakichś powodów ten w maszynie wirtualnej zawiedzie, ruch i tak będzie przechodził przez VPN gospodarza.
  2. Bridged adapter (połączenie mostkowe) – w tej konfiguracji maszyna korzysta z fizycznego adaptera sieciowego który jej udostępnimy, posiada więc własny adres IP i jest niejako osobnym komputerem który łączy się „obok” naszego.
  3. Sieć wewnętrzna – możemy również korzystać z innego urządzenia, np.: kolejnej maszyny wirtualnej przekierowując przez nią ruch. To rozwiązanie przydaje się jednak głównie w bardziej specyficznych scenariuszach – np.: gdy podczas analizy złośliwego oprogramowania musimy przechwytywać ruch do analizy.

W kwestii darmowego systemu Linux jest zdecydowanie najpopularniejszym wyborem ze względu na mnogość dystrybucji i całkowitą otwartość systemu. Jeżeli jednak ktoś byłby zdecydowany aby korzystać z wirtualnego Windowsa, to warto zaznaczyć, że można legalnie i darmowo ściągnąć taki system. Microsoft udostępnia obrazy systemów w celu testowania kompatybilności przeglądarek Edge i IE 11. Obrazy te działają przez 90 dni, jednak sam Microsoft podpowiada aby zrobić snapshot maszyny i w razie czego przywracać ją do stanu początkowego. Windows jest opcją o tyle interesującą, że dzięki WSL możemy mieć funkcjonalność obu systemów w jednym wirtualnym urządzeniu. Pomijając tę trochę bardziej złożoną opcję, Linux jest jednak całkowicie adekwatnym systemem do OSINTowej pracy. Wybór dystrybucji uzależniony jest głównie od tego czy wymagamy jakichś konkretnych funkcji i jak bardzo chcemy sami skonfigurować system. Przyznam, że osobiście nie jest wielkim fanem długiego i samodzielnego konfigurowania wszystkich elementów systemu, więc korzystam z Ubuntu. Ubuntu jest bardzo prosty w użytkowaniu, posiada solidne wsparcie jego rozwoju i łatek bezpieczeństwa, i efektywnie łączy wygodę „windowsowego” interfejsu z potęgą Linuxowego terminala. Zaletą dystrybucji jest również bardzo duża baza użytkowników, co przekłada się na to, że jeżeli wystąpi jakiś problem to prawdopodobnie nie jesteśmy pierwsi którzy go napotkaliśmy i pomoc znajdziemy na forach społecznościowych.

Z mojej perspektywy podstawowym środowiskiem pracy analityka OSINT jest przeglądarka internetowa. To właśnie za jej pomocą można uzyskać dostęp do wszystkich interesujących źródeł od portali społecznościowych, poprzez wszelkie bazy danych, a kończąc na specjalistycznych serwisach dostarczających np.: zdjęcia satelitarne. Przeglądarka więc musi zapewniać funkcjonalności ułatwiające pozyskiwanie danych, a jednocześnie dbać o prywatność. W moim odczuciu odpowiednim balansem pomiędzy bezpieczeństwem, prywatnością i funkcjonalnością jest Mozilla Firefox. Jeżeli chodzi o funkcjonalność to komentarz wydaję się wręcz zbędny – ilość rozszerzeń dostępnych do przeglądarki jest doprawdy imponująca i obejmuje właściwie wszystko czego moglibyśmy potrzebować. Co do bezpieczeństwa, jestem świadom kontrowersji związanych ze zwolnieniami w zespole bezpieczeństwa jak i niedawnego raportu pokazującego przewagę Chromium (który chyba jednak nie uwzględnia wszystkich nowych rozwiązań) jednak uważam, że FF zapewnia wystarczający poziom bezpieczeństwa – szczególnie w połączniu z dodatkami jak uBlock blokującymi niechciane elementy. No i w końcu prywatność – Firefox nie jest powiązany z Googlem jak Chrome, telemetrie można łatwo wyłączyć, a za pomocą edytora konfiguracji można również łatwo wyłączyć choćby RTC – na tle innych wypada więc bardzo pozytywnie.

Jeżeli chodzi o dodatkowe narzędzi to możemy podzielić je na trzy grupy:

  1. Narzędzia służące pozyskiwaniu danych jak np.: Spiderfoot czy Instalooter.
  2. Narzędzia do analizy danych jak Excel/Calc, Sherloq czy Bless.
  3. Frameworki łączące obie funkcje. Najlepszym przykładem jest tutaj Maltego które zarówno daje dostęp do transformacji gromadzących dane jak i umożliwia opartą o grafy analizę.

To czego dokładnie będziemy potrzebować zależy w dużej mierze od tego jakie informacje będziemy zbierać i przetwarzać. Zajmując się analizą obrazów będziemy zainteresowani głównie rozszerzeniami wyszukiwarki które ułatwią pobieranie zdjęć z Internetu i narzędziami które pozwolą je przeanalizować – pokażą metadane bądź wspomogą wykrycie manipulacji. Zbierając natomiast informacje o infrastrukturze sieciowej możemy być zainteresowani możliwością szybkiego odnalezienia elementów połączonych wspólnym hostingodawcą i uzyskania szczegółowych informacji o usługach na danym serwerze. W tym miejscu pokrótce przedstawię narzędzia z których sam najczęściej korzystam.

Maltego – zdecydowanie moje ulubione i najczęściej wykorzystywane narzędzie. Dodatkowo do użytku domowego bezpłatne! A ściślej rzecz biorąc Maltego ma cztery odmiany:

  1. CaseFile służąca do bardziej „offlinowych” dochodzeń, umożliwiająca jedynie ręczne tworzenie i przeglądanie grafów.
  2. Maltego Community – darmowa wersja do użytku niekomercyjnego, ograniczona do 12 wyników na każdą transformację i 10 000 obiektów na grafie.
  3. Maltego Pro – standardowa płatna edycja w której możemy uzyskać 64 000 wyników na każdą transformacje i mieć do 1 000 000 obiektów na grafie.
  4. Maltego Enterprise – standardowa edycja dla klientów biznesowych.

Czym więc jest w istocie Maltego? To narzędzie łączące dwie funkcje – interfejs „transformacji” czyli wyszukiwania informacji z wprowadzonych danych (np.: ASN od domeny) i graficzna prezentacja wyników na grafach wraz z narzędziami do ich analizy (jak segregowanie elementów według liczby wychodzących połączeń z innymi obiektami). Wielką zaletą Maltego jest intuicyjny interfejs i możliwość zgromadzenia wielu źródeł danych pod jednym dachem. Możemy bowiem tutaj podpiąć nasze dostępy do serwisów jak PassiveTotal czy Censys i z jednego miejsca mieć dostęp do wszystkich naszych zasobów. Znacznie przyspiesza to i ułatwia analizę.

Spiderfoot – opensourcowy framework służący pozyskiwaniu danych na temat sieciowych śladów i elementów jak nazwy domen, nazwy użytkowników czy adresy IP. Spiderfoot zaczął jako narzędzie w pełni open source, teraz jego twórcy oferują też rozwiązanie chmurowe jednak nie miałem okazji z niego korzystać. Tak czy inaczej, Spiderfoot umożliwia przeprowadzanie dość kompleksowego pozyskiwania danych – szczególnie w zakresie domen uzyskamy bardzo ładną metrykę obejmującą elementy takie jak dane rejestracji, wychodzące linki, nazwy użytkowników czy inne domeny na tym samym hoście.

Google Earth Pro – desktopowa wersja popularnego narzędzia od Google do wirtualnego zwiedzania świata. W porównaniu z przeglądarkową wersją posiada sporo narzędzi przydatnych w OSINTowych śledztwach jak choćby możliwość pomiaru odległości i obszaru, nagrywanie oglądanej trasy czy import plików KML pozwalający na naniesienie na mapę np.: trasy samolotu.

Widok Google Earth Pro z zaimportowaną trasą samolotu i miarą odległości.

Excel – i w końcu być może najbardziej uniwersalne narzędzie w historii oprogramowania biurowego. Excel jest jednym z najlepszych przyjaciół analityka umożliwiając sortowanie, grupowanie, porównywanie i wizualizacje zbiorów danych. Zapewniam, że Twój arsenał umiejętności analitycznych zyska naprawdę sporo po opanowaniu choćby tworzenia tabel przestawnych czy formatowania warunkowego. Aby podać prosty przykład, jeżeli obserwujemy czyjąś aktywność na Twitterze to po zgromadzeniu danych o tweetach możemy np.: łatwo ustalić godziny największej aktywności użytkownika. Co najlepsze Excel, a właściwie cały pakiet Office365 jest dostępny w darmowej wersji jeżeli będziemy korzystać z wersji live przez przeglądarkę Internetową.

Mam nadzieję, że ten zbiór porad pomoże w przygotowaniu komfortowego i bezpiecznego środowiska pracy dla OSINTowych poszukiwań. No i oczywiście gorąco zachęcam do wypróbowania RonanVM – mam nadzieję, że znajdziecie tam wszystko czego moglibyście potrzebować, a gdyby w Waszej ocenie czegoś w nim brakowało dajcie znać. Projekt z pewnością będzie się jeszcze rozwijać więc wszelkie uwagi są mile widziane!

Jedna myśl na temat „

Dodaj komentarz

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

pl_PLPolish