Утечка terraform.tfstate: раскрытие облачной инфраструктуры
Файл terraform.tfstate генерируется утилитой Terraform и содержит полное описание всей вашей облачной инфраструктуры: виртуальные машины, сети, базы данных и параметры безопасности.
В незашифрованном виде tfstate содержит приватные пароли администратора к облачным СУБД, приватные ключи сертификатов и сервисные токены провайдеров (AWS, Yandex Cloud, Beget).
Степень критичности и чем опасна уязвимость
Утечка tfstate дает злоумышленникам полный административный контроль над всей инфраструктурой компании в облаке.
Как наш сканер находит эту уязвимость
Site Check выполняет безопасную проверку наличия файлов terraform.tfstate и .terraform в веб-директории сайта.
В рамках сканирования конфигурационных файлов модуль Site Check отправляет легковесные изолированные HEAD- и GET-запросы с валидацией статус-кодов (404/403 vs 200). Запросы содержат стандартные маркеры безопасности и не сохраняют скачиваемые данные в постоянное хранилище, предотвращая несанкционированное распространение конфиденциальной информации.
Как устранить уязвимость (Пошаговое руководство)
Для ликвидации риска выполните следующие действия в конфигурации вашего сервера или приложения:
# Храните tfstate исключительно в удаленном зашифрованном бэкенде:
terraform {
backend "s3" {
bucket = "my-private-tfstate-bucket"
key = "prod/terraform.tfstate"
encrypt = true
}
}
- Никогда не храните terraform.tfstate локально или в веб-папках.
- Используйте защищенный бэкенд S3 с шифрованием на стороне сервера (SSE) и закрытыми ACL.
- Заблокируйте расширение .tfstate в конфигурации Nginx.
Анатомия атаки и реальные последствия для проекта
Файл terraform.tfstate содержит полный снимок развернутой облачной инфраструктуры, включая открытый текст паролей RDS, ключей доступа IAM и параметров подсетей VPC. Утечка этого файла равносильна передаче злоумышленнику ключей от всего облака.
Влияние на соответствие стандартам: Нарушение требований безопасности стандартов OWASP Top 10 (A05:2021 Security Misconfiguration), ISO/IEC 27001 и отраслевых норм 152-ФЗ.
Матрица эшелонированной защиты (Defense-in-Depth)
| Уровень защиты | Техническое действие | Инструмент / Механизм |
|---|---|---|
| Периметр веб-сервера (Nginx / Edge) | Применение изолирующих правил блокировки для маршрутов, связанных с exposed-terraform-state | Nginx Security Directives |
| Среда исполнения и конфигурация | Отключение отладочных механизмов и разграничение прав доступа к компоненту exposed-terraform-state | Runtime Security Hardening |
| Пайплайн DevSecOps контроля | Автоматическое тестирование конфигурации exposed-terraform-state в CI/CD пайплайне при каждом релизе | Site Check Security Gate |
Верификация устранения: команды для быстрой проверки
После внесения изменений в настройки сервера или исходный код приложения проверьте отсутствие уязвимости с помощью терминальных утилит:
curl -I -s https://ваш-домен.com/terraform.tfstate | grep "HTTP/"
# Ожидается 404
Рекомендации DevSecOps для безопасного развертывания
Используйте удалённый бэкенд состояний (Remote Backend) в AWS S3 с включенным шифрованием KMS и блокировкой состояния через DynamoDB, никогда не сохраняя tfstate локально в репозитории.
- ✓ Добавить шаблоны .env* и .git* в корень .gitignore и глобальный gitignore
- ✓ Внедрить автоматический pre-commit хук gitleaks в локальный пайплайн разработки
- ✓ Настроить регулярную ротацию скомпрометированных токенов API
- ✓ Проверить конфигурацию веб-сервера на блокировку запросов к скрытым файлам
Часто задаваемые вопросы по устранению
Утечки секретов и конфигурационных файлов представляют максимальную угрозу автоматизированного захвата инфраструктуры. Рекомендуется внедрить pre-commit хуки (GitLeaks, TruffleHog), вынести переменные окружения в защищённые хранилища секретов (HashiCorp Vault, Doppler, AWS Secrets Manager) и настроить в веб-сервере безусловный запрет отдачи скрытых файлов с точкой.
Для предотвращения вектора «Утечка terraform.tfstate: раскрытие облачной инфраструктуры» зафиксируйте проверочные правила в CI/CD пайплайне и настройте непрерывный мониторинг внешнего периметра через Site Check.