분석 정보/모바일 분석 정보

구글 플레이 업데이트로 위장한 Antidot

TACHYON & ISARC 2024. 7. 25. 14:52

최근 구글 플레이 업데이트로 위장해 유포되는 악성 안드로이드 앱 Antidot이 발견됐다. 해당 앱을 실행하면 출처를 알 수 없는 앱 설치 옵션의 활성화를 요청하고, 구글 플레이 업데이트로 위장한 추가 앱의 설치를 유도한다. 추가로 설치된 앱은 VNC(Virtual Network Computing)를 직접 구현해 감염된 단말기를 원격으로 제어하며, 오버레이 기술을 이용해 정보를 수집하고 공격자가 운영하는 C&C 서버로 정보를 전송한다.

 

Antidot을 처음 실행하면 [그림 1]과 같이 구글 플레이 업데이트의 설치가 필요하다는 메시지를 띄우고, 출처를 알 수 없는 앱 설치 옵션의 활성화를 요청한다. 사용자가 해당 옵션을 활성화하면 구글 플레이 업데이트로 위장한 추가 앱의 설치가 진행된다.

 

[그림 1] 출처를 알 수 없는 앱 설치 요청

 

설치된 추가 앱은 자동으로 실행되며, 사용자에게 접근성 서비스의 권한 부여 절차를 안내한 후 권한 활성화를 요청한다.

 

[그림 2] 접근성 서비스 권한 요청

 

추가 앱의 데이터는 Antidot 앱 파일의 리소스에 저장돼 있으며, getAssets 함수를 이용해 리소스 데이터를 읽어온다. 그리고, PackageInstaller 클래스로 앱 설치 세션을 생성한 후 리소스에서 읽어온 앱을 설치한다.

 

[그림 3] 추가 앱 설치 코드

 

앱의 설치가 완료되면, startActivity 함수를 이용해 설치된 앱의 Activity를 직접 호출함으로써 앱을 실행한다.

 

[그림 4] 설치된 추가 앱 실행 코드

 

실행된 앱은 내부에 저장된 HTML 코드를 이용해 구글 플레이의 업데이트가 진행되고 있는 것처럼 [그림 5]의 업데이트 진행률 페이지를 띄워 사용자를 속인다.

 

[그림 5] 가짜 업데이트 페이지

 

이후, Antidot는 공격자가 운영하는 C&C 서버와 통신해 감염된 단말기에서 수행할 명령어를 수신하며, 그 중에서 VNC 및 오버레이 공격과 관련된 명령어를 확인할 수 있다. 먼저, 수신한 명령어가 startVnc인 경우, 악성코드는 MediaProjection 클래스를 이용해 감염된 단말기의 화면을 캡처하고 서버로 전송한다.

 

[그림 6] startVnc 명령 실행 코드

 

그리고, 서버는 캡처된 화면에서 수행할 작업과 actionVnc 명령어를 전송한다. 악성코드가 해당 명령어를 수신하면 처음 앱을 실행했을 때 획득한 접근성 서비스 권한을 이용해 터치, 스와이프 및 화면 이동 등의 동작을 수행할 수 있다.

 

[그림 7] actionVnc 코드

 

오버레이 공격을 시작하는 명령어는 setInjections, 이를 수신한 악성코드는 명령어와 같이 전송된 HTML 코드를 Base64로 디코딩한 후, WebView 클래스를 이용해 가짜 페이지를 띄우고 사용자가 정보를 입력하도록 유도한다.

 

[그림 8] 오버레이 코드

 

이외에도 다양한 명령어를 수신해 SMS 전송, 앱 삭제 및 정보 수집 등의 악성 동작을 수행할 수 있지만, 분석 시점에서 C&C 서버와 연결되지 않아 실제 동작은 확인되지 않았다.

 

[그림 9] C&C 서버 연결 결과

 

Antidot 악성 앱은 구글 플레이 업데이트로 위장해 출처를 알 수 없는 앱 설치 기능의 활성화를 요청한 후 추가 앱 설치를 유도하며, 사용자의 단말기에서 민감한 정보를 탈취하므로 주의가 필요하다. 이와 같은 피해를 막기 위해서는 공식 스토어가 아닌 출처가 불분명한 앱의 설치를 지양하고, 주기적으로 백신과 OS를 최신버전으로 업데이트 할 것을 권고한다.