
Erkennen Sie Compliance- und Sicherheitsverstöße in Infrastructure as Code, um Risiken vor der Bereitstellung cloudnativer Infrastruktur zu mindern.
- Dieses Projekt wird nicht mehr gewartet. Das Repository ist archiviert und es werden keine weiteren Updates, Issues oder Pull-Requests angenommen.
- Du kannst es gerne forken, wenn du die Entwicklung fortsetzen möchtest.

Terrascan ist ein statischer Code-Analyzer für Infrastructure as Code. Mit Terrascan können Sie:
Um Terrascan im Browser auszuprobieren, besuchen Sie die Terrascan Sandbox https://www.tenable.com/terrascan
Weitere Informationen zu den Funktionen und Möglichkeiten von Terrascan finden Sie im Dokumentationsportal: https://runterrascan.io
Werden Sie Teil der Tenable-Community 👇
Terrascan unterstützt mehrere Installationsmöglichkeiten und ist auch als Docker-Image verfügbar. Auf der Releases Seite von Terrascan finden Sie die neueste Version der Builds für alle unterstützten Plattformen. Wählen Sie das passende Binary für Ihre Plattform.
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
AURArchLinux- und Manjaro-Benutzer können wie folgt installieren:
yay -S terrascan
brewHomebrew-Benutzer können wie folgt installieren:
$ brew install terrascan
Terrascan ist auch als Docker-Image verfügbar und kann wie folgt verwendet werden
$ docker run tenable/terrascan
Weitere Informationen finden Sie in der Dokumentation.
Um Ihren Code auf Sicherheitsprobleme zu scannen, können Sie Folgendes ausführen (standardmäßig wird Terraform gescannt).
$ terrascan scan
Hinweis: Terrascan wird mit einem Fehlercode beendet, wenn bei einem Scan Fehler oder Verstöße gefunden werden.
| Szenario | Exit-Code |
|---|---|
| Scan-Zusammenfassung hat Fehler und Verstöße | 5 |
| Scan-Zusammenfassung hat Fehler, aber keine Verstöße |
Terrascan kann in CI/CD-Pipelines integriert werden, um Security Best Practices durchzusetzen. Weitere Informationen finden Sie in unserer Dokumentation zur Integration in Ihre Pipeline.
Sie können den Befehl terrascan mit den folgenden Optionen verwenden:
$ terrascan
Terrascan
Usage:
terrascan [command]
Available Commands:
help Hilfe zu jedem Befehl
init Terrascan initialisieren
scan Compliance- und Sicherheitsverstöße in Infrastructure as Code erkennen.
server Terrascan als API-Server ausführen
version Terrascan-Version
Flags:
-c, --config-path string Pfad zur Konfigurationsdatei
-h, --help Hilfe für terrascan
-l, --log-level string Log-Level (debug, info, warn, error, panic, fatal) (Standard: "info")
-x, --log-type string Log-Ausgabetyp (console, json) (Standard: "console")
-o, --output string Ausgabetyp (human, json, yaml, xml) (Standard: "human")
Use "terrascan [command] --help" for more information about a command.
Terrascan-Richtlinien werden mit der Rego Policy Language geschrieben. Jedes Rego enthält eine JSON-Regeldatei, die Metadaten für die Richtlinie definiert. Standardmäßig lädt Terrascan beim ersten Scan Richtlinien aus den Terrascan-Repositories herunter. Wenn Sie jedoch die neuesten Richtlinien herunterladen möchten, müssen Sie den Initialisierungsprozess ausführen. Informationen zum Initialisierungsprozess finden Sie unter Verwendung.
Hinweis: Der Scan-Befehl führt den Initialisierungsprozess implizit aus, wenn keine Richtlinien gefunden werden.
Sie können das Flag --find-vuln verwenden, um Schwachstellen zu sammeln, die in der Registry gemeldet werden, als Teil der Terrascan-Ausgabe. Derzeit unterstützt Terrascan Elastic Container Registry (ECR), Azure Container Registry, Google Container Registry und Google Artifact Registry.
Das Flag --find-vuln kann beim Scannen von IaC-Dateien wie folgt verwendet werden:
$ terrascan scan -i <IaC-Anbieter> --find-vuln
Weitere Informationen und Erklärungen zur Einrichtung Ihrer Umgebung zur Authentifizierung mit den APIs der Registry finden Sie in der Verwendungsdokumentation.
Standardmäßig scannt Terrascan Ihre gesamte Konfiguration gegen alle Richtlinien. Terrascan unterstützt jedoch eine granulare Konfiguration von Richtlinien und Ressourcen.
Weitere Informationen zur In-File-Instrumentierung und Konfigurationsdatei finden Sie auf unserer Dokumentationsseite.
Hier einige kurze Tipps:
Sie können Terrascan so konfigurieren, dass eine bestimmte Richtlinie (Regel) beim Scannen einer Ressource übersprungen wird. Folgen Sie diesen Schritten je nach Plattform:
Verwenden Sie Terraform-Skripte, um Terrascan so zu konfigurieren, dass Regeln übersprungen werden, indem Sie einen Kommentar mit dem Ausdruck "ts:skip=<RULENAME><SKIP_REASON>" einfügen. Der Kommentar sollte innerhalb der Ressource wie im unten gezeigten Beispiel eingefügt werden.

In Kubernetes-YAMLs können Sie Terrascan so konfigurieren, dass Richtlinien übersprungen werden, indem Sie eine Annotation wie im unten gezeigten Ausschnitt hinzufügen.

Verwenden Sie die Terrascan-Konfigurationsdatei, um manuell auszuwählen, welche Richtlinien in den gesamten Scan einbezogen oder ausgeschlossen werden sollen. Dies eignet sich für Randfälle. Verwenden Sie die "In-File"-Unterdrückungsoption, um Ressourcen anzugeben, die beim Testen gegen ausgewählte Richtlinien ausgeschlossen werden sollen. Dadurch wird sichergestellt, dass die Richtlinien nur für bestimmte Ressourcen und nicht für alle Ressourcen übersprungen werden.

Die Standardausgabe von Terrascan ist eine Liste der Verstöße im gescannten IaC. Eine Beispielausgabe:

Terrascan kann lokal erstellt werden. Dies ist hilfreich, wenn Sie die neueste Version verwenden möchten oder wenn Sie Terrascan entwickeln. gcc und Go 1.19 oder höher sind erforderlich.
$ 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
Weitere Informationen zur Entwicklung und Mitwirkung an Terrascan finden Sie im Contributing Guide.
Wir glauben, dass eine offene und integrative Gemeinschaft uns allen zugutekommt. Bitte beachten Sie, dass dieses Projekt mit einem Contributor Code of Conduct veröffentlicht wird. Durch die Teilnahme an diesem Projekt erklären Sie sich mit dessen Bedingungen einverstanden.
Terrascan ist unter der Apache 2.0 Lizenz lizenziert.
| 4 |
| Scan-Zusammenfassung hat Verstöße, aber keine Fehler | 3 |
| Scan-Zusammenfassung hat keine Verstöße oder Fehler | 0 |
| Scan-Befehl schlägt aufgrund ungültiger Eingaben fehl | 1 |