본문 바로가기

Smart Platform/Android

Android(구글 안드로이드)에 대한 간략한 특징 및 보안(Security) 이슈

- 개발자들이 Java 언어로 응용 프로그램을 작성

- 리눅스 커널 위에서 동작하며

- 다양한 안드로이드 시스템 구성요소에서 사용되는 C/C++ 라이브러리들을 포함하고 있다.


- 개발자들이 Java 언어로 응용프로그램을 작성하지만 안드로이드는 기존의 Java Virtual Machine(자바 가상 머신)과는 다른 Dalvik Virtual Machine 을 통해 Java로 작성된 응용 프로그램을 별도의 Process에서 실행하는 구조로 되어 있다.


- Dalvik? -
자바(Java)로 만든 코드는 JVM (Java Virtual Machine) 위에서 실행 되듯이
안드로이드 앱은 달빅(Dalvik) VM 위에서 실행이 되는 것

- 샌드박스(sandbox)란? -
그대로 해석하면 어린 아이가 놀 수 있도록 제작한 모래놀이 통이라고 할 수 있는데
S/W 에서는 외부로부터 들어온 프로그램이 보호된 영역에서 동작해 
시스템이 부정하게 조작되는 것을 막는 보안 형태를 말하는 것이다.
안드로이드는 외부에서 다운로드 받은 앱을 보호된 영역인 
Dalvik 샌드박스 내에서만 실행시키므로 시스템을 보호할 수 있다.

하지만 정작 심각한 위협 요소는 
샌드박스 외부의 OS 영역 내에 존재하는 취약점으로 인한 보안문제
OS가 제공하는 라이브러리 내에 보안 취약점을 
가지고 있는 스마트폰으로 
인터넷을 이용할 경우 
해커가 원격에서 해당 스마트폰에 명령을 실행시킬 수 있는 
심각한 보안위협 발견된 상태

커널에 악성코드가 설치되면, 원격 공격자는 접속하고 싶을 때 문자를 보내 
공격 사이트에 접속하게 만들 수도 있고 
사용자 내장 메모리 카드를 원격에서 가져올 수도 있다. 
폰 내부의 모든 개인정보를 훔쳐올 수 있는 것이다. 
물론 음성 도청도 가능하고 커널에서 실행되기 때문에 공격을 분석할 방법이 없다. 
누가 공격하고 있는지를 모르게 되는 것이다.
 
더 나아가 현재의 스마트폰 백신들로는 전혀 탐지가 안되며 네트워크 상태 정보도 숨김이 가능하다. 
또 그런 방식으로 수많은 스마트 좀비 폰을 만든 후 DDoS 공격을 감행할 수도 있고 
이럴 경우 CNC 커넥션도 숨기고 공격 트래픽도 숨길 수 있다고 한다. 
그 결과 피해자 스마트폰은 엄청난 요금 폭탄을 맞게 되고 
디도스 공격을 받은 사이트는 어디서 공격을 받은 지도 모른 채 다운된다는 것이다

악성 사이트에 접속을 유도하게끔 하는 방법도 다양하다. 
문자를 보낸다거나 이벤트 행사라는 광고와 함께 QR코드를 여기저기 붙여 놓고 
사람들이 QR코드를 통해 사이트에 접속하게끔 유도한다거나 방법은 다양하기 때문에 
향후 이 취약점을 이용한 공격이 이루어질 경우 엄청난 사회적 파장이 우려된다

POC 2011 발표를 듣던 중 그 취약점을 그대로 확인볼 수 있었다.

악성코드가 심어져 있는 웹사이트 개설 => 해당 웹으로 접속하게 하는 QR Code 생성
=> 사람들은 아무것도 모르고 QR Code 를 찍게 되어서 웹사이트에 접속
=> 해당 웹에 심어져 있는 악성코드가 자동으로 스마트폰에 다운로드 됨
=> 피해자의 스마트폰을 공격자가 장악하게 됨