Serverless 安全新杀器:云安全中心护航容器安全
作者:胡志广(独鳌)
云安全中心对于 Serverless 容器用户的价值
从云计算发展之初,各大云厂商及传统安全厂商就开始围绕云计算的形态来做安全解决方案。传统安全与云计算安全的形态与做法开始发生变化,同时随着这 10 多年的发展,安全越来越被国家、企业重视,安全本身也在不断的发生变化。
面向 Serverless 用户的安全需求的重要场景:
图 1
为了解决这些安全场景的问题,Serverless 和云安全中心基于容器安全的场景进行了合作支持构建了一套面向 Serverless 的云上安全架构体系实现纵深防御能力。
云安全中心对于容器服务的安全能力
- 漏洞扫描: 通过云安全中心检测您的应用中是否存在漏洞,云安全中心客户端 AliSecureCheckAdvanced 进程可能会在本地执行 POC 验证,发出特定的请求(POC 请求)以检查是否存在应用漏洞。这些请求旨在测试应用漏洞的存在性和实际危害性,而不会进行实际的恶意攻击。具体信息,请参见什么是漏洞管理 [ 1] 。
- 入侵检测: 为了发现任何形式的隐藏和混淆的 Rootkit,Rootkit 检测功能依据通用 Rootkit 的原理进行操作,即总是存在对内核态函数(系统调用、VFS 函数及底层功能函数)的挂钩、篡改和劫持。通过对系统内存镜像进行必要数据的采集检查,来确定 Rootkit 的存在和属性,以及判断被篡改劫持的系统功能,推断 Rootkit 本身的功能作用。通过以上操作,尽可能准确地判定 Rootkit,并向用户告警传递相关信息。具体信息,请参见检测 Linux Rootkit 入侵威胁 [ 2] 。
- 基线检测: 病毒和黑客会利用服务器存在的安全配置缺陷入侵服务器,盗取数据或植入后门。基线检查功能针对服务器操作系统、数据库、软件和容器的配置进行安全检测,可以帮助您加固系统安全,降低入侵风险并满足安全合规要求。具体信息,请参见基线检查 [ 3] 。
云安全中心同时也覆盖了主机、容器服务等资源,更多详细的内容也可以见:云安全中心 [ 4] 具体进行了解。
Serverless 对接云安全中心的架构和挑战
1. Serverless 对接云安全中心流程和架构
a. Serverless 容器安全架构
图 2
- Serverless 应用能力:应用管理、流量、运维、部署等基本能力,基于容器安全沙箱建设弹性 Serverless 能力。
- Serverless 安全能力:主要针对基于云安全中心作为技术底座,支持几大安全能力,包括:漏洞风险扫描、恶意文件检测、安全审计、配置风险检测等。
基于云安全中心为底座支持了 Serverless 容器安全能力结合 Serverless 应用管理能力后让 Serverless 架构更加完善和稳固。
b. Serverless 容器对接安全中心流程
图 3
- 容器资产上报到 sae 管控。
- sae 管控将容器资产同步到云安全中心。
- 云安全同步到容器资产信息后与云安全 Agent 配合后可以检测应用的基线检测、入侵检测、漏洞扫描等能力,最终完成 Serverless 的容器安全闭环。
2. 重点挑战
面向 Serverless 对接云安全中心的挑战主要有三个部分:
- 多租隔离: Serverless 设计了多租户隔离提供安全隔离方案,多租隔离包括:网络、安全容器、资产上报等。
- 资源消耗影响: 新增云安全 Agent 后资源消耗是否影响存量用户,需要通过资源限制和压测保障不影响存量资源。(之前没有这个组件,采集和检测是否会影响到用户,尤其针对小规格容器)
- 爆炸半径控制: Serverless 多种资源池的形态(固定资源池和弹性资源池),保障容器节点组件版本支持安全能力和云安全 Agent 的组件的同时推平;推平后保障存量容器不影响,需要安全中心的容器则采用新版本容器启动,这样可以既保证安全能力支持又兼容存量容器稳定性不受影响,从而保障爆炸半径的可控。
a. 多租隔离
图 4
- 安全容器:基于安全容器隔离保障数据安全。
- 网络多租:每个容器可以有自己的网卡,vpc 内可以互相访问。
- 资产上报多粗隔离:容器资源上报安全中心根据用户资产进行隔离。
b. 资源消耗压测
SAE 目前有两种资源池的形式:
- 固定资源池: 固定资源池是云安全 Agent 在宿主机上,然后与容器进行 socket 通信上报安全检测信息。
- 弹性资源池: 弹性资源池的云安全 Agent 需要与业务容器和管控资源共享资源。
资源架构详见图 3。
两种模式分别都需要进行压测云安全 Agent 的极限来验证是否不影响业务容器的资源;
- 多种资源规格的压测,包括 1c、2c、4c、8c。
- 考虑 cpu 干扰和 rt 的影响。
重点面向的小规格容器压测的效果,因为小规格容器资源更容易被打满,资源的负载和 rt 影响会比较大。
压测结果:
主容器运行 CPU 密集型程序,将 CPU 打到 60%-90% 左右。
图 5
验证业务容器的 RT 不会因为拉起云安全 Agent 导致明显波动和资源争抢。
图 6
综上结论: 整体安全中心对接后对于存量容器的资源影响几乎可以忽略不计。
c. 爆炸半径控制
ⅰ. 挑战:
- 容器节点组件和云安全 Agent 组件版本依赖同时推平
- 如何保障容器组件和云安全 Agent 节点 Agent 发布后不影响存量容器按需开启,保障爆炸半径
ⅱ. 推平和生效规则:
- 容器节点组件版本和云安全 Agent 按照地域从小地域到大地域逐步推平,实现 1:1 匹配推平。(固定资源池节点推平管控和云安全 Agent,弹性资源池根据新建容器支持安全能力)
- 生效规则:管控侧、节点侧可根据开启云安全能力的用户 UID 生效,开启云安全的用户新创建的容器通过新版本创建容器,存量版本不影响,从而保障一个节点可以同时支持开启安全能力容器和老容器两个容器版本,并且可以快速回滚和开启,从而保障爆炸半径可控。(回滚:如果出现不兼容场景则将 uid 进行回滚到旧版本容器,临时关闭安全中心能力)
ⅲ. 生效流程:
图 7
用户侧流程:
- 灰度控制:根据用户 UID 开启安全能力支持容器和管控侧同时开启。
- 新建应用:固定资源池和弹性资源池创建支持云安全 Agent 的容器。
- 存量应用:非开启安全的用户和存量应用保持存量容器版本保障稳定性,开启安全能力的通过重新部署支持安全能力的支持。
如果出现异常支持瞬时关闭安全能力回滚存量容器保障业务运行稳定性。
推平流程:
- 先推平底层组件:节点管控组件和云安全 Agent 组件。
- 开启安全能力:管控侧开启 UID 和容器组件开启 UID 支持。
Serverless 针对安全未来的展望
Serverless 安全防护能力除了支持目前既定的等保合规(漏洞扫描、入侵检测、基线检测等)、安全隔离的能力外还支持 WAF 防火墙、支持通信加密、操作审计、权限管控等能力,也正是有了这些能力的加持,SAE 才能很好的服务了金融、政企、医疗等行业的客户;Serverless(SAE)未来还计划规划更多安全能力为企业保驾护航,包括:代码安全扫描、加密、堡垒机、最小权限、身份与访问管理、以及更多的攻击防护等能力的建设。
“我们希望让用户做的更少而收获更多,通过 Serverless 化,深度用云就像用水电煤一样简单” ,这也是 SAE 产品五年以来一直坚持的产品理念:让客户不用修改任何代码,不改变原有应用部署方式,零改造平滑迁移企业在线应用,零门槛容器化和 Serverless 化,免运维,开箱即用。
未来我们将继续砥砺前行,让更多的客户上云和深度用云时都践行 SAE First!相关链接:
[1] 什么是漏洞管理
https://help.aliyun.com/zh/security-center/user-guide/overview-4
[2] 检测 Linux Rootkit 入侵威胁
https://help.aliyun.com/zh/security-center/user-guide/detect-linux-rootkit-intrusions
[3] 基线检查
https://help.aliyun.com/zh/security-center/user-guide/baseline-check
[4] 云安全中心