(기고)안드로이드폰 보안문제 정말 심각한가?
2010-08-27 15:04:50 2011-06-15 18:56:52
최근 스마트폰이 급속히 보급되면서 스마트폰 등 모바일 기기에서의 보안문제도 뜨거운 관심사로 떠오르고 있습니다. 모바일 환경이 기존 PC 환경에 비해 보안에 취약하다는 주장도 연일 쏟아져 나오고 있습니다. 특히 금융결제원이 안드로이드 운영체제 스마트폰의 경우 모바일뱅킹 프로그램에 반드시 '백신'을 탑재하도록 하면서, 그 실효성을 놓고 논란도 제기되고 있습니다. 이런 상황에서 한 OS 전문가가 "최근의 모바일 보안문제, 특히 금융프로그램 보안 문제가 과장된 측면이 있다"는 주장을 담은 글을 보내왔습니다. <토마토TV>는 이 글이 최근 논쟁의 배경을 이해하고, 이를 발전적으로 진전시키는데 일정 부분 기여를 할 것이라고 판단해 기고문 형식으로 소개하기로 했습니다. 다만, 필자의 요청에 따라 실명을 밝히지 않기로 했습니다.[편집자]
 
안드로이드는 리눅스입니다. 최신 리눅스 커널(버전 2.6.xx)을 그대로 사용하고 있고 그위에 Dalvik이라는 VM(가상머신)을 올리고 대부분의 애플리케이션은 이 가상머신 위에서 실행됩니다. 우선 리눅스를 살펴볼 필요가 있습니다. 리눅스용 백신은 시장에 거의 나와 있지 않습니다. 왜냐하면 바이러스 위협이 그만큼 없기 때문입니다. 왜 리눅스는 바이러스가 없을까요?
 
없지 않습니다. 있습니다. 그런데 스스로 복제하며 유통되기가 어렵습니다. 리눅스는 윈도우와 달리 모든 사용자가 관리자 모드(리눅스는 이 계정을 root라 합니다)가 아닌 사용자 모드로만 프로그램을 실행합니다. 원래 태생적으로 그렇습니다. 사용자 모드에서는 시스템자원에 대한 접근이 원천적으로 차단되고 다른 프로그램에 대한 접근도 차단됩니다. 그러므로 사용자모드에 바이러스를 심어봐야 할 수 있는 게 별로 없습니다. 리눅스 세계에서는 root에서 일반 응용프로그램을 사용하는 것이 상식밖의 일로 규정되어 있기 때문입니다.
 
반면 윈도우는 무조건 관리자모드로 실행합니다. 그렇지 않으면 안되는 프로그램이 너무 많습니다. 그렇다 보니 바이러스프로그램들의 주 무대가 되었음은 모두가 알고 있는 사실입니다.
 
다시 안드로이드로 돌아 갑니다. 리눅스에서 아주 미미하나마 바이러스 이야기가 나오는 경우는 root계정으로 어플을 사용할 경우가 있기 때문입니다. 즉 완벽하지는 않은 것입니다. 안드로이드는 어떨까요? 아예 root모드가 없습니다. 즉 휴대폰 사용자는 어떤 경우에도 root계정에 들어갈 수 없습니다. root로 들어가는 기능이 아예 빠져서 배포됩니다. 그래서 일부 사용자들이 롬을 바꿔서 rooting이라는 것을 합니다. 이것으로 통해서 root모드로 들어가는 것입니다. 이렇게 rooting을 한 경우는 모든 논의에서 예외로 하겠습니다.
 
아예 root모드가 없는 OS에서는 어떤 프로그램이 다른 프로그램에 대한 어떤 영역도 접근할 수 없습니다. 메모리든, 네트워크든, 디스크든 OS에서 보안상 필요하다고 하는 모든 것은 다 막혀있습니다. 그러니 안드로이드에서 백신프로그램이라는 것은 무엇을 할 수 있을까요? 자신이 아닌 다른프로그램의 어떤 영역에도 접근이 불가능한데 뭘 막을 수 있을까요? 무엇을 막을 필요가 있을까요?
 
백신이 필요없지는 않습니다. 설사 어떤 프로그램이 다른 프로그램을 감염시킬 수 없다 하더라도 그냥 그 자신이 자신의 기능을 이용하여 사용자의 정보를 빼가는 것은 얼마든지 가능하기 때문입니다. 프로그램을 개발할 때 필요에 의해서 전화기의 ID에 접근하거나 네트워크에 접근하거나 주소록을 읽거나 하는 기능이 필요하게 됩니다.
 
이 경우 프로그램은 manifest 파일에 어떤 기능을 접근하는지 등록해야 하며 등록을 하지 않으면 프로그램에서 해당 기능을 접근할 수 없습니다. 이 manifest 파일은 공개되어 있으며 프로그램 설치시 어떤 기능을 접근하는지 사용자에게 보여주고 동의를 받게 됩니다. 사용자는 어떤 프로그램의 선의의 기능을 위해서 해당기능을 사용한다고 믿고 프로그램을 설치하게 됩니다.
 
그런데 어떤 프로그램이 그러한 기능을 선의로 사용하지 않고 악의적으로 사용하고 있다는 것이 밝혀졌다고 했을때 사용자는 이 프로그램을 실행하는 즉시 그러한 위험프로그램이라는 것을 알수 있으면 좋을 것입니다. 그것이 현재 안드로이드 시장에서 정상적인 백신프로그램이 하는 역할입니다. 즉 시장에서 악의적으로 사용된다고 인정된 프로그램을 블랙리스트에 등록하고 사용자가 쓰지 않도록 권고 하는 것입니다.
 
이러한 것이 백신의 역할이라고 할때 금융프로그램이 백신을 번들할 이유가 무엇입니까? 자신의 금융프로그램이 아닌 사용자가 쓰고 있는 다른 프로그램들이 사용자 정보를 빼가는 위험이 있다는 사실을 금융회사들이 나서서 공지할 필요가 있을까요? PC에서 백신을 번들했던 이유는 윈도우의 구조적인 문제로 악성 프로그램이 금융프로그램에 접근하여 사용자가 입력하는 패스워드 등 중요 정보를 빼갈수 있기 때문입니다. 위에서
설명한대로 안드로이드에서 이것은 원천적으로 불가능 합니다. 이것이 가능한 프로그램이 단 하나 있기는 합니다. 바로 키보드 프로그램입니다.
 
안드로이드는 키보드 조차도 프로그램으로 대치할 수 있도록 되어있습니다. 키보드는 그 태생적 기능이 사용자의 입력을 받는 것이니 뭐든 감시가 됩니다. 키보드 프로그램이 그런 짓을 하는지 안하는지 밝히는 것은 보안전문가들의 일일 것이고 그것이 위험하면 위험하다 고지가 되고 마켓에서 삭제되고 더 나아가서 사용자 폰에 설치된 프로그램조차 원격으로 삭제가 가능한 것이 안드로이드OS입니다.
 
사실 키보드 프로그램의 이러한 문제가 있기 때문에 모든 금융프로그램들은 이미 패스워드입력 등에서는 자신들의 스크린 키보드를 사용하고 있기 때문에 이 또한 보안상 아무런 문제가 없습니다.
 
금융프로그램은 두가지만 조심하면 됩니다. 첫째 'rooting된 폰인지 검사'를 해야합니다. 간단히 검사가 되는 방법이 나와 있고 rooting이 되어 있으면 프로그램을 실행하지 않으면 됩니다. 둘째로는 위에서 이야기한 '패스워드 입력시 자체 프로그램에 내장된 스크린키보드를 사용'하는 것입니다. 이 두가지로 프로그램은 자신의 정보가 외부프로그램에 의해서 해킹당할 모든 위협에서 자유롭게 됩니다.
 
뭘로 확인 하느냐구요? 이 이야기의 첫번째 나오는 안드로이드는 리눅스 기반이라는 것입니다. 리눅스 커널은 현존하는 가장 안전한 커널이고 이것이 해킹당한다면 그야말로 대재앙입니다. 이것은 안드로이드폰의 문제가 아니라 '전세계 웹서버 중 비중이 가장높은 OS'가 뚫렸다는 것이 되고 그것은 인터넷의 붕괴를 의미 할지도 모릅니다. 그만큼 많이 사용되는 OS이기 때문에 그만큼 안전합니다.
 
리눅스 서버에 무슨 백신을 설치한다는 얘기를 들어본 적이 없습니다. 만약 리눅스가 그리 위험하다면 이 엄청난 서버 시장에 우리 나라의 그 잘난 유수의 보안회사들이 리눅스용 백신이라는 것이 아예 없는 이유가 무엇일까요? 서버도 아닌 안드로이드에 당연히 백신 필요 없습니다. 보안회사들도 다 알고 있습니다. 유료로 스마트폰 백신 내놔봐야 하나도 안팔린다는 사실을. 그래서 무능하거나 또는 부패한 관리들에게 접근하여 번들로 팔아먹고 그 비용을 고객에게 전가하고 불편을 감수케 하는 것입니다. 한줌도 안되는 보안회사 직원들 먹여살리자고 온국민이 스마트폰에서조차 불편을 감수하고 시간을 뺏기고 기분이 나빠야 할 이유는 없는 것입니다.
 
현재까지 안드로이드에서 나온 보안위협프로그램은 모두 프로그램에서 접근가능한 사용자 정보를 빼가는 것입니다. 이것은 어떤 누구도 막을 수 있는 일이 아닙니다. 백신프로그램도 사후에 해당 프로그램이 악성이라고 알려져야만 위험을 고지할 수 있지 그 이전에는 뭘 하는지 절대 알수 없습니다. 이러한 위험은 아이폰에도 마찬가지로 있고 어떤 OS라도 마찬가지 입니다. 사용자정보 유출의 위험이 있다고 네트워크를 막을 수는 없지 않습니까?
 
네트워크가 열려 있는한 그 프로그램 안에서 자신이 한 행위는 모두 해당 프로그램이 빼갈수 있습니다. 그래서 믿을 수 있는 회사의 프로그램을 사용해야 합니다. 그것 외에는 이러한 위험을 막을 방법은 전혀 없습니다. 인터넷에 널려있는 수많은 사이트들을 보십시오. 그 사이트들에 들어가서 우리는 개인정보를 입력하고 다양한 활동을 합니다. 그 사이트가 악의적으로 정보를 사용할 사이트인지 아닌지 알려주는 백신이 있습니까? 그런 것이 존재할 수 있습니까? 없습니다. 믿지못할 회사의 사이트는 가입하지 않아야 합니다. 믿지못할 사이트의 프로그램은 설치하지 말아야 합니다. 어떤 프로그램이 앞으로 악의적으로 개인정보를 사용할지 안할지 진단하는 프로그램은 만들수 없습니다.
 
그러므로 선행적으로 위험을 감지해준다는 그들의 이야기는 모두 거짓입니다. 금융프로그램에서 입력되는 정보를 다른 프로그램이 잠재적으로 빼갈지도 모른다는 그들의 이야기는 새빨간 거짓말입니다. 그런 것이 가능하다면 그들의 훌륭한 개발자인지 연구원인지 해커 나부랑이들인지를 동원해서 실험실 환경 안에서라도 그것이 가능하다는 것을 시연해 보여줘야 할 것입니다. <끝>
 
- Copyrights ⓒ 뉴스토마토 (www.newstomato.co.kr) 무단 전재 및 재배포 금지 -
이 기사는 뉴스토마토 보도준칙 및 윤리강령에 따라 김기성 편집국장이 최종 확인·수정했습니다.

ⓒ 맛있는 뉴스토마토, 무단 전재 - 재배포 금지

관련기사
정광섭

정론직필! 바로 보고 바로 쓰겠습니다.

email
0/300

뉴스리듬

    이 시간 주요 뉴스

      함께 볼만한 뉴스