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:
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 online „Docker – 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.