최근 구글 마켓을 통해 업데이트 되었던 카카오보안플러그인 위장 악성앱에 대한 분석 입니다.
분석일은 6/30일 입니다.
일반적으로 앱 분석을 할 때의 정적/동적 분석 방법으론 분석이 어렵습니다.
네트워크에서의 행위를 파악 하기도 어렵고,
안드로이드 소스코드에서도 악성행위를 찾아내기 어렵습니다.
앱에서 리눅스용 DLL인 so파일을 불러들여 실행시키는 유형으로 결국
so파일을 리버싱해야 하는데 굉장히 피곤한 일이 됩니다.
더군다나 코드의 주요 string들이 Rinjdeal등으로 암호화 되어 주요코드를
전부 분석 하기도 어렵습니다.
같이 작업해 주셨던 동료분의 지인이 암호학의 전문가라 암호화 Rinjdeal외의 몇 개의 알고리즘을
꼬아 만든 암호문을 풀기는 했는데 그래도 찾고자 하는 C&C들과 주요 명령코드는 발견하지 못 했습니다.
정상적으로 올라간 마켓의 업데이트 서버가 해킹을 당하여 업데이트된 버전을 다운로드 하게 되면
악성코드를 실행하여 아래와 같은 메세지를 받게 됩니다.
<그림1 - 자동으로 설치 메세지를 실행>
- 이 앱을 진짜 카카오톡으로 믿고 설치를 하게 되면...
<그림2 - 전화번호부의 번호로 불 특정 주기로 SMS발송>
- 위와 같이 all msgs라는 SMS를 보내게 됩니다. 이렇게 되면 과금의 문제와 Mass SMS Attack이 될 수도 있습니다.
- 설치를 하지 않으면 불 특정한 주기로 다시 그림1과 같은 설치 메세지가 뜹니다.
그럼 실제 악성앱의 코드를 분석해 보겠습니다.
<그림3 - 악성앱 소스코드 구조>
- 앱을 구성하는 패키지들입니다. 가장 중요한 부분은 행위들을 주고 받는 Receiver와 Service 입니다.
<그림4 - Moriservice 주요 코드>
- 소스가 너무 간단하여 당황하고 있을때 Moriservice에서 ReadDAT이라는 함수가 실행되는 것이 보입니다.
- 위의 숫자들을 해석하면 현재시간을 저장하고 비교하여 크면 ReadDAT함수를 실행한다로 보면 될 것 같습니다.
- 여기서 중요한 것은 이 코드 안에서는 아무리 찾아도 ReadDAT이라는 함수는 없다는 것 입니다.
<그림5 - a 클래스>
- 그리고 CheckHandler로 호출하는 a 클래스에서도 ReadJS라는 함수가 실행되는 것을 볼 수 있습니다.
<그림6 - Moriservice 주요 코드>
- 그리고 안드로이드 코드에서 흔히 볼 수 없는 시스템 함수가 라이브러리를 로드 합니다..
- 그림2와 3을 통해 악성행위를 하는 것은 ReadDAT, JS함수와 Eglsv1 라이브러리와 관련이 있을 것임을 유추할 수 있습니다.
<그림7 - APK파일 내의 존재하는 lib폴더>
- 함께 Packing되어 있던 libEglsv1을 APK파일안의 lib경로에서 찾을 수가 있습니다.
- 저 리눅스용 DLL인 so파일안에 ReadDAT, ReadJS등이 호출될 것임을 알 수 있습니다.
ELF Format인 so파일 분석하기 위해서는 ARM을 지원하는 IDA Pro가 필요 합니다.
중요 String의 난독화로 코드를 전부 읽을 수 없었지만
all msgs가 저장된 스크립트와 ReadDAT과 ReadJS를 확인할 수 있었습니다.
<그림8 - so파일의 ReadDAT함수>
<그림10 - so파일의 string추출>
- bintext를 이용해 string만 뽑아보면 chmod, ftp, telnet, http, su등 많은 text를 볼 수 있습니다.
- 이러한 방법으로 다양한 공격들이 가능해 질 것으로 보입니다.
- 실제 좀비 단말들에 의한 DDoS도 쉽게 가능할 것 입니다. 루팅된 폰이라면 위험은 더 커질 것 같습니다.
'모바일/스마트폰 보안 > 안드로이드 악성앱 상세분석' 카테고리의 다른 글
주민번호 탈취 유도 악성앱 - 컬처랜드 (3) | 2013.08.06 |
---|---|
안드로이드 악성앱(스미싱)유형 - Distributed SMTP (7) | 2013.07.29 |
금융감독원과 알약으로 위장한 SMS/전화 번호부 탈취, 하드웨어 제어/데이터 파괴 악성앱 주의! (0) | 2013.07.19 |
안드로이드 악성앱(스미싱) 유형 - SMTP (2) | 2013.07.16 |
안드로이드 악성앱(스미싱) 유형 - HTTP/XML (0) | 2013.07.16 |