상세 컨텐츠

본문 제목

Trojan.Android.CryptoMiner 악성코드 분석 보고서

악성코드 분석 리포트

by 알약(Alyac) 2018. 3. 23. 15:55

본문

안녕하세요? 이스트시큐리티입니다.


지난 2016년 10월 21일 보안이 취약한 IoT기기들이 미라이 악성코드에 감염되어 DDoS공격에 활용되었습니다. 이 미라이 코드의 소스가 공개되었고, 2018년 1월 31일부터 이를 활용한 안드로이드 악성코드가 등장하였습니다. 미라이 악성코드와 마찬가지로 웜 형태로 스스로 전파되며 안드로이드 OS의 ADB (Android Debug Bridge) 인터페이스를 이용합니다. 감염된 기기들은 모네로 채굴에 이용됩니다.


본 분석 보고서에서는 “ADB.miner”를 상세 분석 하고자 합니다.



악성코드 상세 분석


1) 최초 파일 실행


최초 파일인 sss파일을 실행하면 암호화된 bot.dat을 복호화하고, 복호화된 bot.dat은 nohup, xmrig32/64, droidbot 등을 생성하고, droidbot은 추가로 invoke.sh, debuggerd 등을 생성합니다.

 


[그림 1] 복호화 된 파일



2) bot.dat 복호화


Bot.dat가 복호화되면 6개의 파일이 생성되며 모네로 채굴 관련 파일, 웜 파일, 지속적인 악성 행위를 위한 관련 파일 등이 있습니다.

 


[그림 2] 복호화되는 파일 목록



3) 악성 행위의 시작


쉘 스크립트를 백그라운드에서 지속적으로 실행하기 위한 nohup과 웜 파일인 droidbot을 실행합니다.

 


 

[그림 3] nohup 및 droidbot 실행



4) droidbot 


4개의 파일을 생성하며 감염된 기기를 명령어로 조작하기 쉽도록 해주는 파일들입니다.

 

[그림 4] 4개의 파일생성



5) 미라이 코드 활용


공개된 미라이 코드의 SYN Scan부분을 활용합니다.

  





[그림 5] 무작위  IP 생성


해당 악성코드에서는 사용되지 않았지만 미라이 코드의 공장 출하 상태의 IoT기기들의 기본 비밀번호와 관련된 문자열들이 동일하게 존재합니다.

  


[그림 6] 미라이와 동일하게 존재하는 문자열


5555 포트의 무작위 IP로 SYN 스캔을 합니다.

 


[그림 7] 무작위 SYN 스캔



6) ADB 연결


“adb connect”를 통해서 특정 기기에 연결이 되었다면 “get-state”를 통하여 해당 기기의 adb 연결상태를 확인합니다.

 

 


[그림 8] ADB 연결상태 확인


연결된 기기의 “/data/local/tmp”의 모든 내용들을 삭제합니다. 이 폴더는 악성 행위를 하기위한 기본 폴더입니다.

 

[그림 9] 특정 폴더의 내용 삭제


감염된 기기를 통하여 다음 활동에 필요한 sss, nohup, bot.dat 파일들을 전송합니다.


 


[그림 10] 다음 활동을 위한 파일 전송



7) ELF 모네로 마이닝


CPU종류를 확인하여 32/64에 맞는 파일을 실행합니다.

 



[그림 11] CPU 확인


모네로와 관련된 XMRig 오픈소스를 활용합니다.


 

[그림 12] 모네로 오픈소스


“config.json”에 마이닝 풀과 관련된 정보들이 기록되어있습니다. Hashvault.pro 네트워크 마이닝 풀을 이용합니다.

  


[그림 13] hashvault 마이닝 풀


해당 마이닝 풀로 실제 마이닝이 이루어짐을 알 수 있습니다.

 



[그림 14] 마이닝 풀과의 네트워크 통신


또 다른 마이닝 풀인 minexmr.com가 기록되어 있지만 마이닝은 되지 않습니다.


 


[그림 15] 작동하지않는 마이닝 풀



8) APK 모네로 마이닝


“코인하이브” 마이닝을 위한 APK를 설치하고 패키지명을 이용하여 해당 앱을 실행합니다.

 




[그림 16] APK 설치 및 실행 명령어


APK가 자동으로 설치 및 실행되며 메인은 아무것도 나타나지 않습니다. Assets 폴더에 저장되어있는run.html 을 불러옵니다. 이는 “코인하이브”의 모네로 마이닝 코드가 기록되어 있으며 “안드로이드의 자바스크립트”를 활용합니다. 

 




[그림 17] “코인하이브” 모네로 마이닝 코드


“코인하이브”와 통신하며 실제 마이닝이 이루어집니다.

 


[그림 18] “코인하이브” 마이닝



9) 쉘 스크립트


“Install-recovery.sh” 스크립트에는 droidbot 파일과 droidbot.apk의 패키지폴더를 감시하여 존재 유무를 확인합니다.

 

[그림 19] install-recovery.sh


“invoke.sh”는 안드로이드 기기의 제어와 관련된 오픈소스를 활용하여 쉘 스크립트를 제작하였습니다. 해당 스크립트는 주요 폴더들을 리마운트하고 system폴더의 특정 파일들을 공격자가 원하는 파일들로 변경합니다. 또한 그와 관련된 권한, 속성, 보안문맥등을 추가로 변경하여 명령어를 이용한 기기제어를 한층 더 쉽게 만듭니다.




[그림 20] invoke.sh 




결론


이번 ADB.miner의 경우 미라이 코드를 활용하고 있지만 아이디와 비밀번호의 사전식 대입이 아닌 ADB인터페이스를 활용하여 웜 형태로 퍼지고 있습니다.


실질적으로 주변 IoT기기의 보안에 대한 인식은 0에 가깝기 때문에 일반 사용자는 감염되더라도 알아차리기 어렵습니다.

따라서, 사용자들은 주변 IoT기기에 대하여 조금 더 관심을 가지고 업데이트 확인을 주기적으로 해야합니다. 또한, 스마트폰 사용자 역시 백신을 항상 최신으로 유지하고 주기적인 검사를 해야합니다. 


현재 알약M에서는 ADB.miner의 앱 버전을 "Trojan.Android.CryptoMiner" 탐지명으로 진단하고 있습니다.

  



관련글 더보기

댓글 영역