赛门铁克的研究人员发现,一些广泛使用的移动应用程序(其中一些下载量达数百万次)在其代码库中向云服务公开了硬编码和未加密的凭据。这可能会让任何有权访问该应用程序的二进制文件或源代码的人提取凭据,从而利用云基础设施进行滥用。
赛门铁克在本周的一篇博文中透露,Android 和 iPhone 设备上的热门应用在其代码中包含了 Amazon Web Services (AWS) 和 Microsoft Azure Blog Storage 的凭证。它们可以在每个设备平台各自的官方移动应用商店中找到:Google Play和 Apple 的 App Store。
赛门铁克工程师在帖子中写道:“这种危险的做法意味着,任何有权访问该应用程序的二进制文件或源代码的人都可能提取这些凭证并滥用它们来操纵或窃取数据,从而导致严重的安全漏洞。”
此外,他们补充道,iOS 和 Android 平台应用程序漏洞的“广泛性”凸显了“在移动应用程序方面迫切需要转向更安全的开发实践”。
赛门铁克的研究重点是一些广泛分布的移动应用程序,这些应用程序的代码库中包含 AWS 或 Azure 凭据。就前者而言,Android 和 iOS 应用程序都存在凭据泄露问题,而一些 Android 应用程序则暴露了 Azure 存储凭据。
相关:SoftwareOne 在马来西亚推出云能力中心
例如,研究人员发现,Google Play 商店中一款名为 The Pic Stitch: Collage Maker 的应用在其代码库中包含硬编码的 AWS 生产凭证,包括生产 Amazon S3 存储桶名称、读写访问密钥和密钥。在某些情况下,它还会泄露暂存凭证。
存在严重安全风险的 iOS 应用 同时,赛门铁克检查的三款 iOS 应用也被发现泄露了 AWS凭证。其中一款名为 Crumbl 的应用拥有超过 390 万用户评分,在 Apple App Store 的食品饮料类别中排名第五,它使用纯文本凭证初始化 AWSStaticCredentialsProvider。这些凭证用于配置 AWS 服务,包括访问密钥和密钥。
此外,该应用程序还存在另一个“重大安全疏忽”,即在其代码中包含 WebSocket Secure (WSS) 端点。此端点是 Amazon API URL 的一部分,使用 API 网关进行硬编码,可直接连接到 AWS 上的物联网服务。
工程师们写道:“将此类 URL 与静态凭证一起公开,使攻击者更容易拦截或操纵通信,从而导致未经授权访问相关的 AWS 资源。”因此,他们指出,这种易受攻击的配置如果没有适当的加密或混淆,“将对应用程序及其后端基础设施的完整性构成严重风险”。
相关:非托管云凭证对一半组织构成风险
另外两个拥有数十万条 App Store 评分的 iOS 应用程序也通过在其代码中直接硬编码来暴露 AWS 凭证;这两个应用程序是 Eureka:Earn Money for Surveys 和 Videoshop – Video Editor。
前者分配一个 INMAWSCredentials 对象并使用访问密钥和密钥对其进行初始化,两者都以纯文本存储,可用于将事件记录到 AWS,“将关键的云资源暴露给潜在的攻击”,工程师们说。
后者直接将未加密的 AWS 凭证嵌入到 [VSAppDelegate setupS3] 方法中,这意味着任何有权访问该应用程序二进制文件的人都可以轻松提取它们。这将使他们能够未经授权访问相关的 S3 存储桶,并可能导致数据被盗或被操纵。
Android 应用程序公开 Azure 凭据 类似地,赛门铁克发现,三个 Android 应用程序通过其二进制文件或代码库直接向 Microsoft Azure Blob Storage 公开凭据。
相关:思科在安全漏洞后禁用 DevHub 访问
印度的拼车应用 Meru Cabs 在 Google Play 上的下载量超过 500 万次,它通过嵌入包含帐户密钥的连接字符串,将硬编码的 Azure 凭据包含在其 UploadLogs 服务中。“此连接字符串用于管理日志上传,使关键的云存储资源面临潜在的滥用风险,”工程师写道。
Sulekha Business 是另一款下载量超过 500,000 次的 Android 应用程序,它在其代码库中嵌入了多个硬编码的 Azure 凭据,用于各种目的 - 例如添加帖子、处理发票和存储用户配置文件。
第三款 Android 应用程序 ReSound Tinnitus Relief 的下载量也超过 500,000 次,它也对 Azure Blob 存储凭据进行硬编码,以管理各种资产和声音文件,这些凭据的泄露可能会导致未经授权的访问和数据泄露。
缓解措施从应用程序开发开始 赛门铁克的调查结果发布于 Datadog 发布报告的第二天,该报告发现,在基于云的网络上存在时间过长的不受管理的凭证对一半的组织构成了安全风险。事实上,赛门铁克表示,任何无意中泄露给云服务的凭证都会使任何在其上运行网络基础设施、软件或其他资产的组织面临重大风险。
减轻这些风险的一个好办法是开发应用程序,开发人员应遵循管理敏感信息的最佳实践。赛门铁克表示,这些最佳实践包括使用环境变量来存储敏感凭证,以便在运行时加载它们,而不是直接嵌入到应用程序的代码中。
开发人员还应使用专用的机密管理工具(例如 AWS Secrets Manager 或 Azure Key Vault)来安全地存储和访问凭据。如果必须将凭据存储在应用程序中,则他们应确保使用强加密算法,并在运行时根据需要对其进行解密。
据赛门铁克称,保护凭证并避免其他潜在应用程序开发失误的另一种方法是将自动安全扫描工具集成到开发流程中,以便在开发过程的早期检测出常见的安全漏洞。
https://www.security.com/threat-intelligence/exposing-danger-within-hardcoded-cloud-credentials-popular-mobile-apps
原文始发于微信公众号(独眼情报):下载量达数百万的移动应用程序暴露云凭证
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论