Tsunami – nowy skaner sieciowy autorstwa Google

09 lipca 2020, 14:00 | Narzędzia | komentarze 2
: oglądaj sekurakowe live-streamy o bezpieczeństwie IT.

Tsunami – to nowy skaner sieciowy opublikowany przez Google w zeszłym miesiącu. Sebastian Lekies, jeden z pracowników Google, zajmujący się automatyzacją wyszukiwania podatności, opisał go w następujący sposób:

W skrócie: Tsunami to skaner używany wewnętrznie w Google, którego celem jest:

  • Identyfikacja podatności o wysokim poziomie istotności (mniej interesują nas więc takie kwestie, jak np. ujawnienie banera wersji danej usługi),
  • Skupienie na podatnościach wykorzystywanych w realnym świecie,
  • Całkowite wyeliminowanie false positive’ów (czyli zgłoszeń skanera, które później okazują się fałszywe).

dłuższego opisu narzędzia na blogu Google, dowiemy się, że proces skanowania składa się z dwóch kroków:

  1. Rekonesans – czyli identyfikacja otwartych portów i działających na nich usług. Tsunami nie odkrywa tutaj koła na nowo i pod spodem wykorzystuje nmap.
  2. Werfyikacja podatności – na bazie zdobytych wcześniej informacji, Tsunami próbuje zaatakować daną usługę pluginami, które do niej pasują. Weryfikacja podatności odbywa się prawdziwym (choć niegroźnym) exploitem.

W obecnie upublicznionej wersji, Tsunami ma detektory tylko do dwóch klas podatności:

  1. Upublicznione wrażliwe interfejsy aplikacji – pewne aplikacje, takie jak np. Jupyter czy Jenkins domyślnie wystawiają interfejs użytkownika, który nie wymaga logowania i pozwala na wykonywanie dowolnych poleceń systemu operacyjnego.
  2. Słabe dane logujące – wykrywane dla takich usług jak SSH, FTP, RDP czy MySQL.

W jednym z miejsc Google twierdziło, że używa Tsunami wewnętrznie, więc na pewno muszą korzystać z dużo większej liczby pluginów niż te, które obecnie zostały ujawnione. Zapytałem o to na Twitterze i Sebastian Lekies potwierdził, że kolejne pluginy są planowane, choć nie podał żadnego terminu.

Tak czy owak, postanowiłem spróbować zmierzyć się z tsunami i zobaczyć, jakie daje wyniki.

Instalacja Tsunami

W celu uruchomienia Tsunami, przygotowałem maszynę wirtualną z Debianem 10 (Busterem). Pierwszym krokiem jest instalacja zależności:

Tsunami jest napisane w Javie, stąd wymóg openjdknmap jest używany pod spodem do skanowania portów; ncrack to z kolei narzędzie używane do wykrywania słabych danych logujących, a git i curl potrzebne były do pobrania wszystkich danych i kompilacji.

Kompilacja Tsunami to z kolei wykonanie polecenia w Bashu;

Ze względu na fakt, że powyższy kod jest wykonaniem w bashu dowolnego polecenia pobranego przez curl, nie zalecamy tego robić na prawdziwych systemach przechowujących wrażliwe dane. Zawsze należy tego typu polecenia uruchamiać w wirtualizowanym środowisku!

Poniżej umieszczam Asciicast z procesu instalacji, który u mnie trwał ok. dwie minuty. W tym procesie nie dzieje się wiele interesującego, ale może się przydać osobom, które same chcą zainstalować tsunami i rozwiązać ew. problemy.

Uruchomienie Tsunami

Na samym końcu procesu instalacji, Tsunami wyświetliło informację, w jaki sposób można je uruchomić do przeskanowania localhosta:

Uruchomiłem więc na swoim komputerze Jupyter Notebook (do której detektor ma Tsunami) i włączyłem skaner, by zobaczyć jak sobie poradzi z identyfikacją błędu i jak dokładnie działa. Poniżej asciicast:

Poniżej zaś wklejony wynikowy JSON:

Kilka moich spostrzeżeń:

  1. Tsunami wypisuje bardzo dużo informacji na wyjściu, dzięki czemu dokładnie wiadomo co aktualnie się dzieje. Widać też, że na początku został uruchomiony nmap, a później ncrack do łamania haseł do SSH.
  2. Skan trwał ok. 1,5 minuty, co jak na hosta mającego dwie otwarte usługi, nie jest genialnym wynikiem.
  3. W obecnej wersji narzędzia fingerprinting najwyraźniej nie działa zbyt dobrze, bo w końcowym fragmencie wyjścia widać np., że plugin sprawdzający czy na danym porcie jest wystawiany WordPress został… uruchomiony na porcie 22 (SSH).
  4. Najpewniej Google wewnętrznie korzysta z innego narzędzia, które przetwarza wyniki zwracane przez Tsunami, bo format JSON nie jest najwygodniejszy, jeśli chodzi o czytanie wyników.

Podsumowanie

O ile ideały idące za Tsunami są moim zdaniem słuszne (tylko poważne podatności + 0 false positives), o tyle obecnie wydana wersja ma bardzo skromne możliwości i raczej nie wniesie zbyt wiele do procesu skanowania hostów w naszych sieciach.

Myślę, że jednak warto mieć to narzędzie na oku, bowiem jestem przekonany, że Google ma w zanadrzu dużą liczbę dodatkowych wtyczek, które będą wyszukiwały o wiele większe spektrum podatności w przyszłości. Na razie odkładam Tsunami na półkę i czekam na więcej :)

— Michał Bentkowski, (@SecurityMB) haker w Securitum

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. czesiek

    OK, skupianie się na poważnych podatnościach spoko, ale ignorowanie medium lvl może prowadzić do vuln chaining i co wtedy? Wlłaśnie dlatego automatyczne skanery zawsze będą niewystarczające.

    Odpowiedz
  2. Peter

    Ciekawe czasy nastały. Kiedyś takich narzędzi trzeba było szukać po jakiś ciemnych forach gdzie każdy oskarżał się nawzajem o bycie skryptowym dzieckiem i pilnował swoich sekretów jak złotych klejnotów.

    Odpowiedz

Odpowiedz