Хуки

Хук infra: виявлення помилок конфігурації IaC

Перевірте Terraform, Dockerfile і GitHub Actions на помилки конфігурації або оцініть окремий фрагмент просто з командного рядка.

Хук infra позначає помилки конфігурації інфраструктури як коду, які можна визначити з самого файлу: мережу, відкриту для всього світу, дозвіл із wildcard, секрет у маніфесті, контейнер від root, недовірене значення в shell CI. Він читає лише файли IaC (.tf/.tf.json/.hcl, Dockerfile*, .github/workflows/**). Це детермінований рушій спеціалізації infra у режимі scan або check.

Запуск​

npx lagune read infra # scans every IaC file
npx lagune read infra --dir infra # scans a directory
npx lagune read infra --file Dockerfile # scans a single file

Перевірка виводить до двох розділів. Infrastructure risks found завершується з ненульовим кодом і містить дефекти, які можна визначити (вхідний трафік 0.0.0.0/0 на чутливий порт, інструкція IAM із wildcard, секрет у маніфесті, encrypted = false, незакріплений git-модуль, образ, що явно працює від root, curl | sh, ін'єкція в скрипт CI, permissions: write-all). Infrastructure hardening advisories не змінює код виходу (змінний базовий тег, дія, закріплена за тегом). Чистий запуск виводить no infrastructure risks found.

Як читати вердикт​

Режим check виводить тег найвищої критичності, який збігся (наприклад, public-ingress, iam-wildcard, root-user, curl-pipe, script-injection, write-all), рекомендаційний тег (mutable-tag, unpinned-action) або safe. Ненульовий код виходу дає лише тег рівня знахідки.

Параметри CLI​

ПараметрЗначенняОпис
--patternфрагментПеревірити один фрагмент. Потребує --kind. Повторіть для кількох.
--kindterraform | dockerfile | github-actionsТип, як який оцінюється фрагмент.
--dirкаталогОбмежити перевірку каталогом. Повторюється й поєднується з --file.
--fileфайлОбмежити перевірку одним файлом. Повторюється й поєднується з --dir.

Без параметрів хук перевіряє кожен файл IaC у проєкті. --pattern не поєднується з --dir чи --file.

порада

Хук виявляє очевидні випадки, які можна визначити: відсутність шифрування, вразливість через pull_request_target і правильний обсяг IAM і далі охоплює спеціалізація infra, бо це питання судження.

Часті запитання

Terraform і HCL (.tf, .tf.json, .hcl), Dockerfile, а також YAML робочих процесів і дій GitHub Actions у .github/. Він дістається до цих файлів, хоча сканери вихідного коду їх пропускають.