연락처사기,
주소록 탈취의 기술적 실체와 차단법

연락처사기는 악성 앱이 스마트폰 주소록을 통째로 빼내 지인 유포를 무기로 삼는 수법입니다.
이 글은 플랫폼 이야기가 아니라, READ_CONTACTS 권한이 연락처를 어떻게 읽고 서버로 보내는지 그 기술적 실체를 다룹니다.
악성앱 303종을 실제로 분석한 데이터로 유입부터 유포 차단까지 설명합니다.

연락처사기는 악성 앱이 READ_CONTACTS 권한으로 주소록 전체를 빼내 지인 유포를 협박하는 수법입니다. 이미 설치했다면 삭제 전에 어떤 앱이 연락처를 전송했는지부터 확인해야 대응이 가능합니다.

아크링크가 분석한 몸캠피싱 악성앱 303종의 권한 요청 빈도 — 연락처 83%, 저장소 74%, 문자 49%, 문자수신 34%
▲ 아크링크(ARKLINK) 악성앱 303종 분석 — 권한 요청 빈도
몸캠피싱 공격 흐름 6단계: 낯선 접근→영상통화 노출 유도→악성앱 설치→권한 허용→연락처·사진 C2 전송→유포 협박
▲ 아크링크 분석 기반 몸캠피싱 공격 흐름

공식 통계로 본 심각성

경찰청 범죄통계 기준 몸캠피싱 신고는 2015년 102건에서 2019년 1,824건으로 급증했고, 2019년 검거율은 26.2%에 그쳤습니다. 가해자 검거가 어려운 만큼, 피해자의 신속한 초기 대응과 설치된 앱의 전문 분석이 현실적으로 가장 중요합니다. (출처: 경찰청 범죄통계 · 시사위크 보도)

연락처사기 수법과 유입 경로

연락처사기는 특정 앱이나 특정 메신저의 문제가 아니라, 스마트폰에 저장된 주소록 자체를 노리는 공격입니다. 카카오톡·라인·랜덤채팅 등 어떤 경로로 들어오든 마지막 단계는 언제나 같습니다. 정식 앱 마켓을 거치지 않은 설치 파일(APK)을 기기에 심고, 그 앱이 연락처 권한을 얻어내는 것입니다. 유입 경로만 다를 뿐 목적지는 하나, 즉 피해자의 전화번호부입니다.

현장에서 반복적으로 확인되는 유입 경로는 크게 네 가지입니다. 첫째, 택배·청첩장·부고·정부지원금을 사칭한 스미싱 문자의 링크입니다. 둘째, 랜덤채팅이나 소개팅 앱에서 만난 상대가 "여기서 통화하자"며 건네는 별도 앱입니다. 셋째, 몸캠피싱 과정에서 "소리가 안 들린다"며 설치를 요구하는 영상통화용 앱입니다. 넷째, 중고거래·투자·상품권 판매를 가장한 앱입니다. 형태는 달라도 모두 "이 앱을 설치해 달라"는 한 문장으로 수렴합니다.

악성앱 분석으로 드러난 연락처 탈취의 규모

아크링크가 실제로 분석한 악성앱은 303종이며, 확인된 C2(명령·제어) 서버는 269개, 추출된 악성 도메인(IOC)은 490개입니다. 이 앱들이 요청한 권한을 집계하면 '연락처사기'의 목적이 정량적으로 드러납니다.

열 곳 중 여덟 곳 이상이 연락처 권한을 요구한다는 사실은, 이들의 실제 노림수가 주소록을 확보해 지인 유포로 협박하는 데 있음을 보여줍니다.
— 아크링크 악성앱 분석 데이터(2026)

주목할 점은 저장소(사진)와 문자 권한이 연락처 권한과 나란히 높다는 것입니다. 이 조합은 우연이 아닙니다. 연락처로 '누구에게 보낼지'를, 사진·영상으로 '무엇을 보낼지'를, 문자로 '인증번호를 가로챌지'를 확보하려는 설계입니다. 즉 연락처사기는 단독 기능이 아니라 유포 협박을 완성하기 위한 부품으로 짜여 있습니다.

연락처사기를 당하면 실제로 벌어지는 일

피해자가 앱 설치와 권한 허용을 마친 순간, 화면에는 아무 일도 일어나지 않습니다. 정상적인 채팅 화면이나 로딩 화면이 뜰 뿐입니다. 그러나 백그라운드에서는 주소록이 읽혀 외부 서버로 전송됩니다. 대다수 피해자가 "해킹당했다"고 느끼는 이유가 여기에 있습니다. 아무런 조작도 하지 않았는데 상대가 내 지인의 이름과 번호를 알고 있기 때문입니다.

이후 전형적인 협박은 다음 순서로 진행됩니다. 가해자는 피해자에게 실제 저장된 지인 몇 명의 이름과 번호를 그대로 보여줍니다. "엄마 010-1234, 회사 김부장 010-5678, 다 갖고 있다"는 식입니다. 이 캡처 한 장이 "네 전화번호부를 통째로 확보했다"는 증거 역할을 하며, 피해자를 심리적으로 무너뜨립니다. 그다음 "지인 전원에게 영상을 뿌리겠다"거나 "부모·직장에 전화를 돌리겠다"고 압박합니다.

"해킹"이 아니라 "권한 탈취"라는 점이 중요합니다

피해자는 대개 통신사나 메신저 서버가 뚫린 것으로 오해합니다. 그러나 대부분의 연락처사기는 서버 해킹이 아니라, 피해자가 직접 설치한 앱이 정상적인 권한 통로로 주소록을 읽어간 것입니다. 이 구분이 대응의 출발점입니다. 서버 해킹이라면 개인이 할 수 있는 일이 없지만, 특정 앱의 권한 문제라면 그 앱을 특정하고 전송 여부를 확인해 대응 범위를 좁힐 수 있습니다.

또 하나 반드시 짚어야 할 사실은, 협박의 강도와 실제 유포 능력이 항상 일치하지는 않는다는 점입니다. 어떤 앱은 주소록을 완전히 전송해 목록을 확보한 반면, 어떤 경우는 권한만 요청했을 뿐 전송에 실패했거나 일부만 빠져나갔습니다. 가해자는 어느 쪽이든 "다 갖고 있다"고 말합니다. 그래서 말의 세기가 아니라 기술적 사실, 즉 설치한 앱이 실제로 연락처를 보냈는지를 확인하는 것이 핵심입니다.

기술적 실체 — READ_CONTACTS 권한과 주소록 전송

이 글의 핵심입니다. 연락처사기가 어떻게 성립하는지를 안드로이드 권한 구조 수준에서 뜯어보겠습니다. 안드로이드는 권한을 위험도에 따라 나눕니다. 인터넷 접속처럼 사용자 동의 없이 부여되는 '일반 권한'과, 개인정보에 닿기 때문에 사용자가 직접 허용해야 하는 '위험 권한'입니다. 연락처 접근 권한인 READ_CONTACTS는 대표적인 위험(dangerous) 권한입니다.

앱은 먼저 설치 파일 내부의 AndroidManifest.xml에 자신이 쓸 권한을 선언합니다. 그러나 선언만으로는 아무것도 읽지 못합니다. 안드로이드 6.0(마시멜로) 이후부터는 앱이 실행 중에 권한 요청 창을 띄워 사용자가 '허용'을 눌러야만 실제 접근이 열리는 런타임 권한 방식이 적용되기 때문입니다. 즉 그 팝업의 '허용' 버튼이 연락처사기의 결정적 관문입니다.

# AndroidManifest.xml (권한 선언)

<uses-permission android:name="android.permission.READ_CONTACTS"/>

<uses-permission android:name="android.permission.INTERNET"/>

# 런타임: 사용자가 '허용'을 누른 직후

ContactsContract 쿼리 → 이름 + 전화번호 전체 열거

POST https://[C2 서버]/api/addressbook (JSON, 암호화)

사용자가 허용을 누르면 앱은 ContactsContract라는 안드로이드 표준 연락처 데이터베이스에 질의합니다. 여기서 이름, 여러 개의 전화번호, 때로는 이메일과 그룹 정보까지 한 번에 열거할 수 있습니다. 수백 명이든 수천 명이든 반복문 한 바퀴로 전부 뽑아내며, 여기에는 시간이 거의 걸리지 않습니다. 그래서 피해자는 무언가 일어났다는 감각조차 갖기 어렵습니다.

추출된 주소록은 곧바로 네트워크로 전송됩니다. 분석해 보면 /api/addressbook, /uploadContacts, /save 같은 엔드포인트로 JSON 또는 multipart 형식의 데이터가 전송되며, 상당수는 base64 인코딩이나 자체 암호화로 내용을 가려 통신 감시를 회피합니다. 목적지가 바로 C2 서버이고, 아크링크 분석에서 269개의 유니크 C2가 확인된 것도 이 전송 구조를 실제로 추적한 결과입니다.

왜 83%가 하필 연락처 권한인가

분석한 303종 중 253종(83%)이 연락처 읽기 권한을 요구했습니다. 게임이든 유틸리티든 위장한 앱이 굳이 주소록에 손을 뻗는 이유는 단 하나, 그 목록이 협박의 지렛대이기 때문입니다. 여기에 저장소 권한(74%)으로 사진과 영상을, 문자 권한(49%·34%)으로 인증번호를 함께 노리면 '유포 대상 + 유포 소재 + 계정 탈취 수단'이 한 앱 안에서 완성됩니다. 권한 목록만 봐도 앱의 의도를 상당 부분 읽어낼 수 있는 이유입니다.

여기서 반드시 기억할 사실이 있습니다. 안드로이드 6.0 이후 기기에서 '허용'을 누르지 않았다면 정상 경로로는 주소록이 읽히지 않습니다. 반대로 아주 오래된 버전의 안드로이드는 설치 시점에 권한이 일괄 부여되던 구조라 위험이 큽니다. 또한 연락처 권한을 허용하지 않았더라도 문자·저장소 권한을 허용했다면 다른 정보가 빠져나갔을 수 있으므로, 권한 하나만 보고 안심하기보다 설치했던 앱 전체를 점검해야 합니다.

그리고 이 기술 구조가 바로 대응의 열쇠입니다. 협박은 말이지만 전송은 코드입니다. 설치한 앱을 정적으로 디컴파일해 ContactsContract를 읽고 업로드하는 코드와 대상 주소를 찾거나, 동적 분석으로 실행 중 발생하는 네트워크 요청을 포착하면, 주소록이 실제로 전송됐는지 아닌지를 사실로 확정할 수 있습니다. 여기서부터는 추측이 아니라 증거의 영역입니다.

예방과 유포 차단 — 권한 관리 중심

연락처사기의 예방과 차단은 결국 권한을 다루는 문제로 귀결됩니다. 아직 설치하지 않았다면 진입 자체를 막고, 이미 설치했다면 권한을 회수해 추가 유출을 끊는 것이 순서입니다.

설치 전 — 진입 차단

1. 출처를 알 수 없는 앱 설치 차단: 설정 → 보안에서 '알 수 없는 출처/앱 설치'를 꺼두면 문자·채팅으로 받은 APK가 바로 설치되지 않습니다.
2. Play 프로텍트 유지: 구글 플레이 스토어의 앱 검사 기능을 켜 두면 알려진 악성앱 설치를 상당수 걸러냅니다.
3. 마켓 밖 APK 거부: 지인·상대가 파일이나 링크로 앱을 직접 건네면 어떤 이유든 설치하지 않습니다. 정상 통화·영상 서비스는 별도 앱 설치를 강요하지 않습니다.
4. 권한 요청 창 정독: 채팅·게임 앱이 연락처·문자 권한을 요구하면 기능과 무관한 과잉 요청이므로 거부합니다.

설치 후 — 권한 회수와 유출 차단

1. 연락처 권한 즉시 회수: 설정 → 앱 → 해당 앱 → 권한에서 연락처·저장소·문자 접근을 모두 끕니다. 이후 추가 열람을 막을 수 있습니다.
2. 네트워크 차단: 기내 모드나 데이터·와이파이 차단으로 남은 전송을 멈춥니다.
3. 사용하지 않는 앱 권한 자동 초기화: 최신 안드로이드는 오래 쓰지 않은 앱의 권한을 자동으로 회수하는 기능을 제공하므로 켜 둡니다.
4. 삭제는 확인 이후: 앱을 곧바로 지우면 무엇이 전송됐는지 증거가 사라집니다. 패키지 이름과 설치 파일을 먼저 보존합니다.

유포 차단의 원리도 권한 구조에서 나옵니다. 지인 유포 협박은 악성 앱이 확보한 주소록이 있어야 성립하므로, 유포를 막는 첫걸음은 주소록이 실제로 전송됐는지 확인하는 것입니다. 전송 이력이 없다면 가해자에게는 뿌릴 목록 자체가 없는 것이고, 전송이 확인되면 그에 맞춰 가까운 지인에게 미리 상황을 알리는 등 대비를 할 수 있습니다. 어느 경우든 유포 채널과 C2에 대한 기술적 대응은 전문 분석의 영역이며, 이는 앱을 특정하고 전송 여부를 확정한 뒤에야 정밀하게 진행됩니다.

피해 대처와 신고

연락처사기 상황에서 가장 중요한 원칙은 단순합니다. 돈을 보내지 않고, 증거를 남기고, 앱을 확인한 뒤 신고하는 것입니다. 송금은 협박을 끝내지 못하고 오히려 반복 요구를 부릅니다.

  1. 절대 송금 금지 — 한 번 보내면 "마지막"은 오지 않습니다. 지불 능력을 증명하는 신호가 될 뿐입니다.
  2. 증거 보존 — 대화 내용, 가해자 계정·프로필, 전달받은 파일, 그리고 설치한 앱의 이름과 패키지 정보를 캡처·기록합니다.
  3. 권한 회수 후 분석 — 연락처·문자·저장소 권한을 끄고, 삭제 전에 어떤 앱이 무엇을 전송했는지 확인합니다.
  4. 기관 신고 — 아래 실재 창구를 통해 접수합니다.

신고 및 상담 창구 (실재 기관)

경찰 신고: ☎ 112
사이버범죄 신고·상담: ☎ 182 (경찰청 사이버범죄 신고시스템)
불법 촬영물·유포물 삭제 요청: 방송통신심의위원회
디지털성범죄 피해 상담·삭제 지원: 디지털성범죄피해자지원센터 ☎ 02-735-8994

기관 신고와 별개로, 협박에 흔들리지 않으려면 "정말 유포될 수 있는가"라는 질문에 사실로 답할 수 있어야 합니다. 설치한 앱을 분석해 연락처 전송 여부를 확정하면, 막연한 공포가 아니라 확인된 사실 위에서 대응 방향을 정할 수 있습니다. 아크링크는 이 확인 과정을 앱 분석 관점에서 지원합니다.

자주 묻는 질문 (FAQ)

연락처사기, 악성 앱만 지우면 끝나나요?

앱 삭제는 추가 유출을 막는 조치일 뿐, 이미 전송된 주소록을 되돌리지는 못합니다. 그래서 삭제 전에 어떤 앱이 어떤 서버로 연락처를 보냈는지부터 확인해야 합니다. 전송 이력이 없다면 유포에 필요한 지인 목록 자체가 가해자에게 없는 것이고, 전송이 확인되면 그에 맞춰 지인 고지·차단 등 대응 방향을 정할 수 있습니다.

READ_CONTACTS 권한을 허용하지 않았으면 안전한가요?

안드로이드 6.0 이후에는 연락처 접근이 실행 중 사용자가 '허용'을 눌러야만 가능한 위험 권한입니다. 따라서 권한 요청 창에서 허용을 누르지 않았다면 주소록이 정상 경로로는 읽히지 않습니다. 다만 오래된 안드로이드 버전이거나 문자·저장소 등 다른 권한을 허용했다면 별도 정보가 유출됐을 수 있으므로, 설치했던 앱은 점검하는 것이 안전합니다.

주소록이 이미 넘어갔는지 어떻게 확인하나요?

설치한 앱을 정적·동적으로 분석해 연락처를 읽어 서버로 올리는 코드와 업로드 대상(C2) 주소를 찾으면 실제 전송 여부를 확인할 수 있습니다. 앱을 지우기 전에 패키지 이름과 설치 파일을 보존해 두면 분석 정확도가 높아집니다. 협박 문구의 세기가 아니라 이 기술적 확인이 대응의 기준이 됩니다.

지인에게 정말로 유포될 가능성이 있나요?

지인 유포 협박은 악성 앱이 빼낸 연락처가 있어야 실행됩니다. 즉 유포 가능성은 주소록이 실제로 전송됐는지에 달려 있습니다. 전송이 확인되면 현실적 위협이 되지만, 목록 확보 여부와 무관하게 금전을 보내면 요구가 반복되므로 송금이 아니라 증거 보존과 전문 분석으로 대응해야 합니다.

설치한 앱이 연락처를 빼갔는지 확인하세요

연락처사기 의심 앱이 실제로 주소록을 전송했는지, 앱 분석으로 확인할 수 있습니다.

내 앱 검색하기    아크링크 상담    분석 요청하기

이 수법에 쓰인 악성앱, 우리가 직접 분석했습니다

주식회사 아크링크 Deep-Coding 보안연구소는 몸캠피싱·영상통화사기에 실제 사용된 악성앱을 리버스 엔지니어링으로 분석합니다. 관련 분석 사례: LOVESM (260317) · Killer-1-Maui · Chinso · Q · GalleryVault Pro

▸ 악성앱 308종 전체 분석 데이터베이스 보기