对于容器环境,或者是容器云,其本质是云计算的一种实现方式,我们可以将其称为PaaS或者CaaS。因此,其整体的安全建设思路,是遵循云计算安全架构的。 图1 云计算安全框架 容器云环境的安全建设,如果暂时抛开物理安全的话,可以粗略分为两个主要方面:一方面是容器云内部的安全建设,这包括基础设备的安全、东西向网络的安全、管理平台的安全、虚拟化安全以及数据安全等;另一方面就是容器云内外之间的网络通信安全,也就是通常讲的南北向网络安全。 图2 容器云安全建设思路 这样,对于容器云的安全方案,可以分别从这两个方面进行设计:对于南北向的网络安全,可以通过安全资源池引流的方式,实现相应的安全检测与防护,这也是很多安全厂商在云安全解决方案上的主要实现方式。对于容器云内部的安全,可以通过特定的容器安全产品进行实现。最后将这两部分统一接入云安全的集中管理系统,进行统一的安全管理和运营。 概括来说,容器/容器云安全,可以包括以下四个类别: 第一,就是容器环境基础设施的安全性,比如主机上的安全配置是否会影响到其上面运行的容器,主机上的安全漏洞是否会影响到容器,主机上的恶意进程是否会影响到容器,容器内的进程是否可以利用到主机上的安全漏洞等。 第二,是容器的镜像安全,这里包括镜像中的软件是否存在安全漏洞,镜像在构建过程中是否存在安全风险,镜像在传输过程中是否被恶意篡改等。 第三,是容器的运行时安全,比如运行的容器间隔离是否充分,容器间的通信是否是安全的,容器内的恶意程序是否会影响到主机或者其它容器,容器的资源使用情况是否是安全的等。 第四,是整个容器生态的安全性,比如Docker/Kubernetes自身的安全性如何,ServiceMesh/Serverless对容器安全有什么影响,容器中安全密钥的管理和传统环境有什么不同,容器化后的数据隐私保护跟传统的数据隐私保护是否一致等。 图3 容器安全的核心问题 从上述容器安全的核心问题来看,镜像的概念相对来说是容器所特有的,因此对于容器的镜像安全,EDR是一定不会覆盖的。另外就是容器的生态安全,这块更多的是容器相关的技术栈带来的安全机遇和挑战,因此典型的EDR产品肯定也是无能为力的。 行文至此,开篇所提出的问题“EDR等主机安全方案,能否直接解决容器安全的问题?”就已经有了初步的答案:肯定是不可以的。 首先,来看一下,当前部分厂商专门针对容器环境所提供的安全产品和安全服务都能提供什么样的安全能力,以及技术架构是什么样的。 三、容器安全产品/服务 1Google Container Security (1)基础架构安全。主要是指容器管理平台能够提供的基本安全功能,确保开发者拥有所需的工具来安全的构建容器化服务,这些功能通常内置于Kubernetes等容器编排系统中。比如使用IAM来管理对项目的访问权限、使用基于角色的访问权限控制(RBAC)功能来管理对集群和命名空间的访问权限、日志审计、网络隔离、基础设施ISO合规等。 (2)软件供应链安全。主要就是前文所提到的容器镜像安全,包括安全的基础镜像维护、CVE漏洞扫描、镜像准入检测等。 (3)运行时安全。确保安全响应团队能够检测到环境中运行的容器所面临的安全威胁,并做出响应。这些功能通常内置于安全运营工具中。比如Google通过集成了Stackdriver实现日志分析、通过集成合作伙伴Aqua Security、Capsule8、StackRox、Sysdig Secure、Twistlock等安全产品,实现异常活动的检测、使用容器运行时沙盒gVisor更好的隔离容器。 下面以其运行时安全的合作伙伴Aqua Security为例,简要分析其所实现的安全能力以及技术架构。 2Aqua Security (1)漏洞管理。扫描容器镜像和无服务器功能,查找已知的漏洞、嵌入的密钥、配置和权限问题、恶意软件和开源许可。 (2)运行时防护。通过对镜像的准入控制,防止不受信任的镜像运行,并确保容器保持不变,防止对运行中的容器进行任何更改。可以基于自定义策略和机器学习的行为配置文件,实时监视和控制容器的活动。 (3)密钥管理。在运行时可以安全的将密钥传递给容器,在传输和存储时进行加密,将它们加载到内存中,而不需要在磁盘上进行持久化存储,在磁盘上它们只对需要它们的容器可见。
(4)容器防火墙。自动发现容器间网络连接,并得到参考的上下文防火墙规则,通过白名单确定合法的连接,阻止或警告未经授权的网络活动。可以与流行的网络插件(如Weave或Flannel)和服务网格(如Istio)无缝连接。 (5)合规和审计。PCI-DSS、HIPAA之类的法规合规性检测,以及NIST、CIS的最佳实践检测。提供细粒度事件日志记录,并且集成多种日志分析和SIEM工具,如Splunk、ArcSight等,可以集中管理审计日志。 如下图所示是Aqua Security官方提供的系统参考架构图,结合另外一款容器安全产品的参考架构(图5),可以看出,整个系统基本都是由平台和探针两部分组成。 在平台侧,一方面实现相关的安全管理控制的能力,另一方面实现数据相关的分析和智能化能力。 在探针侧,则主要通过在每个容器运行的主机上部署一个安全探针,通过这个探针进行相关的安全策略执行以及相关数据的采集(暂不讨论Serverless)。据笔者了解,这个分布式的探针,通常会有两种体现形态,一种是以特权容器的方式融合在容器环境的管理平台中,另一种是主机安全常见的部署Agent方式。从本质上来讲,两种形态只是部署和管理方式有所区别。 图4 Aqua Security 架构图 图5 某容器安全产品架构图 先看一下EDR的定义是什么?典型的EDR产品又能做些什么? Gartner对于EDR给出了如下的定义: EDR工具集提供一种分析/检索更详细/实时/历史的终端数据能力,进而发现恶意活动的痕迹,让安全分析师关注高风险的数据,并且在必要时积极的进行响应。 Gartner的这个定义,看上去似乎有些抽象,简单一点的解释就是:通过收集终端上的各种数据,在这些数据中分析并发现恶意的活动,进而采取相应的防御手段。那么都会收集什么样的数据?收集到了这些数据又能发现什么样的恶意行为? 下面从EDR典型的设计架构开始,进行具体的解释。 1典型架构 图6 EDR系统典型架构 2代理都收集什么样的数据? (2)网络数据。包括终端设备上的DNS和ARP表以及其它实时网络数据、开放的端口以及相关的进程数据、终端的网络连接数据、可访问终端的URL数据等。 (3)运行时数据。包括终端上运行的进程/线程以及其对应的元数据、用户登录注销数据、进程间通信(IPC)数据、进程行为数据(例如数据读写)等。 (4)存储数据。文件(通常只包含特定的文件或者可执行文件)以及文件元数据(比如文件名/大小/类型、校验和等)、文件变更信息、syslog、主引导记录(MBR)信息等。 (5)其它数据。比如加载的DLL、激活的设备驱动程序、已加载的内核模块、CMD或者PowerShell历史命令等数据。 3EDR能发现什么恶意行为? (1)主机风险检测。结合多种安全基线与规范要求,通过账户、网络、进程、系统配置等多维度风险检测,系统全面的发现不符合安全管理规范的主机。 (2)可疑行为检测。通过实时监控主机关键的风险入口,结合威胁情报以及相关安全规则,对端口扫描攻击、暴力破解攻击、恶意脚本攻击、系统漏洞攻击、Webshell攻击等可疑行为进行高效快速的检测发现。 (3)威胁狩猎。平台收集的各种层面的数据,可以提供关于主机健康状况的大量信息。通过正确的筛选、挖掘,利用这些数据可以发现、追踪到更多潜在的威胁行为,主动的进行威胁捕获。 (4)阻止恶意行为。例如主机的微隔离,通过控制主机的进出站流量,实现对异常主机的隔离。 4小结:对比容器安全,有哪些是无法满足的? 相同点: (1)从功能层面,容器安全和EDR都要求实现其对应主机的安全,包括资源层面、权限层面、网络层面等多个方面,因此,对于容器安全来说,EDR产品可以100%的进行功能的复用,保障容器环境的主机安全。 (2)从技术层面,在二者的主流技术实现路径上,均采用了“平台+探针”的技术架构,可以以最小的成本开销,实现安全能力的复用和整合。 不同点: 二者之间的不同点,主要来源于容器环境利用namespace和cgroup做了一层资源的隔离,因此: (1)当前EDR所监测的数据,仅限于主机层面,对于容器内部的行为和活动,是没有有效的进行关联的,比如容器内进程行为的监控、容器内用户权限的监控等。
(2)在网络安全上,当前EDR更关注于主机的进出站网络流量,也就是主机物理网卡上的流量,而在容器环境中,还有相当大比例的网络通信存在于主机内部的容器之间,因此,这种容器间的东西向网络安全防护,当前EDR也是无法实现的。 (3)权限管理。容器环境之上,通常运行的基于微服务架构的业务应用,因此有着复杂的权限管理以及访问控制策略,虽然这些通常是由容器业务平台进行设计和实现,但是作为安全服务,是需要有能力对其进行监控和异常检测的。而EDR在这方面几乎还只停留在主机资源的权限管理上,这一点也是无法满足需求的。 (4)对于容器内应用的密钥管理、密钥隐藏等容器业务强相关的安全需求,EDR也是无法满足的。 本文重点围绕“EDR等主机安全方案,能否直接解决容器安全?”这个问题,分别从容器安全的几个核心问题、当前容器安全产品和服务所提供的安全能力,以及EDR产品与容器安全需求的吻合度这几个方面来进行了具体论述。 考虑到容器环境在技术实现上的特点,通过EDR实现容器安全确实有着一定的优势。但是考虑到容器环境又有着很多特殊性,在安全上还有很多特定的需求,因此,直接利用EDR去应对容器安全的问题,还是远远不够的。 [1].2018绿盟科技容器安全技术报告,http://www.nsfocus.com.cn/content/details_62_2852.html [2]. Google Container Security,https://cloud.google.com/containers/security/ [3]. Aqua Security,https://www.aquasec.com/ 星云实验室专注于云计算安全、解决方案研究与虚拟化网络安全问题研究。基于IaaS环境的安全防护,利用SDN/NFV等新技术和新理念,提出了软件定义安全的云安全防护体系。承担并完成多个国家、省、市以及行业重点单位创新研究课题,已成功孵化落地绿盟科技云安全解决方案 添加好友,备注“进群”,加入容器安全技术交流群,通过后会拉您入群。 往期回顾 解析5G安全(二):5G安全需求 解析5G安全(二):5G安全需求 倍福PLC安全评估实战 倍福PLC安全评估实战 Sinec H1通信协议分析及模糊测试 Sinec H1通信协议分析及模糊测试 【招聘】绿盟科技创新中心实习生招聘公告(长期有效) 【招聘】绿盟科技创新中心实习生招聘公告(长期有效) 本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。 关于我们 绿盟科技研究通讯由绿盟科技创新中心负责运营,绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。 绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。 我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。 长按上方二维码,即可关注我们