云原生攻防启示:行业领先解决方案的秘诀!
字数 2141 2025-08-10 08:28:09
云原生安全攻防教学文档
1. 云原生安全概述
云原生安全是一种综合性的安全理念和实践,确保在云环境中构建、部署和运行应用程序时的安全性。随着企业越来越多地采用云计算和容器化技术,云原生安全变得至关重要,以保护云基础设施、应用程序和数据免受各种威胁和攻击。
1.1 4C云原生安全分层模型
公认的云原生安全分为4个方面:
- 云(Cloud):云平台层面的安全
- 集群(Cluster):Kubernetes等编排系统的安全
- 容器(Container):容器运行时的安全
- 代码(Code):应用程序代码的安全
这种分层方法增强了深度防护能力,是保护软件系统的最佳实践。
2. 云(Cloud)层安全
2.1 云平台安全风险
- 身份和访问管理漏洞
- API滥用和未经授权访问
- 云产品信任关系滥用:如OOS、云服务器、VPC等信任关系
- API密钥泄露:如AK/SK的利用
- 云平台元数据滥用
- 身份冒用
2.2 云上身份管理
云上身份指的是在云计算环境中管理和控制用户、系统或服务访问资源的方式,涉及:
- 身份验证:确认谁可以访问资源
- 授权:定义访问权限
- 访问管理:监控和控制权限使用
2.2.1 基于身份的控制策略
通过策略授权来界定用户能够访问的资源和操作,附加到IAM用户、组或角色。
策略配置示例:
{
"Effect": "Allow",
"Resource": "arn:aws:s3::bucket",
"IpAddress": {"aws:SourceIp": "192.168.1.6"}
}
2.2.2 基于资源的控制策略
关注资源本身的安全性和访问规则,定义:
- 哪些资源可以被访问
- 何时可以访问
- 如何访问
- 访问时所需的权限
策略配置示例:
{
"Effect": "Allow",
"Resource": "arn:aws:s3::bucket",
"Condition": {"StringEquals": {"s3:x-amz-acl": ["public-read"]}}
}
2.3 云上身份攻击手法
2.3.1 基于资源的策略攻击思路
- 如果权限细化非常严格,优先攻击敏感角色
- 权限过高则将目标放在资源上
- 即使账户无权限,仍可对配置基于资源的策略对象进行操作
攻击步骤:
- 获取身份后,深入分析其身份策略和可执行操作
- 审计环境中可能存在的资源预置权限信任关系
- 了解账户在云平台上的各种业务(S3、云服务、VPC、CDN等)
2.3.2 IMDS(Instance Metadata Service)攻击利用
IMDS为云虚拟机实例提供元数据服务,包括:
- Meta-data:服务器实例ID、网络ID等信息
- User-data:首次启动或重启时的配置操作
攻击利用方式:
- 提权
- 敏感信息收集
- 横向移动
- 访问资源
- 获取硬编码凭据
- 利用root权限运行的脚本
2.3.3 AK/SK利用防护绕过
绕过方法:
- 新启服务器实例(已失效)
- 利用云函数发起请求
- 在VPC中建立隔离网络进行请求
3. 集群(Cluster)层安全
3.1 Kubernetes常见攻击手法
- 多租户隔离漏洞
- Secrets对象滥用
- 服务间未授权访问
- APIServer未授权访问
- K8s自身漏洞
- 错误配置
3.2 从K8s到Cloud的攻击扩展
获取Pod控制权后可能具有的权限:
- 获取仓库和镜像信息
- 获取漏洞扫描结果
- 获取卷和存储信息
- 获取网络信息
可执行的攻击:
- 下载所有私有仓库镜像
- 查看所有镜像漏洞扫描结果
- 测绘网络拓扑
- 创建/修改/删除网络接口
- 修改安全组
3.2.1 真实攻击案例
通过Confluence RCE漏洞获取Pod控制权:
- 获取提权节点的token
- 下载私有仓库镜像
- 发现硬编码的Jenkins凭据
- 测绘网络拓扑发现Jenkins位置
- 修改VPC和安全组绕过VPN限制
- 控制Jenkins并登录其他受限服务器
3.2.2 API滥用提权(Azure示例)
常用请求凭据的API:
listClusterUserCredential:返回user的token和证书(具有本地system权限)listClusterMonitoringUserCredential:返回管理员凭据listClusterAdminCredential:返回管理员的token和证书(具有本地system权限)listCredential
3.2.3 绕过私有集群限制
方法:
- 利用
RunCommandAPI:- 提供互联网访问私有集群的能力
- 默认在所有集群中启用
- 执行命令的Pod默认以集群管理员形式启动
- 获取权限后可控制整个集群
3.2.4 "Say admin without saying admin"攻击
发现某些账户(如AKS-services role)虽非管理员但具有管理员级别权限,可控制整个集群。
4. 容器(Container)和代码(Code)层安全
4.1 常见攻击手法
- 镜像漏洞
- 容器逃逸
- 内核漏洞
- 错误配置
- 应用程序漏洞(Code层)
5. 攻防启示
- 云原生快速发展对攻防双方都是巨大挑战
- 攻击者需面对庞大复杂的云原生体系
- 防御者需了解攻击策略以构建强防御
- 云原生安全不是黑匣子,理解攻击方式是防御的第一步
6. 防御建议
- 实施最小权限原则:严格控制身份和资源访问权限
- 定期审计权限:包括自身账户权限和所有业务权限
- 保护敏感凭据:如AK/SK、IMDS数据等
- 监控异常行为:如异常API调用、跨地域请求等
- 及时修补漏洞:关注云平台、K8s、容器和应用程序漏洞
- 配置安全检查:避免错误配置导致的安全风险
- 实施网络分段:使用VPC等机制隔离敏感资源
- 启用多因素认证:增强身份验证安全性