몸캠피싱 유인하는 5가지 악성앱 분석
몸캠(Body cam)과 피싱(Phishing)의 합성어인 몸캠피싱이 기승을 부리고 있다. 몸캠피싱은 공격자가 사이버 공간에서 남성들의 성적 호기심을 자극해 음란 행위를 하게 한 뒤, 이를 촬영해 유포하겠다고 협박하여 돈을 갈취하는 범죄를 일컫는다. 몸캠피싱을 수행하기 위해 공격자는 피해자들에게 악성앱을 설치하도록 유도한다. 이 글에서는 몸캠피싱에 이용되는 악성앱의 유포 동향 및 대표적인 5가지 악성앱의 특징을 살펴본다.
몸캠피싱의 주요 수법은 공격자가 SNS, 메신저 등으로 피해자에게 접근해 나체로 음란한 화상 채팅(몸캠)을 하자며 유혹한다. 이에 응한 피해자는 화상 채팅을 시작하고 공격자는 화상 채팅 중 피해자의 모습을 녹화한다. 이후 촬영한 동영상을 피해자의 지인들에게 보낼 것이라고 협박하며 동영상을 지우고 싶다면 돈을 보낼 것을 요구한다.
여기서 중요한 부분은 공격자가 어떤 방법으로 피해자 지인들의 연락처 정보를 알아내느냐는 것이다. 공격자는 목적을 달성하기 위해 악성앱을 사용한다. 공격자는 영상 품질 문제, 다른 앱으로 채팅 유도, 본인 사진 공유 등의 다양한 핑계를 들어 피해자가 악성앱을 설치하도록 유도한다. 악성앱이 실행되면 피해자의 핸드폰에 있는 모든 연락처 정보가 공격자에게 전송된다. 몸캠피싱 악성앱들은 유형별로 기능이 조금씩은 다르지만 공통적으로 핸드폰에서 연락처 정보를 수집해 공격자에게 전송하는 기능을 가지고 있다. 피해자의 연락처를 획득해 협박하는 것이 몸캠피싱 범죄의 필수 조건이기 때문이다.
몸캠피싱 악성앱 동향
[그림 1] 2013년 2Q ~ 2020년 1Q까지 접수된 몸캠피싱 악성앱 유형 및 건수
[그림 1]은 2013년부터 2020년 현재까지 안랩에 접수된 몸캠피싱 악성앱에 대한 통계 자료이다. 이 자료에서 볼 수 있듯이 몸캠피싱 관련 악성앱은 2013년 2분기부터 접수되기 시작했으며, 유형별로 편차는 있지만 과거부터 지금까지 관련 악성앱이 꾸준히 접수되고 있음을 확인할 수 있다. 특이점은 2017년까지 감소세가 이어지다 최근에 다시 증가세로 돌아섰다는 사실이다. 최근에는 인포스틸러(Android-Trojan/Infostealer)와 SMS스틸러(Android-Trojan/SMSstealer) 유형이 주를 이루고 있다. 또한 2019년 4분기부터는 제이와이스틸러(Android-Trojan/Jystealer) 유형이 새롭게 발견되었다.
[그림 2] 2019년 3월 ~ 2020년 5월까지 V3 Mobile Security에서 탐지된 몸캠피싱 악성앱 탐지 횟수
[그림 2]는 2019년 3월부터 2020년 5월까지 V3 Mobile Security에서 실제 수집된 몸캠피싱 악성앱 탐지 횟수에 대한 통계 자료이다. 탐지 횟수도 [그림 1]의 접수 통계와 유사한 추세로 증가하고 있음을 확인할 수 있다.
몸캠피싱 악성앱 유형별 특징
피비스틸러(Android-Trojan/Pbstealer)
2013년 처음 발견된 피비스틸러(Android-Trojan/Pbstealer)는 2014년 증가세가 정점을 찍고 계속 감소하는 추세지만 지금까지도 꾸준히 발견되고 있다. 이 악성코드는 미디어 플레이어 아이콘, 음란한 사진, 메신저 아이콘을 도용하여 유포된다. 이는 대부분의 몸캠피싱 악성앱들이 공유하는 외형적인 특징이다.
[그림 3] 피비스틸러(Android-Trojan/Pbstealer) 최초 실행 화면
이 악성앱은 최초 실행 시 [그림 3]과 같이 삭제를 어렵게 하기 위해 관리자 권한을 요청한다. 이후 “죄송합니다. 긴급서버점검 중입니다.”라는 메시지 창을 띄우며 백그라운드에서는 [그림 4]와 같이 단말기의 연락처 정보를 탈취한 뒤 HTTP 통신을 이용해 C&C(Command & Control) 서버로 전송한다. 그 외 수신한 SMS에 대해서 동일한 C&C 서버로 전송하는 기능이 있다.
[그림 4] C&C 서버로 연락처 정보 전송
부자(Android-Trojan/Buza)
[그림 5] 부자(Android-Trojan/Buza) 아이콘
2014년 처음 발견된 안드로이드용 트로이목마형 악성코드 부자(Android-Trojan/Buza)도 다른 몸캠피싱 악성앱과 같이 메신저, 사진 등의 아이콘을 도용하고 있음을 알 수 있다([그림 5] 참고). 다만 앞서 살펴본 피비스틸러(Android-Trojan/Pbstealer)보다는 다양한 악성 기능을 가지고 있다.
[그림 6] 부자(Android-Trojan/Buza) 최초 실행 화면
최초 실행 시 [그림 6]과 같이 서버로 연결 중인 것처럼 위장하지만 5초 뒤 연결에 실패했다는 메시지와 함께 창을 종료시킨다. 실제로는 백그라운드로 다음과 같은 악성 행위를 시작한다. 우선 홈 화면에서 바로가기 아이콘을 삭제하는데 악성앱 삭제를 방해하기 위함으로 보인다. 그 이후 단말에서 다양한 개인정보를 탈취한다.
[그림 7] 공격자 이메일로 전송된 피해자의 개인정보 파일
이 악성코드는 전화번호, GPS 위치, 연락처, SMS 수발신 내역, 통화 녹음 파일을 탈취하여 파일로 저장한 뒤 [그림 7]과 같이 이메일을 이용해 공격자에게 전송한다. 이때 아이디와 패스워드는 DEX 파일에 하드코딩되어 있다. 사용되는 이메일은 지메일(Gmail), 163, 네이버 등 다양한 서비스를 사용하는 것으로 확인된다.
SMS스틸러(Android-Trojan/SMSstealer)
2013년에 최초 발견된 SMS스틸러(Android-Trojan/SMSstealer)는 2014년부터 2018년까지 가장 많이 수집된 몸캠피싱 악성앱 유형이다. 가장 오랫동안 유포된 만큼 여러가지 변형이 발견되었는데 기능적으로는 비슷하지만 코드를 은닉하거나, C&C로 정보를 전송하는 방법에는 차이가 있다.
[사례 1] 첫번째 사례는 최초 실행 시 바로 종료된다. 하지만 백그라운드로 [그림 8]과 같이 연락처 정보와 단말기에 연동된 이메일 계정을 탈취하여 HTTP 통신을 이용해 C&C 서버로 전송하는 기능을 가지고 있다.
[그림 8] C&C로 연락처, 이메일 정보 전송
[사례 2] 두번째 사례도 최초 실행 시 바로 종료된다. 마찬가지로 백그라운드로 [그림 9]와 같이 연락처 정보를 탈취해 파일로 저장한 뒤 SCP 프로토콜을 이용해 C&C 서버로 파일을 업로드한다. 이때 C&C 정보는 어셋(asset) 폴더의 텍스트 파일에 하드코딩되어 있다.
[그림 9] C&C 서버로 연락처 정보 전송
[사례 3] 세번째 사례는 최초 실행 시 [그림 10]과 같이 “모든 권한을 허용 하셔야 이용이 가능합니다.” 라는 화면과 함께 악성 행위에 필요한 권한을 요청하고 [그림 11]과 같이 백그라운드로 SMS와 전화 수발신 내역, 연락처, 단말기에 있는 모든 사진 및 동영상을 C&C로 전송한다.
[그림 10] SMS스틸러(Android-Trojan/SMSstealer) 최초 실행 화면
[그림 11] C&C 서버로 연락처, SMS, 통화 기록, 사진, 동영상 전송
SMS 스틸러는 다른 몸캠피싱에서는 볼 수 없는 특징인 사진과 동영상을 수집하는 기능을 갖고 있다. 이는 피해자의 사진이나 동영상을 이용해 더 효과적으로 피해자를 협박하기 위함으로 보인다.
[그림 12] 텐센트 패커(Tencent packer)를 이용한 소스코드 은닉(좌) / 언팩(unpack)된 원본 소스코드(우)
또한 [그림 12]와 같이 텐센트 패커를 이용해 분석 및 안티바이러스 진단을 회피하려는 시도도 확인되었으며, 이러한 점도 다른 몸캠피싱 악성앱에서는 볼 수 없었던 특징이다.
인포스틸러(Android-Trojan/Infostealer)
2018년에 최초 발견된 인포스틸러(Android-Trojan/Infostealer)는 2019년부터 현재까지 가장 많이 수집되고 있는 몸캠피싱 악성앱 유형이다.
[그림 13] 인포스틸러(Android-Trojan/Infostealer) 최초 실행 화면
이 악성앱은 최초 실행 시 [그림 13]과 같이 악성 행위에 필요한 권한(SMS, 연락처, 전화 기록 접근)을 요청한다. 이후 화면에는 “알 수 없는 오류로 앱을 종료합니다.”라는 문구를 띄운 후 백그라운드에서 [그림 14]와 같이 SMS 수발신 내역, 연락처, GPS 위치 정보를 탈취한 뒤 공격자의 API 서버로 전송한다.
[그림 14] C&C 서버로 탈취한 개인정보 전송
제와이스틸러(Android-Trojan/Jystealer)
2019년에 처음 발견된 유형인 제이와이(Android-Trojan/Jystealer)는 [그림 15]와 같이 공격자가 운영하는 웹사이트를 통해 유포되고 있는 몸캠피싱 악성앱이다.
[그림 15] 공격자가 몸캠피싱 앱 유포에 사용하는 웹페이지
주목할 점은 안드로이드 뿐만 아니라 iOS도 타깃으로 하고 있다는 점(Cross-Platform)이다. 과거에도 iOS를 타겟팅한 몸캠피싱 시도는 있었다. 하지만 과거에는 단순히 아이클라우드 계정 정보를 탈취하려는 시도였던 반면 최근에는 IPA 파일 포맷의 악성앱 배포가 이루어지고 있다.
[그림 16] 제와이스틸러(Android-Trojan/Jystealer) 최초 실행 화면
최초 실행 시 [그림 16]과 같이 아무런 화면도 표시되지 않지만 [그림 17]과 같이 백그라운드에서 연락처 정보와 단말기 운영 체제(안드로이드 또는 iOS) 정보를 탈취하여 C&C 서버로 전송하는 기능을 가지고 있다. IPA 악성앱에도 같은 연락처 탈취 기능이 확인된다.
[그림 17] 연락처를 탈취하는 안드로이드 APK 소스코드(상) / iOS IPA 소스코드(하)
결론
지금까지 5가지 유형의 몸캠피싱 악성앱을 살펴보았다. 정리해보면 [표 1]과 같다. 몸캠피싱 악성앱들은 연락처 탈취라는 공통적인 기능과 메신저, 사진, 플레이어를 사칭한다는 공통점이 있지만 각 유형별로 기능적인 특징이 다른 것을 확인할 수 있다.
연락처 탈취라는 목적이 명확한 만큼 몸캠피싱 악성앱이 2013년 최초 발견된 이후 지금까지 큰 기능적인 변화는 없었다. 하지만 분석을 회피하기 위해 코드를 숨기려는 모습, iOS 환경의 악성앱 등장 같은 모습은 최근에 발견된 기능 외적인 특징이다.
악성앱은 설치 후 실행만 해도 피해를 당하기 때문에 모르는 사람으로부터 받은 의심스러운 메시지나 파일은 몸캠피싱 피해로 이어질 수 있다는 경각심을 항상 가지고 있어야 한다. 또한 혹시 악성앱을 다운로드 받더라도 피해를 막기 위해 백신 및 운영체제를 항상 최신 버전으로 유지하는 습관을 가지는 것이 좋다.
IOC(Indicator Of Compromise)
앞서 언급된 5가지 유형의 몸캠피싱 악성앱에 대한 IOC는 다음과 같다.
Android-Trojan/Pbstealer
- cd907e0c5a8337222edc8a3cbc68bbfaa09a3af838a150a449b13725d754e7a5
- e693c9c344f4df993f51ea87957f7afada1b76b46fc78af0ebe4882585d94f92
Android-Trojan/Buza
- 7b5c44ccc12fd94899ed7ad023e2f480e74d72863d608e1296f4c12efd129776
- c95df8449a03f3f41f70df6403cad74d8a760dee09f07c80022035ffadacef96
Android-Trojan/Infostealer
- 11c367495b998ab0ea1b18d3bdbfc500a7a2360aad01ab5ea289124997425a02
- 472b3eb63aeb0caa09742dfeee48ee17adb43a5f48d73e8f39453208ce328f14
- ccf9d2207bd6afc2742a05b48decf48570d1d9fa329cbe0631835d93ce99b729
Android-Trojan/SMSstealer
- ecdadad6807bf24830130c7536ffb1f527ddd150deacf837d2dbbd3f59528c78 (case1)
- aa7feb305be138fdd6549ca26e3811ae2e03ab0407c5f73d0fb909090c184389 (case1)
- ae36ab742b33755ea8f1a09eac4ff2ca7ecdb8b0702168564b125f67da94e62b (case2)
- 20c2b93f72994f324beb91a7065fbfff5e3d0c41f8b79a69e66441aeee964009 (case2)
- e5d78cd4f3db87074e2fe8e4fa50829bfb514def4436e85273ecddf002ae2bfd (case3)
- c4c128e52773bc388689f652315cc30fb358ca13f1fac0f1d777f100fea9ca79 (case3)
- c80393d0d5be270b90f4fcc505872a3cf81607bd9106baa6fb9c614d45804057 (case3/packed)
Android-Trojan/Jystealer
- 2e4cb2826b760db0defcb9f30d9768cf627470c54f8341fbc6f9bb67fbab731d
- 78de42ba008b42fbda892444d8358b87dc4557b9638c50f3a6f1c92d981eb4f7 (IPA)
- AhnLab엔진개발팀 이신엽 주임연구원