云安全学习-密钥泄露与CF利用框架
简介
首先认识下阿里云官方解释的什么是AccessKey:在调用阿里云API时您需要使用AccessKey完成身份验证。AccessKey包括AccessKey ID和AccessKey Secret,需要一起使用。具体如下:
AccessKey ID:用于标识用户。
AccessKey Secret:用于验证用户的密钥。AccessKey Secret必须保密。
云主机通过使用Access Key Id / Secret Access Key加密的方法来验证某个请求的发送者身份。Access Key Id(AK)用于标示用户,Secret Access Key(SK)是用户用于加密认证字符串和云厂商用来验证认证字符串的密钥,其中SK必须保密。AK/SK原理使用对称加解密。云主机接收到用户的请求后,系统将使用AK对应的相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。在使用云服务 API 进行访问时,用户需要提供其 AK 和 SK,以便进行身份验证。这些凭证用于证明用户的身份,并授权用户执行特定的操作,如创建、管理和访问云资源,例如虚拟机实例、存储桶、数据库等。Access Key 和 Secret Key 的组合是敏感信息,类似于用户名和密码的组合,需要妥善保管和保密。如果 AK 或 SK 泄露,未经授权的人可能会使用它们来访问和操作用户的云资源,导致数据泄露、资源滥用或其他安全风险。
常见的泄露方式
1.硬编码产生泄露 例如将AK/SK硬编码到程序代码/配置文件中,攻击者只需要对小程序包进行反编译即可获取AK/SK。2.安全意识单薄&存储手段缺失 最直白的如硬编码到业务代码中并上传github,其次也有明文配置到配置文件并在日志中任意打印,或者明文保存在代码库、配置文件、公开可访问的存储桶、版本控制系统中,这些都可能被攻击者获取。3.AK/SK业务隔离手段缺失,比如多个业务共有一对AKSK,这样任何一个业务造成的AKSK泄露都会导致其他业务受影响。比如Bucket允许任意文件上传和读取、bucket允许匿名访问、bucket允许列出文件、bucket允许盲上传 4.AK/SK安全分发手段缺失,比如直接通过微信、企业微信等即时通讯工具对AK/SK口口相传等等。
CF框架简介
CF 是一个云环境利用框架,适用于在红队场景中对云上内网进行横向、SRC 场景中对 Access Key 即访问凭证的影响程度进行判定、企业场景中对自己的云上资产进行自检等等。当前已支持阿里云、腾讯云、AWS和华为云。手上刚好有一台阿里云主机,今天就用它来做实验学习一下。
使用过程
AK/SK泄露
大部分的云主机都支持AK/SK都认证方式,用于API调用等功能,由于开发的不规范,以及一些其它漏洞,可能会导致AK/SK泄露。在渗透中,如果发现目标泄露了AK/SK,可以通过AK/SK直接攻击其对应的云服务器。
以阿里云为例
以阿里云为例,学习下CF利用框架的使用方式 CF 是一个云环境利用框架,适用于在红队场景中对云上内网进行横向、SRC 场景中对 Access Key 即访问凭证的影响程度进行判定、企业场景中对自己的云上资产进行自检等等。当前已支持的云:阿里云、腾讯云、AWS、华为云。
使用
首先开始访问配置
cf config
键盘上下键选择云服务商后回车,然后程序会提示输入访问密钥别名,以及输入访问密钥 ID (Input Access Key Id)都输入同样的Access Key Id值即可;回车后输入Access Key Secret;再次回车,直接输入optiona即可配置完成。
输入以下命令可查看当前获取的阿里云服务器的权限
cf alibaba perm
接管控制台
cf alibaba console
使用新增的账号密码在
https://signin.aliyun.com
即可实现登录
一键列出当前访问凭证的云服务资源
cf alibaba ls
查看 CF 为实例执行命令的操作的帮助信息
cf alibaba ecs exec -h
在实例中一键执行whoami,ifconfig和hostname
cf alibaba ecs exec -b
设置想要执行的命令,在exec 后加 -c 和命令
./cf alibaba ecs exec -c whoami
不过要注意的是,在执行某些危险命令的过程中(如cf alibaba console),不断收到了阿里云的告警提示信息
优化与防御
需要做一些有效的措施来减少密钥泄露的风险:
优化开发并配合检测工具
针对硬编码带来的安全问题,首先需要解决额就是问题的源头,所以我们需要提升开发者的安全意识和安全习惯,这样可以最大程度的避免问题的发生。或者确保只有授权人员能够访问。避免将密钥明文保存在代码库、配置文件或公开可访问的位置。
监控和审计
要配合适当的监控和审计能力,监控是为了实时的去发现问题的出现,而审计则更加关注问题出现后的处理和追溯。配合适当的工具和能力,这样一旦发生了泄露事件,我们可以根据监控和审计情况,快速定位问题的影响范围,并锁定攻击者,快速处理和修复。大多数的云供应商都有提供相关工具,当然基于云中的责任共担模型,使用工具和管理上层安全是需要用户去负责的,所以最关键的问题还是在用户层面。
建立持续性云上安全检测机制
最后也是最重要,针对云上层出不穷的安全问题,错误配置是最常见的原因,对已经上云的资源,建立持续性的机制,主要通过预防、检测、响应和主动识别云基础设施风险,持续管理云安全状况,以及企业的安全策略,主动与被动结合,发现评估云服务的安全配置风险,一旦发现问题,可以提供自动或者人工的补救措施。
关于HummerRisk
HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题,核心能力包括混合云的安全治理和K8S容器云安全检测。
参考文章
https://blog.csdn.net/wolaisongfendi/article/details/128965488
工具下载
对应工具已同步知识星球。
往期推荐
E
N
D
微信扫码关注该文公众号作者