
CNAPPgoat — это проект с открытым исходным кодом, предназначенный для модульного развертывания преднамеренно уязвимых компонентов в облачных средах.
CNAPPgoat — это мультиоблачный инструмент для развертывания intentionally уязвимых сред, специально разработанный для создания тренировочных полигонов для защитников и пентестеров. Его основная функция — развертывание преднамеренно уязвимых сред на нескольких облачных провайдерах, чтобы помочь вам отточить навыки эксплуатации, обнаружения и предотвращения таких уязвимостей.

Предупреждение: CNAPPgoat развертывает уязвимые среды. Используйте его только в безопасных, контролируемых песочницах.
CNAPPgoat работает как инструмент командной строки (CLI), способный развертывать уязвимые среды на множество облачных провайдеров. Он построен на Go и использует Pulumi и Pulumi Automation API, что обеспечивает бесшовное развертывание сред. Одной из его уникальных особенностей является модульная конструкция, которая позволяет легко расширять инструмент для поддержки различных облачных провайдеров и новых уязвимых сред. На данный момент CNAPPgoat поддерживает AWS, Azure и GCP.
Зависимости Pulumi и плагины будут установлены по мере необходимости в соответствии с требованиями каждого сценария при развертывании первой среды. Это означает, что первое развертывание может занять немного больше времени, чем последующие.
CNAPPgoat можно легко установить для пользователей macOS с помощью менеджера пакетов Homebrew.
brew tap ermetic-research/cnappgoat
brew install cnappgoat
Скачайте последний релиз отсюда.
tar -xvf cnappgoat-<version>.tar.gz
cd cnappgoat-<version>
(Необязательно) Если вы хотите добавить извлеченный бинарный файл в системный PATH (это необязательно, можете запускать его из локальной директории как ./cnappgoat):
Вариант A: Переместите в директорию, находящуюся в PATH (например, /usr/local/bin для macOS и Linux)
mv cnappgoat /usr/local/bin/
Вариант B: Добавьте директорию с бинарным файлом в ваш PATH
Для bash:
echo 'export PATH=$PATH:<path_to_directory_containing_cnappgoat>' >> ~/.bashrc
source ~/.bashrc
Для zsh:
echo 'export PATH=$PATH:<path_to_directory_containing_cnappgoat>' >> ~/.zshrc
source ~/.zshrc
Замените <path_to_directory_containing_cnappgoat> на абсолютный путь к директории, где находится бинарный файл cnappgoat.
NAME:
cnappgoat - A multicloud open-source tool for deploying vulnerable-by-design cloud resources
USAGE:
cnappgoat [global options] command [command options] [arguments...]
VERSION:
0.1.0-beta, date: 2023-08-02T13:02:46Z, commit: 6bef61857d9f3cf88215269df8976f96317711dc
COMMANDS:
clean clean and remove all created resources and delete all scenarios and any related files
describe describe a scenario
destroy Destroy CNAPPgoat module scenarios
list List CNAPPgoat module scenarios
provision Provision CNAPPgoat module scenarios
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--debug Enable debug mode (default: false)
--help, -h show help
--version, -v print the version
Вы можете использовать несколько аргументов, разделенных пробелами. Например:
cnappgoat provision <сценарий-1> <сценарий-2> <сценарий-N>
--module — фильтрует сценарии по модулю (например, CSPM, CIEM, CWPP, DSPM, KSPM и т.д.)--platform — фильтрует сценарии по платформе (например, AWS, Azure, GCP)--force — включает принудительный режим (разблокирует заблокированные стеки с помощью pulumi cancel)--debug — включает отладочное логирование.Эти флаги являются флагами команд и должны размещаться после команды. Например:
cnappgoat provision --module CSPM --platform AWS
Эта команда выполнит развертывание всех сценариев CSPM на AWS.
CNAPPgoat загружает сценарии из репозитория cnappgoat-scenarios при первом запуске каждого дня. Эти сценарии автоматически загружаются при запуске CNAPPgoat и хранятся в директории ~/.cnappgoat/scenarios.
Перед использованием CNAPPgoat необходимо настроить учетные данные для облачных провайдеров AWS, Azure и GCP. CNAPPgoat использует учетные данные по умолчанию для каждого провайдера. Выполните следующие шаги для настройки учетных данных:
Установите AWS CLI, следуя инструкциям здесь.
Настройте учетные данные AWS, выполнив:
aws configure
Вас попросят ввести Access Key ID, Secret Access Key и регион по умолчанию.
Установите Azure CLI, следуя инструкциям здесь.
Войдите в свою учетную запись Azure, выполнив:
az login
Откроется новое окно браузера для входа. После входа ваши учетные данные будут сохранены для дальнейшего использования.
Установите Google Cloud SDK, следуя инструкциям здесь.
Выполните аутентификацию в Google Cloud:
gcloud auth login
Откроется новое окно браузера для входа. После входа ваши учетные данные будут сохранены для дальнейшего использования.
Настроив эти учетные данные, вы сможете развертывать сценарии на AWS, Azure и GCP с помощью CNAPPgoat. Если вы планируете использовать CNAPPgoat с другим провайдером, настройте соответствующие учетные данные.
Чтобы узнать больше о CNAPPgoat, ознакомьтесь с постом в блоге Ermetic: https://ermetic.com/blog/cloud/cnappgoat-multicloud-open-source-tool-for-deploying-vulnerable-by-design-cloud-resources/
CNAPPgoat развертывает широкий спектр уязвимых сценариев на нескольких облаках для тестирования возможностей обнаружения и предотвращения. Существуют и другие отличные проекты для уязвимых облачных сред, сосредоточенные на различных аспектах, таких как эксплуатация, обнаружение, сценарии CTF (capture the flag) и т.д. Мы вдохновлялись этими инструментами и проектами и рекомендуем ознакомиться с ними:
Больше задач и инструментов можно найти в репозитории Awesome Cloud Security Challeges от Mike Privitte; наш список сосредоточен именно на облачных средах, уязвимых по дизайну, которые пользователи развертывают в своих песочницах.
Чтобы связаться с командой проекта, напишите на [email protected]
| Команда | Описание | Использование |
|---|
list | Выводит список всех доступных сценариев для развертывания. | cnappgoat list |
describe | Предоставляет подробную информацию об указанном сценарии. | cnappgoat describe <имя сценария> |
provision | Развертывает сценарий, указанный по имени. Для развертывания всех сценариев просто используйте cnappgoat provision | cnappgoat provision <имя сценария> |
destroy | Уничтожает сценарий, указанный по имени. Для уничтожения всех сценариев просто используйте cnappgoat destroy | cnappgoat destroy <имя сценария> |
clean | Очищает все сценарии и удаляет локальную директорию .cnappgoat | cnappgoat clean |
--version, -v | Отображает текущую версию CNAPPgoat | cnappgoat --version |
--help, -h | Отображает справку. | cnappgoat --help |