
Prevenir ataques SSRF en AWS EC2 mediante actualizaciones automatizadas al más seguro Servicio de Metadatos de Instancia v2 (IMDSv2).
Previene ataques SSRF en AWS EC2 mediante actualizaciones automatizadas al más seguro Servicio de Metadatos de Instancia v2 (IMDSv2).
Propósito y funcionalidad
Los equipos de ingeniería pueden tener una gran variedad de infraestructura de cómputo en AWS que necesitan proteger de ciertas vulnerabilidades que aprovechan el servicio de metadatos. El servicio de metadatos es necesario para ejecutarse en las instancias si se usa algún IAM o si hay información de datos de usuario que la instancia pueda necesitar al arrancar. Limitar la superficie de ataque de tus instancias es crucial para evitar la capacidad de pivotar en tu entorno robando información proporcionada por el propio servicio. Numerosos ataques famosos en el pasado han aprovechado este servicio para explotar un rol asociado a la instancia o volcar datos sensibles accesibles a través del servicio de metadatos. Metabadger puede ayudar a identificar dónde y cómo estás usando el servicio de metadatos de instancia, a la vez que te brinda la capacidad de reducir cualquier apalancamiento de ataque no deseado para bajar tu postura de riesgo general mientras operas en EC2.
El uso de esta herramienta puede afectar tu infraestructura de cómputo en AWS, ya que no todos los servicios y aplicaciones pueden funcionar sin el servicio de metadatos o en la versión 2. Ten precaución al implementarlo en tu entorno de producción y ten un plan de reversión por si algo parece fuera de lo común. Metabadger incluye la capacidad de revertir a la versión 1 predeterminada del servicio usando la bandera -v1, que puedes usar para revertir rápidamente tus instancias al valor predeterminado. Idealmente, deberías ejecutar esta herramienta y actualizar la versión de metadatos en entornos que no sean de producción como campo de pruebas antes de aplicarlo.
Paso 1
Inicialmente, queremos descubrir nuestro uso general del servicio de metadatos en una región particular de AWS. Metabadger evaluará el estado actual de tu uso en la región a la que apuntan tus credenciales en tu archivo /.aws/credentials o el rol actual que se asume. También puedes especificar la bandera --region al ejecutar el comando discover-metadata si deseas cambiar a otra región que no sea la configurada actualmente. Una vez que tengas una buena idea de qué versión están usando tus instancias y si el servicio está habilitado o deshabilitado, podrás elaborar un plan de acción mucho más definido para endurecer el servicio. Ten en cuenta que puedes encontrar el significado específico de cada opción de metadatos aquí.
Paso 2
Uno de los aspectos que se debe evaluar al hacer el cambio a la versión 2 del servicio es el uso de roles de IAM. Metabadger te permite identificar instancias en una región que ya podrían estar usando un rol de IAM. El comando discover-role-usage mostrará una lista de instancias que tienen roles asociados. Si tienes muchas instancias usando roles, debes tener precaución al actualizar el servicio a v2 para asegurarte de que la funcionalidad general de tus cargas de trabajo no se vea afectada.
Paso 3
Una vez que hayas completado tu descubrimiento y evaluación iniciales, ahora puedes crear un enfoque por etapas para endurecer tu infraestructura de cómputo para usar la versión 2 del servicio de metadatos o deshabilitarlo donde no se use. El comando harden-metadata te permite actualizar todas las instancias en una región particular de forma predeterminada. También puedes pasar etiquetas de instancia usando la bandera --tags o un archivo de entrada que contenga un CSV de instancias a las que deseas aplicar una configuración. Una vez que hayas realizado las actualizaciones apropiadas a v2 y deshabilitado el servicio donde no se usa, puedes reevaluar usando los elementos del Paso 1 para confirmar que tu entorno esté bloqueado. Si tienes ciertas instancias que no deseas actualizar, puedes excluirlas mediante la bandera --exclusion por etiqueta o ID de instancia.
Metabadger requiere un rol de IAM o credenciales con los siguientes permisos:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
Al realizar cambios en el Servicio de Metadatos de Instancia, debes ser cauteloso y seguir las indicaciones adicionales de AWS sobre cómo actualizar de forma segura a la versión 2. Metabadger fue diseñado para ayudarte con este proceso para asegurar aún más tu infraestructura de cómputo en AWS.
Guía de mejores prácticas de AWS sobre la actualización a IMDSv2
Instalar mediante pip
pip3 install --user metabadger
Instalar mediante 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.
Options:
--version Show the version and exit.
--help Show this message and exit.