Google Play 최고 매출 순위에 올라 있는 한 데이팅 앱을 분석한 결과 프로필 데이터 구조, 채팅 과금 유도 가능성, 위치·이미지·음성 데이터 노출 위험, 분석 방해 로직 등에서 스캠성 운영이 의심되는 정황을 발견했다. 핵심은 특정 이용자 개인을 지목하는 데 있지 않다. 플랫폼이 실제 이용자와 봇·운영 계정 여부, 과금 방식과 민감정보 처리 범위를 투명하게 공개하는지가 문제다.
-
개요
Google Play 최고 매출 상위권에 올라와 있는 한 데이팅 앱이 눈에 들어왔다. 매출 상위권에 위치한 만큼 상당수의 사용자가 실제로 결제하고 있다는 의미인데, 앱을 설치하고 분석해 보면서 비정상적으로 유사한 프로필, 반복적인 대화 유도, 과금성 채팅 구조, 위치·프로필 데이터 처리 방식에서 의심스러운 정황을 발견했다. Google Play에는 데이트·캐주얼 카테고리로 등록되어 있으며, 동일 개발사 명의로 7개의 유사 데이팅 앱이 등록되어 있었다. 또한 네트워크 통신 및 서버 연결 정보를 확인한 결과, 이들 앱이 서로 독립적으로 운영되는 별개의 서비스가 아니라 공통 API 엔드포인트와 서버 주소를 사용하는 정황을 확인했다.
▲ 그림 1. 분석 대상 앱의 Google Play 등록 화면과 동일 개발사 명의로 등록된 다수의 데이팅 앱
- 안드로이드 앱 정보
| 항목 | 내용 |
| 앱 이름 | ■■■ |
| 개발사 | ■■■ |
| 카테고리 | 데이트 · 캐주얼 |
| 인기 매출 순위 | Google Play 인기 매출 상위권 (분석 시점) |
| Play 스토어 평점 | 3.8 (분석 시점) |
| 동일 개발사 앱 수 | 7개 확인 |
정적 분석(APK 디컴파일) 및 제한된 동적 분석을 통해 통신 구조, 프로필 데이터 구조, 보안 제한 로직, 외부 SDK 사용 흔적을 확인했다.
앱 내부에는 계정, 사용자 목록, 업로드, 차단·팔로우, 공지·팝업 등 여러 기능별 API 경로가 존재했다. 또한 채팅 서버(AMQP 기반)와 외부 광고·분석 SDK 연동 흔적도 확인됐다.
-
상세 분석
1. 분석 방해 및 보호 로직
앱의 주요 Activity에서 FLAG_SECURE 플래그를 설정하여 화면 캡처 및 화면 미러링을 차단하고 있었다. 적용 대상 Activity에는 채팅, 메인, 프로필, 유료 미디어 등이 포함됐다.
▲ 그림 2. FLAG_SECURE 적용 상태 — 화면 미러링 시 검은 화면만 표시됨
이러한 보안 로직은 일반적으로 컨텐츠 보호나 부정 이용 방지를 위한 장치일 수 있다. 그러나 동시에 소비자 피해 분석이나 보안 검증을 어렵게 만드는 요소로도 작동한다.
이에 따라 분석 환경에서 JavaScript 스크립트를 사용해 분석 환경에서 해당 제한을 일시적으로 해제한 뒤, 앱의 화면 흐름과 통신 동작을 확인했다.
'use strict';
Java.perform(function () {
var FLAG_SECURE = 0x2000;
try {
var Window = Java.use('android.view.Window');
Window.setFlags.implementation = function (flags, mask) {
if ((flags & FLAG_SECURE) !== 0 || (mask & FLAG_SECURE) !== 0) {
flags = flags & ~FLAG_SECURE;
mask = mask & ~FLAG_SECURE;
}
this.setFlags(flags, mask);
};
} catch (e) {}
try {
var Window2 = Java.use('android.view.Window');
Window2.addFlags.implementation = function (flags) {
if ((flags & FLAG_SECURE) !== 0) {
flags = flags & ~FLAG_SECURE;
}
this.addFlags(flags);
};
} catch (e) {}
try {
var SurfaceView = Java.use('android.view.SurfaceView');
SurfaceView.setSecure.implementation = function (isSecure) {
this.setSecure(false);
};
} catch (e) {}
});
▲ CODE 1. FLAG_SECURE 무력화 JavaScript 코드
▲ 그림 3. Frida 실행 로그
2. 가입 직후 화면 흐름
분석 환경에서 화면 흐름을 확인한 결과, 신규 계정으로 가입한 직후, 운영 계정으로 의심되는 여러 프로필로부터 메시지가 도착하는 양상이 관찰됐다.
▲ 그림 4. 앱 메인 화면, 앱 내 대화 목록, "나를 열어본" 사용자 목록
3. 프로필/API 분석
프로필에 사용된 일부 프로필 사진이 도용된 것으로 의심되는 정황이 확인됐다.
▲ 그림 5. Profile 01의 앱 내 프로필 화면
앱의 사용자 정보 API 응답을 캡처했다. /account/user/info/{userId} 엔드포인트는 다음과 같은 데이터를 단일 JSON 응답으로 반환했다.
• userId — 사용자 고유 ID
• nickname — 닉네임
• imageUrl — 프로필 이미지 CDN URL
• bgImages — 배경 이미지 URL 배열
• age — 나이
• province / city — 시/도, 구/군
• gender — 성별
• statusMessage — 상태 메시지
• greetingMessage — 인사말 (텍스트 + 음성 URL 포함)
• latitude / longitude — GPS 좌표 (소수점 8자리)
• pin / chatPin — 포인트 관련 수치
• star / ranking — 별점·랭킹
• createdAt — 계정 생성일
• lastLoggedInTime — 마지막 접속 시간
• country / lang — 국가·언어 코드
• selfie / isCelebrity — 셀카 인증·유명인 여부
▲ 그림 6. Profile 01의 API 응답 데이터
앱 내 프로필 정보를 바탕으로 OSINT(공개 출처 정보) 분석을 진행한 결과, ID와 사진, 위치 정보에서 도용 및 조작 정황이 확인됐다. 해당 ID는 해외 성인 라이브 스트리밍 사이트에서도 동일하게 사용되고 있었으며, 프로필 사진은 타인의 Threads 계정에서 무단 도용한 것으로 추정된다. API 응답 값에 포함된 실제 위치 정보가 '서울 남산' 좌표를 가리키고 있는 흔적도 포착됐다.


▲ 그림 7. Profile 01의 OSINT 결과
이는 두 가지의 가능성을 알려주고있다.
- 이미지가 데이팅 앱 프로필에 무단으로 사용됐을 가능성
- 해당 계정 운영자가 여러 플랫폼에서 동일 ID를 사용할 가능성
어느 쪽이든, 데이팅 앱 이용자는 상대방이 실제 사용자인지 확인할 수 없는 구조에 놓이게 된다.
이에 따라 개별 계정의 의심 정황을 넘어 앱 전체에 퍼져 있는 구조적인 패턴을 포착하고자 프로필 API 데이터를 수집 및 분석했다.
4. 프로필 패턴 이상 징후
수집된 샘플에서 다음과 같은 패턴이 관찰됐다.
- 국가·좌표 불일치
| 프로필 설정 국가 | 실제 좌표 위치 | 비고 |
| 일본 (JP) | 동남아 좌표 | 언어 설정도 현지어 |
| 대만 (TW) | 동남아 좌표 | 좌표가 해당 국가와 무관 |
| 한국 (서울 강남) | 경상도 좌표 | 지역 설정과 GPS 좌표 불일치 |
| 베트남 (VN) | 서울 좌표 | 설정 지역과 접속 위치 상이 |
- 한 프로필은 지역을 "일본"으로 설정했지만, 좌표값은 베트남 하노이 인근이었다.
- 또 다른 프로필은 대만으로 표시됐지만 좌표는 동남아시아의 전혀 다른 지역을 가리켰다.
- 국내 프로필에서도 서울 강남구로 설정했지만 실제 좌표는 경상도 지역인 경우가 존재했다.
-
- 대화 유도 패턴
다수의 프로필에서 유사한 대화 유도 문구가 확인됐다.
| "프로필 봤는데 정확히 어디쪽 사시는거에여?" "여기서 실제로 사람 만나봤어요?" "같이 만나고 일상 공유할 남성분 구해요" "여기선 젤 맘에들어서 친해지다가 만나보고싶은데..." "오잉 진짜사람 맞아영?" |
이러한 문구들은 상대방의 응답을 유도하고, 채팅을 지속하게 만드는 전형적인 과금 유도형 패턴이다.
5. 과금 유도 가능성
-
- 포인트 구조
API 응답에서 확인된 과금 관련 필드
| 필드명 | 설명 | 관찰된 값 범위 |
| pin | 보유 포인트 (추정) | 424 ~ 908,582 |
| chatPin | 채팅 관련 포인트 (추정) | 80 ~ 500 |
| star | 별점 | 0 (전원) |
| ranking | 랭킹 | 0 (전원) |
사용자가 대화를 이어갈수록 비용이 발생하는 구조라면, 매력적인 프로필 → 선제적 대화 → 음성 메시지 → 지역 기반 친밀감 형성이 결합될 때 과금을 유도하도록 작동할 가능성이 있다.
-
결론
이번 분석의 핵심은 특정 앱을 단정적으로 사기로 규정하는 데 있지 않다. 문제는 데이팅 앱 안에서 사용자가 상대를 실제 이용자로 오인하기 쉬운 프로필 운영 방식과, 그 과정에서 위치·이미지·음성 등 민감 데이터가 과도하게 노출될 수 있는 구조가 함께 관찰됐다는 점이다.
매력적인 프로필 이미지 : 수집된 프로필 중 일부는 OSINT 분석 결과 외부 SNS나 다른 플랫폼에서 가져온 이미지로 의심됐다. 사용자는 사진을 통해 상대방에 대한 첫인상을 형성하지만, 그 이미지가 실제 계정 소유자를 보여주는지 확인하기는 어려웠다.
음성 메시지 제공 : 다수의 프로필은 인사말에 음성 메시지를 포함하고 있었다. 음성은 텍스트보다 상대가 실제 사람이라는 느낌을 강하게 주기 때문에, 사용자의 경계심을 낮추고 응답 가능성을 높이는 요소로 작용할 수 있다.
위치 정보 불일치 : 프로필 화면에 표시되는 지역과 API 응답에서 반환되는 원시 GPS 좌표가 일치하지 않는 사례가 확인됐다. 화면상으로는 가까운 지역의 이용자처럼 보이지만 실제 좌표는 다른 지역이나 해외를 가리킬 수 있어, 위치 기반 친밀감이 왜곡될 위험이 있다.
선제적 대화 유도 : "정확히 어디 쪽 사시는 거에여?", "진짜 사람 맞아영?"처럼 먼저 질문을 던지거나 호기심을 자극하는 메시지가 반복적으로 관찰됐다. 이런 접근은 사용자가 짧은 답장을 보내도록 만들고, 대화가 이어질수록 포인트 소비 구조와 결합될 수 있다.
과금 유도형 채팅 구조 : 매력적인 이미지, 음성 메시지, 위치 기반 친밀감, 선제적 대화가 결합되면 사용자는 상대를 실제 주변 이용자로 인식한 채 대화를 이어가기 쉽다. 이때 답장에 채팅 포인트가 필요한 구조라면, 의심 프로필 운영 패턴은 직접적인 결제 유도로 이어질 수 있다.
따라서 플랫폼 운영자는 봇·운영 계정 여부, 과금 방식, 위치·음성·이미지 데이터 처리 범위를 투명하게 안내할 필요가 있다. 이용자 역시 먼저 접근하는 프로필, 빠른 친밀감 형성, 포인트 기반 채팅 구조가 결합될 때에는 상대가 실제 이용자인지 신중하게 확인해야 한다.