当前位置: 首页 > 科技观察

部署和使用AnchoreImageVulnerabilityScanner_0

时间:2023-03-21 23:52:22 科技观察

【.com快速翻译】不管你用什么平台,你的容器都是基于镜像的。这意味着部署的安全性始于图像级别,开发人员在该级别遇到现实世界。无论您多么小心,当容器基于易受攻击的图像时,您的应用程序和服务的安全性都会受到威胁。作为云原生开发人员,您不能允许这样做。所以你会怎么做?通常你所做的一切都是基于官方图片,这些图片由知名公司和开发商打上烙印。这些图像通常是值得信赖的。但是一旦漏洞从裂缝中溜走,它就会造成严重破坏。如果您实际上不验证这些图像,那么归根结底就是信任。您实际上可以使用现有工具来扫描这些图像中的漏洞。其中一些工具的安装和运行非常费力。幸运的是,有一些足够简单的工具可供任何开发人员或管理员使用。开源Anchore引擎(https://anchore.com/opensource/)就是这样一种工具。使用此命令行工具,您可以扫描要用于任何已知CVE问题的图像。我将介绍安装和使用AnchoreEngine的过程,这样您就不必猜测这些图像是否易受攻击。我将在UbuntuServer20.04上进行演示,但AnchoreEngine可以部署在任何支持docker-compose的系统上。安装docker-compose首先要注意的是docker-compose的安装。为此,您需要先安装docker。登录Ubuntu服务器,执行命令:sudoapt-getinstalldocker.io-y安装完成后,使用以下命令将用户添加到docker组:sudousermod-aGdocker$USER这一步完成后,注销并重新登录。现在我们可以安装docker-compose。使用以下命令下载必要的文件:sudocurl–L"https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose使用以下命令为您刚刚下载的文件授予可执行权限:sudochmod+x/usr/local/bin/docker-compose您可以使用以下命令确认安装:docker-compose--version您应该看到类似这样的内容:docker-composeversion1.28.5,buildc4eb3a1f部署Anchore引擎准备好docker-compose后,我们可以部署Anchore引擎。使用以下命令下载所需的docker-compose.yaml文件:curl-Ohttps://engine.anchore.io/docs/quickstart/docker-compose.yaml文件下载完成后,使用以下命令部署Anchore引擎:docker-composeup-d给服务启动时间,然后使用以下命令验证锚引擎是否正在运行:docker-composeexecapianchore-clisystemstatus命令输出如下:Serviceapiext(anchore-quickstart,http://api:8228):upServicepolicy_engine(anchore-quickstart,http://policy-engine:8228):upServicesimplequeue(anchore-quickstart,http://queue:8228):upServiceanalyzer(anchore-quickstart,http://analyzer:8228):upServicecatalog(anchore-quickstart,http://catalog:8228):upEngineDBVersion:0.0.14EngineCodeVersion:0.9.0您已准备好开始扫描。同步引擎用AnchoreEngine扫描图片不是很简单。运行最后一条命令后,AnchoreEngine将开始与引擎同步漏洞数据。要检查同步状态,请执行以下命令:docker-composeexecapianchore-clisystemfeedslist您应该会看到RecordCount下的所有条目都列为“无”(图1)。图1:我们的引擎正在与漏洞数据同步完全同步需要一些时间,因此它可以执行其他一些任务。最后,RecordCount中的所有数据都有一个值(图2)。图2:Anchore引擎现已同步并准备好扫描图像让我们扫描最新的Ubuntu图像(20.04)中的漏洞。Thefirstthingtodoisgettheimagecontent,extractitusingthefollowingcommand:docker-composeexecapianchore-cliimageadddocker.io/library/ubuntu:20.04Aftertheimageisadded,weanalyzetheimageusingasetofAnchoreanalyzerstoclassifythemetadata.要做的头件事是使用wait命令,确保映像转换成已分析映像,使用以下命令:docker-composeexecapianchore-cliimagewaitdocker.io/library/ubuntu:20.04Theoutputoftheabovecommandshouldlikesimilarto:ImageDigest:sha256:e3d7ff9efd8431d9ef39a144c45992df5502c995b9ba3c53ff70c5b52a848d9cParentDigest:sha256:b4f9e18267eb98998f6130342baacaeb9553f136142d40959a1b46d6401f0f2bAnalysisStatus:analyzedImageType:dockerAnalyzedAt:2021-03-20T13:00:42ZImageID:4dd97cefde62cf2d6bcfd8f2c0300a24fbcddbe0ebcd577cc8b420c29106869aDockerfileMode:GuessedDistro:ubuntuDistroVersion:20.04Size:78632960Architecture:amd64LayerCount:3FullTag:docker.io/library/ubuntu:20.04TagDetectedAt:2021-03-20T12:58:34Z如果所有数据Completed,youcanproceedtothenextstep.可以使用以下命令找到图像中包含的每个软件:docker-composeexecapianchore-cliimagecontentdocker.io/library/ubuntu:20.04os最后,我们使用以下命令运行漏洞扫描:docker-composeexecapianchore-cliimagevulndocker.io/library/ubuntu:20.04all扫描完成后,它将报告在图像中发现的所有已知CVE并进行相应报告(图3)。图3:最新Ubuntu20.04映像上标记的最高CVE被标记为中等。现在您已了解有关图像安全的必要信息,您可以采取行动了。如果您发现某个图像的CVE违反了您公司的安全政策(并可能导致问题),您可以丢弃该图像,找到另一个图像,或者等到漏洞被修复(或者您自己修复它们)。定期使用像AnchoreEngine这样的工具可以确保您的云原生开发生命周期始终从安全的基础开始。原标题:DeployandUsetheAnchoreImageVulnerabilityScanner,作者:JackWallen