
Предотвращайте SSRF-атаки на AWS EC2 с помощью автоматических обновлений до более безопасного Instance Metadata Service v2 (IMDSv2).
Предотвращайте SSRF-атаки на AWS EC2 с помощью автоматического перехода на более безопасную версию Instance Metadata Service v2 (IMDSv2).
Назначение и возможности
У инженерных команд может быть огромное разнообразие вычислительной инфраструктуры в AWS, которую необходимо защитить от определённых уязвимостей, использующих сервис метаданных. Сервис метаданных требуется для работы на экземплярах, если используется какой-либо IAM или если экземпляру нужна информация из пользовательских данных при загрузке. Ограничение поверхности атаки ваших экземпляров имеет решающее значение для предотвращения возможности перемещения внутри вашей среды путём кражи информации, предоставляемой самим сервисом. Многочисленные известные атаки в прошлом использовали этот сервис для эксплуатации роли, прикреплённой к экземпляру, или для сброса конфиденциальных данных, доступных через сервис метаданных. Metabadger может помочь определить, где и как вы используете сервис метаданных экземпляров, а также дать вам возможность уменьшить нежелательные векторы атак для снижения общего уровня риска при работе в EC2.
Использование этого инструмента может повлиять на вашу вычислительную инфраструктуру AWS, так как не все сервисы и приложения могут работать без сервиса метаданных или на версии 2. Будьте осторожны при развёртывании в рабочей среде и подготовьте план отката на случай, если что-то пойдёт не так. Metabadger имеет встроенную возможность отката к версии 1 сервиса по умолчанию с помощью флага -v1; вы можете использовать его для быстрого отката экземпляров до версии по умолчанию. В идеале сначала запустите этот инструмент и обновите версию метаданных в нерабочих средах в качестве испытательного полигона перед применением.
Шаг 1
Сначала мы хотим определить общее использование сервиса метаданных в определённом регионе AWS. Metabadger оценит текущее состояние вашего использования в регионе, на который указывают ваши учетные данные в файле /.aws/credentials или текущая принятая роль. Вы также можете указать флаг --region при выполнении команды discover-metadata, если хотите переключиться на другой регион, отличный от текущего. Когда у вас будет хорошее представление о том, какую версию используют ваши экземпляры и включён ли сервис или отключён, вы сможете составить гораздо более чёткий план действий по усилению защиты сервиса. Обратите внимание, что подробное описание каждой опции метаданных можно найти здесь.
Шаг 2
Одной из областей, которую следует оценить при переходе на версию 2 сервиса, является использование ролей IAM. Metabadger позволяет идентифицировать экземпляры в регионе, которые уже могут использовать роль IAM. Команда discover-role-usage выведет список экземпляров с прикреплёнными ролями. Если у вас много экземпляров, использующих роли, следует соблюдать осторожность при обновлении сервиса до версии 2, чтобы не нарушить общую функциональность ваших рабочих нагрузок.
Шаг 3
После завершения первоначального обнаружения и оценки вы можете создать поэтапный подход к усилению защиты вашей вычислительной инфраструктуры, используя либо версию 2 сервиса метаданных, либо отключив его там, где он не используется. Команда harden-metadata по умолчанию обновляет все экземпляры в определённом регионе. Вы также можете передать теги экземпляров с помощью флага --tags или входной файл, содержащий CSV-список экземпляров, к которым вы хотите применить конфигурацию. После того как вы внесёте соответствующие обновления до версии 2 и отключите сервис там, где он не используется, вы можете повторно оценить ситуацию с помощью пунктов из Шага 1, чтобы убедиться, что ваша среда защищена. Если у вас есть определённые экземпляры, которые вы не хотите обновлять, вы можете исключить их с помощью флага --exclusion по тегу или идентификатору экземпляра.
Metabadger требует роль IAM или учетные данные со следующими разрешениями:
ec2:ModifyInstanceAttribute
ec2:DescribeInstances
При внесении изменений в Instance Metadata Service следует проявлять осторожность и следовать дополнительным рекомендациям AWS по безопасному обновлению до версии 2. Metabadger был разработан, чтобы помочь вам в этом процессе для дальнейшего повышения безопасности вашей вычислительной инфраструктуры в AWS.
Руководство по лучшим практикам AWS по обновлению до IMDSv2
Установка через pip
pip3 install --user metabadger
Установка через 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.
Commands:
cloudwatch-metrics Pull CloudWatch Metrics for MetadataNoToken usage
disable-metadata Disable the IMDS service on EC2 instances
discover-metadata Discover summary of IMDS service usage within EC2
discover-role-usage Discover summary of IAM role usage for EC2
harden-metadata Harden the AWS instance metadata service from v1 to v2
cloudwatch-metrics