| 백신도 못 잡는 ‘스마트폰 슈퍼 악성코드’ 가능성 증명됐다 | 2011.06.21 | ||
스마트폰 OS 취약점 이용해 스마트폰 백신도 우회 [보안뉴스 오병민] 항생제가 듣지 않는 슈퍼 박테리아처럼 스마트폰에서도 백신을 우회할 수 있는 슈퍼 악성코드에 대한 해킹 시연이 진행돼 주목되고 있다. 슈퍼 악성코드는 스마트폰 OS의 취약점을 이용해 스마트폰을 지배할 수 있다. 뿐만 아니라 스마트폰 백신도 이 악성코드를 진단할 수 없는 것은 물론 다른 악성코드들도 백신에 검출되지 않도록 스마트폰의 모든 행동을 제어할 수 있는 것으로 확인돼 대책이 필요해 보인다. 지난 6월 17일 방이동 형인타워에서 개최된 POC 세미나에서는 흥미로운 주제의 해킹시연과 주제발표가 진행됐다. 스마트폰 OS 취약점을 통해 OS영역에 악성코드를 삽입하고 최고 권한을 획득해 스마트폰을 지배하는 내용이었다. 이번 발표를 진행한 유동훈 아이넷캅 연구소장은 “스마트폰 OS 취약점을 이용하면 안드로이드폰과 아이폰을 비롯한 모든 스마트폰을 좀비 스마트폰으로 만들 수 있다”고 설명했다.
이어 그는 "시연에서는 백신을 우회하는 것도 포함됐지만 그렇다고 해서 백신의 기능이 불필요한 것은 아니다"고 주장하면서 "악성 앱이나 악성코드에 대한 부분은 백신의 영역에서 탐지 및 치료가 필요하기 때문"이라고 덧붙였다. 백신을 우회하는 시연은 OS의 취약점을 공격하는 공격기법의 위험성을 설명함을 위한 것이며, 앱상에서 나타나는 공격에서는 백신이 또한 중요한 역할을 하기 때문이다.
시연은 편의상 안드로이드 기반 스마트폰에서 진행됐다.
이번 시연의 핵심은 안드로이드가 기본적으로 리눅스 커널을 탑재하고 있기 때문에 기존 리눅스 OS에 나타났던 수많은 커널 악성 코드가 그대로 옮겨져 실행될 가능성이 매우 높다는 것. 유 소장은 “시연에 포함되지는 않았지만 아이폰 역시 탑재된 iOS가 BSD 커널을 탑재하고 있기 때문에 커널 악성 코드에 자유로울 수 없다”고 덧붙였다.
안드로이드 폰 보안 ‘샌드박스’에만 의존 안드로이드 폰은 얼핏 보면 PC와 같은 구조일 것 같지만 실행하는 방법과 과정에서 차이점을 보이고 있다. PC는 저장된 모든 데이터를 프로그램(앱)들이 접근할 수 있도록 하지만 안드로이드는 각자의 앱이 자신의 방을 가지고 있어서 그 안에 있는 데이터만 접근할 수 있다. 하나의 앱이 작동을 멈추더라도 다른 앱에 영향이 미치지 않도록 하기 위해서다. 이 같은 앱들의 격리 공간은 IT용어로 ‘샌드박스(Sandbox)’라고 불린다. 샌드박스의 격리 기능으로 인해 스마트폰에 악성앱이 설치됐다하더라도 설치된 악성앱만 삭제하면 문제는 해결된다. 또한 악성코드가 앱 안의 샌드박스에 갇혀 있기 때문에 스마트폰의 모든 기능을 지배하는 OS영역에 접근할 수 없다. 스마트폰 백신도 이 같은 점에서 착안해 각 앱들의 악성기능을 찾아 탐지하곤 한다. 즉 안드로이드의 대부분의 보안기능은 샌드박스에 의존한다고 볼 수 있다. 샌드박스를 넘어 OS영역 접근 스마트폰은 공장에서 나올 때부터 OS영역에 대한 접근이 불가능하도록 돼 있다. 즉, 어떤 앱을 설치하더라도 OS에는 영향을 주지 않는다. 샌드박스 안에 있기 때문이다. 안드로이드 OS의 기반은 리눅스로 돼 있으며 리눅스는 기본적으로 OS에 대한 접근이 제한돼 있다. 문제는 안드로이드 OS가 리눅스를 축소판이라는 점이다.
안드로이드는 리눅스의 대부분의 기능을 가지면서 스마트폰과 같은 소형 디바이스에서 작동할 수 있도록 경량화 돼 있다. 그러나 유 소장은 경량화 과정에서 중요한 보안기능을 빠졌다고 이야기한다. OS에 잘못된 접근을 확인하는 일부 과정이 생략 된 것. 따라서 리눅스에서도 나타났던 커널 취약점 문제가 안드로이드에서는 더욱 많이 나타날 수 있다면서 주의를 당부했다. 이번에 시연된 커널 취약점은 LKM(Loadable kernel module) 동적 적재를 통한 커널 접근 기술과 KMEM 디바이스 접근을 통한 커널 메모리 접근 기술 등으로, 이들 취약점을 이용하면 OS의 지배적인 권한으로 공격자가 원하는 명령을 내리는 것이 가능하다. 기존 리눅스 커널 취약점은 버전에 따라 적용이 불가능 한 경우가 많아 각 버전마다 취약점과 공격기법이 다른 경우가 많았다. 그러나 이번에 공개된 취약점은 모든 버전에서 공격이 가능하다. 이번 취약점은 커널의 구조체나 커널 크기를 분석해 다양한 버전의 커널에서 동작이 가능하기 때문이다. 슈퍼 악성코드의 위력은? 이렇게 커널 악성 코드에 감염된 안드로이드 스마트 플랫폼은 SMS 문자 메시지 등을 통해 원격에서 해커의 제어를 받게 된다. 또한 백신 보안 제품을 무력화시켜 추가적인 악성 코드를 설치함으로써 스마트 플랫폼 내의 주요 데이터(기기 정보, 문자 및 통화 내역, 주소록, 내장 메모리 데이터, GPS 위치 정보)를 외부로 전송할 수도 있다. 유동훈 소장은 "과거에는 커널 악성 코드만으로는 스마트 플랫폼으로의 설치가 어려웠기 때문에 큰 위협이 되지 않았지만 최근에 다양한 안드로이드 스마트 플랫폼 취약점이 발견 되면서 커널 악성 코드를 스마트 플랫폼에서 이용 할 수 있게 되었다"면서 "이로써 백신이 설치된 기기라 하더라도 더 이상 해킹의 안전지대에 있다고 볼 수 없을 것"이라고 말했다. 루트킷(Rootkit)은 관리자 권한을 획득한 해커가 커널에 설치하는 악성 코드의 일종으로서 실행중인 악성 코드와 그에 따른 흔적을 은닉하기 위한 목적으로 자주 악용된다. 때문에 스마트 플랫폼 내의 OS 커널을 변조하는 루트킷이 활성화 된다면 백신 제품을 사용 중일지라도 커널 악성 코드의 공격을 피할 수 없다. 해결 방법은 없는가? 가장 좋은 방법은 해당 커널 취약점이 발견될 때마다 해당 취약점이 패치된 안드로이드의 OS을 업그레이드하는 방법이다. 그러나 스마트폰의 OS를 업그레이드하는 것은 매우 번거로운 일이다. OS영역 외에 모든 자료를 백업한 후에 기존 OS를 지우고 새로운 OS를 덮어씌우는 방법을 이용하고 있기 때문이다. 이런 번거로운 방법 때문에 많은 사용자들이 OS를 업그레이드할 때 시스템이 먹통되는 등의 불편을 겪고 있다. 게다가 제조사 입장에서도 커널 취약점이 패치된 OS를 빠르게 제공하는 것이 쉽지만은 않다. 유동훈 아이넷캅 연구소장은 이날 강연에서 이와 관련한 대처방법도 공개했다. 안드로이드는 중요 OS의 이미지를 롬에 저장하기 때문에 이를 이용해 악성코드로 변형된 부분을 찾아내는 것. 즉, 롬에 저장된 이미지를 비교해서 OS영역의 무결성(integrity)을 체크한다는 이야기다. 더불어 무결성 체크를 완료한 후에 커널에 대한 접근을 막아 슈퍼 악성코드를 실시간으로 차단할 수 있다고 설명했다. 유 소장은 “커널 악성 코드들이 스마트 플랫폼 특성에 따라 차이를 갖는 약점을 가지고 있기는 하지만 스마트 플랫폼 특성상 동일한 버전의 제품이 대량으로 생산된다는 점에 비춰보았을 때 하나의 스마트 플랫폼만을 대상으로 하더라도 상상을 초월하는 대규모의 사이버 테러가 발생할 가능성이 있다”고 경고했다. [오병민 기자(boan4@boannews.com)] <저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지> |
|||
|
|