
안드로이드용 앱을 다운로드할 때는 Google Play만 이용하는 것이 상식입니다. 출처를 알 수 없는 웹사이트에서 내려받은 앱에는 어떤 악성코드가 숨어 있을지 아무도 알 수 없기 때문입니다. 그래서 Google Play는 안전하고 믿을 만한 앱 다운로드처로 자리 잡아 왔습니다. 하지만 유감스럽게도 가장 좋은 다운로드 경로라 해도 결코 완벽하지는 않습니다!
최근 FalseGuide라 불리는 안드로이드 악성코드가 무려 200만 대에 달하는 안드로이드 스마트폰을 감염시킨 사실이 밝혀졌습니다. 과연 어떤 방식으로 이런 일이 가능했으며, 이것이 앱 생태계 전반에 어떤 의미를 가질까요?
감염 경로

'FalseGuide'라는 이름 자체가 배포 방식을 짐작하게 합니다. 공격자들은 안드로이드 스토어에서 인기 있는 카테고리인 게임 공략 앱을 악용했습니다. 게이머들은 게임이 어렵거나 숨겨진 메커니즘이 있을 때마다 공략법을 찾곤 합니다. 온라인에서 공략을 검색하는 것은 새로운 일이 아니지만, 앱 형태로 제공되면서 훨씬 더 편리한 인터랙티브 방식으로 바뀌었습니다. 덕분에 전 세계 게이머들이 자신이 플레이하는 게임을 클리어하기 위해 Google Play에서 공략 앱을 찾고 있었던 것이죠.
악성코드 개발자들은 FalseGuide를 게임 공략 앱으로 위장해 몰래 유포했습니다. 최대한 널리 퍼지도록 테라리아(Terraria), 월드 오브 탱크(World of Tanks) 같은 인기 게임의 공략 앱으로 포장했습니다. 업로드된 후에는 수천 명의 사용자가 공략 앱을 다운로드하기만을 기다리면 됐습니다. 게임 공략 앱 세계에서 뭔가 잘못됐다는 첫 신호는 2017년 4월 24일에 나타났지만, 악성코드가 심어진 것으로 확인된 가장 오래된 앱은 2017년 2월 14일에 Google Play에 올라왔습니다. 즉, 악성코드는 약 두 달 동안 아무런 제재 없이 기기 사이를 자유롭게 돌아다닌 셈입니다.
악성코드 유포 관점에서 보면 Google Play에 진입하는 것 자체가 작업을 매우 쉽게 만들었습니다. 인기 게임 공략 앱에 악성코드를 숨겨 놓으니 사람들은 "Google Play에 올라와 있으니 100% 안전하다"고 믿었습니다. Play 스토어가 절대 안전하다는 잘못된 믿음 속에 사용자들은 별생각 없이 앱을 다운로드했고, 그 결과 스스로 기기에 FalseGuide를 감염시키고 말았습니다. 이렇게 해서 FalseGuide는 단 2개월 만에 200만 대의 기기에 도달할 수 있었습니다.
악성코드가 발견된 앱의 전체 목록은 Check Point의 공식 보고서 하단에서 확인할 수 있습니다.
FalseGuide는 무엇을 하는가?
모든 악성코드에는 목적이 있습니다. 정보 탈취부터 단순한 시스템 파괴까지, 모든 악성 공격에는 그 이면에 동기가 존재합니다. 200만 대의 기기를 장악한 FalseGuide의 목표는 무엇일까요?
FalseGuide의 작동 방식은 다음과 같습니다:
- 사용자가 감염된 게임 공략 앱을 찾아 스마트폰에 다운로드를 시작합니다. 앱은 자신의 역할을 수행하기 위해 '기기 관리자(device admin)' 권한 설치를 요청하고, 사용자가 이를 승인하면 앱이 설치됩니다.
- 기기 관리자 권한을 얻은 FalseGuide는 사용자가 삭제할 수 없도록 자신을 설정합니다.
- 이후 FalseGuide는 사용자 모르게 'Firebase Cloud Messaging'이라는 서비스에 등록합니다. 이 서비스는 원래 앱 개발자가 자신의 앱에 메시지와 알림을 보낼 수 있도록 만들어진 정상적인 기능입니다. FalseGuide는 자신이 실린 앱과 같은 이름의 토픽(topic)을 찾아 구독한 뒤 추가 지시를 기다립니다.
- Firebase 토픽을 통해 FalseGuide는 악성코드 개발자로부터 명령을 받아 악성 코드를 설치하고 실행할 수 있습니다.
그 결과는 삭제조차 불가능한 악성코드로, 배포자가 내리는 명령을 듣고 그대로 실행합니다. 이 명령은 스마트폰에 애드웨어를 설치하는 것부터 특정 서버에 DDoS 공격을 가하는 것까지 다양합니다. 요컨대 FalseGuide는 악성코드 배포자에게 사용자의 기기를 마음대로 부릴 자유를 쥐여 주는 것입니다.
어떻게 심사를 통과했나?

FalseGuide 같은 앱의 문제점은 무해한 앱으로 위장한 뒤, 설치된 후에야 악성화된다는 점입니다. 이를 위해 기본 앱에는 악성 코드를 전혀 넣지 않습니다. 덕분에 '운반체 앱'은 Google Play의 악성코드 검사를 아무 문제 없이 통과합니다.
기기에 오랫동안 설치된 후에야 Firebase를 통해 지시를 받습니다. 이 지시를 통해 앱은 작동에 필요한 악성 코드를 전달받게 됩니다. 이러한 방식 덕분에 FalseGuide 같은 봇넷은 철저한 악성코드 탐지망을 슬쩍 빠져나가면서 Google Play에 자리를 잡을 수 있었습니다.
앞으로의 대비책
구글의 눈앞에서 봇넷이 구축된 지금, 사용자로서 우리는 이런 공격을 피하기 위해 무엇을 할 수 있을까요?
첫째, 휴대폰이 FalseGuide에 감염됐다고 의심된다면 신뢰할 수 있는 안드로이드 백신 앱을 내려받아 검사를 실행하세요. 무엇이 안전하고 무엇이 위험한지 확실하지 않다면 추천 백신 앱 목록을 참고해 보는 것도 좋습니다.

감염 여부와 관계없이, 이번 사건은 안드로이드 기기를 사용할 때 각별히 주의해야 한다는 점을 일깨워 줍니다. Google Play가 가장 안전한 앱 다운로드처인 것은 분명하지만 결코 완벽하지 않습니다! 항상 '기기 권한(Device Permissions)' 팝업을 꼼꼼히 읽고, 앱이 불필요한 곳까지 접근 권한을 요구하지 않는지 확인하세요. 단순한 기능의 앱이 휴대폰의 중요 영역에 대한 권한을 요구한다면 설치하지 마세요.
잘못된 안전감에 속은 사용자들
200만 대가 넘는 기기가 감염된 FalseGuide 사건은, 공식 앱 스토어에 올라와 있다는 이유만으로 앱을 100% 안전하다고 믿어서는 안 된다는 교훈을 남깁니다. 이제 FalseGuide의 작동 원리, 확산 경로, 그리고 유사한 공격을 피하는 방법까지 모두 알게 되셨습니다.
공식 앱 스토어에서 내려받은 앱 때문에 악성코드에 감염된 적이 있으신가요? 댓글로 여러분의 경험을 들려주세요!