티스토리 뷰

스마트폰 OS 취약점을 통해 OS영역에 악성코드를 삽입하고 최고 권한을 획득해 스마트폰을 지배

스마트 플랫폼 특성상 동일한 버전의 제품이 대량으로 생산된다는 점에 비춰보았을 때 하나의 스마트 플랫폼만을 대상으로 하더라도 상상을 초월하는 대규모의 사이버 테러가 발생할 가능성이 있다

2011년 6월 17일 방이동 형인타워에서 개최된 POC 세미나

안드로이드 기반 스마트폰

이번 시연의 핵심은 안드로이드가 기본적으로 리눅스 커널을 탑재하고 있기 때문에 기존 리눅스 OS에 나타났던 수많은 커널 악성 코드가 그대로 옮겨져 실행될 가능성이 매우 높다는 것.

아이폰 역시 탑재된 iOS가 BSD 커널을 탑재하고 있기 때문에 커널 악성 코드에 자유로울 수 없다

시연된 커널 취약점은 LKM(Loadable kernel module) 동적 적재를 통한 커널 접근 기술과 KMEM 디바이스 접근을 통한 커널 메모리 접근 기술 등으로, 이들 취약점을 이용하면 OS의 지배적인 권한으로 공격자가 원하는 명령을 내리는 것이 가능하다.


안드로이드의 대부분의 보안기능은 샌드박스에 의존

각자의 앱이 자신의 방을 가지고 있어서 그 안에 있는 데이터만 접근할 수 있다. 하나의 앱이 작동을 멈추더라도 다른 앱에 영향이 미치지 않도록 하기 위해서다.

샌드박스의 격리 기능으로 인해 스마트폰에 악성앱이 설치됐다하더라도 설치된 악성앱만 삭제하면 문제는 해결된다. 또한 악성코드가 앱 안의 샌드박스에 갇혀 있기 때문에 스마트폰의 모든 기능을 지배하는 OS영역에 접근할 수 없다.

문제는 안드로이드 OS가 리눅스를 축소판

경량화 과정에서 중요한 보안기능을 빠졌다.OS에 잘못된 접근을 확인하는 일부 과정이 생략 된 것. 따라서 리눅스에서도 나타났던 커널 취약점 문제가 안드로이드에서는 더욱 많이 나타날 수 있다

슈퍼 악성코드의 위력

  • 커널 악성 코드에 감염된 안드로이드 스마트 플랫폼은 SMS 문자 메시지 등을 통해 원격에서 해커의 제어를 받음
  • 백신 보안 제품을 무력화시켜 추가적인 악성 코드를 설치함으로써 스마트 플랫폼 내의 주요 데이터(기기 정보, 문자 및 통화 내역, 주소록, 내장 메모리 데이터, GPS 위치 정보)를 외부로 전송할 수도 있다

해결책

  • 해당 커널 취약점이 발견될 때마다 해당 취약점이 패치된 안드로이드의 OS을 업그레이드하는 방법
  • 롬에 저장된 이미지를 비교해서 OS영역의 무결성(integrity)을 체크

    안드로이드는 중요 OS의 이미지를 롬에 저장하기 때문에 이를 이용해 악성코드로 변형된 부분을 찾아내는 것

댓글