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

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

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

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

工具目录

分类

查看所有分类
Loading categories
terrascan — 检测基础设施即代码中的合规性与安全违规,在预配置云原生基础设施前降低风险。 | Kitploit
工具/GitHubGitHub/tenable/terrascan
漏洞扫描器容器安全静态代码分析 (SAST)云安全DevSecOps错误配置Archived
GitHubtenable/terrascan

terrascan

检测基础设施即代码中的合规性与安全违规,在预配置云原生基础设施前降低风险。

查看仓库
5.2k5569个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

⚠️ 已归档

  • 该项目已不再维护。仓库已归档,不再接受任何更新、问题或拉取请求。
  • 欢迎您根据需要fork该仓库以继续开发。

Terrascan

GitHub release License: Apache 2.0 PRs Welcome CI Quality Gate Status AUR package codecov Documentation Status Contributor Covenant GitHub all releases

简介

Terrascan 是一款面向基础设施即代码(Infrastructure as Code)的静态代码分析工具。Terrascan 能让您:

  • 无缝扫描基础设施即代码中的错误配置。
  • 监控已部署的云基础设施,发现因配置变更导致的姿态漂移,并支持恢复至安全的姿态。
  • 检测安全漏洞与合规违规项。
  • 在部署云原生基础设施之前降低风险。
  • 提供灵活性,可本地运行或集成到您的 CI/CD 流程中。

资源

  • 在您的浏览器中试用 Terrascan,请访问 Terrascan 沙箱:https://www.tenable.com/terrascan
  • 了解更多关于 Terrascan 的功能与能力,请查看文档门户:https://runterrascan.io

加入 Tenable 社区 👇

主要特性

  • 提供 500 多条安全最佳实践策略
  • 扫描 Terraform(HCL2)
  • 扫描 AWS CloudFormation 模板(CFT)
  • 扫描 Azure Resource Manager(ARM)
  • 扫描 Kubernetes(JSON/YAML)、Helm v3 及 Kustomize
  • 扫描 Dockerfile
  • 支持 AWS、Azure、GCP、Kubernetes、Dockerfile 及 GitHub 策略
  • 集成 AWS、Azure、GCP、Harbor 容器仓库的 Docker 镜像漏洞扫描

快速入门

  1. 安装
  2. 扫描
  3. 集成

第一步:安装

Terrascan 支持多种安装方式,并可作为 Docker 镜像使用。 请查看 Terrascan 的 发布页 获取所有受支持平台的最新构建版本。请选择适合您平台的二进制文件。

安装为本地可执行文件

root@kitploit:~
  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

在 ArchLinux / Manjaro 上通过 AUR 安装

ArchLinux 和 Manjaro 用户可通过以下命令安装:

root@kitploit:~
yay -S terrascan

通过 brew 安装

Homebrew 用户可通过以下命令安装:

root@kitploit:~
$ brew install terrascan

Docker 镜像

Terrascan 也可作为 Docker 镜像使用,使用方法如下:

root@kitploit:~
$ docker run tenable/terrascan

更多信息请参考 文档。

第二步:扫描

要扫描您的代码以发现安全问题,可以运行以下命令(默认扫描 Terraform):

root@kitploit:~
$ terrascan scan

注意:如果扫描过程中发现任何错误或违规项,Terrascan 将以错误码退出。

可能的退出码列表

场景退出码
扫描摘要包含错误和违规项5
扫描摘要包含错误但没有违规项4
扫描摘要包含违规项但没有错误3
扫描摘要没有违规项也没有错误0
扫描命令因输入无效而出错1

第三步:集成到 CI/CD 流程

Terrascan 可以集成到 CI/CD 流水线中,以强制执行安全最佳实践。 请参考我们的 文档,了解如何集成到您的流水线中。

Terrascan 命令

您可以使用 terrascan 命令配合以下选项:

root@kitploit:~
$ terrascan
Terrascan

用法:
  terrascan [命令]

可用命令:
  help        查看关于任何命令的帮助信息
  init        初始化 Terrascan
  scan        检测基础设施即代码中的合规与安全违规项
  server      以 API 服务器方式运行 Terrascan
  version     显示 Terrascan 版本

标志:
  -c, --config-path string   配置文件路径
  -h, --help                 显示 terrascan 帮助信息
  -l, --log-level string     日志级别(debug、info、warn、error、panic、fatal)(默认 "info")
  -x, --log-type string      日志输出类型(console、json)(默认 "console")
  -o, --output string        输出类型(human、json、yaml、xml)(默认 "human")

使用 "terrascan [命令] --help" 查看某个命令的更多信息。

策略

Terrascan 的策略使用 Rego 策略语言 编写。每个 rego 文件包含一个 JSON "规则" 文件,用于定义策略的元数据。 默认情况下,Terrascan 在首次扫描时会从 Terrascan 仓库下载策略。但是,如果您想要下载最新策略,则需要运行初始化过程。请参阅 使用说明 了解初始化过程的相关信息。

注意:如果未找到任何策略,扫描命令将隐式运行初始化过程。

Docker 镜像漏洞

您可以使用 --find-vuln 标志,在 Terrascan 的输出中收集由其仓库报告的漏洞。目前 Terrascan 支持 Elastic Container Registry(ECR)、Azure Container Registry、Google Container Registry 和 Google Artifact Registry。

--find-vuln 标志可在扫描 IaC 文件时使用,如下所示:

root@kitploit:~
$ terrascan scan -i <IaC provider> --find-vuln

关于如何设置环境以向仓库 API 进行身份验证的更多信息和说明,请参阅 使用说明 文档。

自定义扫描

默认情况下,Terrascan 会针对所有策略扫描您的整个配置。但 Terrascan 支持对策略和资源进行精细配置。

请在我们的文档站点上阅读更多关于 文件中标记 和 配置文件 的内容。

以下是一些快速提示:

  • 为特定资源排除特定策略。
  • 手动配置要全局抑制或应用的策略,或仅针对特定资源。

如何在扫描资源时排除某个策略

您可以配置 Terrascan 在扫描资源时跳过某个特定策略(规则)。请根据您的平台按照以下步骤操作:

Terraform

使用 Terraform 脚本,在资源内部插入包含 "ts:skip=<RULENAME><SKIP_REASON>" 的注释,来配置 Terrascan 跳过规则。注释应像下方示例一样放在资源内部。

tf

Kubernetes

在 Kubernetes YAML 文件中,您可以通过添加注释来配置 Terrascan 跳过策略,如下方代码片段所示。

k8s

如何从扫描中包含或排除特定策略或资源

使用 Terrascan 配置文件手动选择应从整个扫描中包含或排除的策略。这适用于边界用例。 使用 "文件中抑制" 选项来指定应从特定策略的测试中排除的资源。这样可以确保策略仅跳过特定资源,而不是所有资源。

config

扫描输出示例

Terrascan 的默认输出是扫描 IaC 中存在的违规项列表。示例输出如下:

Screenshot 2021-01-19 at 10 52 47 PM

构建 Terrascan

Terrascan 可以在本地构建。如果您希望使用最新版本或在开发 Terrascan 时,这会很有帮助。需要 gcc 和 Go 1.19 或更高版本。

root@kitploit:~
$ git clone [email protected]:tenable/terrascan.git
$ cd terrascan
$ make build
$ ./bin/terrascan

构建您自己的 Docker 镜像,请参考此示例(Alpine Linux):

root@kitploit:~
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

开发 Terrascan

要了解有关开发和贡献 Terrascan 的更多信息,请参阅 贡献指南。

行为准则

我们相信拥有一个开放且包容的社区对所有人都有益。请注意,本项目采用了 贡献者行为准则。通过参与本项目,您同意遵守其条款。

许可证

Terrascan 基于 Apache 2.0 许可证 进行分发。

星标用户

Stargazers @tenable/terrascan

Fork 用户

Forkers @tenable/terrascan

下载工具