안드로이드 악성코드

malwares.com 코드분석팀 분석 자료


<부제 :  나를 분석하지마!  >


1. 개요 - 


안드로이드 악성코드는 예전보다 줄었지만, 어플리케이션을 크랙해 소스코드를 무단도용하는 사례가 많아지게 되었다.  2017년, 안드로이드 패커도 많이 등장했으나, 지금도 해커들과 창과 방패의 싸움을 진행중이다. 분석을 방해하기 위한 기법을 사용한 악성 어플리케이션 분석을 통해서 알아보자.

 

관련 기사 : (2016.12.27) [애플경제] 오늘의 앱 이야기 50


2. 분석 정보 


< 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




이 글을 공유하기

댓글

Designed by JB FACTORY