Быстрый аудитор облачной безопасности: открытый сканер для AWS

Проведение аудитов безопасности AWS без выделенной команды специалистов обычно означает выбор между корпоративными платформами с оплатой за проверку и универсальными сканерами с открытым исходным кодом, которые выдают результаты без рекомендаций по исправлению. Cloud-audit, инструмент командной строки на Python, опубликованный на GitHub Мариушем Гебалой, имеет более узкую направленность и предоставляет исправление для каждой обнаруженной проблемы.

Инструмент выполняет 45 тщательно отобранных проверок для 15 сервисов AWS, включая IAM, S3, EC2, VPC, RDS, Lambda, ECS, CloudTrail, GuardDuty, KMS, SSM, Secrets Manager, CloudWatch и AWS Config. Каждая обнаруженная проблема соответствует одному из 16 элементов контроля CIS AWS Foundations Benchmark. Распределение проверок по степени критичности: 6 — критические, 13 — высокие, 16 — средние и 10 — низкие.

Как выглядят рекомендации по исправлению

Гебал утверждает, что вывод рекомендаций по исправлению — ключевое отличие. "Большинство сканеров AWS лишь указывают на проблемы в инфраструктуре, — сказал он. — Что отличает мой инструмент, так это то, что помимо выявления проблем он также предоставляет готовые к выполнению команды". Эти команды представлены в виде инструкций AWS CLI или фрагментов кода Terraform, каждый из которых сопровождается ссылкой на соответствующую документацию AWS. Отдельный флаг --export-fixes записывает все исправления в закомментированный bash-скрипт с использованием set -e, который предназначен для проверки и выборочного раскомментирования перед выполнением.

Набор проверок был сознательно ограничен, пояснил Гебал. Он хотел сосредоточиться на тщательно отобранных проверках для 15 поддерживаемых сервисов, чтобы избежать огромного объёма вывода, характерного для многих сканеров, и сконцентрироваться на том, что потенциально могут использовать злоумышленники. Документация проекта отражает тот же принцип, утверждая, что каждая проверка отвечает на один вопрос: "мог бы злоумышленник этим воспользоваться?"

Охватываемые проверки и оценка

Набор проверок безопасности охватывает распространённые категории ошибочных конфигураций: учётная запись root без MFA, политики IAM с подстановочными знаками в действиях и ресурсах, корзины S3 без блокировок публичного доступа, группы безопасности, открытые для 0.0.0.0/0 на чувствительных портах, общедоступные экземпляры RDS, CloudTrail с отключённой проверкой журналов, URL-адреса функций Lambda без аутентификации, задачи ECS, работающие в привилегированном режиме, и параметры SSM, хранящие секреты в виде обычного текста.

Инструмент также включает проверки стоимости и надёжности, охватывающие такие элементы, как неприсоединённые Elastic IP, остановленные экземпляры EC2, развёртывания RDS в одной зоне доступности и корзины S3 без контроля версий.

Результаты сканирования формируют показатель безопасности, начинающийся со 100 баллов. Критические уязвимости отнимают по 20 баллов каждая, высокие — по 10, средние — по 5, а низкие — по 2. Согласно документации проекта, оценка от 80 баллов и выше считается приемлемой, от 50 до 79 — требует внимания, а ниже 50 — немедленных действий.

Форматы вывода и интеграция с CI/CD

Гебалла отметил разнообразие форматов вывода как практичное решение для разных аудиторий: SARIF для GitHub Code Scanning, Markdown для автоматических комментариев к pull request и HTML-отчёты для клиентов. Файл конфигурации позволяет командам настраивать детализацию проверки, устанавливать минимальный порог серьёзности, целевые регионы и исключать определённые проверки для проекта.

Вывод в формате SARIF передаёт результаты на вкладку Security в GitHub. Документированный workflow для GitHub Actions использует аутентификацию OIDC, генерируя кратковременный токен для каждого запуска, что исключает необходимость хранения статических ключей AWS в секретах репозитория.

Планы развития и загрузка

Автор сообщает, что кодовая база включает 168 тестов и активно развивается. В планах — расширить количество проверок до 60, добавив поддержку CloudFront, SNS, SQS и Elasticsearch, а также функцию сравнения отчётов для отслеживания прогресса в устранении уязвимостей.

Гебалла также планирует режим анализа для создания конфигураций исключений для рисков, принятых по проекту, поддержку Azure в качестве второго облачного провайдера и уведомления в Slack для запланированных проверок.

Cloud-audit доступен бесплатно на GitHub.

Обязательно к прочтению:

  • 40 инструментов с открытым исходным кодом, меняющих подходы к безопасности стека
  • Время, стоимость сканирования прошивок и где команды запускают EMBA

Подпишитесь на ежемесячную рассылку Help Net Security без рекламы, чтобы быть в курсе важнейших инструментов кибербезопасности с открытым исходным кодом. Подписаться можно здесь!