안녕하세요? 이스트시큐리티입니다.
최근 안드로이드 악성앱이 고도화되면서 백신의 탐지를 회피하기 위한 암호화 및 안티 디버깅 기술이 적용되고 있습니다. 특히, 해당 앱은 악성행위에 사용되는 모든 문자열과 파일들을 암호화하여 저장하고 있다가 실제 사용될 때 이를 복호화 하여 사용합니다. 또한, 기기 및 개인정보의 단순한 탈취를 넘어 사용자의 기기를 완전히 장악한 후 오디오, 사용자의 입력 등 사용자의 활동을 실시간으로 감시하고 확인합니다.
본 분석 보고서에서는 “Spyware.Android.FakeApp”를 상세 분석 하고자 합니다.
악성코드 상세 분석
1) 분석 방해 및 백신 탐지회피
가. 암호화 된 문자열
악성행위에 사용되는 문자열들을 암호화하여 바이트 형태로 저장하고 있다가 해당 문자가 실제 사용될 때 마다 xor 연산 메소드를 통하여 복호화 후 사용합니다. 이는 특정 문자열 검색을 통한 백신탐지를 우회하기 위함으로 추측할 수 있습니다.
[그림 1] 암호화 된 문자열
복호화 되어 사용되는 문자열들은 g.a부터 g.ai까지 60개 이상의 변수에 저장됩니다.
[그림 2] 복호화 된 문자열
나. 안티 디버깅
g.T (/proc/self/status)에는 실행되는 앱과 관련된 정보가 저장되어 있고, 그 중에서 g.S (TracerPid)의 값을 확인하여 현재 앱이 디버깅되고 있는지 확인합니다. 그리고 다시 isDebuggerConnected 메소드를 통하여 한번 더 디버깅 여부를 확인합니다.
[그림 3] 안티 디버깅
다. 실행환경 확인
현재 실행되는 환경이 가상 환경이 아니며, 중국 샤오미사의 기기일 경우 악성행위가 시작됩니다.
[그림 4] 실행환경 확인
2) 암호화 된 C&C 정보
C&C정보와 관련된 파일이 Assets 폴더에 암호화되어 저장되어 있습니다. C&C 서버로부터 추가 다운로드하는 코드가 있지만 실제 통신은 되지 않고 있습니다.
[그림 5] C&C 서버
3) 암호화 된 정보 탈취 파일
악성행위에 사용되는 파일 역시 암호화되어 앱의 Assets폴더에 저장되어 있습니다. SDK API LEVEL이 16이상이라면 “sx”파일을 복호화합니다. 복호화 된 “sx”파일은 “/data/user/0/com.android.boxa(패키지명)/files”폴더에 “sux”파일로 저장됩니다. “sux”파일은 ELF파일이며 특정 메신저 앱들의 정보를 탈취합니다.
(현재 안드로이드의 SDK API LEVEL은 26까지 출시되어 있으며, 테스트 환경은 LEVEL22에서 진행하였습니다.)
[그림 6] API LEVEL에 따라 다른 파일 실행
getRuntime().exec()메소드를 통하여 명령어를 실행합니다. “\n”문자를 기준으로 나뉘어 실행됩니다.
[그림 7] 명령어 실행
4) 메신저 앱 정보 탈취
“sux”파일은 특정 메신저 앱들의 정보를 탈취합니다. Tencent WeChat, Weibo, Voxer, Walkie, Talkie Messenger, Telegram Messenger, Gruveo Magic Call, Twitter, Line, Coco, BeeTalk, TalkBox Voice Messenger, Viber
Momo, Facebook Messenger, Skype 14개 앱이 그 대상이며 해당 앱들의 정보가 저장되는 “/data/data/패키지명” 폴더를 확인하고, 존재할 경우 관련 정보를 탈취합니다.
[그림 8] 탈취되는 앱 목록 중 일부
5) 루트권한 요청
기기의 완전 제어와 자유로운 악성행위를 위하여 루트권한을 요구하며, getRuntime().exec()메소드를 이용하여 루트 권한을 요구합니다.
[그림 9] 루트권한 요청
6) 기기제어
가. 문자 정보 탈취
SMS문자 정보를 탈취하고 삭제합니다.
[그림 10] 문자 정보 탈취
나. 주소록 탈취
주소록을 탈취하고 삭제합니다.
[그림 11] 주소록 탈취
다. 통화목록 탈취
통화 목록을 탈취하고 삭제합니다.
[그림 12] 통화 목록 탈취
라. 위치정보 탈취
위치정보를 탈취합니다.
[그림 13] 위치정보 탈취
마. 카메라 제어
카메라 관련 정보를 제어합니다.
[그림 14] 카메라 제어
바. 오디오 제어
오디오를 녹음합니다.
[그림 15] 오디오 제어
사. 화면 제어
기기의 화면을 캡처하여 저장합니다.
[그림 16] 화면 캡처
사. 달력 정보 탈취
달력에 기록된 정보들을 탈취합니다.
[그림 17] 달력 정보 탈취
7) 아이콘 은닉
분석 및 백신 탐지에 대한 안전장치를 모두 통과하면 본격적인 악성행위가 시작되는데, 이때 자신의 아이콘을 은닉하여 사용자가 쉽게 알아차리기 어렵도록 합니다.
[그림 18] 아이콘 은닉
8) 키 로그
사용자의 입력을 훔치고 이를 외부저장소에 저장합니다. “/sdcard/zs/key”폴더에 “keylogger.txt”파일로 저장되며 해당 앱명, 시간, 사용자가 입력한 내용 등이 기록됩니다.
[그림 19] 키 로그
결론
해당 악성앱은 기기정보 및 개인정보를 탈취하기 보다는 사용자의 개인 사생활을 감시하는데 그 목적이 있습니다. 지속적으로 악성행위를 하기 위하여 앱의 아이콘을 은닉하고 오디오, 카메라를 제어하며 특정 메신저 앱의 정보를 탈취하고 사용자가 기입하는 내용을 모두 기록합니다.
따라서, 악성앱에 감염되지 않기 위해서는 예방이 중요합니다. 출처가 불명확한 URL은 실행하지 않아야 합니다. 또한 OS와 애플리케이션을 항상 최신 업데이트 버전으로 유지해야 합니다.
현재 알약M에서는 해당 악성 앱을 ‘Spyware.Android.FakeApp’ 탐지명으로 진단하고 있습니다.
Trojan.Agent.Emotet 악성코드 분석 보고서 (0) | 2018.04.23 |
---|---|
2010년 해외 대상 APT 공격자, 오퍼레이션 베이비 코인(Operation Baby Coin)으로 한국 귀환 (0) | 2018.04.19 |
가상화폐 지갑 주소를 바꿔치기하는 악성코드 주의 (0) | 2018.04.17 |
국내기업 및 기관 등의 이메일 웹 서버 계정정보 삭제로 둔갑한 피싱 사기 등장 (0) | 2018.04.12 |
'오퍼레이션 배틀 크루저' 다양한 취약점으로 국내외 APT 공격 지속 (0) | 2018.04.11 |
댓글 영역