Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
metabadger — Предотвращайте SSRF-атаки на AWS EC2 с помощью автоматических обновлений до более безопасного Instance Metadata Service v2 (IMDSv2). | Kitploit
Инструменты/GitHubGitHub/salesforce/metabadger
Безопасность облачной инфраструктурыОборонительные ИнструментыАнализ уязвимостейАудит конфигурацииБезопасность облачных средНеправильная КонфигурацияArchived
GitHubsalesforce/metabadger

metabadger

Предотвращайте SSRF-атаки на AWS EC2 с помощью автоматических обновлений до более безопасного Instance Metadata Service v2 (IMDSv2).

Репозиторий
143121 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Metabadger

Предотвращайте SSRF-атаки на AWS EC2 с помощью автоматического перехода на более безопасную версию Instance Metadata Service v2 (IMDSv2).

continuous-integration Downloads Twitter

Metabadger

Назначение и возможности

  • Диагностировать и оценить текущее использование AWS Instance Metadata Service, а также понять принципы работы сервиса
  • Подготовить вас к обновлению до версии 2 Instance Metadata Service для защиты от векторов атак, характерных для v1
  • Дать возможность целенаправленно обновить ваши экземпляры для использования только IMDSv2
  • Дать возможность отключить Instance Metadata Service там, где он не нужен, чтобы уменьшить поверхность атаки

Что такое AWS Instance Metadata Service?

  • Сервис метаданных AWS предоставляет доступ ко всем объектам внутри экземпляра, включая учетные данные роли экземпляра и токен сессии
  • Известные уязвимости SSRF, которые используют эту атаку как точку входа в вашу среду
  • Знаменитые атаки, о которых вы слышали, некоторые из которых использовали этот метод получения доступа через уязвимое веб-приложение с доступом к сервису метаданных экземпляров
  • Злоумышленник может использовать полученные из сервиса метаданных учетные данные за пределами данного экземпляра

IMDSv2 и почему её следует использовать

  • Обеспечение постоянного использования экземплярами версии 2 сервиса метаданных путём требования её в конфигурации
  • Включение токенов сессии с помощью PUT-запроса с обязательным заголовком запроса к AWS Metadata API; IMDSv1 не проверяет это, что упрощает атаку на сервис
  • Заголовок X-Forwarded-For не разрешён в 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

root@kitploit:~
pip3 install --user metabadger

Установка через Github

root@kitploit:~
$ 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

Непосредственное получение информации об использовании IMDSv1 с помощью метрики MetadataNoToken в AWS CloudWatch. Эта команда покажет экземпляры, которые активно используют версию 1 сервиса за последний час. Обратите внимание, что при выполнении этой команды у вас должны быть разрешения IAM на просмотр метрик CloudWatch.

root@kitploit:~
Options:
  -a, --all-region           Pull CloudWatch metrics across all available
                             regions
  -r, --region TEXT          Specify which AWS region you will perform this
                             command in
  -t, --time-period INTEGER  The CloudWatch time period in seconds used to
                             track the IMDS v1 metric
  -p, --profile TEXT         Specify the AWS IAM profile.
  --help                     Show this message and exit.

discover-metadata

Сводка общего использования сервиса метаданных экземпляров, включая используемую версию и общий процент принудительного применения. Эти цифры помогут вам понять общий уровень защиты вашего использования метаданных и то, где вы применяете версию 2 по сравнению с версией 1.

root@kitploit:~
Options:
  -a, --all-region    Provide a metadata summary for all available regions in the AWS account
  -j, --json          Get metadata summary in JSON format
  -r, --region TEXT   Specify which AWS region you will perform this command in
  -p, --profile TEXT  Specify the AWS IAM profile.

discover-role-usage

Сводка экземпляров и используемых ими ролей; это даст вам хорошее представление о том, какие меры предосторожности необходимо соблюдать при внесении изменений в сам сервис метаданных.

root@kitploit:~
Options:
  -p, --profile TEXT  Specify the AWS IAM profile.
  -r, --region TEXT   Specify which AWS region you will perform this command in

harden-metadata

Возможность изменить экземпляры для использования метаданных версии 1 или 2, а также понять, сколько экземпляров будет изменено, выполнив пробный запуск (dry run).

root@kitploit:~
Options:
  -a, --all-region       Update IMDS across all regions in your account
  -e, --exclusion        The exclusion flag will apply to everything besides what is specified, tags or instances
  -d, --dry-run          Dry run of hardening metadata changes
  -v1, --v1              Enforces v1 of the metadata service
  -i, --input-file PATH  Path of csv file of instances to harden IMDS for
  -t, --tags TEXT        A comma seperated list of tags to apply the hardening setting to
  -r, --region TEXT      Specify which AWS region you will perform this command in
  -p, --profile TEXT     Specify the AWS IAM profile.

disable-metadata

Используйте эту команду, чтобы полностью отключить сервис метаданных на экземплярах.

root@kitploit:~
Options:
  -e, --exclusion        The exclusion flag will apply to everything besides what is specified, tags or instances
  -d, --dry-run          Dry run of disabling the metadata service
  -i, --input-file PATH  Path of csv file of instances to disable IMDS for
  -t, --tags TEXT        A comma seperated list of tags to apply the hardening setting to
  -r, --region TEXT      Specify which AWS region you will perform this command in
  -p, --profile TEXT     Specify the AWS IAM profile.

Логирование

Все изменения, внесённые Metabadger, будут записаны в файл, сохраняемый в рабочей директории с именем metabadger.log. Файл будет содержать следующую информацию для каждого действия инструмента при изменении сервиса метаданных:

  • Временная метка с указанием времени и даты изменения
  • Произошедшее изменение (отключено, усилено или обновлено)
  • Идентификатор экземпляра, в котором было внесено изменение
  • Информация о пробном запуске (dry run)
  • Статус успешности изменения
Скачать инструмент