안드로이드 스마트폰을 표적으로 하는 새로운 악성코드 '에이전트 스미스(Agent Smith)'가 전 세계 약 2,500만 대의 기기를 감염시킨 것으로 확인되었으며, 이 중 1,500만 대는 인도에 집중되어 있습니다. 에이전트 스미스는 안드로이드 운영체제를 공격해 사용자가 설치한 정상 앱을 몰래 악성 버전으로 교체하지만, 사용자에게는 어떠한 알림도 보내지 않습니다.
이번 글에서는 에이전트 스미스를 발견하는 방법, 대처 방법, 그리고 안드로이드 악성코드로부터 기기를 보호하는 요령까지 모두 정리했습니다.
에이전트 스미스 악성코드란 무엇인가?
에이전트 스미스는 안드로이드의 여러 취약점을 연달아 악용해 기존에 설치된 정상 앱을 악성 모조품으로 은밀히 교체하는 모듈형(modular) 악성코드입니다. 흥미로운 점은 이 악성코드가 데이터를 훔치지 않는다는 것입니다. 대신 교체된 앱이 사용자에게 수많은 광고를 띄우거나, 이미 게재된 광고 비용을 몰래 기기에서 인출해 갑니다.
'에이전트 스미스'라는 이름은 영화 《매트릭스》 시리즈에 등장하는, 바이러스처럼 복제되는 악역에서 따온 것입니다. Check Point 리서치 팀은 이 악성코드의 확산 방식이 영화 속 에이전트 스미스의 행동과 유사하다고 분석했습니다.
Check Point Software Technologies의 모바일 위협 탐지 연구 책임자 조나단 시모노비치(Jonathan Shimonovich)는 블로그 글에서 다음과 같이 말했습니다. "이 악성코드는 사용자가 설치한 앱을 은밀하게 공격하기 때문에 일반 안드로이드 사용자가 혼자 힘으로 대응하기 매우 어렵습니다. 고급 위협 차단과 위협 인텔리전스를 결합하고, 디지털 자산을 지키기 위한 '위생 우선(hygiene first)' 접근법을 채택하는 것이 에이전트 스미스 같은 침입형 모바일 악성코드 공격에 대한 최선의 방어책입니다."
또한 에이전트 스미스는 놀라운 규모로 확산되었습니다. 인도가 가장 큰 피해를 입었으며, Check Point 조사에 따르면 약 1,500만 대의 기기가 감염된 것으로 나타났습니다. 그다음으로는 방글라데시가 약 250만 대로 많았고, 미국에서는 30만 건 이상, 영국에서는 약 13만 7천 건의 감염이 확인되었습니다.
에이전트 스미스 악성코드의 작동 원리
Check Point Research는 에이전트 스미스가 중국 내 안드로이드 개발자들이 해외 시장에 앱을 출시하고 홍보하도록 돕던 중국 기업에서 유래했다고 분석합니다.
악성코드는 처음 서드파티 앱 스토어인 '9Apps'를 통해 등장했습니다. 이 앱 스토어는 인도, 아랍권, 인도네시아 사용자를 주요 타깃으로 삼고 있어, 해당 지역에 감염이 집중된 배경이 되었습니다. (서드파티 앱 스토어에서 안드로이드 앱을 내려받지 말아야 할 좋은 이유이기도 합니다.)
에이전트 스미스는 다음의 세 단계를 거쳐 작동합니다.
- 드로퍼(Dropper) : 피해자가 스스로 악성코드를 설치하도록 유인합니다. 초기 드로퍼에는 암호화된 악성 파일이 들어 있으며, 대체로 제대로 작동하지 않는 사진 유틸리티, 게임, 성인용 앱의 형태를 띱니다.
- 복호화 및 설치 : 드로퍼가 악성 파일을 복호화해 설치합니다. 이때 악성코드는 'Google Updater', 'Google Update for U', 'com.google.vending' 등을 사칭해 자신의 활동을 위장합니다.
- 교체 : 핵심 악성 모듈이 설치된 앱 목록을 생성하고, 목록이 '사냥 대상(prey list)'과 일치하면 해당 앱에 악성 광고 모듈을 심어 마치 일반적인 앱 업데이트처럼 원본을 교체합니다.
사냥 대상 목록에는 WhatsApp, Opera, SwiftKey, Flipkart, Truecaller 등이 포함되어 있습니다.
특히 주목할 점은 에이전트 스미스가 'Janus', 'Bundle', 'Man-in-the-Disk' 등 여러 안드로이드 취약점을 하나로 묶어 활용한다는 사실입니다. 이 조합은 3단계 감염 프로세스를 가능하게 하며, 악성코드 유포자가 광고 기반으로 수익을 창출하는 봇넷(botnet)을 구축할 수 있게 합니다. Check Point 리서치 팀은 에이전트 스미스를 "이 취약점들을 통합해 무기화한 최초의 캠페인으로 보인다"며, "극악무도한 수준"이라고 평가했습니다.
에이전트 스미스 악성코드의 모듈 구성
에이전트 스미스는 모듈형 구조로 대상을 감염시키며, 다음 모듈들로 이루어져 있습니다.
- Loader(로더)
- Core(코어)
- Boot(부트)
- Patch(패치)
- AdSDK
- Updater(업데이터)
드로퍼는 정상 앱을 재포장(repackaging)한 것으로, 여기에 악성 로더까지 함께 담겨 있습니다.
로더는 코어(Core) 모듈을 추출해 실행하고, 코어 모듈은 악성코드 명령·제어(C&C) 서버와 통신합니다. C&C 서버가 사냥 대상 목록을 전송하면, 일치하는 앱이 발견될 때마다 악성코드는 취약점을 이용해 부트(Boot) 모듈을 재포장된 앱에 주입합니다.
감염된 앱이 다음에 실행될 때 부트 모듈이 패치(Patch) 모듈을 가동하고, 패치 모듈은 AdSDK 모듈을 통해 광고를 삽입해 수익 창출을 시작합니다.
또 한 가지 특징적인 점은 에이전트 스미스가 앱 하나에서 멈추지 않는다는 것입니다. 사냥 대상 목록과 일치하는 앱이 여러 개 발견되면 전부 악성 버전으로 교체하며, 재포장된 앱들에 악성 업데이트 패치를 계속 배포해 감염 상태를 유지하고 새로운 광고 패키지를 공급합니다.
구글 플레이에서의 에이전트 스미스 앱 삭제 현황
에이전트 스미스의 주요 감염 경로는 서드파티 앱 스토어 9Apps였지만, 구글 플레이 역시 완전히 안전하지는 않았습니다. Check Point는 구글 플레이에서 에이전트 스미스 관련 "악성이지만 잠복 상태"인 파일을 포함한 앱 11개를 발견했습니다. 구글 플레이 버전은 확산 방식이 약간 달랐지만, 최종 목표는 동일했습니다.
Check Point가 해당 악성 앱들을 구글에 신고했고, 이후 모두 구글 플레이 스토어에서 삭제되었습니다.
안드로이드에서 에이전트 스미스 발견 및 제거하는 방법
에이전트 스미스는 비교적 쉽게 알아차릴 수 있습니다. 자주 쓰던 앱이 갑자기 과도한 양의 광고를 띄우기 시작한다면 무언가 잘못됐다는 확실한 신호입니다. 또한 이 악성코드가 띄우는 광고는 종료하기 어렵거나 불가능한 경우가 많아 또 다른 징후가 됩니다. 다만 에이전트 스미스는 광고 외에는 거의 소리 없이 활동하기 때문에, 앱의 미묘한 변화를 알아채기란 생각보다 쉽지 않습니다.
참고로 앱에서 갑자기 대량의 광고가 표시된다고 해서 반드시 에이전트 스미스에 감염된 것은 아닙니다. 수익을 늘리려고 광고를 띄우는 다른 안드로이드 악성코드도 있으며, '조커(Joker)' 같은 다른 종류의 악성코드일 가능성도 있습니다.
이상 징후가 의심된다면 기기에서 백신 또는 안티멀웨어 검사를 실시하는 것이 좋습니다.
먼저 추천하는 도구는 Malwarebytes Security, 즉 검증된 안티멀웨어 도구 말웨어바이츠의 안드로이드 버전입니다. Malwarebytes Security를 내려받아 전체 시스템 검사를 실행하면 악성 앱을 탐지하고 제거할 수 있습니다.
에이전트 스미스나 다른 안드로이드 악성코드가 계속 남아 있다면, 공장 초기화 없이 안드로이드 악성코드를 제거하는 가이드를 참고하길 강력히 권합니다. 해당 가이드에는 추가적인 악성코드 제거 앱과 함께, 데이터를 하나도 삭제하지 않고 기기를 깨끗이 청소하는 단계별 방법이 안내되어 있습니다.