Хук 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
Передайте фрагмент через --pattern, а його тип через --kind (terraform, dockerfile або github-actions).
npx lagune read infra --kind terraform --pattern 'actions = ["*"]' # => iam-wildcard
npx lagune read infra --kind dockerfile --pattern 'FROM node:20' # => mutable-tag
Перевірка виводить до двох розділів. 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. Повторіть для кількох. |
--kind | terraform | 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/. Він дістається до цих файлів, хоча сканери вихідного коду їх пропускають.
