Docker
和Snyk
最近建立了合作伙伴关系,以提供容器漏洞扫描。这对您意味着什么?Snyk
现在与Docker Hub
集成在一起,可以扫描官方镜像。此外,Docker
已将Snyk
扫描直接集成到Docker Desktop
客户端中。
在建立Snyk
合作伙伴关系之前,我们没有简单的方法可以在本地扫描容器漏洞。相反,我们必须构建我们的应用程序,并且将其推送到我们的存储库中才能进行漏洞扫描。
最佳做法是将安全性
推到最左侧。向左推
是什么意思?我第一次听到这个词是在Tanja Janca
(又名SheHacksPurple
)在苏黎世DevOpsDay
的一次演讲中。向左推
的想法是尽可能早地在开发过程中集成安全性。我们越早开始进行安全检查,对组织来说就越便宜,更有效。
Docker Scan
向我们本地开发环境的方向发展。从DevSecOps
的角度来看,这是一项了不起的成就。这样的话,我们可以在推送任何代码之前在本地捕获安全漏洞。
![](https://i-blog.csdnimg.cn/blog_migrate/af4d1dd9f8ad04aedd684db9a0233835.png)
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
查看扫描结果
![](https://i-blog.csdnimg.cn/blog_migrate/e27afe401931529dda8bdf7e99cc0e86.png)
如何在镜像上启动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
![](https://i-blog.csdnimg.cn/blog_migrate/9065bb677c2444035397381f72567df4.png)
请注意,现在的结果表明Dockerfile
中的哪个层包含哪个漏洞。
Docker扫描输出选项
关于查看docker
扫描的输出,我们有几个不同的选项。您可以以JSON
格式或依赖关系树的形式查看结果。必须承认,依赖关系树在确定镜像的结构方面很有用。
Docker扫描摘要
向左推将帮助您的组织在遇到开发或测试环境漏洞之前就发现它们。如前所述,将安全性向左推的越多,节省组织的时间和金钱就越多。通过下面提供的图表描述了国家标准技术研究错误(这也适用于漏洞),修复这些错误的开发成本$80
左右。相比之下,如果等到后期上线之后再修复这些错误(漏洞)要花费7600
美元。
Docker
扫描可帮助我们更快地向左推,发现和缓解漏洞,从而节省了我们的时间和金钱。
![](https://i-blog.csdnimg.cn/blog_migrate/2d2b1a649619a0a6fb59f2d360ce9f7c.png)