Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
tfsec — Tfsec 现在是 Trivy 的一部分 | Kitploit
工具/GitHubGitHub/aquasecurity/tfsec
静态分析漏洞扫描器代码分析云安全DevSecOps错误配置
GitHubaquasecurity/tfsec

tfsec

Tfsec 现在是 Trivy 的一部分

查看仓库
7.0k5594个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

GoReportCard Join Our Slack Docker Build Homebrew Chocolatey AUR version VScode Extension

📣 tfsec 到 Trivy 的迁移

作为我们为所有人提供全面开源安全解决方案的目标的一部分,我们一直在将所有与扫描相关的工作整合到一个地方,那就是 Trivy。

在过去一年中,tfsec 为 Trivy 的 IaC 与错误配置扫描能力奠定了基础,包括 Terraform 扫描,而 Trivy 早已原生支持这些功能。

今后,我们希望鼓励 tfsec 社区迁移到 Trivy。迁移到 Trivy 后,你将获得同样出色的 Terraform 扫描引擎,并享有额外的好处:

  1. 在同一工具中可使用更多语言和功能。
  2. 通过 Trivy 丰富的生态系统,可集成更多工具和服务。
  3. 由 Aqua 以及热情的 Trivy 社区提供商业支持。 tfsec 暂时仍将继续可用,不过我们接下来的工程重点将转向 Trivy。

tfsec 到 Trivy 迁移指南

如需了解更多关于 Trivy 与 tfsec 的对比,以及如何从 tfsec 迁移到 Trivy,请查看迁移指南。

概述

tfsec 通过对你的 terraform 代码进行静态分析,来发现潜在的错误配置。

功能特性

  • ☁️ 检查所有主要(以及部分次要)云提供商的错误配置
  • ⛔ 数百条内置规则
  • 🪆 扫描模块(本地和远程)
  • ➕ 评估 HCL 表达式以及字面值
  • ↪️ 评估 Terraform 函数,例如 concat()
  • 🔗 评估 Terraform 资源之间的关系
  • 🧰 与 Terraform CDK 兼容
  • 🙅 应用(并增强)用户定义的 Rego 策略
  • 📃 支持多种输出格式:lovely(默认)、JSON、SARIF、CSV、CheckStyle、JUnit、text、Gif
  • 🛠️ 可配置(通过 CLI 标志和/或配置文件)
  • ⚡ 非常快,能够快速扫描大型仓库
  • 🔌 提供流行 IDE 的插件(JetBrains、VSCode 和 Vim)
  • 🏡 社区驱动——欢迎来 Slack 与我们交流!

Thoughtworks 推荐

被 Thoughtworks Tech Radar 评为 Adopt(采用):

对于使用 Terraform 的项目,tfsec 已迅速成为检测潜在安全风险的默认静态分析工具。它易于集成到 CI 流水线中,并且拥有针对所有主要云提供商和 Kubernetes 等平台的不断增长的检查库。鉴于其易用性,我们认为 tfsec 可以成为任何 Terraform 项目的有益补充。

示例输出

示例截图

安装

通过 brew/linuxbrew 安装

root@kitploit:~
brew install tfsec

通过 Chocolatey 安装

root@kitploit:~
choco install tfsec

通过 Scoop 安装

root@kitploit:~
scoop install tfsec

Bash 脚本(Linux):

root@kitploit:~
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bash

你也可以从发布页面获取适用于你系统的二进制文件。

或者,使用 Go 安装:

root@kitploit:~
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest

请注意,使用 go install 将直接从 master 分支安装,版本号不会通过 tfsec --version 显示。

签名

发布页面上的二进制文件使用 tfsec 签名密钥 D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE 进行签名。

更多信息请查看签名页面上的验证说明。

用法

tfsec 将扫描指定目录。如果未指定目录,则使用当前工作目录。

如果 tfsec 发现问题,退出状态将为非零,否则退出状态为零。

root@kitploit:~
tfsec .

使用 Docker

除了在系统上安装并运行 tfsec 之外,你也可以在 Docker 容器中运行 tfsec。

有多个 Docker 选项可供使用

运行:

root@kitploit:~
docker run --rm -it -v "$(pwd):/src" aquasec/tfsec /src

与 Visual Studio Code 一起使用

正在开发一个 Visual Studio Code 扩展,用于集成 tfsec 结果。更多信息请参见 tfsec Marketplace 页面

作为 GitHub Action 使用

如果你想将 tfsec 作为 GitHub Action 在你的仓库上运行,可以使用 https://github.com/aquasecurity/tfsec-pr-commenter-action。

作为 Azure DevOps Pipelines 任务使用

你现在可以安装官方 tfsec 任务。如有任何问题或功能请求,请在任务仓库中提出。

忽略警告

你可能希望忽略某些警告。如果愿意,你可以简单地在模板中有问题的行添加包含 tfsec:ignore:<rule> 的注释。或者,你也可以将该注释添加到包含问题所在块的上方一行,或者添加到 module 块上,以忽略该模块内某个问题的所有出现。

例如,要忽略一个开放的安全组规则:

root@kitploit:~
resource "aws_security_group_rule" "my-rule" {
    type = "ingress"
    cidr_blocks = ["0.0.0.0/0"] #tfsec:ignore:aws-vpc-no-public-ingress-sgr
}

...或者...

root@kitploit:~
resource "aws_security_group_rule" "my-rule" {
    type = "ingress"
    #tfsec:ignore:aws-vpc-no-public-ingress-sgr
    cidr_blocks = ["0.0.0.0/0"]
}

如果你不确定应该在哪一行添加注释,只需查看 tfsec 输出中发现问题所在的行号。

你可以通过在同一行上串联多条规则来忽略多个规则:

root@kitploit:~
#tfsec:ignore:aws-s3-enable-bucket-encryption tfsec:ignore:aws-s3-enable-bucket-logging
resource "aws_s3_bucket" "my-bucket" {
  bucket = "foobar"
  acl    = "private"
}

过期日期

你可以使用 yyyy-mm-dd 格式为 ignore 设置过期日期。当你希望确保被忽略的问题不会被遗忘并在将来重新审视时,这是一个有用的功能。

root@kitploit:~
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02

像这样的忽略仅在 2025-01-02 之前有效,此日期之后将被停用。

禁用检查

你可能希望排除某些检查不运行。如果愿意,你可以简单地在命令中添加参数 -e check1,check2,etc

root@kitploit:~
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys

包含 .tfvars 中的值

你可以在扫描中包含 tfvars 文件中的值,例如使用:--tfvars-file terraform.tfvars。

内置检查

tfsec 支持许多流行的云和平台提供商

在 CI 中运行

tfsec 专为在 CI 流水线中运行而设计。你可能希望在构建过程中运行 tfsec 而不带彩色输出。你可以使用 --no-colour(对于我们的美国朋友,也可以使用 --no-color)。

输出选项

你可以将 tfsec 结果输出为 JSON、CSV、Checkstyle、Sarif、JUnit 或普通的人类可读格式。使用 --format 标志指定你想要的格式。

GitHub 安全警报

如果你想与 GitHub 安全警报集成并包含 tfsec 检查的输出,可以使用 tfsec-sarif-action GitHub action 运行静态分析,然后将结果上传到安全警报选项卡。

为 tfsec-example-project 生成的警报如下所示。

GitHub 安全警报

当你点击查看该分支的警报时,你会获得有关实际问题的更多信息。

GitHub 安全警报

有关添加安全警报的更多信息,请查看 GitHub 文档

对旧版 terraform 的支持

如果你需要支持使用 HCL v1 的 terraform 版本(terraform <0.12),可以使用 tfsec 的 v0.1.3,不过支持非常有限,检查项也较少。

贡献

我们始终欢迎各种贡献,无论大小,可以是文档更新、添加新的检查项或更大的改动。请查看贡献指南了解如何提供帮助的详细信息。

部分贡献者

由 contributors-img 制作。

tfsec 是 Aqua Security 的开源项目。 在此了解我们的开源工作和产品组合:此处。 加入社区,在 GitHub Discussion 或 Slack 与我们讨论任何问题。

下载工具
镜像名称基础镜像说明
aquasec/tfsecalpine常规 tfsec 镜像
aquasec/tfsec-alpinealpine与 aquasec/tfsec 完全相同,适合喜欢明确指定的人
aquasec/tfsec-cialpine无入口点的 tfsec——适用于需要覆盖命令的 CI 构建
aquasec/tfsec-scratchscratch基于 scratch 构建的镜像——没有任何多余装饰,只运行 tfsec
检查
AWS 检查
Azure 检查
GCP 检查
CloudStack 检查
DigitalOcean 检查
GitHub 检查
Kubernetes 检查
OpenStack 检查
Oracle 检查