소개하다
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일 업데이트)는 자체 개발한 모듈인 " VNPay Runtime Protection " 또는 " VNPShield "와 함께 상업용 애플리케이션 보호 솔루션인 DexProtector/Licel 및 Dexguard/iXGuard를 사용합니다.
이 모듈은 사용자가 iPhone/iPad 기기에 설치한 애플리케이션을 식별하기 위해 숨겨진 iOS API SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions 의 사이드 채널 취약점을 악용하고, 암호화 메커니즘을 사용하여 이러한 숨겨진 API 문자열을 숨깁니다. Apple의 보안 현상금 프로그램에 따르면, 이 사이드 채널 취약점을 악용하는 행위는 "사용자가 설치한 애플리케이션을 통한 기기 공격 - 민감한 데이터에 대한 무단 액세스" 범주에 속하며 현상금은 5,000달러입니다.
위의 행위는 Apple 앱 스토어 정책을 심각하게 위반하는 것이며, Apple에서 해당 애플리케이션을 금지하거나 삭제할 경우 엄청난 위험을 초래하여 수백만 명의 은행 고객에게 영향을 미칠 수 있습니다.
이 문제는 Verichains의 BShield 제품과는 아무런 관련이 없습니다. Mobile Shield 솔루션의 주요 목적은 최근에 자주 발생하는 계좌 해킹, 자금 도난, 개인 데이터 도난을 방지하여 사용자 기기의 맬웨어로부터 뱅킹 애플리케이션을 사전에 보호하는 것입니다. N-day 취약점이나 숨겨진 API를 악용하면 맬웨어 탐지를 어느 정도 강화하는 데 도움이 될 수 있지만 BShield는 이러한 위험하거나 위험한 기술적 방법을 사용하지 않으며, Apple 및 Google 앱 스토어 정책을 완벽하게 준수하고 뱅킹 앱을 표적으로 하는 위협이 증가하는 상황에서 사용자 및 기업 보안을 우선시합니다.
난독화 분석
숨겨진 API 사용을 숨기기 위해 뱅킹 애플리케이션은 매우 약한 XOR 암호화 방식을 사용하여 API 이름 및 애플리케이션 번들 식별자와 같은 중요한 문자열을 난독화합니다. 이 기술은 Apple의 정적 분석 도구에서 API 문자열을 숨겨서 API 남용을 감지하기 어렵게 만드는 것을 목적으로 합니다. 런타임 중에 암호화된 문자열은 키와 XOR을 수행하여 해독되어 원래 값이 복원됩니다.
디코딩된 문자열을 통해 이 코드가 ' 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 분석
참고: SpringBoard의 이 API는 숨겨진 API이며 Apple에서 개발자에게 공식적으로 제공하지 않으므로, 이를 사용하면 App Store 정책에 위배됩니다.
SBSLaunchApplicationWithIdentifier API에서 반환되는 오류 코드를 기준으로:
뱅킹 애플리케이션이 이 API를 호출하면 애플리케이션의 콘솔 로그에 다른 앱을 시작하려고 하는 애플리케이션과 관련된 여러 오류 메시지가 표시됩니다.
Apple의 앱스토어 정책에 대해 논의하세요
끝내다
이 모듈은 사용자가 iPhone/iPad 기기에 설치한 애플리케이션을 식별하기 위해 숨겨진 iOS API SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions 의 사이드 채널 취약점을 악용하고, 암호화 메커니즘을 사용하여 이러한 숨겨진 API 문자열을 숨깁니다. Apple의 보안 현상금 프로그램에 따르면, 이 사이드 채널 취약점을 악용하는 행위는 "사용자가 설치한 애플리케이션을 통한 기기 공격 - 민감한 데이터에 대한 무단 액세스" 범주에 속하며 현상금은 5,000달러입니다.
위의 행위는 Apple 앱 스토어 정책을 심각하게 위반하는 것이며, Apple에서 해당 애플리케이션을 금지하거나 삭제할 경우 엄청난 위험을 초래하여 수백만 명의 은행 고객에게 영향을 미칠 수 있습니다.
이 문제는 Verichains의 BShield 제품과는 아무런 관련이 없습니다. Mobile Shield 솔루션의 주요 목적은 최근에 자주 발생하는 계좌 해킹, 자금 도난, 개인 데이터 도난을 방지하여 사용자 기기의 맬웨어로부터 뱅킹 애플리케이션을 사전에 보호하는 것입니다. N-day 취약점이나 숨겨진 API를 악용하면 맬웨어 탐지를 어느 정도 강화하는 데 도움이 될 수 있지만 BShield는 이러한 위험하거나 위험한 기술적 방법을 사용하지 않으며, Apple 및 Google 앱 스토어 정책을 완벽하게 준수하고 뱅킹 앱을 표적으로 하는 위협이 증가하는 상황에서 사용자 및 기업 보안을 우선시합니다.