Docker和Snyk最近建立了合作伙伴关系,以提供容器漏洞扫描。这对您意味着什么?Snyk现在与Docker Hub集成在一起,可以扫描官方镜像。此外,Docker已将Snyk扫描直接集成到Docker Desktop客户端中。
在建立Snyk合作伙伴关系之前,我们没有简单的方法可以在本地扫描容器漏洞。相反,我们必须构建我们的应用程序,并且将其推送到我们的存储库中才能进行漏洞扫描。
最佳做法是将安全性推到最左侧。向左推是什么意思?我第一次听到这个词是在Tanja Janca(又名SheHacksPurple)在苏黎世DevOpsDay的一次演讲中。向左推的想法是尽可能早地在开发过程中集成安全性。我们越早开始进行安全检查,对组织来说就越便宜,更有效。
Docker Scan向我们本地开发环境的方向发展。从DevSecOps的角度来看,这是一项了不起的成就。这样的话,我们可以在推送任何代码之前在本地捕获安全漏洞。
Docker Scan如何工作?
Docker在2.3.6.0或更高版本中包括了一个名为的新命令docker scan。运行docker scan命令时,将根据Snyk安全引擎扫描本地镜像,从而使您可以安全查看本地Dockerfile和本地镜像。
Snyk引擎会扫描镜像或Dockerfiles中的常见漏洞和披露(CVE),并提供有关CVE修复的建议。
如何启动Docker扫描
通过Docker CLI,我们可以启动漏洞扫描。
确保您已安装Docker 2.3.6.0或更高版本
拉出
Mongo数据库镜像进行测试docker pull mongo:latest对
Mongo镜像进行扫描docker scan mongo:latest查看扫描结果
如何在镜像上启动Docker扫描并引用Dockerfile
扫描镜像和扫描镜像并引用Dockerfile有什么区别?当包括与镜像关联的Dockerfile时,将提供更详细的结果。
克隆
linux_tweet_app演示应用程序git clone https://github.com/vegasbrianc/linux_tweet_app.git构建并标记镜像:
docker build -t linux_tweet_app:1.0 .扫描镜像:
docker scan linux_twee_app:1.0
请注意,现在的结果表明Dockerfile中的哪个层包含哪个漏洞。
Docker扫描输出选项
关于查看docker扫描的输出,我们有几个不同的选项。您可以以JSON格式或依赖关系树的形式查看结果。必须承认,依赖关系树在确定镜像的结构方面很有用。
Docker扫描摘要
向左推将帮助您的组织在遇到开发或测试环境漏洞之前就发现它们。如前所述,将安全性向左推的越多,节省组织的时间和金钱就越多。通过下面提供的图表描述了国家标准技术研究错误(这也适用于漏洞),修复这些错误的开发成本$80左右。相比之下,如果等到后期上线之后再修复这些错误(漏洞)要花费7600美元。
Docker扫描可帮助我们更快地向左推,发现和缓解漏洞,从而节省了我们的时间和金钱。