
Detecta infracciones de cumplimiento y seguridad en toda la infraestructura como código para mitigar riesgos antes de aprovisionar infraestructura nativa en la nube.
- Este proyecto ya no recibe mantenimiento. El repositorio está archivado y no se aceptarán más actualizaciones, informes de problemas ni solicitudes de incorporación de cambios.
- Si deseas continuar con el desarrollo, siéntete libre de hacer un fork.

Terrascan es un analizador de código estático para Infraestructura como Código. Terrascan te permite:
Para probar Terrascan en tu navegador, consulta el Sandbox de Terrascan: https://www.tenable.com/terrascan
Para obtener más información sobre las funciones y capacidades de Terrascan, visita el portal de documentación: https://runterrascan.io
Únete a la comunidad de Tenable 👇
Terrascan admite múltiples formas de instalación y también está disponible como imagen Docker. Consulta la página de lanzamientos de Terrascan para conocer la última versión de las compilaciones en todas las plataformas compatibles. Selecciona el binario correcto para tu plataforma.
curl -L "$(curl -s https://api.github.com/repos/tenable/terrascan/releases/latest | grep -o -E "https://.+?_Linux_x86_64.tar.gz")" > terrascan.tar.gz
tar -xf terrascan.tar.gz terrascan && rm terrascan.tar.gz
sudo install terrascan /usr/local/bin && rm terrascan
terrascan
AURLos usuarios de ArchLinux y Manjaro pueden instalarlo mediante:
yay -S terrascan
brewLos usuarios de Homebrew pueden instalarlo mediante:
$ brew install terrascan
Terrascan también está disponible como imagen Docker y se puede utilizar de la siguiente manera:
$ docker run tenable/terrascan
Consulta la documentación para obtener más información.
Para escanear tu código en busca de problemas de seguridad, puedes ejecutar lo siguiente (por defecto escanea Terraform).
$ terrascan scan
Nota: Terrascan finalizará con un código de error si se encuentran errores o violaciones durante un escaneo.
| Escenario | Código de salida |
|---|---|
| El resumen del escaneo tiene errores y violaciones | 5 |
Terrascan se puede integrar en pipelines de CI/CD para reforzar las buenas prácticas de seguridad. Consulta nuestra documentación para integrarlo con tu pipeline.
Puedes usar el comando terrascan con las siguientes opciones:
$ terrascan
Terrascan
Uso:
terrascan [comando]
Comandos disponibles:
help Ayuda sobre cualquier comando
init Inicializar Terrascan
scan Detectar violaciones de cumplimiento y seguridad en Infraestructura como Código.
server Ejecutar Terrascan como servidor API
version Versión de Terrascan
Banderas:
-c, --config-path string ruta del archivo de configuración
-h, --help ayuda para terrascan
-l, --log-level string nivel de log (debug, info, warn, error, panic, fatal) (por defecto "info")
-x, --log-type string tipo de salida de log (console, json) (por defecto "console")
-o, --output string tipo de salida (human, json, yaml, xml) (por defecto "human")
Usa "terrascan [comando] --help" para obtener más información sobre un comando.
Las políticas de Terrascan están escritas utilizando el lenguaje de políticas Rego. Cada rego incluye un archivo JSON de "regla" que define metadatos para la política. Por defecto, Terrascan descarga políticas de los repositorios de Terrascan al escanear por primera vez. Sin embargo, si deseas descargar las políticas más recientes, debes ejecutar el proceso de inicialización. Consulta Uso para obtener información sobre el proceso de inicialización.
Nota: El comando de escaneo ejecutará implícitamente el proceso de inicialización si no se encuentran políticas.
Puedes usar la bandera --find-vuln para recopilar vulnerabilidades reportadas en su registro como parte de la salida de Terrascan. Actualmente, Terrascan admite Elastic Container Registry (ECR), Azure Container Registry, Google Container Registry y Google Artifact Registry.
La bandera --find-vuln se puede usar al escanear archivos IaC de la siguiente manera:
$ terrascan scan -i <proveedor IaC> --find-vuln
Para obtener más información y una explicación de cómo configurar tu entorno para autenticarte con las API del registro, consulta la documentación de uso.
Por defecto, Terrascan escanea toda tu configuración contra todas las políticas. Sin embargo, Terrascan admite una configuración granular de políticas y recursos.
Obtén más información sobre la instrumentación en archivos y el archivo de configuración en nuestro sitio de documentación.
Por ahora, algunos consejos rápidos:
Puedes configurar Terrascan para omitir una política (regla) específica al escanear un recurso. Sigue estos pasos según tu plataforma:
Usa scripts de Terraform para configurar Terrascan y omitir reglas insertando un comentario con la frase "ts:skip=<NOMBRE_REGLA><MOTIVO_OMISION>". El comentario debe incluirse dentro del recurso como se muestra en el ejemplo a continuación.

En los YAML de Kubernetes, puedes configurar Terrascan para omitir políticas agregando una anotación como se ve en el fragmento a continuación.

Usa el archivo de configuración de Terrascan para seleccionar manualmente las políticas que deben incluirse o excluirse de todo el escaneo. Esto es adecuado para casos de uso específicos. Usa la opción de supresión "en archivo" para especificar recursos que deben excluirse de ser evaluados contra políticas seleccionadas. Esto asegura que las políticas se omitan solo para recursos particulares, no para todos los recursos.

La salida predeterminada de Terrascan es una lista de violaciones presentes en el IaC escaneado. Un ejemplo de salida:

Terrascan se puede compilar localmente. Esto es útil si quieres estar en la última versión o si estás desarrollando Terrascan. Se requiere gcc y Go 1.19 o superior.
$ git clone [email protected]:tenable/terrascan.git
$ cd terrascan
$ make build
$ ./bin/terrascan
FROM golang:alpine AS build-env
RUN apk add --update git
RUN git clone https://github.com/tenable/terrascan && cd terrascan \
&& CGO_ENABLED=0 GO111MODULE=on go build -o /go/bin/terrascan cmd/terrascan/main.go
Para obtener más información sobre el desarrollo y las contribuciones a Terrascan, consulta la guía de contribución.
Creemos que tener una comunidad abierta e inclusiva beneficia a todos. Ten en cuenta que este proyecto se publica con un Código de conducta para contribuyentes. Al participar en este proyecto aceptas cumplir con sus términos.
Terrascan está licenciado bajo la Licencia Apache 2.0.
| El resumen del escaneo tiene errores pero no violaciones | 4 |
| El resumen del escaneo tiene violaciones pero no errores | 3 |
| El resumen del escaneo no tiene violaciones ni errores | 0 |
| El comando de escaneo falla debido a entradas inválidas | 1 |