Hooks

Hook infra: detecta errores de configuración en IaC

Analiza Terraform, Dockerfiles y GitHub Actions en busca de errores de configuración, o evalúa un único fragmento de código, desde la línea de comandos.

El hook infra señala errores de configuración en la infraestructura como código que se pueden determinar a partir del propio archivo: una red abierta a todo el mundo, un permiso con comodín, un secreto en un manifiesto, un contenedor que se ejecuta como root, un valor no fiable en una shell de CI. Solo lee archivos de IaC (.tf/.tf.json/.hcl, Dockerfile*, .github/workflows/**). Es el motor determinista en el que se apoya la especialización infra, en modo scan o check.

Cómo ejecutarlo​

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

El análisis muestra hasta dos secciones. Infrastructure risks found hace que el hook termine con un código de salida distinto de cero y reúne los defectos que se pueden determinar (una regla de entrada desde 0.0.0.0/0 en un puerto sensible, una instrucción IAM con comodín, un secreto en un manifiesto, encrypted = false, un módulo git sin versión fijada, una imagen que se ejecuta explícitamente como root, un curl | sh, una inyección de scripts en CI, permissions: write-all). Infrastructure hardening advisories no cambia el código de salida (una etiqueta de imagen base mutable, una acción fijada por etiqueta). Si no encuentra nada, muestra no infrastructure risks found.

Cómo interpretar el veredicto​

El modo check muestra la etiqueta de mayor gravedad que ha detectado (por ejemplo public-ingress, iam-wildcard, root-user, curl-pipe, script-injection, write-all), una etiqueta de aviso (mutable-tag, unpinned-action) o safe. Solo una etiqueta con gravedad de hallazgo hace que termine con un código de salida distinto de cero.

Opciones de la CLI​

OpciónValorDescripción
--patternun fragmento de códigoComprueba un fragmento. Requiere --kind. Repítela para comprobar varios.
--kindterraform | dockerfile | github-actionsEl tipo con el que se evalúa el fragmento.
--dirun directorioLimita el análisis a un directorio. Se puede repetir y combinar con --file.
--fileun archivoLimita el análisis a un solo archivo. Se puede repetir y combinar con --dir.

Sin ninguna opción, analiza todos los archivos de IaC del proyecto. --pattern no se puede combinar con --dir ni con --file.

consejo

El hook detecta los casos evidentes y decidibles: la ausencia de cifrado, la exposición de pull_request_target y el alcance IAM adecuado son cuestiones de criterio que sigue cubriendo la especialización infra.

Preguntas frecuentes

Los de Terraform/HCL (.tf, .tf.json, .hcl), los Dockerfiles y los YAML de flujos de trabajo y de acciones de GitHub Actions dentro de .github/. Llega a esos archivos aunque los analizadores de código fuente se los salten.