Capital One — избыточные привилегии IAM-роли. Майнинг криптовалюты на сайте Los Angeles Times — S3-бакет с ACL
public-read-write. Вредоносный код в Twilio SDK — снова открытый бакет. Три инцидента на миллионы долларов, три мисконфигурации, которые ловятся одним проходом checkov -d . по Terraform-шаблону. Но только если сканирование вообще настроено.NSA в отчёте Mitigating Cloud Vulnerabilities прямо называет мисконфигурации наиболее распространённой уязвимостью облачных сред. А по данным IBM, среднее время обнаружения такого инцидента часто превышает шесть месяцев. В pipeline та же проблема находится за секунды. Разница — в точке, где вы проверяете.
🔍 Тысячи правил в IaC-сканерах сводятся к пяти категориям мисконфигураций:
• Публичный доступ к ресурсам — открытые бакеты, базы данных с
publicly_accessible = true, сервисы без ограничения source IP• Избыточные IAM-привилегии — политики с
"Action": "*" и "Resource": "*", дающие полный контроль над аккаунтом• Отсутствие шифрования — EBS-тома, RDS, S3 без encryption, HTTP без TLS
• Отключённое логирование — CloudTrail не во всех регионах, VPC Flow Logs не настроены, Kubernetes audit logging выключен
• Избыточный сетевой доступ — Security Group с
0.0.0.0/0 на порт 22 или 3389Каждая категория — прямой enabler для конкретных тактик MITRE ATT&CK. Открытый бакет — это T1580 (Cloud Infrastructure Discovery). Wildcard-роль — T1078.004 (Cloud Accounts). Пробел в логировании — T1562.008 (Disable Cloud Logs), и атакующему даже не нужно ничего отключать, потому что вы сами не включили.
⚙️ Отдельная боль — выбор между сканированием HCL-кода напрямую и сканированием Terraform Plan. Первый подход быстрый, не требует credentials, ставится как pre-commit hook. Но он не видит результат интерполяции переменных. Если значение ACL приходит из
var.bucket_acl с дефолтом private, а при деплое кто-то передаёт public-read-write через флаг -var — сканер этого не увидит.Сканирование Plan JSON решает эту проблему: все переменные уже разрешены, вы видите реальные значения. Но нужен доступ к state backend и cloud API. Оптимальная стратегия — оба подхода последовательно: HCL-сканирование на pre-commit, Plan-сканирование в CI перед apply.
🛡 И ключевой момент: параллельно с preventive-сканированием стоит строить detection-правила в SIEM. Алерт на
PutBucketAcl с публичными параметрами, на AttachRolePolicy с wildcard, на AuthorizeSecurityGroupIngress с CIDR 0.0.0.0/0 — это ваша страховка на случай, когда pipeline обошли.В полной статье — готовые примеры Terraform-кода с мисконфигурациями, маппинг на MITRE ATT&CK и конкретные detection-правила для каждой категории.
https://codeby.net/threads/bezopasnost-infrastructure-as-code-ot-miskonfiguratsii-v-terraform-do-detection-pravila-v-siem.92969/
