许多开发人员仍然将敏感的访问令牌和API密钥嵌入到他们的移动应用程序中,将存储在各种第三方服务中的数据和其他资产置于风险之中。
一项新的研究由网络安全公司Fallible对16000个安卓应用程序进行的调查显示,其中大约2500个应用程序硬编码了某种类型的秘密证书。这些应用程序是由该公司在11月发布的在线工具扫描的。
当第三方服务提供的访问范围有限时,将其访问密钥硬编码到应用程序中是合理的。然而,在某些情况下,开发人员提供的密钥可以解锁敏感数据或系统的访问权限,而这些密钥可能会被滥用。
这就是falble发现的304款应用的情况,这些应用包含Twitter、Dropbox、Flickr、Instagram、Slack或亚马逊网络服务(Amazon Web services)等服务的访问令牌和API密钥。
在16000个应用程序中,有300个看似不多,但根据其类型和相关特权,一个泄露的证书可能会导致大规模数据泄露。
例如,Slack令牌可以提供对开发团队使用的聊天日志的访问,这些日志可以包含数据库、持续集成平台和其他内部服务的额外凭证,更不用说共享文件和文档了。
去年,网站安全公司Detectify的研究人员发现超过1500个Slack访问令牌硬编码到GitHub上的开源项目中。
过去,在GitHub项目中也发现过数千个AWS访问密钥,迫使亚马逊开始主动扫描此类泄露,并撤销暴露的密钥。
易犯错误的研究人员在一篇博客文章中说,在分析的Android应用程序中发现的一些AWS密钥拥有完全的特权,允许创建和删除实例。
删除AWS实例可能会导致数据丢失和宕机,而创建实例则会让攻击者以受害者为代价获得计算能力。
这不是第一次在移动应用程序中发现API密钥、访问令牌和其他秘密凭证。2015年,德国达姆施塔特工业大学的研究人员,发现超过1000个访问凭据用于存储在Android和iOS应用程序中的后端服务(BaaS)框架。这些证书解锁了超过1850万个数据库记录,其中包含5600万个数据项,应用程序开发者将这些数据存储在BaaS提供商(如facebook所有的Parse、CloudMine或AWS)上。
本月早些时候,一位安全研究员发布了一个叫做Truffle Hog的开源工具这可以帮助公司和个人开发人员扫描他们的软件项目,寻找可能在某个时候被添加,然后又被遗忘的秘密令牌。