1.개 요 Why "zsone"? zsone이란 별칭을 갖게된 이유는 안드로이드마켓에 해당 악성앱을 등록한 개발자 ID가 zsone 이였기 때문이다. 구글 안드로이드마켓에 zsone 으로 등록되어있는 앱은 총 13개이고, 그 중 10개의 앱에 악성행위를 하는 코드(사용자 몰래 특정번호로 SMS전송)가 담겨있다.
최근 트로이목마성 어플리케이션으로 밝혀지면서, 구글 안드로이드마켓에서 퇴출당한 'zsone' 악성코드가 알려지게 되었다.
안드로이드 플랫폼에서의 보안위협에 계속 노출되고 있는 사용자들은 이제 더이상 구글이 운영하는 안드로이드 마켓조차 믿고 이용할 수 없다는 국제적 여론도 형성되고 있는 상황이다.
진화하는 모바일 보안위협에 대응하고자 발견된 악성코드에 대해 분석 및 정리하는 시간을 갖도록 하겠다.
2.분 석
현재는 등록된 13개의 앱이 모두 마켓에서 Ban된 상태라 더이상 다운로드가 불가능하다.
악성앱의 이름목록은 아래와 같고, 이중 분석에 사용된 앱은 "iCalender"이다.
[그림1] zsone에 의해 등록된 앱(출처 appbrain)
-
Malicious code Analysis
'iCalender' 앱은 외형적으론 일반적인 달력앱으로 보이지만, 백그라운드로 악성행위를 한다.
[그림2] iCalender
[그림3] main 화면
아래와 같이 'iCalender' 앱이 실행되고, showImg() 가 5번 호출되면 sensSms()가 호출되면서 SMS를 보내게 된다.
[그림4] showImg()
이때 sensSms()는 getStateVal()을 이용하여 sharedPreferences 에 저장된 string 을 읽어오게 되는데, 이때 기록되는 값은 일종의 flag로서 sendSms()가 호출되면 반드시 'Y' 를 기록한다.
따라서 두번이상 같은 문자를 보내지 않으려는 의도의 코드로 해석할 수 있다.
[그림5] sendSms()
뒤이어 sensTextMessage() 를 이용하여 '1066185829' 번호로 '921X1' 이란 내용의 SMS를 보낸다.
위 문자의 의미는 정확히 밝혀지진 않았지만, 중국에서 premium call 로서 활용되는 번호로서 특정 서비스의 과금을 목적으로 하는 번호로 알려져있다. 우리나라에선 해당 번호로 추가요금이 발생하지 않으므로 국내에선 피해가 적을 것이다.
마지막의 save()함수는 위에 설명했듯이 flag로서 'Y' 값을 저장한다.
[그림6] save()
또한 해당 앱은 별도의 smsReceiver를 설치하여, 특정 전화번호로 온 sms을 숨기는 기능도 갖고 있다.
[그림7] smsReceive()
3.마무리
'zsone' 악성코드는 V3모바일제품군에 아래와 같이 반영되었다.
진단명 | 엔진버전 |
Android-Trojan/SmsSend.F Android-Trojan/SmsSend.G Android-Trojan/SmsSend.H Android-Trojan/SmsSend.I Android-Trojan/SmsSend.J |
2011.05.17.00 |
만일 V3모바일을 사용하지 않을 경우에는 위에 열거한 리스트를 참조하여 어플리케이션 목록에서 수동으로 삭제하면 된다.
스마트폰 안전수칙
1) 스마트폰 전용 모바일 백신을 설치 및 최신 엔진버전으로 유지
2) 출처가 명확하지 않은(블랙마켓 등을 통한) 어플리케이션은 다운로드 및 설치를 자제
3) 스마트폰도 PC와 마찬가지로 신뢰할 수 없는 사이트나 메일은 열람을 자제하는 것을 권장
'악성코드 정보' 카테고리의 다른 글
정상앱을 위장한 악성어플. DroidDream 귀환 (1) | 2011.06.01 |
---|---|
윈도우 시스템 파일을 변조하는 악성코드 주의 (3) | 2011.06.01 |
페이스북을 도배하는 스팸 광고 주의 (0) | 2011.05.12 |
Android-AppCare/KidLogger (0) | 2011.05.11 |
imm32.dll 패치하는 악성코드, Win32/Parite와 함께... (0) | 2011.05.09 |
댓글