分析:部分越南银行应用程式滥用 iOS 私有 API

本文为机器翻译
展示原文

介绍

3 月 27 日,越南信息安全社群报告称,两款著名的银行应用程序 BIDV SmartBanking 和 Agribank Plus挖矿隐藏的 iOS API 来检测用户 iPhone 上安装的其他应用程序。

两天前,TrollStore 的开发者 @opa334 在infosec.exchange上次报告了这一行为,随后 J2TEAM 在 Facebook 帖子中提到了这一行为。该事件很快引起轰动,因为它违反了苹果的政策并侵犯了用户隐私。

Facebook 帖子中的初步信息怀疑此次泄密是由移动安全解决方案BShield Mobile Security 引起的,从而引发误解,影响了 BShield 和 Verichains 的声誉。

因此,我们对提到的两个银行应用程序进行了技术分析: BIDV SmartBanking (v5.2.62,2025 年 3 月 14 日更新)和Agribank Plus (v5.1.8,2025 年 3 月 25 日更新)。本文对其对用户和银行应用的影响进行了详细的分析和评估。

免责声明:

发布此分析的目的是为了安全研究、透明度和客户保护。该文件还旨在澄清有关 BShield 参与的虚假指控,促使技术透明度。

虽然我们尽力确保准确性,但我们不对本文中包含的信息、产品、服务或相关图形的完整性、准确性、可靠性、适用性或可用性作出任何明示或暗示的陈述或保证。所提供的信息不旨在鼓励、指导或支持任何违反 Apple、Google 政策或适用法律的行为。对于因本分析中信息误用而造成的任何损失或后果,我们概不负责。

技术分析

概括

技术分析显示,VNPay开发的两款银行应用程序BIDV SmartBanking(v5.2.62,2025年3月14日更新)和Agribank Plus(v5.1.8,2025年3月25日更新)使用了商业应用程序保护解决方案DexProtector/Licel和Dexguard/iXGuard,以及一个可能名为“ VNPay Runtime Protection ”或“ VNPShield ”的自开发模块。

该模块挖矿隐藏的iOS API SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions的侧信道漏洞来识别用户在iPhone/iPad设备上安装的应用程序,并使用加密机制来隐藏这些隐藏的API链。根据苹果的安全赏金计划,挖矿此侧信道漏洞属于“通过用户安装的应用程序攻击设备 - 未经授权访问敏感数据”类别,赏金为 5,000镁。

上述行为严重违反了苹果应用商店政策,如果苹果禁止或删除该应用程序,将带来极大风险,影响数百万银行客户。

该问题与 Verichains 的 BShield 产品无关。 Mobile Shield解决方案的主要目的是主动帮助保护银行应用程序免受用户设备上的恶意软件攻击,防止近期频繁发生的账户劫持、资金盗窃和个人数据盗窃。虽然挖矿N-day 漏洞或隐藏 API 可能在一定程度上有助于上涨恶意软件检测能力,但 BShield 不会采用这些风险或危险的技术方法,而是确保完全遵守 Apple 和 Google 应用商店政策,在针对银行应用程序的威胁上涨的背景下优先考虑用户和企业安全。

混淆分析

为了隐藏隐藏 API 的使用,银行应用程序使用非常弱的 XOR 加密方法来混淆敏感链,例如 API 名称和应用程序的捆绑包标识符。该技术旨在向 Apple 的静态分析工具隐藏 API链,从而使检测 API 滥用变得更加困难。在执行过程中,加密的链将通过与密钥进行异或运算来解密,以恢复原始值。

BIDV 应用程序上使用的密钥为“ 94826663 ”(Agribank 应用程序上为“ 41818020 ”),加密数据存储在“数据”部分。解密函数名为RE_Decrypt_10233F108 ,在 Python 中可以表示如下:

从解码的链中,我们发现该代码很可能是名为“ VNPay Runtime Protection”的模块的一部分。回到处理代码:

代码的工作原理如下:

该代码可以简化为v40 = dlopen(XOR_DECRYPT(X), 1) ,其中 X 是在数据区域中要编码的链。例如:

上述代码相当于从/usr/lib/libSystem.B.dylib调用csops函数:

 "/usr/lib/libSystem.B.dylib".csops(a1, a2, a3, a4);

其他隐藏 API 也一样:

隐藏 API 分析以获取有关设备上已安装应用程序的信息

上述代码通过使用应用程序的 Bundle ID 调用隐式 iOS API SBSLaunchApplicationWithIdentifier来检查应用程序是否安装在用户的设备上。通常,开发人员通过支持的方案启动应用程序。但是,如果调用应用程序具有 Apple 提供的“权利”,则此 API 会直接启动任何应用程序。因此,这个隐藏的API可以作为一个侧通道,通过返回的错误代码来验证应用程序的存在。

注意:SpringBoard 的这个 API 是一个隐藏 API,并非 Apple官方提供给开发者,因此使用它违反了 App Store 政策。

一些经过测试的应用程序列表:

下面的 LLDB 屏幕截图在SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions的断点处显示了对“com.opa334.Dopamine.roothide”的检查。

根据SBSLaunchApplicationWithIdentifier API 返回的错误代码:

• 如果已安装:由于缺乏 Apple 认证,将返回安全策略错误(错误代码9 )。
• 如果未安装:返回未找到应用程序(错误代码7 )。

这是一种侧信道挖矿,它使用隐藏的 iOS API 来检查应用程序是否已安装。此挖矿是在名为VNPShieldBridgingManager 的类中实现的。

当银行应用程序挖矿此 API 时,应用程序的控制台日志将显示有关该应用程序尝试启动另一个应用程序的多条错误消息。

讨论 Apple 的 App Store 政策

根据苹果的 App Store评估指南(第 2.5.15. 法律部分),在未经苹果和用户批准的情况下使用隐藏的、非公开(私有)API 违反了数据透明度、用户控制和隐私标准,从而破坏用户信任。

具体来说,第 2.5.1 节规定应用程序“只能使用公共 API”,并且必须严格将其用于预期用途。任何使用未公开的内部系统框架或隐藏功能的行为都将导致应用程序被拒绝或删除。 Apple 执行这些政策是为了维护应用程序的稳定性、保护用户隐私并确保平台安全。

试图超越iOS 限制或收集未经授权的数据(例如已安装应用程序的列表)是一种严重违规行为,会向 Apple 和注重安全的用户发出严重警告。这些行为可能会导致该应用程序被禁止或从应用商店中删除,从而影响数百万银行客户。

在本次分析中,我们确认私有 API SBSLaunchApplicationWithIdentifier可用作侧信道,通过返回的错误代码确定应用程序的存在,并在新的、未越狱的设备上运行最新的 iOS 版本。根据苹果的安全赏金计划,挖矿此漏洞属于“通过用户安装的应用程序攻击设备-未经授权访问敏感数据”类别,赏金为 5,000镁。

结论

技术分析显示,VNPay开发的两款银行应用程序BIDV SmartBanking(v5.2.62,2025年3月14日更新)和Agribank Plus(v5.1.8,2025年3月25日更新)使用了商业应用程序保护解决方案DexProtector/Licel和Dexguard/iXGuard,以及一个可能名为“ VNPay Runtime Protection ”或“ VNPShield ”的自开发模块。

该模块挖矿隐藏的iOS API SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions的侧信道漏洞来识别用户在iPhone/iPad设备上安装的应用程序,并使用加密机制来隐藏这些隐藏的API链。根据苹果的安全赏金计划,挖矿此侧信道漏洞属于“通过用户安装的应用程序攻击设备 - 未经授权访问敏感数据”类别,赏金为 5,000镁。

上述行为严重违反了苹果应用商店政策,如果苹果禁止或删除该应用程序,将带来极大风险,影响数百万银行客户。

该问题与 Verichains 的 BShield 产品无关。 Mobile Shield解决方案的主要目的是主动帮助保护银行应用程序免受用户设备上的恶意软件攻击,防止近期频繁发生的账户劫持、资金盗窃和个人数据盗窃。虽然挖矿N-day 漏洞或隐藏 API 可能在一定程度上有助于上涨恶意软件检测能力,但 BShield 不会采用这些风险或危险的技术方法,而是确保完全遵守 Apple 和 Google 应用商店政策,在针对银行应用程序的威胁上涨的背景下优先考虑用户和企业安全。

来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
2
收藏
1
评论