안드로이드 어플 진단 2

2014. 9. 29. 13:23Security ★ Development/안드로이드 모바일 보안

반응형

* 틀린 내용이 있을 시 지적 부탁드립니다.


운좋게 어느 정보보안팀에서 보안테스팅용으로 개발하였던 악성코드 apk를 받을 기회가 있었습니다.  분석해보겠습니다.  

파일명은 duamn.apk이고 크기는 147kb이며 아래 사진은 설치하였을 때 아이콘입니다.  실행하면 다음 인터넷 페이지로 접속됩니다.


androlyze를 이용해 권한을 확인했습니다.  

악의적으로 사용될 수 있는 것들을 살펴보면 

RECEIVE_SMS : 어플이 메시지를 모니터링하고 사용자가 SMS메시지를 읽기 전에 삭제할 수 있습니다.

READ_CONTACTS : 주소록을 읽어올 수 있습니다.

CALL_PHONE : 디바이스 인터페이스를 통하지 않고 어플이 전화를 걸게 할 수 있습니다.

외에도 READ_PHONE_STATE, WRITE_EXTERNAL_STORAGE 등도 경우에 따라 악의적으로 사용될 수 있습니다.


다음으로 권한이 호출되는 메소드들을 찾아봅니다.


 내부 정보

apk파일을 디컴파일 하고 위에서 찾은 메소드들을 바탕으로 악성코드의 기능을 살펴보겠습니다.

MainActivity를 보면 바로 DOWNLOAD_URL이라는 것이 있습니다.  

getHost() 메소드를 따라가보면 특정 ip를 반환하게 되고 그곳의 m.apk라는 파일을 다운로드 하도록 되어 있는 것을 추측할 수 있습니다.

메인 액티비티가 실행되면 AsyncTask를 상속한 객체를 생성하여 실행하고 doInBackground메소드에서 DOWNLOAD_URL을 매개변수로 가지는 downloadFile 메소드를 호출하고 있습니다.

이후 성공적으로 받아오면 onPostExecute 메소드에서 해당 파일을 실행하도록 되어있습니다.

1차적으로 정상적으로 보이는 어플을 실행시키고 뒤에서 실제 일을 수행하는 악성 어플을 다운받아 실행하는 방식으로보입니다.


OnCreate에서는 우선 isMonitorInstalled 메소드를 이용해 악성어플이 깔려있는지 확인하고 깔려있다면 실행하여 모니터링을 실시합니다.  그후 본 어플은 종료합니다.

깔려있지 않다면 해당 어플을 설치, 실행, 종료합니다.


이 파일을 주신분께 여쭤보니 m.apk 파일은 가지고 있지 않다고 합니다...