
Als Teil unseres Ziels, eine umfassende Open-Source-Sicherheitslösung für alle bereitzustellen, haben wir alle unsere scan-bezogenen Bemühungen an einem Ort konsolidiert, und das ist trivy.
Im vergangenen Jahr hat TFSEC die Grundlagen für die IAC & Misconfigurations -Scan -Funktionen von Trivy gelegt, einschließlich Terraform -Scan, die seit langem in Trivy nativ unterstützt wird.
In Zukunft wollen wir die TFSEC -Community dazu ermutigen, zu Trivy zu wechseln. Wenn Sie nach Trivy wechseln, erhalten Sie den gleichen hervorragenden Terraform -Scan -Engine mit einigen zusätzlichen Vorteilen:
Weitere Informationen darüber, wie Trivy im Vergleich zu TFSEC und Wechsel von TFSEC zu Trivy vergleichbar ist, sehen Sie sich den Migrationshandbuch an.
TFSEC verwendet eine statische Analyse Ihres Terraform -Code, um potenzielle Missverständnisse zu erkennen.
concat()Bewertet von The thedeWorks Tech Radar:
Für unsere Projekte mit Terraform ist TFSEC schnell zu einem statischen statischen Analyse -Tool geworden, um potenzielle Sicherheitsrisiken zu erkennen. Es ist einfach, sich in eine CI -Pipeline zu integrieren, und verfügt über eine wachsende Bibliothek mit Schecks gegen alle wichtigen Cloud -Anbieter und -plattformen wie Kubernetes. Angesichts seiner Benutzerfreundlichkeit glauben wir, dass TFSEC eine gute Ergänzung für jedes Terraform -Projekt sein könnte.

Installieren Sie mit Brew/LinuxBrew
brew install tfsecMit schokoladigem Einbau installieren
choco install tfsecMit schaufelnde installieren
scoop install tfsecBash -Skript (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bashSie können auch die Binärdehnung für Ihr System von der Seite "Releases" greifen.
Alternativ installieren Sie sich mit Go:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest Bitte beachten Sie, dass die Verwendung von go install direkt über die master -Filiale installiert wird und die Versionsnummern nicht über tfsec --version gemeldet werden.
Die Binärdateien auf der Seite D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE Releases
Formular Weitere Informationen Überprüfen Sie die Signierseite für 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 zum Installieren und Ausführen von TFSEC in Ihrem System können Sie TFSEC in einem Docker -Container ausführen.
Es stehen eine Reihe von Docker -Optionen zur Verfügung
| Bildname | Base | Kommentar |
|---|---|---|
| aquasec/tfsec | alpin | Normales TFSEC -Bild |
| Aquasec/TFSEC-Alpine | alpin | Genau das gleich |
| aquasec/tfsec-ci | alpin | TFSEC ohne Einstiegspunkt - nützlich für CI -Builds, bei denen Sie den Befehl überschreiben möchten |
| Aquasec/TFSEC-SCRATCH | kratzen | Ein Bild, das auf Kratzer gebaut wurde - nichts Rüsches, läuft nur TFSEC |
Zu laufen:
docker run --rm -it -v " $( pwd ) :/src " aquasec/tfsec /srcEine Visual Studio -Code -Erweiterung wird entwickelt, um in TFSEC -Ergebnisse zu integrieren. Weitere Informationen finden Sie auf der TFSEC -Marktplatzseite
Wenn Sie TFSEC in Ihrem Repository als GitHub-Aktion ausführen möchten, können Sie https://github.com/aquasecurity/tfsec-pr-commenter-action verwenden.
Sie können jetzt die offizielle TFSEC -Aufgabe installieren. Bitte stellen Sie alle Probleme/Feature -Anfragen im Task -Repository auf.
Möglicherweise möchten Sie einige Warnungen ignorieren. Wenn Sie dies tun möchten, können Sie einfach einen Kommentar mit tfsec:ignore:<rule> der beleidigenden Zeile in Ihren Vorlagen. Alternativ können Sie den Kommentar in die Zeile über dem Block mit dem Problem oder zum Modulblock hinzufügen, um alle Vorkommen eines Problems im Modul zu ignorieren.
Zum Beispiel, um 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 sich nicht sicher sind, in 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 verkettet:
# 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 das Ablaufdatum für ignore mit yyyy-mm-dd Format festlegen. Dies ist eine nützliche Funktion, wenn Sie sicherstellen möchten, dass das ignorierte Problem nicht vergessen wird und in Zukunft überarbeitet werden sollte.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
Ignorieren Sie wie diese werden nur bis 2025-01-02 aktiv sein, nach diesem Datum wird es deaktiviert.
Möglicherweise möchten Sie einige Schecks vom Laufen ausschließen. Wenn Sie dies tun möchten, können Sie Ihrem CMD -Befehl einfach ein neues Argument -e check1,check2,etc 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 einfügen, beispielsweise unter: --tfvars-file terraform.tfvars .
TFSEC unterstützt viele beliebte Cloud- und Plattformanbieter
| Überprüfungen |
|---|
| AWS prüft |
| Azure Checks |
| GCP -Überprüfungen |
| CloudStack Checks |
| Digitalocean Checks |
| Github Checks |
| Kubernetes prüft |
| OpenStack Checks |
| Oracle Checks |
TFSEC ist für das Laufen in einer CI -Pipeline ausgelegt. Möglicherweise möchten Sie TFSEC als Teil Ihres Builds ohne farbige Ausgabe ausführen. Sie können dies mit --no-colour (oder --no-color für unsere amerikanischen Freunde) tun.
Sie können TFSEC-Ergebnisse als JSON, CSV, CheckStyle, Sarif, JUNIT oder einfach nur altes menschliches lesbares Format ausgeben. Verwenden Sie das Flag --format , um Ihr gewünschtes Format anzugeben.
Wenn Sie sich in GitHub-Sicherheitswarnungen integrieren und die Ausgabe Ihrer TFSEC-Überprüfungen einfügen möchten, können Sie die TFSEC-SARIF-Action-GitHub-Aktion verwenden, um die statische Analyse auszuführen, dann laden Sie die Ergebnisse auf die Registerkarte "Sicherheitswarnungen" hoch.
Die für TFSEC-Example-Project erzeugten Warnungen sehen so aus.

Wenn Sie durch die Warnungen für die Filiale klicken, 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 (Terraform <0,12) verwenden, können Sie v0.1.3 von TFSEC verwenden, obwohl die Unterstützung sehr begrenzt ist und weniger Schecks durchführt.
Wir begrüßen immer Beiträge; Big oder klein, können Dokumentationsaktualisierungen sein, neue Schecks oder etwas Größeres hinzufügen. Bitte überprüfen Sie den leitenden Leitfaden, um Informationen zur Hilfe zu erhalten.
Hergestellt mit Mitwirkenden-Img.
tfsec ist ein Open -Source -Projekt von Aqua Security. Erfahren Sie hier über unsere Open Source -Arbeit und unser Portfolio. Treten Sie der Community bei und sprechen Sie mit uns über jede Angelegenheit in Github Diskussion oder Slack.