악성 앱은 스마트폰 사용자에게 재앙과도 같습니다. iOS와 Android 중 어느 진영이든, 멀웨어에 감염된 앱이 기분 좋은 하루를 보장하지 못한다는 점에는 모두 동의할 것입니다. Google Play 스토어가 수많은 악성 앱으로 가득 차 있다는 사실은 부정할 수 없지만, 오랫동안 안전하다고 여겨졌던 Apple App Store 역시 더 이상 성역이 아닙니다.
그렇다면 멀웨어 유포자들은 왜 여러분의 스마트폰에 감염된 앱을 심으려 할까요? 이유는 아주 간단합니다. 바로 돈과 데이터입니다. 세상에는 악의적인 요소 없이 배포되는 앱도 무수히 많은데, 이들은 어떻게 감염을 피하고, 애초에 멀웨어는 어떤 경로로 앱에 들어가게 되는 걸까요?
곳곳에 만연한 감염된 앱
모바일 애플리케이션에 감염된 멀웨어의 확산 규모를 측정하는 것은 쉽지 않습니다. 끊임없이 변화하는 시장 환경에서 명확한 그림을 그려내기란 어려운 일이죠. 하지만 한 가지는 분명합니다. 어떤 모바일 운영체제도 안전지대가 아니라는 점입니다. Android 사용자는 최근 HummingWhale, Judy, Xavier 공격을 겪었고, iOS 사용자 역시 XcodeGhost와 맞서야 했습니다.

2014년 ANDRUBIS 프로젝트의 일환으로 발표된 연구[PDF]에서는 100만 개(정확히는 1,034,999개)의 Android 앱을 분석했습니다. 조사 대상 앱은 비공식 마켓, 토렌트, 불법 복제 앱을 유통하는 사이트, 그리고 Google Play 스토어 등 다양한 경로에서 수집되었습니다.
그 결과, Google Play 스토어에서 샘플링한 125,602개의 앱 중 1.6%, 즉 2,009개가 악성으로 판명되었습니다.
안타깝게도 App Store의 악성 앱 관련 데이터는 드물게 공개됩니다. iOS 기기에서 발생한 악성 앱 사례가 여러 차례 문서화되긴 했지만, Android에 비하면 현저히 적은 수준입니다. 이는 iOS의 주요 강점이기도 하죠. 두 가지 대조적인 수치를 살펴보겠습니다. Pulse Secure의 2015년 모바일 위협 보고서에 따르면 전체 모바일 멀웨어의 97%가 Android용으로 작성되었으며, F-Secure의 2017년 사이버 보안 현황 보고서[PDF]는 이 수치를 99%로 끌어올립니다. 반면 2013년 미국 국토안보부(DHS)는 모바일 멀웨어 중 단 0.7%만이 iOS용이라고 추산했습니다[PDF].
두 대표 모바일 운영체제의 운명이 이토록 극명하게 갈리는 셈입니다.
앱은 어떻게 감염되는가
앱을 감염시키는 주체는 누구라고 생각하시나요? 개발자? 범죄 조직? 악의적인 개인? 혹은 정부일까요? 사실 어느 정도는 모두 맞습니다.

가장 눈에 띄는 경우는 악덕 개발자입니다. 악성 기능을 갖춘 앱을 직접 설계해 Play 스토어(또는 유사한 마켓)에 올리는 개인이죠. 다행히 이런 사람은 많지 않습니다.
그 이유는 아마 하나일 겁니다. 앱을 개발하고 출시하고 사용자층을 형성한 뒤에야 악성 코드를 심는 데 드는 노력이 너무나 크다는 것입니다. 앱이 광고 클릭이나 데이터 탈취로 실질적인 수익을 낼 만큼 인기를 얻을 즈음이면, 악성 개발자는 이미 정상적인 광고 수익만으로도 충분히 벌고 있을 가능성이 높습니다.
훨씬 더 흔한 방식은 기존 앱에 악성 코드를 삽입한 후 재배포하는 것입니다. 이 과정에는 여러 가지 기법이 사용됩니다.
멀버타이징(Malvertising)
멀버타이징은 21세기의 고질적인 문제입니다. 원리는 간단합니다. 공식 채널을 통해 악성 광고가 게재되는 것이죠. 정상적인 앱을 통해 악성 공격이 들어올 거라고 예상하는 사용자가 없기 때문에, 이는 사용자를 기습하는 효과를 냅니다.
Android 멀버타이징의 대표적인 사례는 Svpeng 뱅킹 트로이목마입니다. 이 트로이목마는 주로 Android용 Chrome 사용자를 겨냥한 감염된 Google AdSense 광고를 통해 설치되었습니다. 멀버타이징의 무서운 점은 광고를 클릭하지 않아도 감염될 수 있다는 사실입니다. 광고를 보기만 해도 충분합니다.
앱 재배포(Application Republishing)
공식 앱 스토어에서 다운로드한 정상 앱에 멀웨어를 심은 뒤, 원래 이름 그대로 수많은 앱 스토어(합법적이든 아니든)에 재등록하는 방식입니다.
앱 재배포의 핵심 특징은 앱 이름의 미세한 변형입니다. Microsoft의 공식 릴리스인 Microsoft Word 대신 Micr0soft W0rd처럼 말이죠. 물론 형편없는 예시지만, 요점은 충분히 전달될 겁니다.
Android 랜섬웨어인 Charger가 이 전술을 사용했으며, 멀버타이징 멀웨어인 Skinner 역시 다른 전술과 함께 이 방식을 활용했습니다.
앱 매각(Sale of App)
때때로 정상적인 앱 개발자가 자신의 소중한 앱을 판매하기도 합니다. 앱과 함께 기존 사용자들도 넘어가며, 신뢰받는 업데이트를 푸시할 기회도 생깁니다.
아직까지 이 공격 방식의 문서화된 사례는 없습니다. 하지만 인기 있는 앱 개발자가 인수 제안을 받는 일은 드문 일이 아닙니다. 비슷한 일은 Chrome 확장 프로그램에서도 벌어집니다. 사용자 데이터 접근 권한을 가진 인기 확장 프로그램과 수천 명의 사용자는 그야말로 금광입니다. 자동 쿠폰 확장 프로그램 Honey의 개발자는 악의적인 제안을 거절했습니다.
Amit Agarwal은 완전히 다른 경험을 했습니다. 그는 자신의 Chrome 확장 프로그램을 알 수 없는 개인에게 판매했는데, 이후 업데이트(이제 그의 손을 떠난 상태)에서 "확장 프로그램에 광고가 통합"되는 것을 발견했습니다. 그의 말로는 단 한 시간 만에 만든 작품이 광고 주입의 도구가 되어버린 것입니다.
Apple과 Google은 도움이 될까?
가장 크고 인기 있는 앱 저장소의 운영자로서, 기술 거대 기업들은 사용자를 보호할 책임이 있습니다. 대체로 그 의무를 다하고 있죠. 악성 앱이 자사 스토어에 만연하면 사용자에게도, 회사 평판에도 해가 되기 때문입니다. 하지만 그중에서도 한 회사가 선두를 달리고 있습니다.
Apple
iOS 사용자를 악성 앱으로부터 보호하는 데 있어 Apple은 단연 앞서 있습니다. App Store에 앱을 만들고 업로드하는 과정은 더 복잡하며, 스토어에 등록되기 전에 여러 검증과 승인 절차를 거쳐야 합니다. 또한 iOS 앱은 상대적으로 적은 수의 기기와 좁은 범위의 OS 버전만 지원하면 되므로, 품질 기준이 일반적으로 Android보다 높습니다.
Android
Google은 Play 스토어의 악성 앱 수를 줄이기 위해 많은 노력을 기울여 왔습니다. 평판이 위태로워지자 Google은 Play Protect, 즉 "모바일 기기를 위한 안전 담요"를 도입했습니다. Play Protect는 기기를 적극적으로 스캔하여 악성 앱을 찾아냅니다. 나아가 Play 스토어 자체를 지속적으로 스캔하여 악성 앱을 발견하면 해당 개발자를 정지시키고 문제의 앱을 삭제합니다.
탐지 회피
Google과 Apple이 우리 기기를 멀웨어 없이 유지하기 위해 진력하는 동안, 멀웨어 제작자들은 탐지를 회피하려 합니다. 짜증 나는 일이지만 이해할 만하죠.
공격자가 악성 코드를 숨기는 대표적인 방법은 다음과 같습니다:
- 설치 후에 악성 코드를 다운로드한다.
- '정상' 코드 사이에 악성 코드를 난독화하여 숨긴다.
- 페이로드를 다운로드하거나 실행하기 전에 시간 지연을 두도록 앱에 지시한다.
- 외부 소스(예: 멀버타이징)를 통한 전달에 의존한다.
- 악성 앱을 다른 매체 속에 숨긴다.
보시다시피, 악성 앱이나 앱 내부의 악성 코드를 사용자는 물론 다운로드된 앱 스토어로부터도 숨기는 방법은 무수히 많습니다.
모바일 멀웨어를 피하는 방법
지금까지 살펴본 것처럼, 악성 코드가 앱에 침투할 수 있는 경로는 상당히 많습니다. 게다가 악의적인 행위자들은 악성 코드가 여러분의 스마트폰에 배포될 때까지 이를 숨겨둘 여러 방법을 가지고 있습니다.
그렇다면 어떻게 악성 앱 다운로드를 피할 수 있을까요?
- 공식 앱 스토어에서만 앱을 다운로드하세요...
- ...그리고 서드파티 스토어는 피하세요.
- 공식 또는 신뢰할 수 있는 개발자의 앱인지 확인하세요.
- 앱 리뷰를 읽어보세요. 필요한 정보를 얻을 수 있습니다.
- 앱 검증 도구를 항상 켜두세요.
- 무료 앱 제안에 현혹되지 마세요.
- 휴대폰을 항상 최신 상태로 업데이트하세요!
특히 Android 기기를 사용한다면 세상에는 수많은 악성 앱이 존재합니다. 하지만 위협을 제대로 이해하고 위의 간단한 수칙만 지킨다면, 여러분과 여러분의 기기는 건강하게 유지될 것입니다.
모바일 멀웨어를 경험해 보셨나요? 어떤 변종을 만났는지, 스마트폰에 무슨 일이 있었는지, Android였는지 iOS였는지 아래 댓글로 알려주세요!