악성 앱과 결합한 보이스 피싱, 눈 뜨고 당한 이유 있다?
보이스 피싱이라고 하면 흔히 공격자가 특정 기관(검찰, 경찰, 금융기관 등)을 사칭해 전화를 걸어 금전적 이익을 취하는 행위를 떠올리기 쉽다. 하지만 사용자가 특정 기관으로 전화를 걸 때도 보이스 피싱이 발생 할 수 있다. 혹은 지인 또는 기관에서 걸려온 것처럼 보이는 전화가 사실은 공격자의 전화일 수도 있다.
설마 싶겠지만 악성 앱을 이용한 보이스 피싱 범죄에서는 실제로 가능한 이야기다. 모르는 번호로 걸려온 전화를 받는 것이 보이스 피싱의 시작이라는 기존의 상식과는 완전히 다른 것이다. 악성 앱에 의해 연출된 상식 밖의 상황에 피해자들은 속수무책으로 당할 수 밖에 없다.
이 글에서는 안랩 시큐리티 대응센터(ASEC)에서 5년 여간 추적, 분석한 모바일 위협 정보를 토대로 보이스 피싱 관련 악성 앱의 변화를 자세히 알아본다.
스마트폰에서 악성 앱을 이용한 보이스 피싱 사례는 2018년에 본격적인 이슈가 되긴 했으나 2014년부터 지속적으로 발생하고 있었다.
[그림 1]은 실제로 수집된 보이스 피싱 악성 앱의 증가 추이를 보여주고 있다. 최초로 확인된 보이스 피싱 앱인 Android-Trojan/Kaishi는 2014년부터 2016년까지 꾸준히 발생한 것을 확인할 수 있다.
[그림 1] 2014년 ~ 2018년 수집된 보이스 피싱 악성 앱 증가 추이
그러다 갑자기 2017년에 4배 이상 증가하더니 2018년에 또다시 4배 이상 증가했다. 뿐만 아니라 2018년에는 Android-Trojan/Spov와 보이스 피싱 기능이 추가된 Android-Dropper/PhishingApp의 변형까지 새롭게 등장했다.
[그림 2] 2014년 ~ 2018년 수집된 금융정보 탈취 악성 앱
[그림 2]는 공인인증서 및 보안카드 등의 금융정보를 탈취하는 유형의 악성 앱인 Android-Trojan/Narut와 Android-Trojan/Bankun에 대한 통계 자료이다. [그림 1]과는 대조적으로 2014년부터 2018년까지 동일한 기간 동안 금융정보 탈취 악성 앱은 감소하는 것을 확인할 수 있다. 2018년 집계된 금융 정보 탈취 악성 앱은 3,438건으로 2014년의 9,880건과 비교해 약 65% 감소했다.
공인인증서 의무화 폐지 및 간편 금융서비스(송금 및 결제)의 활성화 등의 요인으로 공인인증서의 사용처가 줄어들면서 공격자 그룹이 보이스피싱을 이용한 수익 모델을 확대하는 것으로 추정된다.
보이스 피싱 악성 앱의 연도별 변화 과정
보이스 피싱 악성 앱은 보이스 피싱과 관련된 기능 외에도 SMS, 연락처 목록 탈취 등 사용자 몰래 동작하는 기능들을 많이 포함하고 있다. 하지만 이 글에서는 보이스 피싱과 관련된 기능에 집중하여 최초로 보이스 피싱앱이 발견된 2014년부터 현재까지 보이스 피싱 악성 앱이 어떻게 발전해 왔는지, 어떤 전략으로 사용자를 속여왔는지 자세히 알아보도록 한다.
■ 2014년 ~ 2015년의 변화
[그림 3] 2014년 ~2015년에 수집된 카이시 아이콘
2014년 상반기에 최초로 발견된 카이시(Android-Trojan/Kaishi)는 주로 금융 기관 및 메신저 앱을 사칭한 형태로 유포되기 시작했다. 보이스 피싱 관련 주요 기능은 악성 앱에 설정된 특정 번호에 대한 발신 전화를 공격자의 전화번호로 리다이렉션하는 것이었다.
[그림 4] setResultData 메소드를 이용한 발신 전화 리다이렉트
이 악성 앱은 [그림 4]와 같이 발신 전화에 대한 인텐트(Intent)를 가로채 setResultData 메소드로 전화번호 데이터를 조작하여 공격자에게 연결되도록 했다.
[그림 5] 실제 통화 화면(좌)과 악성 앱에 의한 가짜 통화 화면(우)
그러나 통화 화면에 표시되는 전화번호는 조작할 수 없기 때문에 가짜 통화 화면을 덮어 씌우는 전략을 사용했다. [그림 5]와 같이 통화 화면에 원래 발신 대상 번호로 꾸민 가짜 통화 화면을 덮어 씌워 실제로 발신 중인 공격자의 전화 번호를 숨겼다. 또한 통화 기록을 조작하여 공격자와 통화한 기록은 삭제하고 피해자가 원래 의도한 통화 기록을 삽입하여 정상적으로 통화가 이루어진 것처럼 완벽하게 연출했다.
악성 앱에 설정된 리다이렉션 대상 번호는 1,000여 개에 달하는 숫자로 국내 대부분의 금융기관, 수사기관의 전화번호가 포함되어 있다. 공격자에 의해 악성 앱이 설치된 피해자가 특정 기관의 번호로 전화를 걸면 공격자에게 전화가 연결되고, 공격자는 기관인 척 피해자를 속여 송금을 유도할 수 있다. 기관으로 전화를 건 피해자는 연결된 전화가 공격자라고 의심하기 어렵기 때문에 공격자의 의도대로 사기당할 가능성이 크다.
2014년 하반기에는 카이시(Android-Trojan/Kaishi)의 새로운 변형들이 발견되었다. 이 변형들에는 보이스 피싱 기능 관련 3가지 변경 사항이 존재했다. 첫째, 리다이렉션 할 공격자의 전화번호를 소스코드에 하드코딩하여 배포하던 방식에서 C&C를 통해 동적으로 업데이트할 수 있도록 변경되었다. 이는 통신사의 보이스 피싱 번호 차단에 대한 우회 기법으로 보인다.
[그림 6] 특정 전화번호에 대한 수신 전화 차단
둘째, [그림 6]과 같이 C&C에서 지정한 특정 전화번호에서 걸려오는 전화를 차단하는 기능이 추가되었다. 정확한 의도는 알 수 없지만 수사기관이나 금융기관에서 오는 전화를 차단해 보이스 피싱에 대한 피해자의 대응을 막기 위한 목적으로 추정된다.
[그림 7] 통신사, 단말기 제조사 별 통화 화면에 덮어쓴 이미지들 (우측부터 SK, LG, 삼성 순)
셋째, 과거에는 [그림 5]와 같이 모든 환경에서 동일한 가짜 화면을 사용했던 반면, 가짜 화면 생성시 사용자의 환경과 유사한 화면을 사용하도록 변경했다. 즉 SK, LG, 삼성 등 통신사 및 제조사에 따라 단말기를 구별하여 실제 통화 화면과 더 유사한 가짜 화면을 만든 것이다. [그림 7]은 단말기에 따른 가짜 통화 화면이다. 평소 통화 화면과 최대한 비슷하게 꾸며 피해자의 의심을 피했다.
■ 2016년 ~ 2017년의 변화 과정
[그림 8] 2016년 ~ 2017년에 수집된 카이시 아이콘
2016년 하반기에는 수신 전화에 대해서 가짜 통화 화면을 덮어씌워 피해자를 속이는 새로운 변형이 발견되었다. 이 기능을 이용하면 [그림 9]과 같이 공격자의 전화번호로 피해자에게 전화를 걸어도 피해자의 단말기에는 특정 기관의 번호와 이름이 발신자 정보로 표시된다.
가짜 통화 화면을 표시할 공격자의 전화번호는 C&C와의 통신을 통해 업데이트된다.
[그림 9] 실제 수신 통화 화면(좌), 가짜 수신 통화 화면(우)
발신 전화에 대해 가짜 화면을 덮어씌우던 기존 수법과 마찬가지로 사용자의 실제 환경과 유사한 화면을 만들어 피해자가 의심하기 어렵게 만들었다. 실제로 공격자가 경찰청, 금융감독원을 사칭해 피해자에게 전화를 걸어 협박한 뒤 피해자가 공격자의 계좌로 돈을 입금한 사례가 언론에 보도된 바 있다.
■ 2018년의 주요 변화
[그림 10] 2018년에 수집된 카이시 아이콘
2018년 하반기에는 발신 전화 리다이렉션시 대상 별 통화연결음을 재생하는 변형이 새롭게 발견되었다. [그림 10]과 같이 설정된 60여개의 기관 별로 9 ~ 15초 사이의 통화연결음을 재생하여 실제 기관에 전화를 건 것과 똑같은 상황을 연출했다. 이는 피해자가 보이스 피싱 상황을 눈치채기 어렵게 만들기 위함이다.
그리고 2018년 하반기에는 카이시(Android-Trojan/Kaishi) 외에도 새로운 보이스 피싱 악성 앱 유형인 스포브(Android-Trojan/Spov)와 보이스 피싱 기능이 추가된 피싱앱(Android-Dropper/PhishingApp) 변형이 발견되기도 했다.
[그림 11] 발신 전화 리다이렉션 대상에 따라 가짜 통화연결음 재생
스포브(Android-Trojan/Spov)는 카이시(Android-Trojan/Kaishi)와 같은 방법으로 발신 전화를 리다이렉션 한다. 하지만 연결되는 공격자의 전화번호를 은닉하는 방법에 차이가 있는데 가짜 통화 화면을 덮어씌우는 방법 대신 연락처를 미리 등록하는 방법을 사용한다.
[그림 13] 연락처 등록으로 공격자 번호를 은닉하는 스포브
피해자가 발신한 대상의 이름으로 공격자의 전화번호를 연락처에 등록하는 것이다. 대부분의 단말기에서 연락처에 등록된 이름이 화면에 크게 표시되는 점을 이용해 [그림 13]과 같이 마치 피해자가 의도한 번호로 전화가 발신되는 것처럼 연출했다. 통화 화면을 자세히 보지 않으면 눈치채기 어려울 뿐 아니라 통화 종료 시 연락처를 삭제하고 통화 기록도 조작하기 때문에 피해자가 이상하다고 느끼기 어렵다.
[그림 14] 보이스 피싱 기능이 추가된 피싱앱 변형 아이콘
보이스 피싱 기능이 추가된 피싱앱(Android-Dropper/PhishingApp)도 앞서 설명한 보이스 피싱앱들과 마찬가지로 발신 전화를 리다이렉션하고 수신 전화의 발신자를 속인다. 하지만 카이시(Android-Trojan/Kaishi), 스포브(Android-Trojan/Spov)와는 전혀 다른 방법을 사용한다.
기존의 악성 앱들은 발신 전화의 전화번호 정보를 조작해 리다이렉션 하는 반면 피싱앱(Android-Dropper/PhishingApp)은 피해자가 발신한 전화를 끊어버리고 공격자의 번호로 다시 전화를 발신한다. 이 과정은 매우 짧은 시간 동안에 일어나기 때문에 피해자는 전화가 끊어지고 다시 발신된 사실을 눈치채기가 어렵다.
[그림 15] 기본 전화 앱 변경 요청
공격자의 번호를 은닉하는 방법 또한 다른 악성 앱들과는 다르다. 가짜 창을 덮어 씌우는게 아니라 [그림 15]와 같이 악성 앱을 기본 전화 앱으로 등록하는 방법을 사용한다. 피해자가 기본 전화 앱 변경을 수락하면 이후 전화 발신이나 수신 시에 악성 앱이 꾸민 [그림 16]과 같은 창이 나타난다
지금까지 보이스 피싱앱이 발전해온 과정을 살펴봤다. 공격자들은 공격자 전화번호 은닉 방법과 발신 전화 리다이렉션 방법에 대해 계속 연구하고 발전시켜 나가는 것으로 보인다. 보이스 피싱앱은 계속 증가하는 추세이므로 앞으로 더욱 더 교묘하게 사용자를 속이는 보이스 피싱앱이 나타날 가능성이 높다.
[그림 16] 악성 앱이 꾸민 전화 통화 화면(우측부터 수신 전화, 발신 전화 순)
사용자들은 피해를 예방하기 위해 운영체제 및 백신 업데이트를 생활화하고 출처를 알 수 없는 수상한 앱 설치를 피해야 한다. 그리고 금전 관련 전화 통화 시 수상한 점은 없는지 재차 확인하는 노력이 필요하다.
- AhnLab분석연구팀 이신엽주임연구원