众所周知,网络安全事件会对一个组织的声誉、以及市场竞争力造成严重的影响,甚至可能导致由最终用户发起的诉讼、以及各种不必要的法律纠纷。根据IBM的一份调查报告,全球范围内的各个组织平均每次由数据泄露所带来的总体成本约为392万美元。通常,一个组织会因为如下方面的疏漏,而拉低整体的安全态势: 而根据PaloAlto Networks最近的一份《云安全状况调查报告》表明,有94%的组织正在使用着一个或多个云平台,并且其中有大约45%的计算会发生在他们尊龙凯时官方网站容器或CaaS(容器即服务)上。随着应用容器的主导地位的逐步攀升,由此引发的安全威胁也在不断增加。同时,该报告也罗列出了如下八大主要安全威胁: 针对上述威胁,我们将在下面和您讨论一些有关容器安全性的优秀实践。您可以通过遵循并实施,来降低容器化工作负载中的各种安全风险,进而实现对于应用程序的保护。 当我们创建容器镜像时,通常会依赖那些来自流行的、私有的或公共注册表的种子镜像。不过请注意,在镜像制作的供应链中,有人可能会渗透进去,并植入能够为攻击者打开 大门 的恶意代码。例如,在2018年,一些黑客曾攻击了英国航空公司的软件供应链。他们将恶意的JavaScript代码插入英国航空公司的Web应用程序之中。具体请参见链接--https://www.wired.com/story/british-airways-hack-details/。同样,就在几年前,Docker在其Docker Hub上也发现了一些被安装了Cryptominers(加密货币挖矿软件)的镜像。 因此,您需要在如下方面引起足够的重视: 出于同样的原因,我们也需要保障被安装在基础镜像上的软件包,也源自经过验证和受信任的来源。 我们常说应用的受攻击面与镜像中已安装的软件包和库的数量有关。通常,如果此类对象的数量较少,那么出现漏洞的机率也就越低。可见,我们应当在满足应用程序运行时的基本要求的前提下,尽可能地保持镜像的体积最小。理想状况下,我们最好在一个应用程序容器中,仅保留一个应用程序。同时,您可以从如下方面入手: 所有的信任凭据都应该 远离 镜像和Dockerfile。包括SSL证书、密码、令牌、以及API密钥在内的各种机密信息,都应当被保存在外部,并通过容器编排引擎、或外部密钥管理器,进行安全地挂载。目前,Hashicorp Vault工具,由AWS Secrets Manager、Kubernetes Secrets、Docker Secrets Management、以及CyberArk等提供的云端密钥管理服务,都可以改善您在此方面的安全态势。 企业通常拥有自己的基础镜像,其中包含了各种他们不想公开分发的专有软件库。为了确保镜像能够被托管在安全且受信的注册表处,以防止未经授权的访问,请使用具有可信根CA的TLS证书,并实施强身份验证,以防范MITM(中间人)攻击。 这是容器化工作负载中最常见的配置错误。请牢记最低权限原则,创建一个应用程序的专用用户,并使用它在容器内运行应用程序的对应进程。您也许会问为何不能用root用户呢?其原因是:除了通过其带有的额外元数据,来识别是否为容器的一部分,在容器中运行的进程,与在主机操作系统上运行的进程十分相似。而一旦容器中的root用户有了UID和GID,那么它可以访问、甚至修改其在宿主机上的文件。 注意,如果您没有在Dockerfile中定义任何USER的话,那么容器就会以root用户运行。 在为容器的构建和交付设计CI/CD时,请包含一个镜像扫描方法,以识别那些由CVE公布到的知名漏洞。同时,请不要在没有修复的情况下,部署任何可用的镜像。常见的漏洞扫描工具包括:Clair、Synk、Anchore、AquaSec、Twistlock等。同时,AWS ECR和Quay.io等容器注册表也需要配备各种相应的扫描方案。 AppArmor是一个Linux安全模块,可被用于保护操作系统、及其应用程序免受各种安全威胁。Docker通过提供默认配置文件的方式,允许程序访问诸如:网络访问、内核功能、文件权限等有限的资源。该方法不但减少了潜在的攻击面,而且提供了很好的深度防御。 通常,容器将所有内容记录到标准输出--STDOUT上。显然,这些日志会因为中断而丢失。因此,我们需要将日志安全地、以传输流的方式集中到一处,以供未来的审计和按需取证。当然,我们需要确保此类日志系统的安全性,以免敏感数据信息从日志中泄漏出去。 前面给出的九项安全建议,只是最大限度地减少了安全威胁,并不能完全阻止攻击的发生。对此,我们仍然需要通过持续监控和记录应用程序的行为,来及时检测并发现任何可疑或恶意的活动。同时,我们还可以实施分层防御,对不同的监控范围,部署不同的审计与容器保护工具。 常言道: 工欲善其事,必先利其器 。为了简化上述针对容器的安全加固,我在此为您罗列了如下六大开源和商业工具,以方便您按需采用: 此外,您还可以选用AquaSec、Twistlock、Sysdig、Synk、以及Qualys等企业级安全工具和商业产品。 希望上述各种解决方案能够真正为您抵御黑客攻击,协助您及时发现当前系统中的异常状态,以及为您的容器负载提供合理化的改进建议。 陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。 原文标题:Top 10 Ways To Secure Containers,作者:Anjul Sahu |
部门热线
前 台:13588889999
业务部:13588889999
客服部:13588889999
技术部:13566667777
人事部:13566667777