This post is also available in: English (영어) 简体中文 (중국어 간체) 繁體中文 (중국어 번체) Français (불어) 日本語 (일어)

팔로알토 네트웍스 Unit 42가 구글 안드로이드 플랫폼에 심각한 피해를 입히는 새로운 취약점에 대한 상세 정보를 발표했다. 이 취약점에 대한 보안 패치는 2017년 9월 안드로이드 보안 게시판에서 확인할 수 있다. 이 새로운 취약점은 가장 최신 버전인 Android 8.0 Oreo를 제외한 이전 모든 버전에 영향을 미친다. 이 글에 설명된 일부 벡터를 익스플로잇하는 악성 코드가 있기는 하지만, 팔로알토 네트웍스 Unit 42는 현재로서는 이 특정 취약점에 대한 실제 공격 사례는 아직 발견하지 못했다. Android 8.0이 비교적 최신 버전이라는 점을 감안하면, 거의 모든 안드로이드 사용자들이 지금 당장 업데이트를 적용하여 이 취약점에 대응해야 한다고 볼 수 있다.

Unit 42가 발견한 이 취약점은 이미 알려진 공격 유형인 안드로이드 플랫폼 ‘오버레이 공격(overlay attack)’을 쉽게 만들어 준다. 오버레이 공격은 사용자 안드로이드 기기에 악성 소프트웨어를 설치하는 데 주로 사용된다.  또한 악성 소프트웨어가 기기 통제권을 장악하는 데에도 사용될 수 있다. 최악의 공격 시나리오는 이 취약점을 악용하여 스마트폰을 사용 불가능한 “벽돌(brick) 상태로 만들거나, 랜섬웨어나 인포메이션 스틸러(information stealer) 같은 멀웨어를 설치하는 것이다. 간단히 말해 이 취약점은 기기 제어권 탈취, 기기 잠금, 정보 유출 등에 악용할 수 있다.

오버레이 공격은 악성 앱 위에 가짜 창을 띄우는(“오버레이”하는)  공격이다. 사용자가 화면에 나타난 가짜 창을 클릭하면, 실제로는 밑에 깔린 악성 앱을 클릭하게 된다. 그림 1에 나와있는 것과 같이, 사용자가 오버레이된 가짜 창에서 패치 인스톨을 클릭하면 실제로는 Porn Droid 멀웨어에 전체 관리자 권한이 부여되는 식이다.

Eila_toast

그림 1: 관리자 권한을 요청하는 멀웨어 위에 오버레이된 가짜 패치 설치 프로그램

오버레이 공격은 이와 같은 방식으로 사용자 몰래 기기에 멀웨어를 설치한다. 또한 멀웨어에 기기 전체에 대한 관리자 권한을 부여할 수도 있다.

오버레이 공격은 또한 사라지지 않는 창들을 띄워 기기를 DoS(denial-of-service) 상태로 만드는 데 사용되기도 한다. 이것은 모바일 기기 랜섬웨어 공격에서 공격자가 사용하는 방식이다.

물론 단일 공격에서 다음의 세가지 오버레이 공격을 모두 사용할 수도 있다.

  1. 사용자를 속여 기기에 멀웨어 설치.
  2. 사용자를 속여 멀웨어에 기기 전체 관리자 권한 부여.
  3. 오버레이 공격을 사용하여 기기를 잠금 상태로 만들고 랜섬머니를 위한 인질로 포획.

오버레이 공격은 자체는 새로운 것이 아니며, 이전에도 언급된 바 있다. 하지만 IEEE Security & Privacy 보고서에 따르면, 여태까지는 악성 앱이 오버레이 공격을 성공시키려면 다음과 같은 두 가지 까다로운 조건을 충족시켜야 하는 것으로 알려져 있었다.

  1. 사용자가 팝업 경고창을 가장 상위에 띄우는 옵션을 승인하도록 요청해야 함.
  2. 악성 앱을 구글 플레이(Google Play)에 등록해야 함.

이러한 두 가지 난관이 공격의 걸림돌로 작용하는 까닭에, 여태까지는 오버레이 공격이 심각한 위협으로 간주되지 않았다.

그러나 Unit 42의 최근 조사에서 이 두 조건을 만족시키지 않아도 오버레이 공격을 실행할 수 있는 방법이 있는 것으로 확인되었다. Unit 42는 이 새로운 취약점을 활용하게 되면 악성 앱이 기기에 인스톨만 되어도 오버레이 공격이 가능하다는 사실을 알아냈다. 이는 특히 구글 플레이 이외의 웹 사이트 및 앱스토어의 악성 앱이 오버레이 공격을 수행할 수 있음을 의미한다. 구글 플레이 이외의 웹 사이트와 앱스토어에서 배포되는 앱들이 전세계 안드로이드 멀웨어의 주요 소스임을 명심해야 한다.

문제의 취약점은 안드로이드의 “토스트(Toast)” 기능에 있다. 토스트 기능이란 스크린 위에 알림 창을 마치 토스트처럼 팝업시키는 것이다. 토스트 기능은 실행 중인 다른 앱들 위로 메시지나 알림을 표시하는 데 주로 사용된다.

안드로이드의 다른 윈도우 종류들과 달리, 토스트는 승인을 요청하지 않는다. 따라서 이전에 오버레이 공격을 가로막았던 장애물이 없어지는 것이다. 또한 스크린 전체를 오버레이하는 토스트 창을 만드는 것이 가능하기 때문에, 공격자가 토스트 기능을 사용하여 일반 앱과 기능적으로 동일하게 보이는 창을 만들 수 있는 것이다.

이러한 최신 조사 결과에 비춰볼 때, 오버레이 공격의 위험성이 매우 심각하다 할 수 있다. 다행이 안드로이드 최신 버전은 이러한 공격으로부터 안전하다. 그러나 대부분의 안드로이드 사용자들이 공격에 취약한 구버전을 사용하고 있다. 따라서 8.0 이하 버전을 사용하는 안드로이드 사용자들은 반드시 업데이트를 실행해야 한다. 패치 및 업데이트 관련 정보는 해당 이동통신사나 기기 제조사에서 확인할 수 있다.

물론 악성 앱을 방어하는 가장 좋은 방법은 안드로이드 보안팀이 악성 앱을 차단하고 걸러내는 구글 플레이를 통해서만 안드로이드 앱을 다운로드하는 것이다.