如何使用TFsec来对你的Terraform代码进行安全扫描
TFsec
TFsec是一个专门针对Terraform代码的安全扫描工具,该工具能够对Terraform模板执行静态扫描分析,并检查出潜在的安全问题,当前版本的TFsec支持Terraform v0.12+版本。
功能介绍
检查所有提供的程序中是否包含敏感数据;
检查目标代码是否违反了AWS、Azure和GCP安全最佳实践建议;
扫描功能模块(目前只支持本地模块);
计算表达式和值;
评估Terraform的功能函数,比如说concat()等等;
工具安装
广大研究人员可以使用下列实用工具来安装TFsec。
使用Brew或Linuxbrew安装:
brew install tfsec使用Chocolatey安装:
choco install tfsec除此之外,我们还可以直接访问该项目GitHub库的【Releases页面】来下载针对自己系统平台的工具源码。
当然了,我们也可以使用go get来安装该工具:
go get -u github.com/tfsec/tfsec/cmd/tfsec工具使用
TFsec可以扫描指定的目录,如果没有指定需要扫描的目录,那么TFsec将扫描当前所在的工作目录。如果TFsec发现了安全问题,则退出状态将为非零,否则退出状态将为零:
tfsec .Docker使用
如果你不想在你的系统中安装和运行TFsec的话,你还可以选择在一个Docker容器中运行TFsec:
docker run --rm -it -v "$(pwd):/src" liamg/tfsec /src禁用检测
在某些情况下,我们可能需要在运行过程中排除某些检测,我们可以通过添加新的参数来运行我们的cmd命令,比如说-e CHECK1,CHECK2等等:
tfsec . -e GEN001,GCP001,GCP002从.tfvars获取值
我们还可以在扫描中从一个tfvars文件中获取值,比如说:
--tfvars-file terraform.tfvars在CI中运行
TFsec可以在一个CI观到中运行,如果检测到了潜在的安全问题,该工具将会以非零退出码退出运行。如果你不想要输出有颜色高亮显示的话,还可以使用下列参数:
--no-colour输出选项
TFsec的输出格式支持 JSON、CSV、Checkstyle、Sarif、JUnit以及其他人类可读的数据格式,我们可以使用--format参数来进行指定。
GitHub安全警报
如果你想整合GitHub安全警报的话,我们还可以使用tfsec-sarif-actionGitHub Action来运行静态分析,并将分析结果上传至GitHub安全警报标签中:
工具运行截图
项目地址
TFsec:【GitHub传送门】