关于多款Android平台APP存在云存储凭证泄露风险的安全公告

文章来源:       时间:2017年07月05日  点击次数:   [ 字体:  ]  

安全公告编号:CNTA-2017-0052

近期,国家信息安全漏洞共享平台(CNVD)接收到上海犇众信息技术有限公司报告的多款安卓平台APP存在阿里云OSS凭证泄露漏洞(CNVD-2017-06366、09774、10187、11666、11811)。攻击者利用漏洞可获得APP OSS的控制权,进而远程获取云存储数据,并拥有创建、删除、上传、下载等操作权限,对相关APP服务运营方构成较为严重的信息泄露和运行安全风险。

一、漏洞情况分析

阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全和高可靠的云存储服务。在阿里云官方文档中明确指出:“移动终端是一个不受信任的环境,把accessKeyId和accessKeySecret直接保存在终端用来加签请求,存在极高的风险。”,同时阿里云在示例代码中也给出相应的警告信息,示例代码如下:

图 官网OSS凭证信息示例代码

根据CNVD秘书处核验结果,一些集成了阿里云OSS的Android平台APP在使用SDK的时候只是简单复制了阿里云OSS官方测试demo代码,并未根据官方建议对访问控制策略进行设置,直接将accessKeyId和accessKeySecre内置在移动应用程序。攻击者通过对APP进行脱壳逆分析可获得这组凭证后,利用OSS管理工具(ossutil)可以远程获取其云存储的数据,并拥有对该OSS的控制权。

CNVD对相关漏洞综合评级为“高危”。

二、漏洞影响范围

漏洞影响使用阿里云OSS且未按官方安全策略开发的移动应用APP。根据上海犇众公司报告和CNVD核验情况,已有6款应用较为广泛的APP受到漏洞影响的案例。CNVD已向相关APP开发方或运营管理方通报漏洞信息,并将风险情况通报阿里云公司。

三、漏洞修复建议

根据阿里云公司提供的技术措施,APP管理方应启用阿里云权限管理机制包括访问控制(Resource AccessManagement,简称 RAM)和安全凭证管理(SecurityToken Service,简称 STS),根据需求使用不同权限的子账号来访问OSS,或为用户提供访问的临时授权。主要的访问控制策略如下:

1、 不使用主账号访问OSS

2、 读写分离

3、 Bucket权限隔离

4、 使用STS的临时凭证来访问OSS

详情请参考阿里云官方提供的安全开发建议:

https://m.aliyun.com/doc/document_detail/31929.html

https://m.aliyun.com/yunqi/articles/55947

https://m.aliyun.com/doc/document_detail/31929.html

https://m.aliyun.com/doc/document_detail/28642.html

附:参考链接:

https://help.aliyun.com/document_detail/32044.html?spm=5176.doc32010.6.688.mqlbpr (阿里云官方对于aliyun OSS Android SDK的开发说明文档)