안드로이드 악성코드
- 보안 정보/악성코드 관련 정보
- 2017. 3. 30. 19:05
malwares.com 코드분석팀 분석 자료
<부제 : 나를 분석하지마! >
1. 개요 -
< Figure0. 어플리케이션 리스트 >
분석을 시도할 샘플을 분석용 단말에 설치하여 확인해보면 크롬브라우저 어플리케이션과 똑같이 생겨서 정상 어플리케이션과 악성 어플리케이션의 구분이 가지 않는다.
< Figure1. 악성 어플리케이션 >
실행했을 때, 기기 관리자 권한획득을 시도하는 악성코드를 발견했다. 이를 활성화하면 어플리케이션의 삭제가 어려워진다. 기기 관리자권한을 해제하는 방법을 시도해 볼 수 있으나, 이것도 방해하는 기능이 추가되어 삭제가 어려워 복구를 시도해야될 가능성이 크다.
< Figure2. 악성 어플리케이션 소스 >
악성 어플리케이션의 분석을 위해 디컴파일한 소스에서 "MainActivity" 부터 따라 내려오다보면 "bin" 파일을 열어,
Base64 디코딩을 한 뒤, "com.Loader" 라는 클래스를 로드하고 있었다.
< Figure3. 인코딩된 파일 >
"bin" 파일이 존재하는 경로로 이동해 HxD로 열어보면 Base64로 인코딩되어 알아보지 못한다.
< Figure4. BASE64 디코딩 코드 >
파일을 BASE64 디코딩해주는 소스를 작성해 실행했다.
< Figure5. 악성 어플리케이션 함수(일부) >
BASE64 디코딩을 하고 다시 열어보면 DEX 포맷을 가진 파일을 얻어낼 수 있고, 디컴파일이 가능하므로 분석이 가능해진다. 매우 많은 함수들이 있어서 모든 기능을 분석하기가 힘들정도로 크다. 하지만 위 함수에서 각 은행사의 어플리케이션을 찾는 행위는 눈에 띈다.
< Figure6. 저장되어 있는 내부 파일 >
최초의 한번을 실행한 후, 생기는 test.dex파일을 추출해도 같은 분석이 가능하다. 하지만 많은 패커들과 악성코드는 풀어낸 DEX를 저장하지않고 메모리에 올려서 사용하므로, 메모리에서 추출해 저장하는 형태를 이용한다.
< Figure7. 악성 어플리케이션 메모리 >
메모리에서 파일 시그니쳐를 기반으로 찾아낼 수 있다. "dey\n036" 형태의 ODEX파일을 추출할 수 있는데, 이 파일을 통해서 난독화가 풀린 코드를 분석할 수 있게된다.
< Figure8. 메모리에서 추출된 ODEX 파일 >
얻어낸 odex파일은 deodex 과정을 통해 smali코드를 얻을 수 있다. smali코드는 코드를 수정할 수 있으며 DEX포맷으로 컴파일 할 수도 있다. 위 과정을 통해 악의적인 목적으로 어플리케이션을 크랙하는 일이 많아진 요즘 공격자와 공격을 막으려는 보호 솔루션 제작자들의 싸움이 계속되고 있다.
3. 파일 정보
MD5 : 337C22DBBEFA62BA316D358DF7B5A52E
SHA-1 : ADCC5490ED8206C0AA998A8E19DE53A26E7B1678
SHA-256: 2AA430D005141964E339979060FC1AB824FB1FF8469754C3A7836422A2849B5F
'보안 정보 > 악성코드 관련 정보' 카테고리의 다른 글
닷넷으로 위장한 악성코드 (0) | 2017.08.29 |
---|---|
의심스러운 설치파일 분석보고서 (0) | 2017.05.22 |
리눅스에서 랜섬웨어는 무슨 차이가 있을까 (0) | 2017.03.03 |
10만원. 싼맛에 복호화 하렴 Erebus 랜섬웨어 (0) | 2017.02.20 |
목적을 알 수 없는 봇넷 (0) | 2017.02.15 |
이 글을 공유하기