在最近于拉斯维加斯举行的 BSides 安全会议上,GitGuardian 的两位研究员麦肯齐·杰克逊(MackenzieJackson)和德维恩·麦克丹尼尔(Dwayne McDaniel)指出,web和移动应用程序中嵌入安全凭证和其他“秘密”的情况频繁发生,这主要源于糟糕的安全实践。
根据他们公司的最新,公共 GitHub 提交中至少曝光了 1000万个秘密,比 2021 年增加了 67%。他们将“秘密”定义为“任何可以让你访问另一个系统或解密数据的东西”——包括、API令牌、数据库连接 URL 和浏览器会话 cookie。
麦克丹尼尔提到,之所以会出现这种情况,是因为人们在上传代码到 GitHub 时并未检查其中是否包含秘密。他引用了一名丰田开发者的案例,此人在 GitHub上,这一泄露事件竟然长达五年都未被发现。优步也曾遭遇过类似的,连制药巨头也未能幸免。
“在 2022 年,十分之一的 GitHub 作者曝光了秘密,” 麦克丹尼尔说。“每 1000 次提交中就有 5.5 次包含秘密,比前一年增加了 50%。”
2022 年被泄露的具体秘密中,最常见的是 Google API 密钥,占总泄露的 9.7%。
杰克逊集中讨论了移动应用的凭证泄露问题,引用了 GitGuardian 的研究,显示出从 Google Play 商店反编译的 50,000 个 Android 应用中,近一半的应用暴露了明文凭据。
“那么秘密应该存储在哪里?”杰克逊向听众提问。“不应该存储在面向用户的 Android APK 或 Apple IPA文件中。相反,秘密应该存放在后端秘密管理器中。但实际上,通常会很粗心大意。”
杰克逊指出,现代移动应用程序被设计得功能繁多。他以一家银行的移动应用为例,该应用不仅可以显示余额和存款,还能让用户进行转账、联系客服,甚至可以通过拍照存入支票。这意味着需要不同技能的开发者共同合作,容易导致问题的出现。
他提到 Buddobot 的首席信息安全官杰森·哈迪克斯(Jason Haddix)对于一款主要美国银行的 iOS银行应用进行了拆解。他发现,支票图像未经加密存储在手机的共享文件夹中;有两百万张未加密的支票图像存储在一个不安全的 AWS服务器上;此外,移动应用中的一个硬编码的 plist 文件包含了该银行 Apache Tomcat 网络服务器的管理凭证。
杰克逊解释了检查移动应用中硬编码秘密其实非常简单。首先需要将移动应用下载到计算机,可以使用类似于[GPlayDL](https://github.com/rehmatworks
Leave a Reply