StrandHogg, 안드로이드 제로데이 취약점

악성코드가 정상 앱을 대신해 실행된다

2019.12.3일 Promon은 Android 운영체제에서 새로 발견한 StrandHogg 취약점에 대한 보고서를 발표했다. 이는 안드로이드 10을 포함해 모든 바전의 안드로이드에 해당한다. Promon은 이 취약점을 올 여름에 구글에 알렸지만, 구글은 아직 패치를 내지 않고 있다.

StrandHogg는 이미 실전에 활용되고 있다. BankBot의 변종 등 악성 앱들이 이 취약점을 악용하고 있음이 확인됐으며, 체코에서는 은행 계좌의 돈을 도둑맞는 사건이 몇 건 발생했다.

스트랜드호그는 안드로이드 멀티태스킹 기능에 있는 취약점이다. taskAffinity라는 설정이, 아무 앱이나 다른 앱을 사칭(task hijacking)할 수 있도록 허용하고 있어서다. 그림(참1)을 보면 쉽게 알 수 있다.


공격의 표적이 된 정상 앱의 아이콘을 클릭하면, 원래 앱 대신 악성 앱이 실행된다. 악성 활동이 끝나면 다시 정상 앱을 실행시킨다.

이 방식은 악성 앱이 원하는 권한을 쉽게 얻을 수 있다. 사용자는 자신이 평소에 사용하는 앱이 권한을 요청하는 걸로 알기 때문에, 의심 없이 허락할 수 있다. 피싱(phishing)에도 효과적이다. 정상 앱이 로그인이나 기타 정보 입력을 요청하는 것으로 보이기 때문에, 쉽게 속아서 중요한 정보를 입력할 수 있다.

이를 악용하는 데는 루트 권한은 물론, 기타 아무런 권한도 필요치 않다. 표적 앱이 실행 중일 필요도 없고, 심지어 표적 앱이 설치되지 않은 상태에서도 가능하다.

Promon이 제시한 대표적인 악성 행위는 다음과 같다.
마이크나 카메라를 사용해 피해자를 감시한다.
문자 메시지를 보거나 전송한다.
통화 내용을 녹음한다.
로그인 정보를 탈취한다.
사진, 주소록, 폰 로그 등 스마트폰에 있는 모든 파일에 접근한다.
GPS를 이용해 위치를 추적한다.

피해자가 StrandHogg를 통해 해킹당하고 있다는 것을 알아채기는 어렵다. 프로몬에 따르면, 탐지할 수 있는 마땅한 방법이 없다. 몇몇 이상 징후를 나타낼 수는 있지만, 신뢰할 만하지는 못하다. 다음은 몇 가지 예다.

이미 로그인한 앱이나 서비스가 또다시 로그인을 요구한다.
권한 요청 창에 앱 이름이 없다.
불필요한 권한을 요청한다.
유저 인터페이스에 이상한 점이 있다. 맞춤법이나 문법에 오류가 있다거나, 버튼이나 링크가 제대로 작동하지 않는다거나 하는 등.
폰의 뒤로가기 버튼이 제대로 작동하지 않는다.

StrandHogg는 로컬 앱을 통해 악용된다. 즉 해커는 먼저 피해자의 기기에 악성 앱을 설치해야 한다. 발견된 샘플들은 downloader(dropper)에 의해 설치됐다. 다운로더는 Google Play에서 발견됐지만. 악성 앱 자체는 플레이 스토어에서는 발견되지 않았다. 이런 식으로 플레이 스토어가 번번이 뚫리고 있다(관1). 악성 앱이 설치된 후에는 탐지하기 어려우므로, 예방이 유일한 대응 방법이다.


관련 자료
  1. Anubis 악성코드, Google Play에 지속적으로 출현

참고 자료
  1. The StrandHogg vulnerability

댓글

이 블로그의 인기 게시물

엑셀 필터 상태에서 복사와 잘라내기

가정에서도 망 분리를 해보자

잉크젯 프린터 전원은 항상 켜 놓아야 좋다