
Tfsec ist jetzt Teil von Trivy
Im Rahmen unseres Ziels, eine umfassende Open-Source-Sicherheitslösung für alle bereitzustellen, bündeln wir alle unsere Scan-bezogenen Bemühungen an einem Ort: Trivy.
Im vergangenen Jahr hat tfsec die Grundlagen für Trivys IaC- und Fehlkonfigurations-Scanfunktionen gelegt, einschließlich des Terraform-Scans, der seit langem nativ in Trivy unterstützt wird.
Künftig möchten wir die tfsec-Community dazu ermutigen, auf Trivy umzusteigen. Der Wechsel zu Trivy bietet Ihnen dieselbe hervorragende Terraform-Scan-Engine mit einigen zusätzlichen Vorteilen:
Weitere Informationen darüber, wie Trivy im Vergleich zu tfsec abschneidet und wie der Wechsel von tfsec zu Trivy gelingt, finden Sie im Migrationsleitfaden.
tfsec verwendet statische Analyse Ihres Terraform-Codes, um potenzielle Fehlkonfigurationen zu erkennen.
concat()Bewertet als Adopt vom Thoughtworks Tech Radar:
Für unsere Projekte mit Terraform ist tfsec schnell zum Standardtool für statische Analysen geworden, um potenzielle Sicherheitsrisiken zu erkennen. Es lässt sich einfach in eine CI-Pipeline integrieren und verfügt über eine wachsende Bibliothek von Prüfungen für alle großen Cloud-Anbieter und Plattformen wie Kubernetes. Angesichts der Benutzerfreundlichkeit glauben wir, dass tfsec eine gute Ergänzung für jedes Terraform-Projekt sein könnte.

Installieren mit brew/linuxbrew
brew install tfsec
Installieren mit Chocolatey
choco install tfsec
Installieren mit Scoop
scoop install tfsec
Bash-Skript (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bash
Sie können das Binärpaket für Ihr System auch von der Releases-Seite herunterladen.
Alternativ mit Go installieren:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest
Bitte beachten Sie, dass die Installation mit go install direkt vom master-Zweig erfolgt und Versionsnummern nicht über tfsec --version angezeigt werden.
Die Binärdateien auf der Releases-Seite sind mit dem tfsec-Signaturschlüssel D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE signiert
Weitere Informationen finden Sie auf der Signaturseite mit Anweisungen zur Überprüfung.
tfsec scannt das angegebene Verzeichnis. Wenn kein Verzeichnis angegeben ist, wird das aktuelle Arbeitsverzeichnis verwendet.
Der Exit-Status ist ungleich Null, wenn tfsec Probleme findet, andernfalls ist der Exit-Status Null.
tfsec .
Als Alternative zur Installation und Ausführung von tfsec auf Ihrem System können Sie tfsec in einem Docker-Container ausführen.
Es stehen mehrere Docker-Optionen zur Verfügung
Ausführen:
docker run --rm -it -v "$(pwd):/src" aquasec/tfsec /src
Eine Visual-Studio-Code-Erweiterung wird entwickelt, um in tfsec-Ergebnisse zu integrieren. Weitere Informationen finden Sie auf der tfsec-Marketplace-Seite
Wenn Sie tfsec als GitHub Action in Ihrem Repository ausführen möchten, können Sie https://github.com/aquasecurity/tfsec-pr-commenter-action verwenden.
Sie können jetzt die offizielle tfsec-Task installieren. Bitte reichen Sie Probleme/Feature-Anfragen im Task-Repository ein.
Möglicherweise möchten Sie einige Warnungen ignorieren. Wenn Sie das möchten, können Sie einfach einen Kommentar mit tfsec:ignore:<rule> zur betreffenden Zeile in Ihren Vorlagen hinzufügen. Alternativ können Sie den Kommentar zur Zeile über dem Block mit dem Problem oder zum Modulblock hinzufügen, um alle Vorkommen eines Problems im Modul zu ignorieren.
Um beispielsweise eine offene Sicherheitsgruppenregel zu ignorieren:
resource "aws_security_group_rule" "my-rule" {
type = "ingress"
cidr_blocks = ["0.0.0.0/0"] #tfsec:ignore:aws-vpc-no-public-ingress-sgr
}
...oder...
resource "aws_security_group_rule" "my-rule" {
type = "ingress"
#tfsec:ignore:aws-vpc-no-public-ingress-sgr
cidr_blocks = ["0.0.0.0/0"]
}
Wenn Sie nicht sicher sind, zu welcher Zeile der Kommentar hinzugefügt werden soll, überprüfen Sie einfach die tfsec-Ausgabe auf die Zeilennummer des entdeckten Problems.
Sie können mehrere Regeln ignorieren, indem Sie die Regeln in einer einzigen Zeile verketten:
#tfsec:ignore:aws-s3-enable-bucket-encryption tfsec:ignore:aws-s3-enable-bucket-logging
resource "aws_s3_bucket" "my-bucket" {
bucket = "foobar"
acl = "private"
}
Sie können ein Ablaufdatum für ignore im Format yyyy-mm-dd festlegen. Dies ist eine nützliche Funktion, wenn Sie sicherstellen möchten, dass ein ignoriertes Problem nicht vergessen wird und in Zukunft erneut überprüft werden sollte.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
Ein Ignore wie dieser ist nur bis zum 2025-01-02 aktiv; nach diesem Datum wird er deaktiviert.
Möglicherweise möchten Sie einige Checks von der Ausführung ausschließen. Wenn Sie das möchten, können Sie einfach das Argument -e check1,check2,etc zu Ihrem Befehl hinzufügen.
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys
Sie können Werte aus einer tfvars-Datei in den Scan einbeziehen, zum Beispiel mit: --tfvars-file terraform.tfvars.
tfsec unterstützt viele gängige Cloud- und Plattformanbieter
tfsec ist für die Ausführung in einer CI-Pipeline konzipiert. Möglicherweise möchten Sie tfsec als Teil Ihres Builds ohne farbige Ausgabe ausführen. Dies können Sie mit --no-colour tun (oder --no-color für unsere amerikanischen Freunde).
Sie können tfsec-Ergebnisse als JSON, CSV, Checkstyle, Sarif, JUnit oder einfach im guten alten menschenlesbaren Format ausgeben. Verwenden Sie das Flag --format, um das gewünschte Format anzugeben.
Wenn Sie in GitHub-Sicherheitswarnungen integrieren und die Ausgabe Ihrer tfsec-Checks einbeziehen möchten, können Sie die GitHub Action tfsec-sarif-action verwenden, um die statische Analyse auszuführen und die Ergebnisse anschließend auf der Registerkarte „Sicherheitswarnungen“ hochzuladen.
Die für tfsec-example-project generierten Warnungen sehen wie folgt aus.

Wenn Sie die Warnungen für den Zweig durchklicken, erhalten Sie weitere Informationen zum tatsächlichen Problem.

Weitere Informationen zum Hinzufügen von Sicherheitswarnungen finden Sie in der GitHub-Dokumentation
Wenn Sie Versionen von Terraform unterstützen müssen, die HCL v1 verwenden (terraform <0.12), können Sie v0.1.3 von tfsec verwenden, allerdings ist die Unterstützung sehr begrenzt und es gibt weniger Checks.
Wir freuen uns immer über Beiträge – ob groß oder klein, sei es eine Aktualisierung der Dokumentation, das Hinzufügen neuer Checks oder etwas Größeres. Bitte lesen Sie den Leitfaden zum Mitwirken für Details, wie Sie helfen können.
Erstellt mit contributors-img.
tfsec ist ein Open-Source-Projekt von Aqua Security.
Erfahren Sie hier mehr über unsere Open-Source-Arbeit und unser Portfolio.
Treten Sie der Community bei und sprechen Sie mit uns über alle Themen in GitHub Discussion oder auf Slack.
| Image-Name | Basis | Kommentar |
|---|
| aquasec/tfsec | alpine | Normales tfsec-Image |
| aquasec/tfsec-alpine | alpine | Genau dasselbe wie aquasec/tfsec, aber für diejenigen, die es explizit mögen |
| aquasec/tfsec-ci | alpine | tfsec ohne Entrypoint – nützlich für CI-Builds, bei denen Sie den Befehl überschreiben möchten |
| aquasec/tfsec-scratch | scratch | Ein auf Scratch basierendes Image – nichts Verziertes, führt einfach tfsec aus |
| Checks |
|---|
| AWS Checks |
| Azure Checks |
| GCP Checks |
| CloudStack Checks |
| DigitalOcean Checks |
| GitHub Checks |
| Kubernetes Checks |
| OpenStack Checks |
| Oracle Checks |