
Prévenir les attaques SSRF sur AWS EC2 via des mises à niveau automatisées vers l'Instance Metadata Service v2 (IMDSv2) plus sécurisé.
Empêchez les attaques SSRF sur AWS EC2 grâce à des mises à niveau automatisées vers le service de métadonnées d'instance v2 (IMDSv2), plus sécurisé.
Objectif et fonctionnalités
Les équipes d'ingénierie peuvent disposer d'une grande variété d'infrastructures de calcul dans AWS qu'elles doivent protéger contre certaines vulnérabilités exploitant le service de métadonnées. Le service de métadonnées doit être exécuté sur les instances si un IAM est utilisé ou si l'instance a besoin d'informations de données utilisateur au démarrage. Limiter la surface d'attaque de vos instances est crucial pour empêcher la possibilité de pivoter dans votre environnement en volant des informations fournies par le service lui-même. De nombreuses attaques célèbres dans le passé ont exploité ce service pour exploiter un rôle attaché à l'instance ou vider des données sensibles accessibles via le service de métadonnées. Metabadger peut vous aider à identifier où et comment vous utilisez le service de métadonnées d'instance, tout en vous donnant la capacité de réduire tout levier d'attaque indésirable afin d'abaisser votre niveau de risque global lors de l'utilisation d'EC2.
L'utilisation de cet outil peut impacter votre infrastructure de calcul AWS car certains services et applications peuvent ne pas fonctionner sans le service de métadonnées ou avec la version 2. Soyez prudent lors du déploiement dans votre environnement de production et prévoyez un plan de restauration en cas d'anomalie. Metabadger intègre la possibilité de revenir à la version 1 par défaut du service à l'aide du drapeau -v1 ; vous pouvez l'utiliser pour restaurer rapidement vos instances à la version par défaut. Idéalement, exécutez cet outil et mettez à jour la version des métadonnées dans des environnements hors production comme terrain d'essai avant de l'appliquer.
Étape 1
Dans un premier temps, nous souhaitons découvrir notre utilisation globale du service de métadonnées dans une région AWS particulière. Metabadger évaluera l'état actuel de votre utilisation dans la région vers laquelle pointent vos identifiants dans votre fichier /.aws/credentials ou le rôle actuellement assumé. Vous pouvez également spécifier le drapeau --region lors de l'exécution de la commande discover-metadata si vous souhaitez changer de région. Une fois que vous avez une bonne idée de la version utilisée par vos instances et si le service est activé ou désactivé, vous serez en mesure d'élaborer un plan d'action bien plus précis pour durcir le service. Notez que vous pouvez trouver la signification spécifique de chaque option de métadonnées ici.
Étape 2
L'un des domaines à évaluer lors du passage à la version 2 du service est l'utilisation des rôles IAM. Metabadger vous permet d'identifier les instances d'une région qui utilisent déjà un rôle IAM. La commande discover-role-usage affichera une liste des instances auxquelles des rôles sont attachés. Si vous avez beaucoup d'instances utilisant des rôles, soyez prudent lors de la mise à jour du service vers la version 2 pour garantir que le fonctionnement global de vos charges de travail n'est pas affecté.
Étape 3
Une fois l'étude initiale et l'évaluation terminées, vous pouvez maintenant mettre en place une approche progressive pour durcir votre infrastructure de calcul afin d'utiliser soit la version 2 du service de métadonnées, soit de le désactiver là où il n'est pas utilisé. La commande harden-metadata vous permet de mettre à jour toutes les instances d'une région particulière par défaut. Vous pouvez également passer des balises d'instance à l'aide du drapeau --tags ou un fichier d'entrée contenant un csv des instances auxquelles vous souhaitez appliquer une configuration. Une fois les mises à jour appropriées effectuées vers la version 2 et le service désactivé là où il n'est pas utilisé, vous pouvez réévaluer à l'aide des éléments de l'étape 1 pour confirmer que votre environnement est verrouillé. Si certaines instances ne doivent pas être mises à jour, vous pouvez les exclure via le drapeau --exclusion par balise ou ID d'instance.
Metabadger nécessite un rôle IAM ou des identifiants avec les autorisations suivantes:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Lorsque vous apportez des modifications au service de métadonnées d'instance, soyez prudent et suivez les recommandations supplémentaires d'AWS sur la façon de mettre à niveau en toute sécurité vers la version 2. Metabadger a été conçu pour vous assister dans ce processus afin de renforcer la sécurité de votre infrastructure de calcul AWS.
Guide des bonnes pratiques AWS pour la mise à jour vers IMDSv2
Installation via pip
pip3 install --user metabadger
Installation via Github
$ git clone https://github.com/salesforce/metabadger
$ cd metabadger
$ pip install -e .
$ metabadger
Usage: metabadger [OPTIONS] COMMAND [ARGS]...
Metabadger is an AWS Security Tool used for discovering and hardening the
Instance Metadata service.