보안 제품정보


[기고] 안드로이드폰에 바이러스백신이 필요 없다? 2010.08.31

“스마트폰 USIM·IMEI 정보 무단 수집은 심각한 보안위협 될 수 있어”


안드로이드에서 동작하는 어플리케이션은 시스템의 많은 정보를 수집할 수 있다. USIM 정보, 단말기 식별 정보(IMEI), MAC, IP 주소 등의 네트워크 정보, GPS 정보, 심지어 스케쥴, 지인들의 연락처 등 개인 사생활의 모든 정보를 수집할 수 있다. 이런 정보들이 악용되면 사용자 정보가 쉽게 유출될 수 있기 때문에 안드로이드 운영 체제는 해당 정보를 사용하는 어플리케이션을 설치하려고 할 때 해당 어플리케이션이 관련 정보를 사용한다고 사용자에게 알려준다.


설치 시 사용자에게 정보 접근에 대한 공지를 하는 것만으로 안드로이드는 보안에 문제가 없어질까? 이것은 기술적 관점이 아닌 사용자 관점에서 생각해야 한다. 최상의 시나리오는 모든 사용자가 보안에 관심을 가지고 해당 어플리케이션이 믿을 수 있는 어플리케이션인지 확인하고 설치하는 것이다. 하지만 현실은 이와 같지 않다. 사용자는 어플리케이션 설치 시 어떤 정보에 접근한다고 뜨는 메시지 박스를 보고도 대부분 무조건 동의를 클릭한다.

 

보안 불감증이거나 해당 정보가 어떤 의미를 가지고 있는지를 모르기 때문이다. 더 큰 이유는 귀찮아서이다. 이것은 한때 윈도우의 ActiveX(액티브엑스) 기술을 통해 악성코드가 배포됐던 것과 같은 이치이다. 인터넷 익스플로러를 통해 ActiveX가 설치 될 때도 사용자는 악성 코드인지 아닌지를 모르고 대부분 "예"를 클릭했다. 그리고 이것은 전 세계적으로 심각한 보안 문제를 불러일으켰으며 지금도 이로 인한 피해는 매우 크다.


일부 악성코드는 ActiveX를 통해 배포되었다. 이와 관련된 보안 문제가 심각하니 마이크로소프트에서는 익스플로러에서 기본적으로 ActiveX를 사용하지 못하도록 바꾸고 있는 추세이기도 하다. ActiveX 사례에서 보듯, 보안 위협을 경고해도 사용자는 잘 모르거나 또는 귀찮아서 무조건 "예"를 클릭한다. 결국 해당 어플리케이션에 접근한다고 공지하는 것만으로는 보안 문제가 사라지지 않는다는 것이다.


이 정보를 악의적으로 사용한다면 어떤 문제가 발생할 수 있을까? 먼저 USIM 정보, IMEI, MAC, IP 주소는 해당 전화기의 사용자가 누구인지 정보를 연결하는 하나의 고리(Key)가 된다. 이것은 궁극적으로 내가 누구인지, 내가 무엇을 하고 있는지를 추적할 수 있는 하나의 근거가 된다. GPS 정보는 사용자가 어디에 있는지 정확하게 추적할 수 있는 근거가 된다.


스케줄과 전화번호부 정보는 그 어떤 것보다 가장 많은 개인 정보를 내포하고 있다. 물론 대부분의 어플리케이션은 이런 정보를 순수하게 알맞은 목적에만 사용할 것이다. 각 사용자를 구분한다거나 해당 사용자의 위치 정보를 통해 위치 기반 서비스를 할 것이다. 하지만 문제는 악성 어플리케이션이다. 이 안티 스파이웨어는 해당 정보를 순수하게 좋은 목적으로 사용하는지, 악의적으로 사용하는지 걸러 내준다. 일반 사용자는 이것을 구분하기가 어렵기 때문에 백신 또는 안티 스파이웨어의 도움을 받아야만 한다.


그런데 요즘 안드로이드에 백신이 필요없다는 잘못된 상식이 돌아다니고 있다. 심지어 얼마전 뉴스토마토라는 증권정보 사이트에서 익명의 기고자를 통해 기고된 “안드로이드폰 보안문제 정말 심각한가?”란 글(뉴스토마토 익명기고 원문보기=http://news.etomato.com/news/etomato_news_read.asp?no=109254)에서도 안드로이드는 리눅스 기반이고, 리눅스에 백신이 있다는 얘기는 못 들어봤으니 안드로이드도 백신이 필요 없다고 한다.


이 얼마나 편협하고 자기가 아는 범위 내에선 만 내뱉는 말인가? 외부에 기고하려면 이런 정보는 철저히 알아보고 해야 한다. 이런 잘못된 상식을 전파하는 글 때문에 보안 위협이 더 커지고 있는 것이다. 바이러스가 어떻게 감염되는지 알고 이 글을 쓴 것인가? 초등학생때 선생님이 그랬다. 3월 6일에 전기코드를 꽂아 놓으면 전기선을 통해 미켈란젤로 바이러스에 감염되니 빼놓고 있으라고. 혹시 해당 글의 기고자도 이렇게 생각하는 것인지 의문스럽다.


일반적으로 바이러스에 감염되려면 사용자가 바이러스에 감염된 어플리케이션을 한번은 꼭 실행해야 한다. 바이러스에 감염된 어플리케이션을 실행하면 컴퓨터에 바이러스가 복제되고 수많은 실행 파일에 자신을 복제한다. 이것은 거꾸로 사용자가 감염된 어플리케이션을 실행하지 않으면 바이러스에 감염되지 않는다는 것을 의미한다. 그 기고글에서는 리눅스 서버를 예로 들었는데, 리눅스 서버 관리자가 해당 서버에 인터넷에서 다운받은 알 수 없는 어플리케이션을 막 설치해서 사용한다고 생각하는 것인가? 서버 관리자는 당연히 전문가다. 웹서버로 사용하는 리눅스에는 아파치와 같은 웹서버 어플리케이션만 설치한다. 다른 것은 설치하지 않는다.


게다가 리눅스는 대부분의 어플리케이션을 프로그램 코드 수준에서 배포하고 그 코드를 관리자가 직접 프로그램으로 만들어서 사용한다. 이것은 해당 어플리케이션에 악성 기능이 숨어있다면 바로 수많은 관리자, 개발자가 알아차릴 수 있다는 것을 의미한다. 그래서 바이러스가 있을 수도 없고 있어도 배포될 수 있는 환경이 아니다. 바이러스 제작자는 만들어도 거의 전파되지 않으니 만들지를 않는다. 그래서 백신 업체에서 백신을 만들지 않는 것이다. 리눅스가 시스템적으로 바이러스의 위협에 자유로운 것이 아니라, 바이러스가 퍼질 수 없는 "사용 환경"이기 때문에 바이러스가 대부분 없었던 것이다.


오히려 리눅스 서버를 포함하는 서버 시장에는 백신보다 몇 백배 큰 시장이 존재한다. 패치 관리 시스템, 네트워크 분석툴, 시스템 로깅툴, IDS, FIREWALL, 루트킷 탐지 솔루션 등, 특히 루트킷 탐지 솔루션은 안티스파이웨어의 그 기능을 모두 포함한다.


그런데 안드로이드는 어떤가. 일반 사용자가 사용한다. 그리고 어플리케이션은 코드가 아닌 프로그램 패키지로 배포된다. 사용자는 잘 모르는 이곳저곳에서 돌아다니는 어플리케이션을 막 설치하여 사용할 수 있다. 그것이 문제다. 물론 안드로이드에서 동작하는 자바 기반의 어플리케이션 자체가 바이러스에 감염되어 돌아다닐 가능성은 매우 낮다.


안드로이드에서의 문제는 감염된 어플리케이션이 아니라, 그 자체가 악성 코드로 제작된 어플리케이션이다. 이런 어플리케이션은 대부분 좋은 유틸리티로 동작하고 있는 것처럼 보인다. 처음부터 악의적 목적으로 만들어진 악성코드는 잡아야 할 것 아닌가? 일반 사용자가 이 악성코드와 정상 어플리케이션을 구분할 수 있는 방법은 거의 없다. 따라서 백신이나 안티 스파이웨어를 사용해야 하는 것이다.


이런 문제점을 인식하지 못하고 전혀 다른 환경과 단순 비교하여 안드로이드에 백신이 필요없다고 말하는 것은 해당 글의 기고자가 안전 불감증이거나 또는 보안을 잘 모르고 썼거나, 잘 알고 있는 사람이라면 잘 모르는 일반 사용자를 속이는 행위이다. 이런 사람이 국내, 세계적으로 보안을 위해 활동하는 선량한 해커들을 해커 나부랭이라고 표현하다니 기도 안차는 얘기다.


같은 엔진을 사용하는 여객선에 어뢰 탐지기가 없으니, 잠수함에도 어뢰 탐지기가 필요없다고 하는 것은 얼마나 몰상식한 얘기인가? 사용하는 목적이 다르고 환경이 다르다. 사용하는 사용자도 다르다. 리눅스와 안드로이드도 마찬가지로 같은 리눅스 엔진(커널, Kernel)을 사용하지만 이는 완전히 목적이 다르고 어플리케이션 배포방식이 다른 완전 다른 운영체제이다.


최근 안드로이드에서 가장 심각한 보안 문제를 몇가지 소개하자면, 우선 시스템의 정보를 이용해 로그인을 하는 어플리케이션이 존재한다는 것이다. 이런 방식은 사용자가 별도로 아이디, 패스워드를 입력할 필요 없으니 사용자 편의성 측면에서 매우 좋다. 그런데 한가지 문제가 있다. 이 정보가 시스템에 저장되어 있고 다른 어플리케이션도 이 정보에 접근이 가능하다는 것이다. 이것은 공격자가 쉽든 어렵든 이 정보를 습득할 가능성이 매우 높다는 것을 의미한다.


예를 들어 이 정보를 똑같이 수집하는 특정 어플리케이션을 배포해서 이 정보를 알아내면 이런 방식으로 로그인 하는 모든 어플리케이션에 그 사용자로 둔갑하여 로그인할 수 있다는 것이다. 로그인 후에 그 사용자가 서버에 저장한 모든 데이터에 접근하는 것은 당연히 말할 것도 없겠다. 또 이 시스템 값을 무작위로 찍어서 계속 로그인을 시도하면 무작위로 수많은 사용자의 정보에 접근할 수 있다는 것이다. 이 외에도 시스템 정보를 이용해 로그인하는 어플리케이션은 수많은 문제를 내포하고 있다.


최근 한 증권 관련 어플리케이션을 사용하다가 백신을 통해 해당 어플리케이션이 IMEI 정보를 이용해서 로그인을 한다는 것을 알아냈다. 이것은 내가 무작위로 IMEI를 만들어서 로그인을 하면 많은 사람의 증권 관련 정보에 접근할 수 있다는 것이다. 이 얼마나 심각한 문제인가? 접근 할 수 있는 정보가 "관심 종목"만 된다 하더라도 그 사용자가 대기업 회장이라면 어떨까? 그리고 이 정보를 인터넷에 유출한다면 어떤 피해가 일어날까? 더 나아가서 증권 거래를 포함한 인터넷 상거래 관련 어프릴케이션이 이런 방식의 로그인을 한다면 이는 실질적인 금전적 피해와 엄청난 사회적 파장을 몰고 올 것이다.


또 한가지 안드로이드에서 심각한 보안 위협은 악성코드를 통해 안드로이드 폰이 좀비 또는 봇넷(Bot Net)이 될 수 있다는 것이다. 악성코드에 감염된 안드로이드 폰은 공격자의 명령을 받아 패스워드, 거래 내역, 연락처 등의 사용자 정보를 수집하여 전송하거나 다른 특정한 사이트를 공격하는 교두보(Proxy) 역할을 할 수 있게 된다. PC에서도 이런 문제는 엄청나게 많이 등장하고 있으며 이미 수백, 수천만대의 PC가 감염되어 있다는 외국 학회의 보고도 심심치 않게 나오고 있다.


과거에는 휴대폰의 컴퓨팅 파워가 떨어져서 봇넷 감염의 대상이 되지 않았지만 이제 스마트폰은 1기가 hz 이상의 컴퓨팅 파워를 갖추게 됨으로서 봇넷의 대상이 되고 있다. 스마트폰에 봇넷 어플리케이션이 동작하고 있다는 사실을 일반 사용자는 알아채기 힘들다. 평소에 봇넷은 정상적이고 유용한 유틸리티 어플리케이션으로 둔갑하고 있다가 공격자의 명령을 받았을 때만 동작하는 종류가 많기 때문이다. 이런 것은 백신이나 안티 바이러스 어플리케이션이 잡아낼 수밖에 없다.


안드로이드든, 리눅스 기반 서버든, 일반 PC든 보안 위협은 존재한다. 특히 최근 스마트폰이 엄청나게 많이 확산되고 있기 때문에 보안 위협은 더 커지고 있다. 공격자는 공격 대상이 많은 환경을 공략한다. 현재 스마트폰은 오히려 PC 보다 더욱 많은 사용자 정보를 담고 있기 때문에 위험하다. 스마트폰 한대로 은행 거래도 하고 전자 상거래도 하고, 모든 지인의 연락처도 관리한다. 나의 스케줄도 관리한다. 따라서 개개인이 스마트폰용 백신을 설치하고, 패스워드 관리를 철저히 하는 등 더 많은 신경을 써야 한다.

[글· 한제헌 보안전문가·국내·외 보안/해킹대회 다수 수상]

[정리 길민권 기자(reporter21@boannews.com)]


<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>