Небезпечний згенерований IaC

Небезпечний згенерований IaC

Plan пройшов без помилок. У продакшн вийшов публічний бакет.

Що таке Небезпечний згенерований IaC?

ШІ-помічник може написати код інфраструктури, який коректний, зрозумілий і застосовується без помилок, але залишає сховище відкритим для всього інтернету. Тут згенерований модуль бакета проходить конвеєр, що перевіряє лише одне: чи вдасться його застосувати. Ви прочитаєте, що насправді дозволяє HCL, додасте до етапу plan бар'єр політик як коду, побачите, як він не пропускає розгорнутий модуль, виправите код і переконаєтеся, що анонімний запит тепер відхиляється.

Що ви дізнаєтесь у Небезпечний згенерований IaC

Небезпечний згенерований IaC — Кроки навчання

  1. Бакет для файлів клієнтів

    Інес, керівниця платформної команди, створила в Jotvane, трекері команди, задачу: їй потрібне сховище для файлів, які клієнти завантажують на портал, і вона хоче отримати його як код Terraform, щоб конвеєр міг його розгорнути.

  2. Відкрийте репозиторій

    Редактор відкриває репозиторій інфраструктури: порожній файл модуля для бакета та workflow terraform, який будує plan для кожного пул-реквесту й застосовує зміни після злиття.

  3. Попросіть модуль

    Відкрийте Claude і попросіть написати модуль для бакета так, як це описала Інес.

  4. П'ять ресурсів, охайно написаних

    Claude читає порожній модуль і workflow, а потім пропонує п'ять ресурсів: бакет, правила володіння об'єктами, налаштування публічного доступу, ACL і політику для сервісу завантаження. Це охайний, типовий для HCL код, і у відповіді сказано, що plan пройде без помилок.

  5. Прийміть модуль

    Після прийняття модуль Claude потрапляє в main.tf . Смуга ліворуч від рядків позначає кожен рядок фіолетовим як рядок без рев'ю: його написав помічник, а прочитати ще ніхто не встиг.

  6. Ініціалізуйте модуль

    Перш ніж відкривати пул-реквест, виконайте той самий перший крок, що й workflow: ініціалізуйте модуль, щоб у Terraform були провайдер і бекенд стану.

  7. Plan проходить без помилок

    Тепер plan: перевірка, яку workflow запускає на кожен пул-реквест. Якщо все буде за обіцянкою Claude, він покаже п'ять ресурсів до додавання й жодної помилки: пул-реквест позеленіє, Інес його схвалить, а після злиття модуль застосується.

  8. Бакет, що відповідає стороннім

    Далеко від компанії Rushmarle сканер, що обшукує інтернет у пошуках сховищ, які відповідають на анонімні запити, помічає новий бакет. Бакет віддає перелік вмісту без ключа, тож кожен об'єкт у ньому можна просто забрати. Одна рекурсивна команда копіювання, жодних облікових даних — і все опиняється на диску, який не належить компанії Rushmarle.

  9. Файли клієнтів, завантажені анонімно

    Маріт зі служби безпеки створила задачу: бакет, створений модулем, уночі хтось без облікових даних Rushmarle переглянув і повністю завантажив.

  10. Додайте бар'єр до етапу plan

    Workflow перевіряє лише те, чи зможе Terraform застосувати код. Додайте до завдання plan крок політики як коду: checkov сканує модуль до запуску plan, а якщо перевірку не пройдено, завдання завершується помилкою, тож apply не починається.

Охоплення стандартів безпеки

OWASP Top 10

  • A08:2025 Software or Data Integrity Failures
  • A02:2025 Security Misconfiguration

CWE

  • CWE-1188 Initialization of a Resource with an Insecure Default
  • CWE-732 Incorrect Permission Assignment for Critical Resource

MITRE ATT&CK

  • T1530 Data from Cloud Storage

CIS Controls

  • CIS 4 Secure Configuration of Enterprise Assets and Software
  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security