超过3200个App泄露推特API密钥,可实现账户劫持。
网络安全公司CloudSEK研究人员发现有3207个手机APP暴露了推特API密钥,攻击者利用暴露的推特API密钥可以接管与该APP关联的用户推特账户。
在开发手机APP过程中,可以将推特功能融入到手机APP中,具体来说,开发者会拥有一个特殊的认证密钥或token,允许手机APP与推特API进行交互。当用户将推特账户与手机APP关联时,该密钥就可以让APP以用户的身份进行操作,比如通过推特登录、创建新推文、发送推文等。有了认证密钥后,任何人都可以以相关的推特用户身份来执行动作,因此不建议将密钥直接保存在手机APP中。
CloudSEK称,API密钥泄露一般都是APP开发者误配置导致的,比如将推特API认证密钥配置在手机APP中,但是在APP发布时忘记删除。一般,凭证会保存在手机APP的以下位置:
· resources/res/values/strings.xml
· source/resources/res/values-es-rAR/strings.xml
· source/resources/res/values-es-rCO/strings.xml
· source/sources/com/app-name/BuildConfig.java
研究人员对上传到Bevigil的手机APP进行分析,发现:
· 5603个APP泄露了Twitter API key/token;
· 5033个APP泄露了Twitter secret/token secret;
· 4810个APP泄露了Twitter API key/token和Twitter secret/token secret
这4810个APP中,有3207个APP的Twitter API key/token和Twitter secret/token secret都是有效的。其中230个APP泄露了所有的4个认证凭证,可以用于完全控制推特账户来执行以下敏感操作:
· 读取直接消息;
· 回复和点赞推文;
· 创建或删除推文;
· 移除或添加新的关注;
· 访问账户设置;
· 修改展示图片。
其中有57家公司还进行了Twitter API企业版订阅,需要每月支付149美元给推特。
CloudSEK称,泄露后的API被滥用的场景之一就是创建推特水军来推广虚假新闻、恶意软件活动和加密货币垃圾邮件等。
CloudSEK给出的受影响的应用列表中包含下载量在5万到500万的APP,涉及城市交通、电子书阅读器、事件记录器、新闻、电子银行APP、GPS app等。
在CloudSEK向受影响的APP开发公司发布告警消息后,大多数企业没有在1个月内给出回复,目前大多数受影响的APP仍未被修复。
除了不将APK Key直接嵌入代码中外,开发者还需遵循以下安全编码和部署实践:
· 将审核流程标准化:在发布前需要对代码进行检查、审查和批准,标准化的流程可以预防密钥泄露。
· 隐藏密钥:环境变量是引用密钥的一种方式,要确保源码中包含环境变量的文件没有被包含进去。
· 更换API key:更换密钥可以帮助减少泄露密钥带来的风险。
参考及来源:https://www.bleepingcomputer.com/news/security/over-3-200-apps-leak-twitter-api-keys-some-allowing-account-hijacks/