안드로이드 사용자 늘어감에 따라 구글 걱정 늘어
[보안뉴스 문가용] 구글은 어제 안드로이드의 리눅스 커널을 악성 공격으로부터 보호하기 위한 새로운 방안들을 발표했다. 메모리 단계에서부터 작동하는 것도 있고 아닌 것도 있다. 구글 안드로이드 보안팀의 제프 벤더 스토엡(Jeff Vander Stoep)은 메모리 단계에서의 보호 방법에 대해 설명하며 “이 장치의 핵심은 리눅스 커널의 무결성을 유지하는 것”이라고 말했다.

▲ 땅이 넓어져도 고민이네...
“커널이 가지고 있는 보안 기능 중 가장 중요한 것 중 하나는 바로 번지 공간(address space)을 분리하는 형태로 사용자 공간(user space)을 보호하는 것이죠.” 사용자 공간이란 OS 커널의 한 영역으로 애플리케이션들이 여기서 실행된다. 사용자 공간의 프로세스들은 분리되어 메모리에 대한 접근이 제한적으로만 이루어진다. 애플리케이션들끼리 엉켜서 시스템이 다운되는 걸 최소화하기 위함이다.
“그러나 사용자 공간에서의 프로세스들과는 달리 커널이 실행하는 여러 가지 작업들은 한 가지 번지 공간에서만 이루어집니다.” 그 결과 커널 내 어떤 부분에든 취약점이 존재한다면 번지 공간에도 영향이 있을 수밖에 없다.
구글이 새롭게 내놓은 메모리 보호 방안은 바로 이 점을 파고든다. 새로운 커널 메모리 분리(segmentation) 기능을 가지고 있으며 각각의 분리된 영역이 다른 영역으로의 접근을 시도할 때 일정한 규칙에 의해 제한이 걸린다. 간단히 말하면 사용자 공간의 좋은 기능을 번지 공간에 차용한 것.
또, 커널 공간이 사용자 공간의 메모리에 직접 접근하는 걸 차단하는 기능도 포함되어 있다. “이것 하나만으로 최근 해킹 공격 기법의 상당수가 무력화됩니다. 뭔가 실행이 가능하도록 해주는 커널 메모리에 대한 통제권을 심각하게 깎아버리는 것이거든요.”
이뿐 만이 아니다. 구글은 공격이 가능한 면적 자체를 줄이기 위해 특정 코드와 특정 접근권한을 없애는 기능도 도입했다고 밝혔다. “다음 안드로이드 버전인 누가(Nougat)부터는 perf라는 커널 기능으로의 접근이 블록될 것입니다. perf는 개발자들이 기능 실험 등을 해볼 수 있게 해주는 기능으로 보안 관점에서는 ‘불필요하게 공격 루트만 늘려주는’ 꼴이 되기 일쑤죠. 다만 기능 자체를 없애는 건 아니고 개발자들이 특정 세팅을 변경해서 접근하는 건 가능하게 해둘 예정입니다.”
안드로이드 누가부터는 커널의 공격 지면을 최소화하기 위해 애플리케이션들이 가지고 있는 입력/출력 제어 명령 몇 가지도 제한될 예정이다. 안드로이드 리눅스 커널에서 여태까지 발견된 대부분 취약점들은 바로 이 입력/출력 제어 명령을 활성화시키는 드라이버들에서 발견되었기 때문이다.
구글은 최근 계속해서 리눅스 커널을 보호하기 위한 방법들을 끊임없이 개발해내고 있다. 리눅스 커널은 안드로이드라는 운영 체제가 프로세스들의 필수 접근 제어를 강화 및 활성화시키고, 새로운 정책을 자동으로 만들고, 권한에 따라 특정 행동들을 제한하기 위해 반드시 필요로 하기 때문이다.
구글의 이런 노력은 커널 셀프 프로텍선 프로젝트(Kernel Self Protection Project) 등의 여러 가지 사업으로도 드러난 바 있다. 안드로이드 운영체계의 사용자가 빠르게 늘어감에 따라 구글이 보안에 더 집중하고 있다. 올해 초 HP는 “안드로이드가 모든 OS 중 두 번째로 많은 공격을 받고 있다”는 연구 결과를 발표한 바 있다. 1위는 윈도우였다.
Copyrighted 2015. UBM-Tech. 117153:0515BC
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>