Najnowszy atak znanej w świecie cyberprzestępczności grupy TeamTNT celuje w użytkowników korzystających z obrazów Docker’a. Pobranie złośliwego obrazu może skończyć się utratą kontroli nad jedną lub większej ilości komputerów w naszej sieci.

Co się dzieje?

Nie jest to nowy wariant ataku, jednak cały czas taka technika działa. Na DockerHub publikować może każdy, więc jeżeli stworzymy obrazy kontenerów, które robią coś złego i zahostujemy tam, to.. ktoś je po prostu pobierze.

Podobne techniki przestępcy stosują wgrywając złośliwe aplikacje do Google Play lub w ataku typu Dependency Confusion. Chodzi o to, że użytkownicy publicznego katalogu, kierując się tylko nazwą, mogą pobrać coś o podobnej nazwie i nie zauważyć, że nie jest to oficjalny produkt, który był im potrzebny. Poniższy zrzut ekranu pokazuje repozytorium alpineos na DockerHub, które zawiera złośliwe obrazy. Jak widzimy, niektóre mają kilkadziesiąt tysięcy pobrań…

Co złego może się stać?

Jeżeli ktoś przez nieopatrzność pobierze taki obraz i z buduje z niego kontener, to może mieć spory problem. Obrazy są wyposażone w pokaźne skrypty, które nie tylko uruchamiają koparkę kryptowaluty monero (co jest swego rodzaju klasyką gatunku), ale także mogą przejąć kontrolę nad naszym i innymi komputerami w sieci.

Kontenery podczas startu wykonują szereg działań:

  • próbują stworzyć kontener uprzywilejowany (–privileged) kopiący kryptowalutę. Z założenia ma on także zamontowany filesystem nadrzędny oraz jego konfigurację sieciową
  • jeżeli się to uda, to jednocześnie przestępcy otrzymują dostęp do systemu nadrzędnego (kontener w trybie privileged może uzyskać dostęp do systemu nadrzędnego bez większych trudności – jako root)
  • instaluje narzędzia do rekonesansu sieci – m.in. zgrab oraz masscan
  • próbuje przejąć inne kontenery w sieci
  • Instaluje trojana – bota IRC pozwalającego na zdalny dostęp o nazwie Tsunami
  • i wisienka na torcie – dorzuca także rootkit’a o nazwie Diamorphine.

Całość przedstawiono na poniższym schemacie:

https://www.uptycs.com/blog/team-tnt-deploys-malicious-docker-image-on-docker-hub-with-pentesting-tools

Jak się bronić?

Najprościej będzie nie korzystać z obrazów nie oznaczonych jako oficjalne. Jeżeli zaznaczymy te flagi na docker Hub, to obrazy te nie będą widoczne:

Jest to jedna z rzeczy, której uczymy w ramach naszego kursu onlineDocker – Atak i Obrona“, więc nasi kursanci mogą czuć się bezpieczni 😉

A jak sprawdzić, czy nie złapaliśmy tego malware?

W sieci dostępne są następujące identyfikatory (Indicators of Compromise):

c21d1e12fea803793b39225aee33fe68b3184fff384b1914e0712e10630e523e  monero-ocean shell script

418d1ea67110b176cd6200b6ec66048df6284c6f2a0c175e9109d8e576a6f7ab  diamorphine shell script

497c5535cdc283079363b43b4a380aefea9deb1d0b372472499fcdcc58c53fef  pause shell script

0534c5a5cde1e7d36103b690152a1b426fa87d15b3c4ff59b5bc988b99c3aaaf  Xmrig miner

fe3c5c4f94b90619f7385606dfb86b6211b030efe19b49c12ead507c8156507a IRC bot

teamtnt[.]red  C2

45.9[.]148[.]182  adres hostujący bota IRC

A co jeżeli niestety taki obraz pobraliśmy?

Biorąc pod uwagę, że w grę wchodzi narzędzie takie jak rootkit, a samo malware jest nastawione na infekcję całej infrastruktury i okopanie się w niej, może być potrzebna reinstalacja systemu i inspekcja sieci na wypadek, gdyby jeszcze jakiś komponent o którym w chwili obecnej nie wiadomo, znajdował się na lokalnym systemie. Jeżeli doszło do infekcji innych stacji – niestety czynność musimy powtórzyć.

Dokładny opis tego ataku po angielsku możesz przeczytać także tutaj, na stronie zespołu Uptycs.