내 스마트폰에 악성코드가 있다면 어떨까요? 기기를 루팅하거나 탈옥하지 않았다면, 답은 아마 '아니오'일 겁니다. 스마트폰 바이러스는 분명 실재하지만, 공식 앱 스토어들이 상당히 훌륭하게 걸러주고 있기 때문입니다.
물론 어떤 검수 과정도 완벽하지는 않습니다. 실제로 몇몇 악성 앱이 필터를 통과한 사례도 있었는데요, 이 부분은 아래에서 자세히 다뤄보겠습니다.
다만 공식 스토어, 즉 iOS라면 앱 스토어(App Store), 안드로이드라면 구글 플레이(Google Play)만 이용한다면 감염 가능성은 극히 낮습니다. 두 플랫폼 모두 엄격한 심사 절차를 거치기 때문인데요. 이번 글에서는 이러한 필터링 시스템이 어떻게 작동하는지, 그리고 어떤 악성코드가 통과했는지, 마지막으로 스스로를 보호하는 방법까지 살펴보겠습니다.
앱 스토어 필터는 어떻게 작동할까?
두 대표 모바일 플랫폼 모두 앱을 스토어에 등록하기 전에 심사를 거칩니다. 흥미롭게도 한쪽 플랫폼에게는 비교적 최근에 도입된 변화입니다.
구글의 안드로이드 마켓(현 구글 플레이)은 한때 개방성으로 유명했습니다. 별도의 철저한 관리 없이 다양한 앱이 스토어에 올라왔고, 악성코드 같은 문제는 사용자들의 신고로 적발되면 그제야 내려가는 방식이었습니다. 이후 소프트웨어 기반 악성코드 필터가 추가되어 모든 제출 앱을 자동으로 검사하게 되었죠.
그리고 2014년 말 무렵, 구글은 한 단계 더 나아갔습니다. 바로 사람이 직접 모든 앱을 검토하는 인간 리뷰어 제도를 도입한 것입니다.
구글의 인간 리뷰어들은 스토어에 등록되는 모든 앱을 수동으로 검토합니다. 덕분에 구글의 앱 심사 속도는 상당히 빠른 편입니다. 보통 몇 시간 내에 승인되며, 길어야 며칠 정도 걸립니다.
반면 애플은 그렇게 빠르지 않습니다. 앱 스토어 심사에는 가끔 일주일까지 걸리기도 하죠. 애플은 스토어 출시 당시부터 인간 리뷰어가 모든 앱을 검토해왔기 때문에, 개발자는 앱을 제출한 후 스토어에 등장하기까지 오랜 시간을 기다려야 합니다. 악성코드가 포함된 소프트웨어는 물론이고, 수많은 앱이 이 과정에서 반려됩니다.
이 심사가 너무 오래 걸린다고 불평하는 개발자들이 많지만, 그 결과 수백만 개에 달하는 앱 스토어의 앱 중 악성코드를 포함한 경우는 극소수에 불과합니다.
결국 두 시스템 모두 여러분이 공식 스토어에서 설치하는 앱은 자동화된 악성코드 필터와 인간 리뷰어의 조합으로 검증된 셈입니다. 이 모든 장벽을 뚫고 유해한 것이 통과할 확률은 낮지만, 전혀 불가능한 것은 아닙니다. 실제로 양쪽 플랫폼 모두에서 악성 앱이 통과한 사례가 있었습니다.
필터를 뚫고 나온 악성코드 사례들
흔한 통념과 달리, 아이폰도 악성코드에 감염될 수 있습니다. 물론 대부분 탈옥된 기기에서 발생하지만, 애플의 엄격하기로 유명한 심사 과정조차 이론적으로 뚫릴 수 있다는 것이 입증된 바 있습니다. 조지아텍(Georgia Tech) 연구팀이 악성코드를 앱에 숨겨 심사를 통과시키는 데 성공했는데, 애플의 검수 과정은 이를 잡아내지 못했습니다. 다행히 연구자들이었기에 직접 앱을 내렸지만, 실제 사기꾼이라면 굳이 그럴 필요가 없겠죠.
실제 광고웨어(adware)도 구글 플레이의 심사를 통과한 적이 있습니다. 얼마 전 꽤 인기 있는 카드 게임 '두락(Durak)'에 악성코드가 포함된 것이 발견되었습니다. 이 악성코드는 한동안 잠복 상태를 유지하다가(아마 이 때문에 검수에서 잡히지 않았겠죠), 서드파티 앱 스토어의 팝업 광고를 띄우기 시작했습니다. 만약 사용자가 그 서드파티 스토어를 설치했다면 더 큰 문제에 직면했을 겁니다.
구글은 이후 두락을 플레이 스토어에서 삭제했지만, 비슷한 앱이 미래에 또 통과할 가능성은 남아 있습니다. 의심스러운 앱이 있다면 안드로이드 기기의 악성코드 감염 여부를 확인하는 절차를 따라해 보세요.
당황하지 말되, 경계는 늦추지 말 것
주목할 점은, 위 두 사례 모두 결국 해당 앱이 발견되어 각 스토어에서 제거되었다는 사실입니다. 이런 의미에서 사용자는 '두 번째 심사관' 역할을 합니다. 악성코드를 발견하고 신고함으로써 애플과 구글에 문제 앱을 삭제할 기회를 주는 것이죠.
따라서 이런 악성 앱을 피하고 싶다면, 아래 방법들을 지키는 것만으로도 큰 도움이 됩니다.
- 공식 앱 스토어만 이용하세요. 안드로이드는 구글 플레이, iOS는 앱 스토어입니다.
- 리뷰가 거의 없거나 최근에 등록된 앱은 피하세요. 단, 해당 제작사를 확실히 신뢰할 수 있다면 예외입니다.
- 잘 모르는 앱은 검색해 보세요. 신뢰할 수 있는 사이트의 서드파티 리뷰를 확인하는 습관이 중요합니다.
앱 스토어 밖의 위협
공식 앱 스토어를 통한 감염이 가능하긴 하지만, 모바일 사용자에게 가장 큰 위협은 따로 있습니다. 예를 들어 대부분의 안드로이드 악성코드는 서드파티 앱 스토어(즉, 구글 플레이가 아닌 곳)나 불법 사이트에서 유포되는 크랙 앱에서 비롯됩니다.
게다가 악성코드가 반드시 앱을 통해 들어와야 하는 것도 아닙니다. 대표적인 예가 '와이어러커(WireLurker)'입니다. 이 악성코드는 OS X 컴퓨터를 거쳐 USB로 연결된 iOS 기기를 감염시키며, 기기가 탈옥되었는지 여부와 무관하게 작동합니다. 보안 회사 팔로알토 네트워크스(Palo Alto Networks)의 설명을 인용하면 다음과 같습니다.
WireLurker는 감염된 OS X 컴퓨터에 USB로 연결된 모든 iOS 기기를 감시하며, 탈옥 여부와 관계없이 해당 기기에 다운로드된 서드파티 애플리케이션이나 자동 생성된 악성 애플리케이션을 설치합니다.
결국 모바일 기기를 깨끗하게 유지하려면 데스크톱 기기도 함께 관리해야 합니다. 맥 사용자라고 안심할 수 없다는 뜻이죠. 맥에 악성코드가 있는지 확인하는 방법도 미리 알아두는 것이 좋습니다.
정리: 패닉 대신 현명한 습관을
솔직히 저는 폐쇄된 생태계, 이른바 '울타리 정원(walled garden)' 방식의 앱 배포를 크게 선호하지는 않습니다. 하지만 인정할 수밖에 없네요. 악성코드로부터의 보호라는 점에서는 이 방식이 매우 강력한 논거가 됩니다. 여러분의 생각은 어떤지 댓글로 알려주세요. 제 생각이 완전히 틀렸다고 지적해 주셔도 환영입니다.