
Dans le cadre de notre objectif de fournir une solution de sécurité open source complète pour tous, nous avons consolidé tous nos efforts liés à la numérisation en un seul endroit, et c'est TROUVY.
Au cours de la dernière année, la TFSEC a jeté les fondements des capacités de balayage IAC & Merfonfigurations de Trivy, y compris le scanner Terraform, qui a été soutenu nativement dans TRIVY depuis longtemps maintenant.
À l'avenir, nous voulons encourager la communauté TFSEC à passer à TROUVY. Déménager à Trivy vous donne le même excellent moteur de scanning en terraform, avec quelques avantages supplémentaires:
Pour plus d'informations sur la façon dont Trivy se compare à la TFSEC et le passage de la TFSEC à Trivy, jetez un œil au guide de migration.
TFSEC utilise une analyse statique de votre code Terraform pour repérer les erreurs de configurations potentielles.
concat()Évalué Adopt par le Radar Tech ThoughtWorks:
Pour nos projets utilisant Terraform, TFSEC est rapidement devenu un outil d'analyse statique par défaut pour détecter les risques de sécurité potentiels. Il est facile à intégrer dans un pipeline CI et dispose d'une bibliothèque croissante de vérifications par rapport à tous les principaux fournisseurs de cloud et plateformes comme Kubernetes. Compte tenu de sa facilité d'utilisation, nous pensons que la TFSEC pourrait être un bon ajout à tout projet Terraform.

Installer avec Brew / LinuxBrew
brew install tfsecInstaller avec Chocolatey
choco install tfsecInstaller avec Scoop
scoop install tfsecScript bash (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bashVous pouvez également saisir le binaire de votre système à partir de la page des versions.
Alternativement, installez avec Go:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest Veuillez noter que l'utilisation go install sera installée directement à partir de la branche master et les numéros de version ne seront pas signalés via tfsec --version .
Les binaires sur la page des versions sont signés avec la clé de signature TFSEC D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE
Formez plus d'informations Vérifiez la page de signature des instructions sur la vérification.
TFSEC analysera le répertoire spécifié. Si aucun répertoire n'est spécifié, le répertoire de travail actuel sera utilisé.
L'état de sortie sera non nul si TFSEC trouve des problèmes, sinon l'état de sortie sera nul.
tfsec . Comme alternative à l'installation et à l'exécution de TFSEC sur votre système, vous pouvez exécuter TFSEC dans un conteneur Docker.
Il existe un certain nombre d'options Docker disponibles
| Nom d'image | Base | Commentaire |
|---|---|---|
| aquaseec / tfSec | alpin | Image TFSEC normale |
| aquaseec / tfsec-alpine | alpin | Exactement le même qu'Aquasec / tfSec, mais pour ceux qui aiment être explicites |
| aquasec / tfSec-ci | alpin | TFSEC sans point d'entrée - utile pour les versions CI où vous souhaitez remplacer la commande |
| aquaseec / tfsec-scratch | gratter | Une image construite sur Scratch - Rien à froufrous, il fait juste l'exécution de TFSEC |
Pour courir:
docker run --rm -it -v " $( pwd ) :/src " aquasec/tfsec /srcUne extension de code Visual Studio est en cours de développement pour s'intégrer aux résultats TFSEC. Plus d'informations peuvent être trouvées sur la page TFSEC Marketplace
Si vous souhaitez exécuter TFSEC sur votre référentiel en tant qu'action GitHub, vous pouvez utiliser https://github.com/aquasecurity/tfsec-pr-commerger-action.
Vous pouvez désormais installer la tâche TFSEC officielle. Veuillez soulever tous les problèmes / demandes de fonctionnalités sur le référentiel de tâches.
Vous voudrez peut-être ignorer certains avertissements. Si vous souhaitez le faire, vous pouvez simplement ajouter un commentaire contenant tfsec:ignore:<rule> à la ligne offensée de vos modèles. Alternativement, vous pouvez ajouter le commentaire à la ligne au-dessus du bloc contenant le problème, ou au bloc du module pour ignorer toutes les occurrences d'un problème à l'intérieur du module.
Par exemple, pour ignorer une règle de groupe de sécurité ouverte:
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
cidr_blocks = [ " 0.0.0.0/0 " ] # tfsec:ignore:aws-vpc-no-public-ingress-sgr
}...ou...
resource "aws_security_group_rule" "my-rule" {
type = " ingress "
# tfsec:ignore:aws-vpc-no-public-ingress-sgr
cidr_blocks = [ " 0.0.0.0/0 " ]
}Si vous n'êtes pas sûr de la ligne sur laquelle ajouter le commentaire, vérifiez simplement la sortie TFSEC pour le numéro de ligne du problème découvert.
Vous pouvez ignorer plusieurs règles en concaténant les règles sur une seule ligne:
# tfsec:ignore:aws-s3-enable-bucket-encryption tfsec:ignore:aws-s3-enable-bucket-logging
resource "aws_s3_bucket" "my-bucket" {
bucket = " foobar "
acl = " private "
} Vous pouvez définir la date d'expiration pour ignore avec le format yyyy-mm-dd . Il s'agit d'une fonctionnalité utile lorsque vous souhaitez vous assurer que le problème ignoré ne sera pas oublié et devrait être revisité à l'avenir.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
Ignore comme celui-ci ne sera actif que jusqu'en 2025-01-02 , après cette date, il sera désactivé.
Vous souhaiterez peut-être exclure certains chèques de l'exécution. Si vous souhaitez le faire, vous pouvez simplement ajouter un nouvel argument -e check1,check2,etc à votre commande CMD
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys Vous pouvez inclure des valeurs à partir d'un fichier TFVARS dans le scan, en utilisant, par exemple: --tfvars-file terraform.tfvars .
TFSEC prend en charge de nombreux fournisseurs de cloud et de plate-forme populaires
| Chèques |
|---|
| Chèques AWS |
| Chèques Azure |
| Vérices GCP |
| Cloudstack Checks |
| Contrôles DigitalOcean |
| Chèques GitHub |
| Kubernetes chèques |
| Contrôles OpenStack |
| Chèques Oracle |
TFSEC est conçu pour fonctionner dans un pipeline CI. Vous souhaiterez peut-être exécuter TFSEC dans le cadre de votre construction sans sortie colorée. Vous pouvez le faire en utilisant --no-colour (ou --no-color pour nos amis américains).
Vous pouvez produire des résultats TFSEC sous forme de format JSON, CSV, CheckStyle, Sarif, Junit ou tout simplement vieux lisible humain. Utilisez l'indicateur --format pour spécifier le format souhaité.
Si vous souhaitez vous intégrer aux alertes de sécurité GitHub et inclure la sortie de vos vérifications TFSEC, vous pouvez utiliser l'action GitHub TFSEC-Sarif-action pour exécuter l'analyse statique, puis téléchargez les résultats dans l'onglet Alertes de sécurité.
Les alertes générées pour TFSEC-Example-Project ressemblent à ceci.

Lorsque vous cliquez sur les alertes de la branche, vous obtenez plus d'informations sur le problème réel.

Pour plus d'informations sur l'ajout d'alertes de sécurité, consultez la documentation GitHub
Si vous avez besoin de prendre en charge les versions de Terraform qui utilisent HCL V1 (Terraform <0,12), vous pouvez utiliser v0.1.3 de TFSEC, bien que la prise en charge soit très limitée et a moins de vérifications.
Nous accueillons toujours les contributions; Grand ou petit, il peut s'agir de mises à jour de documentation, d'ajout de nouveaux chèques ou quelque chose de plus grand. Veuillez consulter le guide de contribution pour plus de détails sur la façon d'aider.
Fait avec des contributeurs-IMG.
tfsec est un projet open source Aqua Security. Renseignez-vous sur notre travail open source et notre portefeuille ici. Rejoignez la communauté et parlez-nous de toute question dans la discussion de Github ou Slack.