Falco是一个针对应用运行环境的动态扫描工具,而Trivy则是一个静态扫描工具。当初,Trivy与Clair一样,只是一个容器扫描(Container Scanning)工具。简单地说,就是扫描应用的容器镜像,找一找有没有已知的安全漏洞。GitLab认为其比Clair更易于维护,去年开始用Trivy代替了后者。
Trivy背后的Aqua Security公司,一直在拓展该工具的功能。比如,这儿是最近的新闻报导
https://www.infoq.com/news/2022/08/cspm-trivy-security-scanning/,报导了该工具现已支持AWS账户下、AWS CIS 1.2 benchmarks的扫描。
确实,Trivy是一个简单、而又无所不包的扫描工具,除了不能扫描应用代码中的安全漏洞,其他应用运行环境的方方面面,如Docker image的底部OS层、应用涉及的第三方类库、配置、password/token、Kube.NETes/AWS等等,都可用它来进行扫描。
不仅工具易用,Trivy的文档https://aquasecurity.github.io/trivy/v0.31.3/docs/vulnerability/scanning/image/也很容易理解。让我们试一试吧!
如图,对于我们使用的有安全漏洞的第三方jar,Trivy给出了相应的修正版本号。
在构建容器镜像之前,我们也可以直接扫描项目所在的目录:
或者Git Repository:
在扫描容器镜像、文件系统时,我们可以通过增加--security-checks config选项,对错误配置进行扫描,也可以直接使用trivy config命令来扫描配置。
扫描Kubernetes时,如果选项--report=summary,则得到一个汇总的报告,没有上述图中的具体漏洞信息。
因扫描所花的时间较多,建议加上--timeout选项。
此外,Trivy还可以扫描license、生成SBOM等。总之,世界愈不太平,安全就更显重要,将Trivy加入到我们的安全工具箱吧!