分析:部分越南銀行應用程式濫用 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
評論