les résultats des tests des outils de détection des vulnérabilités non corrigées et des problèmes de sécurité dans les images de conteneurs Docker isolés. Le contrôle a révélé que dans 4 des 6 scanners d'images Docker connus, des vulnérabilités critiques permettaient d'attaquer directement le scanner lui-même et d'exécuter son propre code dans le système, dans certains cas (comme avec Snyk) avec des privilèges root.
Pour l'attaque, un attaquant n'a besoin que d'initier la vérification de son Dockerfile ou manifest.json, incluant des métadonnées spécialement conçues, ou de placer des fichiers Podfile et gradlew à l'intérieur de l'image. Des prototypes d'exploits pour les systèmes
, ,
et
. Le meilleur niveau de sécurité a été observé avec le paquet , initialement écrit avec une attention particulière à la sécurité. Aucun problème n'a également été identifié dans le paquet . En conclusion, il a été établi que les scanners de conteneurs Docker doivent être exécutés dans des environnements isolés ou utilisés uniquement pour vérifier ses propres images, et il faut également faire preuve de prudence lors de la connexion de tels outils aux systèmes d'intégration continue automatisés.
Dans FOSSA, Snyk et WhiteSource, la vulnérabilité était liée à l'appel d'un gestionnaire de paquets externe pour déterminer les dépendances, et permettait d'exécuter son propre code en indiquant les commandes touch et system dans les fichiers et .
Dans Snyk et WhiteSource, de plus , à l'organisation de l'exécution des commandes système lors de l'analyse du Dockerfile (par exemple, dans Snyk, il était possible de remplacer l'outil /bin/ls appelé par le scanner, tandis que dans WhiteSource, il était possible d'injecter du code via des arguments sous forme 'echo ';touch /tmp/hacked_whitesource_pip;=1.0').
Dans Anchore, la vulnérabilité l'utilisation de l'outil pour travailler avec des images docker. L'exploitation consistait à ajouter dans le fichier manifest.json des paramètres du type ‘"os": "$(touch hacked_anchore)"‘, qui sont insérés lors de l'appel de skopeo sans un échappement approprié (seuls les caractères «;&» étaient supprimés, mais la construction «$()» était autorisée).
Le même auteur a mené une étude sur l'efficacité de la détection des vulnérabilités non corrigées par les scanners de sécurité des conteneurs docker et le niveau de faux positifs (, , ). Les résultats des tests de 73 images, contenant des vulnérabilités connues, sont présentés ci-dessous, ainsi qu'une évaluation de l'efficacité de la détection des applications standards dans les images (nginx, tomcat, haproxy, gunicorn, redis, ruby, node).
Source : opennet.ru
