W ostatnim poście zwiedzaliśmy lotniska i śledziliśmy samoloty. Tym razem zejdziemy na ziemię jednak ponownie zawędrujemy w odległe zakątki globu. Obserwując urządzenia, które nas otaczają nietrudno zauważyć, że coraz więcej z nich chciałoby połączyć się z Internetem – telewizory, lodówki, odkurzacze, termostaty – to wszystko stopniowo uzyskuje funkcjonalności które można wykorzystać tylko po połączeniu z siecią. Samo zjawisko szerokiej dostępności urządzeń wystawionych na świat nie jest jednak takie nowe i już w 2009 John Matherly stworzył Shodan, czyli wyszukiwarkę służącą do odnajdywania urządzeń podłączonych do Internetu niezależnie od ich rodzaju. Zakres i ilość katalogowanych informacji jest doprawdy imponująca, możemy choć spojrzeć jak na przestrzeni ostatnich 4 lat liczba certyfikatów Let’s Encrypt wzrosła o ponad 10 milionów:
Jeżeli z kolei spojrzymy na widziane w tej chwili urządzenia w Polsce, to znajdziemy ich blisko 4 milionów:
Shodan oferuje kilka rodzajów kont, zaczynając od całkiem darmowego, a kończąc na biznesowym w cenie blisko $900 za miesiąc.
Dla większości użytkowników najbardziej interesującą opcją będzie zapewne Shodan Memebership. W tym wariancie płacimy tylko raz i uzyskujemy dostęp do szeregu najbardziej przydatnych funkcji jak korzystanie z operatorów wyszukiwania, monitorowanie zmian dla 16 adresów IP, dostęp do API czy wyszukiwarki obrazów. Membership kosztuje jednorazowo $49 i zdecydowanie jest warte tej ceny, warto jednak wypatrywać promocji – z okazji Black Friday czy innych świąt często cena jest znacznie obniżana. Ja kupiłem konto za $4 co w kontekście możliwości jest nieznaczącym wydatkiem.
Shodan jest najbardziej znanym serwisem tego typu ale nie jedynym, przyjrzyjmy się więc też alternatywom.
ZoomEye – Chiński serwis działający na niemal identycznej jak Shodan zasadzie. Ze względów regionalno-politycznych wyniki nie będą się zawsze do końca pokrywać i część rzeczy któe odnajdziemy na ZoomEye nie będą na Shodan i odwrotnie. Możemy początkowo odnieść wrażenie, że ZoomEye posiada znacznie więcej danych, np.: wynik dla Polski pokaże ponad 24 miliony rekordów:
Musimy jednak zwrócić uwagę, że ZoomEye miesza aktualne i historyczne wyniki, w przeciwieństwie do Shodan pokazującego stan „na teraz”. Ponownie więc, zależnie od tego jakich danych potrzebujemy warto odwiedzić oba serwisy. W zakresie pozyskiwanych danych nie ma jakichś dramatycznych różnic, a główną różnicą będzie prezentacja danych. Spójrzmy na pierwszy z brzegu przykładowy adres IP:
i Shodan:
ZoomEye również posiada płatne wersje kont które dają dostęp do rozszerzonej funkcjonalności jak pobieranie zbiorów danych czy wyszukiwanie po IPv6.
Censys.io – i kolejna wyszukiwarka rzeczy podłączonych do Internetu. Censys ma jednak profil powiedzmy bardziej „cyber”, sam dość często korzystałem z niego do mapowania infrastruktury wykorzystywanej przy atakach, wyszukując powiązań pomiędzy domenami które korzystały z tego samego certyfikatu TLS. Publiczny przykład takiej analizy możemy znaleźć w raporcie ThreatConnect „A Song of Intel and Fancy” w którym właściwości certyfikatu zostały wykorzystane do wykrycia infrastruktury z której korzystała grupa Fancy Bear. Wracając do naszego przykładowego hosta ponownie zobaczymy podobny zakres danych:
Censys to rozwiązanie bardziej biznesowe, poza darmową wersją nie posiada oferty kont dla prywatnych użytkowników z np.: rozszerzonym pakietem funkcji. Dla celów uzupełnienia wyników z innych serwisów jak Shodan, darmowa wersja powinna jednak w pełni wystarczyć.
LeakIX – stosunkowo nowy serwis którego celem jest gromadzenie informacji o wyciekach danych i otwartych serwisach. Wpisując nasz przykładowy adres IP nie znajdziemy więc jednej tabelki ze zbiorem wszystkich danych, a podział na poszczególne serwisy i technologie:
W zakładce Reports znajdziemy tutaj też opisy odnalezionych podatności, które zostały zgłoszone właścicielom i załatane, LeakIX daje 30 dni na reakcje zanim dane zostaną upublicznione:
Ideą serwisu jest otwartość dostępu do danych, nie ma więc płatnych wersji. Możemy za to założyć konto, które umożliwi nam zgłaszanie podatności w ramach działalności serwisu.
Tak więc wygląda przegląd kilku interesujących narzędzi które umożliwiają zbieranie informacji o podłączonych do Internetu urządzeniach. Przyjrzymy się teraz bliżej temu co znajdziemy w Shodan, jednak zanim przejdziemy do meritum warto przytoczyć słowa wujka Spider-Mana „Z wielką mocą wiąże się wielka odpowiedzialność”. Shodan od początku swojego istnienia spotyka się z krytyką i kontrowersjami związanymi z tym, że umożliwia łatwe wyszukiwanie podatnych hostów, dostępnych z Internetu kamerek czy nawet interfejsów kontrolnych systemów przemysłowych. Co więcej projekty takie jak AutoSploit automatyzujące nieautoryzowany dostęp poprzez łączenie funkcjonalności Shodan czy ZoomEye z narzędziami ofensywnymi jak Metasploit nie pomagają. Osobiście jestem zdania, że takie serwisy zdecydowanie bardziej pomagają niż szkodzą pokazując skalę dostępności urządzeń w Internecie i umożliwiając badaczom efektywne zbieranie danych, a firmom proaktywną ocenę powierzchni ataku i dostępności zasobów. Przytoczyć tu można odcinek komiksu Little Bobby autorstwa Roberta M Lee i Jeffa Hassa:
Mając to na uwadze, chciałbym więc tylko zaapelować o elementarną odpowiedzialność i przyzwoitość w prowadzonych działaniach. Jeżeli znajdziemy wystawiony do Internetu panel sterowania procesów przemysłowych, to jasne jest, że właściciele powinni zadbać o lepszą architekturę IT w swojej organizacji, nie dolewajmy jednak oliwy do ognia nieodpowiedzialnym wykorzystaniem takiego dostępu.
Jeżeli mamy już dostęp do Shodan i konta członkowskiego możemy zacząć od zakładki Explore, w której znajdziemy najpopularniejsze filtry wyszukiwania, takiej jak mapowanie ICS (systemów kontroli przemysłowej), baz danych, serwerów gier komputerowych czy kamerek internetowych. ICS to zawsze ciekawe zagadnienie, przejdźmy więc do tej zakładki:
Jak widzimy Shodan sam podpowiada, nawet składnie, dla szukania najpopularniejszych rodzajów kontrolerów przemysłowych. Spójrzmy więc dla przykładu na Siemens S7 – taki sam system który atakował Stuxnet w ośrodku wzbogacania uranu w Natanz.
Jak widzimy składnia domyślnego wyszukiwania nie jest specjalnie wymyślna – podpowiedź Shodan to sam port 102, który faktycznie jest portem domyślnym dla tego typu urządzeń, jednak przecież ostatecznie może tam być uruchomiona dowolna usługa. Na załączonym obrazku widzimy fragment wyniku wyszukiwania, które serwer HTTP (zwracający kod 200 – czyli udane połączenie) o nazwie IPCam Client, więc raczej nie o to o co nam chodziło. Spróbujmy trochę doprecyzować nasze poszukiwania, kontroler którego szukamy to Siemens S7, dodajmy więc „S7” jako parametr:
Teraz jest znacznie lepiej – wyników jest niewiele, ale tag „ICS” i informacje w odpowiedzi serwera pozwalają nam przypuszczać, że to właśnie te kontrolery o które nam chodzi. Możemy więc wykorzystać je do szerszych poszukiwań.
Widzimy tutaj przynajmniej kilka elementów, które mogą stanowić punkt zaczepienia – choćby fragment PLC name. PLC to skrót od Programmable Logic Controller, możemy więc domniemywać, że taki ciąg znaków będzie obecny nawet jeżeli nie będzie to model S7. Możemy więc połączyć te modyfikatory i zawęzić wyniki do kraju jaki nas interesuje, np: Polski.
Teraz wygląda to już całkiem ładnie, wszystkie wyniki zaczynają się od „Copyright: Original Siemens Equipment” co wskazuje, że mamy to czego szukamy. Shodan umożliwi nam również posortowanie wyników według miasta i organizacji:
Jeżeli z kolei chcemy uzyskać szerszy obraz tego jakie interfejsy są wystawione do Internetu, warto skorzystać z modułu Images który zbiera zrzuty ekranu w przypadku urządzeń które udostępniają jakąś formę interfejsu graficznego – w przypadku RDP możemy zobaczyć choćby ekran logowania do systemu Windows. Ułatwieniem tutaj jest to, że o ile korzystanie z opcji „tag” która wyszukuje hosty danego typu wymaga konta biznesowego, to w wyszukiwarce Images możemy swobodnie korzystać z „screenshot.label:”. Jeżeli więc chcemy zobaczyć jakie interfejsy dla urządzeń ICS w Polsce zostały wyłapane przez Shodan możemy użyć zapytania „screenshot.label:ics country:PL”:
Jak widzimy urządzenia Istobal są zdecydowanie najpopularniejsze wśród crawlerów Shodan. Szybkie wyszukiwanie podpowie nam, że Istobal to producent myjni samochodowych, a odnalezione interfejsy to zapewne panele kontrolne myjni podłączone do Internetu.
Odnajdywanie systemów przemysłowych to oczywiście jedynie mały wycinek możliwości Shodan, ilustrujący jednak zarówno możliwości narzędzia jak i pokazujący skalę tego jak wiele rzeczy, potrzebnie lub nie, jest teraz podłączonych do sieci.