안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4....

13
주간기술동향 2011. 11. 4. www.nipa.kr 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난 2004 년 미국 내 사무직 종사자를 중심으로 열풍이 시작되어 미국 전 역으로 확대 된 것에 이어 국내에도 2009 년 4 월부터 방송통신위원회의 WIPI 탑재 의무 화 제도 폐지가 확정되면서 스마트폰 시장의 확산을 가져왔다. 방송통신위원회에 따르면 2011 년 2 월 스마트폰 가입자는 전체 이동통신 가입자(5,116 만 명)의 18.1%(9,260 만 명) 에 달하고 있으며, 가입자는 점차 증가할 것이라고 예측하였다. 또한 라이브포인트에 따르 면 2011 년 4 월 국내 스마트폰 운영체제 점유율은 안드로이드가 58%, iOS 가 27%, Windows Mobile 이 11%, 기타운영체제가 4%로 안드로이드가 대부분을 차지하는 것으로 나타났다. 이렇게 빠른 성장세를 보이는 국내 스마트폰 시장에 대해 모바일 브로드밴드 시장 활성 화에 크게 기여할 것이라는 환영의 목소리와 함께 PC 수준의 기능을 제공하는 스마트폰의 경우 PC 와 유사한 보안 취약점이 발생할 수 있다고 보안 전문가들은 우려하고 있다. 외국 계 보안 업체인 카스퍼스키랩의 발표에 따르면 실제 2004 년 카비르(Cabir)라는 웜(Worm) 이 최초 발견된 이후 지금까지 약 2,150 여종의 악성코드가 스마트폰에서 발견되었다고 발 표했으며, 안철수 연구소에 따르면 안드로이드 악성코드는 2010 년 하반기에 16 개가 발견 된 것에 비해 2011 년 상반기에는 74 개가 발견되어 높은 증가세를 보였다고 발표하였다. 향후 안드로이드를 탑재한 스마트폰의 출시는 계속될 것으로 전망되어 안드로이드 악성코 민승욱 충남대학교 컴퓨터공학과 박사과정 [email protected] 류재철 충남대학교 컴퓨터공학과 교수 1. 서론 2. 안드로이드 보안 취약점 분석 3. 결론 IT 기획시리즈 * 본 내용과 관련된 사항은 충남대학교 컴퓨터공학과 민승욱 박사과정(☎ 042-821-7443)에게 문의하시기 바랍니다. ** 본 내용은 필자의 주관적인 의견이며 NIPA 의 공식적인 입장이 아님을 밝힙니다.

Upload: others

Post on 11-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

주간기술동향 2011. 11. 4.

www.nipa.kr 14

안드로이드 환경의 보안 위협 분석

1. 서론

스마트폰은 지난 2004년 미국 내 사무직 종사자를 중심으로 열풍이 시작되어 미국 전

역으로 확대 된 것에 이어 국내에도 2009 년 4 월부터 방송통신위원회의 WIPI 탑재 의무

화 제도 폐지가 확정되면서 스마트폰 시장의 확산을 가져왔다. 방송통신위원회에 따르면

2011년 2월 스마트폰 가입자는 전체 이동통신 가입자(5,116만 명)의 18.1%(9,260만 명)

에 달하고 있으며, 가입자는 점차 증가할 것이라고 예측하였다. 또한 라이브포인트에 따르

면 2011년 4월 국내 스마트폰 운영체제 점유율은 안드로이드가 58%, iOS가 27%, Windows

Mobile 이 11%, 기타운영체제가 4%로 안드로이드가 대부분을 차지하는 것으로 나타났다.

이렇게 빠른 성장세를 보이는 국내 스마트폰 시장에 대해 모바일 브로드밴드 시장 활성

화에 크게 기여할 것이라는 환영의 목소리와 함께 PC 수준의 기능을 제공하는 스마트폰의

경우 PC와 유사한 보안 취약점이 발생할 수 있다고 보안 전문가들은 우려하고 있다. 외국

계 보안 업체인 카스퍼스키랩의 발표에 따르면 실제 2004년 카비르(Cabir)라는 웜(Worm)

이 최초 발견된 이후 지금까지 약 2,150여종의 악성코드가 스마트폰에서 발견되었다고 발

표했으며, 안철수 연구소에 따르면 안드로이드 악성코드는 2010년 하반기에 16개가 발견

된 것에 비해 2011 년 상반기에는 74 개가 발견되어 높은 증가세를 보였다고 발표하였다.

향후 안드로이드를 탑재한 스마트폰의 출시는 계속될 것으로 전망되어 안드로이드 악성코

민승욱

충남대학교 컴퓨터공학과 박사과정

[email protected]

류재철

충남대학교 컴퓨터공학과 교수

1. 서론

2. 안드로이드 보안 취약점 분석

3. 결론

IT 기획시리즈

* 본 내용과 관련된 사항은 충남대학교 컴퓨터공학과 민승욱 박사과정(☎ 042-821-7443)에게 문의하시기 바랍니다.

** 본 내용은 필자의 주관적인 의견이며 NIPA의 공식적인 입장이 아님을 밝힙니다.

Page 2: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

IT 기획시리즈

15 정보통신산업진흥원

드 또한 증가하여 보안 문제가 발생할 것으로 예측된다. 따라서 본 고에서는 안드로이드

기반의 스마트폰 취약점 분석을 통해 이러한 보안 위협에 대비하고자 한다.

2. 안드로이드 보안 취약점 분석

안드로이드는 각각의 애플리케이션과 시스템 내의 각 영역들이 자신의 고유한 프로세스

상에서 실행되는 멀티 프로세스 시스템이다. 안드로이드는 리눅스 시스템을 기반으로 하고

있어 애플리케이션과 시스템 간의 대부분의 보안은 애플리케이션에 할당된 유저 ID 나 그

룹 ID 와 같은 표준 리눅스 보안 메커니즘을 통해 구현된다. 추가적인 보안 기능은 특정 프

로세스가 수행할 수 있는 특정 오퍼레이션에 제약을 부가하는 퍼미션(Permission) 메커니

즘에 의해 제공된다. 퍼미션 메커니즘은 안드로이드 개발 시에 AndroidManifest.xml 파일

에 정의하는 것으로 제작이 완료되면 그 이후에 변경하는 것은 불가능하다. 또한 애플리케

이션 설치 시 사용자에게 정의된 퍼미션을 통보하고 이를 승낙하면 애플리케이션이 설치되

어 동작이 가능하다[1],[2].

이렇듯 안드로이드는 리눅스 기반으로 제작된 모바일 운영체제로 리눅스 시스템이 가지

는 기본적인 보안 메커니즘과 안드로이드 고유의 보안 메커니즘을 통해 보안성의 강화를

도모하였다. 하지만 이러한 노력에도 불구하고 보안 취약점이 존재한다. 이에 본 고에서는

안드로이드 보안 취약점을 크게 개발 환경의 취약점, 애플리케이션 배포 과정의 취약점, 플

랫폼 취약점, 애플리케이션 자체 취약점으로 분류하여 분석하였다. 각각에 대한 내용은 다

음과 같다.

가. 애플리케이션 개발 환경의 취약점

안드로이드는 플랫폼 자체가 오픈소스 형태로 공개되어 있고 SDK(Software Development

Kit)를 이용한 일반 애플리케이션 개발 이외에 NDK(Native Development Kit)를 이용한 시

스템 애플리케이션 개발환경까지 제공하여 개발자로 하여금 다양한 애플리케이션 개발이 가

능하게 하였다. SDK는 달빅 가상 머신(Dalvik virtual machine) 상에서 주로 애플리케이션들

이나 UI(User Interface)를 지원하기 위해 특화된 API를 가지고 자바 언어를 통해 구현되

며, NDK 는 리눅스 커널 레벨에서 게임이나 장치 연동 등을 지원하는데 특화된 API를 가

지고 C/C++ 언어를 통해 구현된다[3]. 이렇게 오픈된 개발환경을 통해 안드로이드는 다

Page 3: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

주간기술동향 2011. 11. 4.

www.nipa.kr 16

양한 종류의 애플리케이션을 확보할 수 있었지만, 반대로 악성코드가 제작이 가능한 문제

가 발생하였다. 애플리케이션 개발환경에 따른 취약점 분석 내용은 다음과 같다.

(1) SDK 개발 환경 취약점

현재까지 발견된 대부분의 안드로이드 악성코드는 SDK 를 이용하여 제작된 애플리케이

션 형태의 트로이목마(Trojan horse)였다. 트로이목마는 사용자가 눈치 채지 못하도록 일

반 프로그램으로 가장하고 사용자가 프로그램을 실행하도록 하여 자료삭제, 정보탈취와 같

은 행위를 수행하는 악성코드를 의미한다. 실제로 대다수의 안드로이드 악성코드는 정상적

인 애플리케이션처럼 동작하면서 사용자가 눈치 채지 못하게 백그라운드로 동작하며 스마

트폰에 저장된 기기정보 및 개인정보를 수집하여 외부로 유출하는 것이 대부분이었다. 이

러한 악성코드는 정상적인 애플리케이션에 악성행위를 수행하는 코드를 삽입하여 재배포되

는 형태로 정상 애플리케이션에 비해 많은 퍼미션이 정의되어 있는 것이 대부분이다. 안드

로이드 기본 보안 메커니즘인 퍼미션 설치제어를 통해 사용자의 동의를 구하고 애플리케이

션을 설치하지만, 일반 사용자들의 경우 (그림 1)과 같이 퍼미션 내역만을 가지고 악성코드

여부를 판단하기 어렵다는 점을 이용하여 감염을 시도하였다[4],[5].

최근 안드로이드 악성코드 제거를 위해 배포된 ‘Android Market Security Tool’ 애플

리케이션에 악성코드가 삽입되어 중국의 써드파티 마켓을 통해 배포된 사례가 존재하였다.

(그림 1) 퍼미션 설치 제어 문제점

Page 4: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

IT 기획시리즈

17 정보통신산업진흥원

해당 애플리케이션 분석을 위해 먼저 정의된 퍼미션에 대한 분석을 수행하였고, 분석 결과

는 (그림 2)와 같다.

정상적인 애플리케이션의 경우 3 개의 퍼미션이 정의되어 있는 반면에, 악성코드가 삽

입된 애플리케이션의 경우 악성행위 수행을 위해 많은 퍼미션이 정의되어 있음을 확인할

수 있다. 또한 (그림 3)과 같이 AndroidManifest.xml 파일을 비교해 본 결과, 다수의 리시

버와 서비스가 추가되어 동작하고 있음을 확인할 수 있다.

(그림 2) 퍼미션 분석 결과

(그림 3) AndroidManifest.xml 파일 비교 분석 결과

Page 5: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

주간기술동향 2011. 11. 4.

www.nipa.kr 18

또한 패키지 구조를 분석하여 비교해 보면 (그림 4)와 같이 AutoSMSReceiver, Phone

CallReceiver, BGService 등 사용자의 SMS, 통화 내역을 가로채는 목적의 클래스가 추가

되어 있음을 확인할 수 있다.

분석 결과 SDK 를 이용하여 제작되는 악성코드의 경우 대부분이 기존에 존재하는 애플

리케이션에 악성코드를 삽입하여 배포되고, 악성행위 수행을 위해서 필요 이상의 퍼미션이

선언되어 있음을 확인하였다. 주요 악성행위로는 정상 애플리케이션처럼 동작하며 스마트

폰 내부에 저장된 정보를 외부로 유출하였고, 해당 정보로는 개인 정보(스케줄, SMS, 이메

일 등) 및 기기 정보(GPS, IMEI, IMSI)가 존재하였다.

(2) NDK 개발 환경 취약점

현재까지 NDK 를 이용하여 시스템 레벨에서 악성 행위를 수행하는 악성코드는 발견되

지 않았다. 하지만 안드로이드 플랫폼을 탑재한 스마트폰이 널리 보급되어 점차 시장을 확

대해 나아감에 따라 NDK 를 이용하여 제작되는 악성코드의 등장 가능성이 높아지고 있다.

특히, 기존에 시스템 레벨에서 악성행위 수행을 위해서는 루팅된 환경이 필요했던 반면에,

NDK 를 이용하여 제작된 애플리케이션의 경우 루팅되지 않은 환경에서도 시스템 레벨에서

의 동작이 가능하게 된다. NDK 를 이용하여 제작되는 악성코드의 경우, 리눅스 레벨에서

직접적인 공격 및 C/C++로 제작된 라이브러리를 이용한 공격까지 가능하게 되어 기존

(그림 4) 패키지 구조 비교 분석 결과

Page 6: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

IT 기획시리즈

19 정보통신산업진흥원

PC 환경의 리눅스 시스템에서 발견된 취약점을 이용한 공격 방법이 안드로이드 환경에 그

대로 적용이 가능하다. 본 고에서는 리눅스 환경에서 가능한 공격 방법 중 패킷 생성을 통

한 DDoS 공격에 대해 실제 테스트를 진행하였다.

일반적으로 유선 환경에서 발생하는 DDoS 공격의 경우, 악성코드의 전파를 통해 좀비

PC를 생성하고 좀비 PC가 공격을 위해 과도한 트래픽을 발생시켜 정상적인 서비스가 불

가능하도록 한다. 리눅스 시스템을 기반으로 하는 안드로이드 환경에서는 트래픽 발생을

통한 DDoS 공격이 가능하며, 이를 실제로 확인하기 위해 테스트를 수행하였다. 테스트를

위해 먼저 안드로이드 NDK 를 이용하여 C언어로 구성된 SYN Flooding 방식의 DDoS 공

격 소스코드를 (그림 5)와 같이 크로스 컴파일하여 바이너리를 생성한다.

생성된 바이너리를 (그림 6)과 같이 안드로이드에서 실행한 결과 DDoS 공격이 수행되었다.

공격이 진행되면 (그림 7)과 같이 패킷이 지속적으로 전송되어 필터링 되지 않음을 확

(그림 5) 안드로이드 NDK를 이용한 크로스 컴파일

(그림 6) 바이너리를 안드로이드 리눅스에서 실행

(그림 7) 공격 대상의 패킷 캡처 화면

Page 7: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

주간기술동향 2011. 11. 4.

www.nipa.kr 20

인할 수 있다. 이렇게 트래픽을 발생시키는 악성코드가 스마트폰에 설치되어 DDoS 공격을

수행한다면, 그 피해는 유선환경에서의 DDoS 공격보다 더욱 강력할 것으로 예상된다.

나. 애플리케이션 배포 과정 취약점

일반적인 안드로이드 애플리케이션 배포는 공식 마켓인 안드로이드 마켓을 통해 이루어

지며 안드로이드 마켓은 현재, 애플의 앱스토어 다음의 규모를 자랑한다. 현재까지 악성코

드가 배포되지 않은 애플의 앱스토어와는 달리, 안드로이드 마켓에서는 악성코드가 유포되

기도 하였다. 이는 안드로이드 마켓의 경우 애플의 앱스토어와는 달리 애플리케이션에 대

한 보안성 검증을 수행하지 않고, 또한 안드로이드 마켓 이외에 다른 경로로 애플리케이션

이 배포될 수 있는 문제점이 존재하기 때문이다. 안드로이드 마켓의 애플리케이션 등록 및

배포 과정은 (그림 8)과 같다.

제작한 애플리케이션 등록을 위해 개발자는 안드로이드 마켓에 개발자 등록을 수행하고

애플리케이션을 개발한다. 개발이 완료되면 키를 생성하여 구글 오픈마켓을 통해 배포할

애플리케이션이라는 의미로 정식 배포용 서명을 한 뒤, 서명된 프로그램을 안드로이드 마

켓에 등록하면 배포가 가능해진다. 하지만 이렇게 안드로이드 마켓에 등록하는 경우 정식

배포용 서명만 완료되면 등록하는데 문제가 없고, 등록된 애플리케이션에 대한 별도의 검

(그림 8) 안드로이드 애플리케이션 개발 및 배포 과정

Page 8: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

IT 기획시리즈

21 정보통신산업진흥원

증과정을 거치지 않는 문제점이 존재한다. 실제로 현재까지 발견된 대다수의 악성코드들의

경우 안드로이드 마켓을 통해 배포되어 사용자들에게 피해를 입히는 사례가 발생하기도 하

였다. 또한 안드로이드 애플리케이션은 SDK 에 의해 자동 생성되는 개발용 서명으로 애플

리케이션을 서명하면 배포가 가능한 특징을 가진다. 이러한 특징으로 인해 공식 애플리케

이션 스토어인 안드로이드 마켓 이외에 써드파티 마켓(3rd Party Market)이 활성화 되었다.

써드파티 마켓이란 안드로이드 마켓 이외의 모든 애플리케이션 스토어를 의미하며, 회사

혹은 개인에 의해 운영된다. 회사에 의해 운영되는 써드파티 마켓의 경우 자체적인 검증

과정을 통해 악성코드의 배포를 막고 있지만 개인에 의해 운영되는 이른바 블랙마켓의 경

우 검증 과정이 존재하지 않는다. 특히 블랙마켓의 경우 애플리케이션의 개발자 확인이 불

가능하기 때문에 악성코드 배포를 위한 배포지로의 활용이 가능한 문제점이 존재한다. 이

렇듯 안드로이드 애플리케이션 배포는 애플리케이션 검증 과정의 부재 및 다양한 경로로의

애플리케이션 배포가 가능한 문제로 인해 악성코드가 배포될 수 있는 취약점을 가지고 있다.

다. 플랫폼 취약점

안드로이드는 리눅스 커널을 기반으로 하는 운영체제로 오픈소스 형태로 배포되어 플랫

폼에 대한 모든 내용이 공개되어 있다. 이에 따라 스마트폰 제조사들은 자신들의 기기에

맞게 안드로이드를 최적화하여 탑재하며, 이 과정에서 시스템 안정화를 위해 몇몇 기능의

제한을 두어 구현한다. 일부 사용자들의 경우, 이러한 시스템 제약을 없애기 위해 시스템

언락(System Unlock)을 시도하며, 안드로이드 환경에서 이루어지는 대표적인 시스템 언락

은 루팅(Rooting)이다. 루팅은 안드로이드 운영체제를 해킹해 최고 관리자 권한을 얻는 행

위를 뜻한다. 리눅스를 기반으로 제작된 안드로이드 운영체제는 리눅스 시스템과 동일하게

최고 관리자 권한을 가지는 계정인 루트가 존재한다. 루팅을 통해 루트 권한을 획득하면

안드로이드 운영체제의 사용자 권한은 수퍼 유저(Super User)로 변경되어 안드로이드의

기능을 추가하거나 삭제하는 것이 가능해진다. 이러한 루팅은 대부분 운영체제의 취약점을

이용하여 루트 권한을 획득하는데, 주로 리눅스 커널이나 데몬(Daemon) 혹은 안드로이드

운영체제 취약점을 직접 공격하여 루트 권한을 획득한다. 이렇게 루팅을 시도하면 제약된

기능을 해제하여 성능을 향상시킨다는 장점이 존재하지만 루트 권한 획득을 통한 악성행위

가 가능해지는 취약점이 존재하게 된다. 루팅 전후의 취약점 테스트를 위해 ADB 쉘을 통

Page 9: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

주간기술동향 2011. 11. 4.

www.nipa.kr 22

해 데이터에 접근해 보았다. (그림 9)와 같이 루팅 전에는 일반유저 권한만을 가지며 주소

록 DB에 접근하려 해도 권한으로 인해 접근이 되지 않는 것을 확인할 수 있다.

하지만 루팅 후에는 (그림 10)과 같이 루트권한을 가지며, 주소록 DB에 접근해 저장된

정보를 열람하는 것이 가능함을 확인할 수 있다.

이처럼 루팅된 환경에서는 루트권한 획득으로 인해, 안드로이드가 가지는 보안 메커니

즘이 적용되지 않는 문제점이 존재한다. 또한 일반 애플리케이션도 루트 권한 획득을 통해

시스템 레벨로의 접근이 가능해지기 대문에 보안 문제가 발생할 수 있는 문제점을 가진다.

(그림 9) 루팅 전의 데이터 접근

(그림 10) 루팅 후의 데이터 접근

Page 10: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

IT 기획시리즈

23 정보통신산업진흥원

라. 애플리케이션 자체 취약점

안드로이드 애플리케이션은 안드로이드 플랫폼 환경에서 동작하는 하나의 프로그램으

로 일반 PC 환경에서의 프로그램과 동일하게 정해진 프로토콜 및 제공되는 API를 이용하

여 개발자에 의해 개발된다. 이러한 과정에서 개발자의 실수 혹은 제공되는 프로토콜 자체

의 취약점 등을 통해 애플리케이션 자체 취약점이 발생될 수 있다. 특히 네트워크를 통해

데이터를 송수신하는 애플리케이션의 경우 스마트폰 자체가 아닌 네트워크 환경에서의 공

격 위험에 노출되어 있어 보안 취약점이 발견될 확률이 더 높다. 이에 본 고에서는 안드로

이드의 다양한 애플리케이션 중 많은 사용자를 확보하고 있는 mVoIP 애플리케이션에 대

한 취약점 분석을 수행하였다. mVoIP 애플리케이션의 경우 크게 통화내용 및 메시지 도청

과 계정정보 유출의 취약점이 존재한다. 통화내용 및 메시지 도청의 경우 네트워크 패킷

스니핑(Sniffing)을 통해 도청이 가능하고, 암호화를 수행하는 경우에도 악성코드가 감염을

통해 암호화 이전에 평문을 추출하는 것이 가능한 취약점이 존재한다. 또한 계정정보 유출

의 경우 암호화를 수행하더라도 암호화된 내용 자체를 인증 시에 사용하기 때문에 암호화

된 자체 값을 유출하게 되면 인증이 가능한 문제점이 존재한다. 실제로 이러한 취약점에

대해 대표적인 mVoIP 애플리케이션인 skype 를 대상으로 분석하였으며, 자세한 내용은

다음과 같다.

(1) skype

skype 는 mVoIP 애플리케이션 중 가장 많은 사용자를 보유한 제품으로 약 4.8억 명의

사용자를 보유하고 있다. 제공되는 기능으로는 음성/영상통화, 컨퍼런스 콜, 인스턴스 메시

지 서비스가 있으며 자체적인 보안 프로토콜을 사용하는 것으로 알려져 있다. skype 에 대

해 분석한 결과, 음성통화 도청 및 개인정보 탈취 및 재사용이 가능한 취약점이 존재하였다.

음성 전화 도청은 자체적인 암호화 프로토콜을 사용한다고 알려진 skype 지만 취약점

(그림 11) skype 음성 통화 도청

Page 11: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

주간기술동향 2011. 11. 4.

www.nipa.kr 24

테스트 결과 도청이 가능함을 확인하였다. 루팅되지 않은 안드로이드 2.3 플랫폼, skype

버전 2.0.0.45에서 테스트를 진행하였으며, 음성통화 도청 과정은 (그림 11)과 같다.

먼저 공격 대상의 스마트폰에 skype 의 통화 내용을 도청하는 악성코드를 감염시키고,

사용자가 skype 를 이용하여 통화하게 되면 악성코드는 통화내용을 도청하게 된다. 도청된

내용은 (그림 12)와 같이 output_AudioInRecord.3gp라는 파일로 저장하여 공격자의 서버

로 전송하게 되고, 공격자의 서버에서 통화내용이 저장된 파일을 재생시켜 통화내용 확인

이 가능하였다.

(2) 개인정보 탈취 및 재사용

skype 는 skype 애플리케이션이 설치된 사용자 간의 무료통화 이외에 일정 금액을 지

불하면 일반 전화와의 통화가 가능한 유료통화 기능을 제공하고 있다. 따라서 skype 의 계

정정보를 탈취하면 일반 사용자가 돈을 지불하지 않고도 유료통화 사용이 가능해지는 문제

(그림 12) 실제 skype 통화내용 도청 수행 과정

(그림 13) skype 개인정보 탈취 및 재사용 과정

Page 12: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

IT 기획시리즈

25 정보통신산업진흥원

가 발생하게 된다. 실제 취약점 테스트 결과 저장된 개인정보의 탈취 및 재사용이 가능한

문제점이 존재했다. 루팅된 안드로이드 2.3 플랫폼, skype 버전 2.0.0.45 버전에서 테스트

를 진행하였으며, 과정은 (그림 13)과 같다.

skype 에 저장된 계정정보 탈취를 위해 악성코드를 감염시키고 악성코드는 암호화된

개인정보를 공격자의 서버로 전송한다. 비록 개인정보는 암호화 되어 skype 애플리케이션

내부에 저장되지만, 암호화 된 계정정보 자체가 사용자 인증 시에 사용된다. 이에 공격자는

수집된 개인정보를 이용하여 복제된 공격폰을 생성하고 복제폰을 이용하여 통화를 시도하

면 정상적으로 통화가 이루어지며, 유료 사용자의 계정이 탈취된 경우 유료통화도 가능하

게 된다. 실제 계정정보 탈취를 위해 내부 파일시스템을 확인해 본 결과, (그림 14)와 같이

저장되어 있음을 확인할 수 있었으며 해당 내용을 탈취하여 정상적인 통화까지 가능하였다.

이처럼 애플리케이션 자체의 문제점이 존재할 가능성이 있으며, 특히 네트워크를 이용

하는 애플리케이션의 경우 네트워크 레벨에서의 취약점을 통해 보안 문제가 발생할 가능성

이 존재한다.

3. 결론

다양한 안드로이드 제품이 출시됨에 따라 스마트폰 시장에서 안드로이드가 차지하는 비

중은 점차 증가하고 있다. 하지만 사용자가 증가함에 따라 보안 위협 또한 증가하고 있다.

(그림 14) skype에 저장된 개인 정보

Page 13: 안드로이드 환경의 보안 위협 분석 · 2012. 6. 12. · 주간기술동향 2011. 11. 4. 14 안드로이드 환경의 보안 위협 분석 1. 서론 스마트폰은 지난

주간기술동향 2011. 11. 4.

www.nipa.kr 26

이러한 보안 위협의 해결 방안으로 다양한 업체들이 악성코드 차단을 위한 안드로이드용

백신을 출시하고 사용자들에게 배포하고 있다. 하지만 대부분의 경우 악성코드 차단만을

보안성 강화 방안으로 생각하고 이에 대한 대응만을 생각하고 있는 실정이다. 이에 본 고

에서는 안드로이드가 가질 수 있는 보안 취약점 분석을 크게 애플리케이션 배포 과정, 플

랫폼, 애플리케이션 개발 환경, 애플리케이션 자체의 4 가지 관점에서 수행하였다. 애플리

케이션 개발 환경의 취약점으로는 애플리케이션 개발 환경을 이용한 악성코드 제작의 문제

점이 존재했다. 현재까지 알려진 일반적인 형태인 SDK 를 이용하여 제작되는 악성코드와

향후 발견 가능한 NDK 를 이용하여 제작된 형태까지 실제 구현을 통해 확인하였다. 또한

애플리케이션 배포 과정의 취약점으로는 안드로이드 마켓에서의 검증과정 부재 및 자체 서

명을 통한 애플리케이션 배포 가능의 문제점이 존재하였다. 플랫폼 취약점은 안드로이드

플랫폼 자체가 가지는 다양한 문제점 중 대표적인 사례인 루팅의 문제점에 대하여 분석을

수행하였다. 마지막으로 애플리케이션 자체 취약점으로는 다양한 종류의 애플리케이션에서

많은 취약점 발견이 가능할 것이라 생각된다. 여러 애플리케이션 중 본 고에서는 많은 사

용자를 확보하고 있는 mVoIP 애플리케이션 분석을 통해 도청 및 개인정보 유출의 문제점

이 있음을 확인하였다. 이러한 보안 취약점을 해결하기 위해 애플리케이션에 대한 철저한

검증 과정을 필요로 하고, 루팅과 같은 플랫폼 변경을 수행하지 않도록 해야 한다. 또한 개

발자는 개발 시에 보안을 염두하여 중요한 데이터에 대한 암호화 및 과도한 퍼미션 선언을

하지 않도록 노력해야 할 것이다.

<참 고 문 헌>

[1] http://developer.android.com

[2] Enck W, Ongtang M, McDanael P, “Understanding Android Security”, IEEE, Jan.-Feb, 2009.

[3] Jesse Burns, “DEVELOPING SECURE MOBILE APPLICATIONS FOR ANDROID”, Version 1.0,

October 2008.

[4] 7.W. Enck, M. Ontang, P. McDaniel, , “Mitigating Android Software Misuse Before It Happens”,

tech. report NAS-TR-0094-2008, Network and Security Research Ctr., Dept. Computer Science

and Eng., Pennsylvania State Univ. November 2008.

[5] A. Shabtai. y. Fledel. U. Kanonov, Y. Elovici, S. Dolev, Ben-gurion university, “Google Android: A

State-of-the-Art Review of Security Mechanisms”, December 2009.