분석: 베트남 일부 은행 앱에서 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일 업데이트)는 자체 개발한 모듈인 " 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을 수행하여 해독되어 원래 값이 복원됩니다.

사용된 키는 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 분석

위 코드는 앱의 번들 ID를 사용하여 암묵적 iOS API SBSLaunchApplicationWithIdentifier를 호출하여 앱이 사용자 기기에 설치되었는지 확인합니다. 일반적으로 개발자는 지원되는 체계를 통해 애플리케이션을 실행합니다. 하지만 이 API는 호출 앱에 Apple이 제공한 "권한"이 있는 경우 모든 앱을 직접 실행합니다. 따라서 이 숨겨진 API는 반환된 오류 코드를 통해 앱의 존재를 확인하는 사이드 채널로 사용될 수 있습니다.

참고: SpringBoard의 이 API는 숨겨진 API이며 Apple에서 개발자에게 공식적으로 제공하지 않으므로, 이를 사용하면 App Store 정책에 위배됩니다.

테스트된 일부 앱 목록:

아래 LLDB 스크린샷은 SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions 의 중단점에서 "com.opa334.Dopamine.roothide" 에 대한 검사를 보여줍니다.

SBSLaunchApplicationWithIdentifier API에서 반환되는 오류 코드를 기준으로:

• 설치된 경우: Apple 인증이 없기 때문에 보안 정책 오류(오류 코드 9 )가 반환됩니다.
• 설치되지 않은 경우: 응용 프로그램을 찾을 수 없습니다 (오류 코드 7 )라는 메시지가 반환됩니다.

이는 앱이 설치되었는지 확인하기 위해 숨겨진 iOS API를 사용하는 사이드 채널 익스플로잇의 한 형태입니다. 이 익스플로잇은 VNPShieldBridgingManager라는 클래스에서 구현됩니다.

뱅킹 애플리케이션이 이 API를 호출하면 애플리케이션의 콘솔 로그에 다른 앱을 시작하려고 하는 애플리케이션과 관련된 여러 오류 메시지가 표시됩니다.

Apple의 앱스토어 정책에 대해 논의하세요

Apple의 앱 스토어 검토 지침( 섹션 2.5.15. 법적 )에 따르면, Apple과 사용자의 승인 없이 숨겨진 비공개(비공개) API를 사용하는 것은 데이터 투명성, 사용자 제어 및 개인 정보 보호 표준을 위반하여 사용자의 신뢰를 훼손합니다.

구체적으로, 섹션 2.5.1에서는 애플리케이션이 "공개 API만 사용할 수 있으며" 이를 의도된 목적에 맞게 엄격하게 사용해야 한다고 명시하고 있습니다. 공개되지 않은 내부 시스템 프레임워크나 숨겨진 기능을 사용할 경우 해당 신청은 거부되거나 삭제됩니다. Apple은 앱 안정성을 유지하고, 사용자 개인 정보를 보호하고, 플랫폼 보안을 보장하기 위해 이러한 정책을 시행합니다.

iOS 제한을 우회하거나 승인되지 않은 데이터(설치된 앱 목록 등)를 수집하는 것은 심각한 위반으로, Apple과 보안을 중시하는 사용자 모두에게 심각한 경고 신호를 보냅니다. 이러한 행동으로 인해 앱이 금지되거나 앱 스토어에서 삭제될 수 있으며, 수백만 명의 은행 고객에게 영향을 미칠 수 있습니다.

이 분석에서는 개인 API인 SBSLaunchApplicationWithIdentifier 반환된 오류 코드를 통해 애플리케이션의 존재를 판별하는 사이드 채널로 사용될 수 있으며, 이는 새롭고 탈옥되지 않은 기기의 최신 iOS 버전에서 작동한다는 것을 확인합니다. Apple의 보안 현상금 프로그램에 따르면, 이 취약점을 악용하는 행위는 "사용자가 설치한 애플리케이션을 통한 기기 공격 - 민감한 데이터에 대한 무단 액세스" 범주에 속하며 현상금은 5,000달러입니다.

끝내다

기술 분석에 따르면 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 앱 스토어 정책을 완벽하게 준수하고 뱅킹 앱을 표적으로 하는 위협이 증가하는 상황에서 사용자 및 기업 보안을 우선시합니다.

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
2
즐겨찾기에 추가
1
코멘트