容器是救星吗?保卫Docker安全时应考虑的10件事

影响到1.43亿客户记录的Equifax数据泄露事件,现在恐怕无人不知了。Equifax报告称,攻击者使用了编号为CVE-2017-5638的Apache Struts漏洞。

Equifax并没有在容器中运行其脆弱Struts应用,但如果他们这么做了呢?容器当然更加安全,于是整个糟糕的情况就可以避免掉了,对吧?

未必。

 

[[210278]]

 

容器固有的基础设施即代码,具有多个安全优势。连续设置部署新容器是标准操作,因而部署补丁完善的软件所面临的宕机风险也就更小。一般都会从干净的容器开始,所以用不着修复已经被破坏的系统。这也意味着,通常情况下,容器的生命周期比服务器要短,攻击者能够使用驻留后门或继续深入网络的时间段,也就更短了。

另外,每部署一个新容器都要漏洞利用一次,反复进行漏洞利用,也会增加被其他安全解决方案发现的风险,比如IDS/IPS或者文件完整性监视等。

容器安全优势突出,特别是与主机进程和网络的隔离。然而,错误配置或疏忽大意,仍然会危及本应安全的态势。

保护Docker安全,与保障传统基础设施安全,有很多相通之处。不过,面临的挑战虽相似,Docker安全也有其独有的一些困难。

1. 提权攻击

Docker安全防御面临的一个常见威胁,就是提权攻击。攻击者的目标是突破容器,获得Docker主机的访问权;他们有大把机会这么做。

2. 漏洞

Linux内核中的漏洞,比如广为人知的“脏牛”漏洞,可被用于提权,从容器染指主机。应使用漏洞管理工具,来确保主机及其上容器均打完补丁,没有漏洞。

3. 文件系统挂载

将主机文件系统挂载到容器,容器便可以写入主机文件了。如果挂载太过宽泛,或者配置有误,攻击者会有大把机会利用各种文件写入方法来提权。重要的主机系统目录绝对不能挂载到容器中。

4. 特权用户

由于上述文件系统滥用可能性的存在,可以运行Docker容器的主机用户,便成了实际上的root用户。一定不能让非root用户来运行Docker容器,或者把他们加入到Docker用户组里。

Docker Daemon 具有为Docker进程指定用户名字空间的 -userns 选项。启用用户名字空间选项时,容器中的root用户会被映射成主机上的非特权用户。使用非特权用户名字空间,是抵御提权攻击的重要防御措施。

Docker运行时也提供 -user 选项,可用于以非特权用户在容器内执行命令,而不是以默认的root用户来执行。正如我们这数十年来习得的安全操作——没必要用root用户的时候就不要用。同样的逻辑也适用于容器使用。

5. 特权容器

以Docker的 -privileged 标记运行的容器,可以控制设备,并如上文所述进行基于文件系统的攻击;此类容器对主机资源的访问权,几乎与主机本身一样。特权容器可用于嵌套Docker-in-Docker,但使用该功能时必须极度小心。

6. 拒绝服务

默认情况下,容器对所使用的资源没有任何限制。这就很容易导致拒绝服务的情况。有必要对失控的资源使用采取缓解措施,比如Docker cgroup 功能。

7. CPU耗尽

失控的计算过程,可耗尽主机上所有可用CPU资源。可对每个容器定义 -cpus 或-cpu-quota,以限制该容器可用的最大主机处理器时间。

8. 内存耗尽

Docker提供 -memory 运行时选项,可以限制每个容器可用的最大内存。

9. ULIMITS

恶意或被入侵容器,可能采用简单的fork炸弹攻击,让主机系统完全无法响应。Docker提供了 -ulimit 运行时选项,对每个容器可打开文件及进程的数量加以限制,让它们无法搞瘫主机。

10. 横向移动

横向移动是描述攻击者在被黑系统间跳转的术语,用于横向移动的技术,同样适用于容器空间。默认情况下,所有Docker容器都能相互通信。使用Docker的 -icc、-link 和 -iptables 标识,你就对容器内相互通信有了细粒度控制,可以防止从被黑容器发起的网络攻击,让主机和网络更加安全。

总结

本文开头,我们提出了在容器中运行 Apache Struts 是否能避免1.43亿客户记录被泄的问题。

文中也提出了多种缓解措施,但我们无法确知哪些方法在我们设想的场景中被用到。使用容器,采用上述任何配置建议,都有可能阻碍或阻止攻击者,争取到更多的发现时间,或者干脆让他们放弃攻击而转向其他更容易得手的目标。

文中提到的漏洞,CVE-2017-5638,可使脆弱系统上的Webserver用户得以执行任意指令或运行任意程序。因此,可能的结果就是,只能以容器中受限Webserver用户权限执行指令的攻击者,却依然对客户记录拥有访问权。该Webserver用户必能访问数据,无论存储在本地,还是需要凭证和权限从数据库或网络中取得。

只有系统从一开始就是最新的,才有可能避免被黑。采用漏洞管理解决方案,比如 Tripwire IP360,有助确定主机及容器中是否存在漏洞。使用Docker的基础设施即代码和连续部署功能,可以增加部署出补丁完备容器的概率,或者更早发现攻击。

很明显,从一开始就确保系统和应用保持更新,是最佳防线。请务必从最初就考虑到安全,并在安全运维开发周期的每一阶段都严格应用安全方法。

于是,容器真的是安全救星吗?可能吧,看你怎么做了。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/125454.html<

(0)
运维的头像运维
上一篇2025-02-23 18:23
下一篇 2025-02-23 18:25

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注