CWPP安全思考
本文尝试解答CWPP安全领域的一些常见问题,包括以下部分:
- CWPP安全覆盖领域以及扩展
- CWPP具备哪些核心能力
- CWPP部署方式
- CWPP最佳实践
注意,本文不是一个详细的说明文档,不会对每个模块深入讨论,有些地方会一笔带过,更多的是想给出一些实践思路,大致依照如下思路进行阐述:
领域分类
在终端安全领域大家可能常常听到一些词汇: HIDS、EDR、XDR、EPP等,这与cwpp还是有一些差异的,最根本的分野是对象不同和功能侧重点不一样。
cwpp趋势
- 生态变化,具体产品->平台效应
- 安全左移,DevOps -> DevSecOps
- 可视化,溯源图&网络可视化
- 零信任
主机安全
不同厂商对于主机安全的定义有所差异,例如:
主机安全是一个实时识别、分析、预警安全威胁的服务器主机安全管理系统,通过防勒索、漏洞扫描修复、防病毒、防篡改、合规检查等安全能力,帮助您实现多云主机、线下 IDC 威胁检测、响应、溯源的自动化安全运营闭环。
主机安全(Cloud Workload Protection Platform,CWPP)基于腾讯安全积累的海量威胁数据,利用机器学习为用户提供资产管理、木马文件查杀、黑客入侵检测、漏洞风险预警及安全基线等安全防护服务,解决当前服务器面临的主要网络安全风险,帮助企业构建服务器安全防护体系。现支持用户腾讯云外服务器统一进行安全防护,轻松共享腾讯云端安全情报,让私有数据中心拥有云上同等级别的安全体验
查看不同厂商的定义如果从防护对象、检测和防御措施以及目的来阐述大致如下: 主机安全是一个针对本地和云上服务器主机提供实时识别、分析和预警安全威胁,并支持安全防御加固的安全管理系统。通过资产管理、合规基线检查、漏洞扫描与修复、入侵检测和防御、溯源等安全能力,致力于解决企业服务器面临的网络安全风险。
-
对象
主要是企业客户的本地或云上服务器主机,包括虚拟机和物理机。
-
关键能力
- 资产管理
- 基线检测
- 漏洞扫描
- 病毒查杀
- 入侵检测和响应
- 防御加固
-
部署方式
直观上我们能感知到,主机安全一般需要在主机上安装具有特定权限的软件(agent)进行防护,这种方式我们称之为agent-based。
与之相反的agentless较少用于主机安全,主要是防御的实时性较agent-based低,且非云上资产接入成本高。
容器安全
容器寿命短暂属于轻量级工作负载,且容器具有不可变性(即对应用程序或微服务的每次更改,都需要更新容器镜像并启动新容器)使容器环境高度动态化。
容器安全主要关注三部分:构建、部署、运行时安全。检测能力方面有很多与主机安全是重叠的,我们重点关注的是镜像、容器运行时和防护接入模式的差异。
构建
构建阶段关注的是镜像安全,这里概括说就是软件供应链的安全。镜像构建需要依赖于基础镜像、软件和其他配置应用,因此在部署之前持续扫描软件中的漏洞和错误配置,修复相关问题,从而消除潜在风险。
当然,这部分的能力也需要在生产中提供,用于检测没有经过CICD阶段检测的镜像,比较成熟的功能是仓库镜像扫描。
部署
这里关注两个方面:部署环境合规、接入方式的覆盖面。
- 部署环境需要评估基础设施的合规,例如k8s集群配置、容器特权设置、节点合规、应用配置合规。
- 接入方式,需要考虑防护的覆盖面,因为容器安全不单只包括容器,还包括其所依赖的基础设施的安全。
运行时安全
容器化工作负载是高度动态的,问题可以快速传播到多个容器和应用程序中。因此,我们需要监控和检测工作负载中网络流量、文件活动、进程行为和系统调用的异常情况。覆盖一些关键的检测防御能力:容器逃逸检测、镜像拦截、其他异常的网络和进程行为等。
有一些比较成熟的厂商:公有云比较代表的是阿里云、腾讯云、Twistlock,私有化比较有代表性的是青藤、小佑等
serverless安全
什么是serverless?
云计算发展经历如下阶段:IaaS、PaaS、SaaS,目前又提出了Serverless的概念,且进展非常迅猛。首先我们先看一下相关的术语,以及简单的解释:
- IaaS(Infrastructure as a Service,基础设施即服务)
- PaaS(Platform as a Service,平台即服务)
- SaaS(Software-as-a-Service,软件即服务)
- BaaS(Backend as a Service,后端即服务)
- FaaS(Functions as a Service,函数即服务)
- 无服务器云函数(Serverless Cloud Function,SCF)是一种为企业和开发者们提供的无服务器执行环境
其中,BaaS和FaaS是serverless的两种主要实现方式。通过整合和开放应用需要的能力到一个平台中,提供可快速部署完整可用的Serverless应用架构。该平台具有资源编排、自动伸缩、事件驱动等能力,覆盖编码、调试、测试、部署等全生命周期。
从架构看:BaaS和FaaS共同组成了serverless的应用架构。从责任划分,平台负责构建服务运行环境,开发者无需购买服务器,由云产商负责提供维护基础设施和后端服务组件(这个是与SaaS的本质差别)。
serverless安全的范围与责任划分
serverless一般的攻击流程:攻击者通过应用或系统组件漏洞、配置不当造成的泄露等获取初始访问权限,尝试查找窃取凭证信息,再进一步横向攻击其他服务或负载。因此,我们需要先明确涉及的范围,然后再进行责任划分。
serverless安全虽然听起来是无服务器的,但是这个只是企业和应用开发者而言,只是云产商做了屏蔽,本质上依然需要是需要服务器的运行这些函数服务的。
首先,云产商应该保证云基础设施安全(硬件底层设施、后端基础软件服务),同时支持serverless平台应用安全检测和防护。
其次,用户需要保证自身的代码安全、配置安全,避免代码存在漏洞或配置不当。下面是一个大概的模型图。
微隔离
微隔离,很多时候又被称为微分段。微隔离这个技术是在云计算时代出现的,打着软件定义网络(SDN)的标签出身。微隔离的定义经历过三次的变更:
- software-defined segmentation
- Microsegmentation
- 基于身份的隔离
从名字的变更,我们能看出,微隔离的对象是比防火墙这种大网段区分更小的管理单元,但是又不是安全组那种单纯基于ip进行管控的产品。它的对象是身份,例如机器A、B、C均属于业务1,从业务1的角度,它们具有相同的身份,假如同时A属于业务2,B属于业务3,那么从业务的角度,A和B具有双重身份,具有对应身份的权限。
如果说"配置错误"是云安全的头号威胁,那么"微隔离"就是决定零信任计划成败的决定性因素。因此微隔离的引入,可以填补cwpp在零信任的空白。
微隔离一般具有以下核心模块:
-
网络可视化
可视化主要是网络流量的可视化,能明确展示不同业务、地域等之间的正常流量和异常流量。对象是工作负载,但是可以往上延伸以业务、地域、身份等视角进行展示。如下图:红色代表异常流量,绿色代表正常流量,不同地域之间也有关联。
-
策略中心
策略中心的机制可以简化成如下,随着技术演进,人工干预部分的比重会逐渐降低:
-
事件发现&响应
- 流量抓取&检测
- 支持对流量请求进行放行、告警和阻拦等操作
微隔离的部署方式
-
agent模式
目前最简单,最普通的一种方式,但是覆盖面和agent轻量化是一个挑战。代表性产品蔷薇灵动、illumio等。
-
云原生控制
通过将安全内嵌到虚拟化平台,直接联动云的计算和网络资源,适用用云工作负载之间的隔离。代表性有cilium。
-
基于第三方防火墙
基于第三方防火墙供应商提供的虚拟化防火墙(分布式防火墙),比较常用的方案是采用SDN引流的方式牵引云平台中的VSwitch(虚拟交换机)的流量到虚拟化防火墙中进行防护和控制。SDN的安全威胁,有兴趣可以查看:www.xml-data.org/whdy/html/a...
-
混合模式: 以上三种的组合。
扩展
大模型安全可以分为两部分,模型安全和提供服务的系统安全。
-
模型安全
聚焦于隐私、幻觉和越狱问题,更多的是策略上的安全,偏向风控策略领域。有兴趣的读者可以查看下着篇文章,说实话当时看到确实受益不少。从0到1了解大模型安全,看这篇就够了
-
系统安全
这部分属于终端安全的范畴,可以借助cwpp的能力进行防护。当然,如果可以通过黑盒和白盒检测模型的输出,也能覆盖模型安全。
-
互补
大模型的能力可以反哺到cwpp,协助提升告警准确度。我们知道在入侵检测和分析中,溯源图的作用非常显著,借助AI可以帮助我们清洗脏数据,降低数据量,便于构建清晰准确的溯源图。
功能覆盖
cwpp涉及的范围较广,这里只尝试给出个人认为需要覆盖的点。
- 资产
- 主机: 物理机、虚拟机
- 容器: docker、containerd、kata、runc等
- 集群: 主流是k8s
- 资产指纹: 账号、端口、进程、用户、定时任务、系统服务、系统软件、应用、web、内核模块等
- 合规检查
- 等保二、三级基线
- Linux基线
- 国际标准基线
- CIS基线扫描策略
- 自定义最佳实践
- 弱口令扫描
- 漏洞检测
- Linux软件漏洞
- Windows软件漏洞
- Web-CMS漏洞
- 应用漏洞
- 入侵检测和响应
- 爆破/异常登陆
- 恶意文件
- 漏洞利用
- 敏感文件篡改
- 容器逃逸
- 进程异常行为
- ...
- 可视化&溯源
- 流量可视化
- 入侵事件溯源
- 入侵防御加固
- rasp: 覆盖主流的语言:java、php等
- 文件隔离
- 防篡改监控与恢复
- 恶意镜像拦截
- 恶意请求阻断
部署方式
当前cwpp安全领域大致有以下几种,其中agent-based是最成熟的,主流的主机安全大都采用此种方式。agentless是随着云计算兴起,提出的一种新型的安全方案,其中代表性厂商是orca,核心技术方案是sidescanning。平行容器和sidecar容器均有一席之地,但sidecar模式占用资源高,一般不予采用。 本章节尝试解答:
- 什么是agent-based安全防护?
- 什么是agent-less安全防护?
- 什么是平行容器?
- 什么是sidecar容器
- 这些部署方式的优缺点是什么?有哪些应用场景?
agent-based
-
什么是agent-based?
Agent-based安全是一种安全解决方案,使用特定的软件(我们称之为agent)来监控和保护计算机系统、网络或应用程序的安全。agent通常运行在受保护的设备上,提供实时的安全监控、入侵检测和响应功能。一般具有如下基本特点:
- CS架构:在受保护设备安装运行agent,并长连接到一个集中管理后台proxy进行管控。
- 资产管理:可以采集设备上的软件包、运行端口、进程等资产指纹信息,以及配置、容器、硬件信息。
- 实时监控:实时监控受保护设备上的文件、网络和流量的情况,以便实时检测和响应。
- 事件检测和响应:能够检测潜在的安全威胁和攻击,并采取相应的响应措施。
- 安全加固:通过事前扫描(如基线、漏洞和恶意文件扫描)提前暴露设备风险,针对性的修复加固。
- 日志审计:记录安全事件、任务和策略执行情况,生成日志记录,以便进行审计分析。
-
优势
- 实时检测响应 agent与proxy保持长连接,终端设备上的风险事件、扫描任务结果可以实时上报到后台中心进行处理。在主机安全和容器安全领域,更加关注的是运行时安全:反弹shell、爆破、病毒木马、内存马和容器逃逸等。
- 分布式部署
- agent负责采集所在设备的风险信息,可以无限扩展。
- proxy使用分布式架构进行部署,不同region的agent连接到对应的proxy。proxy的作用是与agent保持长连接,实时接收agent的信息,通过后续的队列或tcp等方式进行转发。
- 深度防护
-
劣势
- 额外开销,每个防护设备都需要安装agent,有性能影响。
- 运维成本高,部署复杂,且不同的系统需要进行适配维护。
- 防护容易漏缺,部署前需要全面清点资产,资产添加后需要及时安装agent
-
应用场景
agent-based适用于深度防护场景,对安全事件有实时性要求的场景也需要采用此方案。
agentless
代表性厂商是orca,核心技术方案是sidescanning,口号是:Agents Don't Scale: Security Starts with 100% Coverage
。
-
什么是agentless安全?
Agentless 安全是一种安全解决方案,它不需要在受保护的设备或系统上安装专用的代理软件(agent)。相反,它利用现有的网络设备、协议和基础设施,进行网络流量分析、日志监控、漏洞扫描等,实现安全监控和保护。
-
优势
- 部署运维成本低:只需要部署后台服务,使用非侵入性方法收集安全数据,包括:镜像分析、日志文件分析、API连接等进行安全防护,跨平台兼容。
- 自动化:自动发现和监控新增实例,剔除已删除实例。
- 性能高:不需要安装agent,减少agent资源占用,降低部署成本。利用原有的基础设施和资源,最大化提升性能
-
劣势
- 实时性差,在网络攻防对抗领域不适用。
-
应用场景
- 难以安装agent,或者不允许安装agent,但又需要进行安全检测的场景。
- 不需要实时监控,提供全面资产扫描的场景。例如CSPM借助agentless方案可以快速全面发现云配置错误
平行容器
平行容器是指将云原生安全(如容器安全、镜像安全等)应用在其目标云原生平台进行容器化部署的方案。将安全应用进行容器化部署,可以充分利用云原生平台提供的集群化部署、容器编排、高可用、自动恢复等特性,提升安全产品的鲁棒性,降低用户的使用难度和运维成本。
- 优势
- 可以进行权限收敛,使用用户模式运行
- 通过k8s的daemonset或deployment快速部署,在每个node节点起一个平行容器
- 劣势
- 只适用与容器防护,依赖集群编排工具
- 应用场景
- 容器和集群场景
sidecar容器
边车容器是与主应用容器在同一个 Pod 中运行的辅助容器。kubernetes.io/zh-cn/docs/...
优势很明显,无侵入性,不需直接修改主程序代码。缺点也很明显,每个pod中,都需要起来一个sidecar容器,资源消耗大。只适用于容器领域,且对资源不敏感的场景。
最佳实践
在2020年Gartner发布的2022年网络安全7大重要趋势中指出,混合办公模式和云上数字业务流程为企业机构带来了全新风险,与此同时,愈发复杂的勒索软件、持续不断的数字供应链攻击以及深嵌其中的软件漏洞,都暴露了企业机构当下的技术和技能缺陷,集中式的网络安全控制措施已然过时,我们需要深入研究这些颠覆性的事件,将它们有效地协同起来。
了解七大趋势,可以更好应对全新风险,以及发挥更深远的影响。
(图片来源于Gartner:www.gartner.com/cn/informat...
产品融合
结合当前cwpp领域的一些现状,以及近些年的变化趋势4尤为引人入胜。cwpp各个产品同质化趋向,为了降低成本、减少复杂性和提高效率,从而提升企业的整体安全架构,目前各大厂商有将安全功能整合到单一的平台的趋势。但是会带来不少跳转,主要是就是产品变少了,客户付费意愿和议价带来的因素。
-
国内主流厂商的实践&进展
- 阿里云在主机安全产品的基础上,整合了容器安全的能力,推出了云安全中心,且支持serverless安全;
- 腾讯云目前有主机安全、容器安全、云安全中心三款产品,其中容器安全支持serverless安全防护,目标也是通过云安全中心整合主机和容器安全。
- 字节火山引擎云安全中心目前主要是偏向主机安全,容器、集群资产管理和防护能力方面依然有所欠缺,且火山引擎当前暂无公开售卖的独立容器安全产品。
- 私有云厂商,如青藤、奇安信等主机安全、容器安全当前都是独立产品,且目前为止作者没有听闻融合的声音。
-
总结
- 公有云厂商,客户群体较多,首先考虑高效率、低成本优先来吸引客户,然后将盘子铺开,应用薄利多销的策略,大部分都在走产品融合路线。
- 私有云厂商因为市场因素当前更多考虑的是独立产品。
但是,哪个厂商又能忽视产品融合后带来的效率提升、开发和运维成本下降带来的好处?何况客户群体中对于安全理解的深度和广度本就有限哪个客户又能抵挡融合后,企业安全架构复杂性降低带来的美妙?所以,个人坚信,产品融合将是未来的趋势。
部署互补
前文的部署方式一节中,我们讨论了四种防护部署方式。其中sidecar模式,因为资源消耗比较大,客户敏感性较大,目前连istio都在拥抱支持proxyless方案, istio.io/latest/blog... 因此这里不做考虑。
利用传统主机方式进行防护,可以支持集群容器、本地容器的防护。通过平行容器方式,通过daemonset给集群的每个Node都安装agent,可以关联管理agent,打通从集群视角纳管所有资产的路线。部分对资源敏感的业务使用agentless模式进行防护。
平台生态效应
在平台革命-改变世界的商业模式一书中,强调了平台效应的作用以及发挥的三个关键功能:吸引、促进和匹配。
引文来源于该书:
平台必须要将生产者和消费者吸引至平台,毕竟核心交互在他们之间发生,平台要做的,就是通过提供方便且易于联系和交换的工具与规则来促进交互的完成。另外平台还要通过利用相互之间的信息,进而有效地匹配生产者和消费者,让他们互惠互利。在平台刚开始建立的时候,会有一种先有蛋还是先有鸡的感觉,因为平台没有价值就不会有用户,而没有用户去使用平台也就不会有价值。
自身成为平台
在cwpp领域,主机、容器、serverless安全融合成一个新的产品或小规模的平台,通过简单的操作、相对低的成本来吸引消费者,另一方面客户的需求进一步促进产品的演进。通过多种产品功能吸引客户,促进厂商和用户交互,匹配双方,这个可以称之有积极的双边市场效应。
平台联动
与第三方产品或平台进行联动,,利用其他产品补齐本身的能力不足,有时候能取得不错的收益。例如cwpp的主要能力是进行检测防御,但是网络阻断能力较弱,在遇到恶意ip攻击时,可以联动平台相关的产品或外部平台的产品进行IP封禁。
还有一种场景,就是构建cwpp防御体系时,对于漏洞、基线和病毒查杀等需要长时间积累的能力,我们首先应该只考虑实现扫描和检测的框架,前期联动对接有相关优先能力的平台,然后再逐渐积累替换。
一般而言,cwpp成为平台的可能性不大,更大的可能是融入云平台,与平台其他产品进行联动,或通过借助平台效应,跨平台合作。有不少此类案例:
-
平台内产品联动
- 腾讯云/阿里云上的主机安全和云安全中心,联动平台积累的数百亿木马样本库云查,进行病毒查杀
- 腾讯云主机安全借助网络入侵防护系统(天幕),实现对暴力破解或异常登陆的IP加黑封禁
- 公有云平台支持第三方产品补充防护,如华为云上可以购买蔷薇灵动的微隔离产品。
-
跨平台联动
更多发生在在私有云平台借用公有云厂商的雄厚实力以及深厚积淀,来补齐自身的能力,例如购买公有云厂商积累了数百亿病毒样本的云查服务。此外,公有云之间也可能进行联动,例如火山引擎的云安全中心支持接入阿里云、腾讯云、aws等公有云厂商的服务器进行防护,反之亦然。
因此,cwpp产品应该设计成自身可以成为小平台、快速融入不同平台或者跨云平台提供服务的方案。
零信任
零信任(zero-trust),近年来非常火的一个概念。在办公领域,过去使用vpn等接入,如今很多企业都在接纳零信任应用。如字节的飞连,腾讯的IOA都是这个领域的佼佼者。零信任在cwpp中的应用就有大名鼎鼎的微隔离。
安全产品或平台并不安全,这不是一句玩笑话,每年的hvv都会有不少安全产品被打穿,这极大损害安全企业形象。因此通过零信任把自身建设为一个更安全的产品或平台,以此吸引客户应该是一个不错的选择。此外,零信任技术可以协助推出新的安全产品,扩展cwpp安全的板块。
总结:通过分析产品融合、部署方式互补、考虑平台效应以及零信任技术,我们发现构建cwpp防护体系应该立足于减低客户成本、降低客户使用门槛、提升安全能力作为指导、充分发挥联动效应、引入大模型减少人工干预,视角从研发产品转变为构建平台体系可能一个新的思路。
最后,推荐字节-安全风控-终端安全开源的一款产品
elkeid,相信可以帮助读者深入了解cwpp领域中主机安全和容器安全的实践和落地。
Reference
- Kata Containers: 蚂蚁集团的安全容器落地实践
- 国外顶尖容器安全产品是怎么做的?
- k8s安全
- CSPM(云安全态势管理, Cloud Security Posture Management)
- EDR(端点检测和响应,Endpoint Detection and Response)
- 安全左移&DevSecOps
- 从Gartner的三次定义,看微隔离技术发展与演进
- Serverless架构:如何应对不断变化的安全问题
- 溯源图技术在入侵检测与威胁分析中的应用
- 细谈微隔离技术
- 安全何须墨守成规,改变视角看微隔离
- Serverless安全揭秘:架构、风险与防护措施
- 零信任成败的关键:微隔离