2016. 8. 7. 13:18

가장 많은 공격을 받는 운영체제(OS)

1. 윈도우즈(Windows)

2. 안드로이드(Android)

구글, 안드로이드의 리눅스 커널 보안 위해 새 방침 발표

공격 지면 줄이고 메모리 분리해서 공격 가능성 낮춰
안드로이드 사용자 늘어감에 따라 구글 걱정 늘어

구글은 안드로이드의 리눅스 커널을 악성 공격으로부터 보호하기 위한 새로운 방안들을 발표했는데 메모리 단계에서부터 작동하는 것도 있고 아닌 것도 있습니다. 메모리 단계에서의 보호 방법과 관련 이 장치의 핵심은 리눅스 커널의 무결성을 유지하는 것이 됩니다.

커널이 가지고 있는 보안 기능 중 가장 중요한 것 중 하나는 바로 번지 공간(address space)을 분리하는 형태로 사용자 공간(user space)을 보호하는 것으로 사용자 공간이란 OS 커널의 한 영역으로 애플리케이션들이 여기서 실행되므로 사용자 공간의 프로세스들은 분리되어 메모리에 대한 접근이 제한적으로만 이루어지게 되니 애플리케이션들끼리 엉켜서 시스템이 다운되는 걸 최소화하기 위함입니다.

그러나 사용자 공간에서의 프로세스들과는 달리 커널이 실행하는 여러 가지 작업들은 한 가지 번지 공간에서만 이루어집니다. 그 결과 커널 내 어떤 부분에든 취약점이 존재한다면 번지 공간에도 영향이 있을 수밖에 없다.

구글이 새롭게 내놓은 메모리 보호 방안은 바로 이 점을 파고들어 새로운 커널 메모리 분리(segmentation) 기능을 가지고 있으며 각각의 분리된 영역이 다른 영역으로의 접근을 시도할 때 일정한 규칙에 의해 제한이 걸립니다. 간단히 말하면 사용자 공간의 좋은 기능을 번지 공간에 차용한 것.

또, 커널 공간이 사용자 공간의 메모리에 직접 접근하는 걸 차단하는 기능도 포함되어 있어 이것 하나만으로 최근의 해킹 공격 기법들 중 상당수가 무력화됩니다. 뭔가 실행이 가능하도록 해주는 커널 메모리에 대한 통제권을 심각하게 깎아버리는 것이거든요.

이뿐 만이 아닙니다. 구글은 공격이 가능한 면적 자체를 줄이기 위해 특정 코드와 특정 접근권한을 없애는 기능도 도입했다고 밝혔습니다. “다음 안드로이드 버전인 누가(Nougat)부터는 perf라는 커널 기능으로의 접근이 블록될 것입니다. perf는 개발자들이 기능 실험 등을 해볼 수 있게 해주는 기능으로 보안 관점에서는 ‘불필요하게 공격 루트만 늘려주는’ 꼴이 되기 일쑤이기 때문인데 다만 기능 자체를 없애는 건 아니고 개발자들이 특정 세팅을 변경해서 접근하는 건 가능하게 해둘 예정입니다.

안드로이드 누가부터는 커널의 공격 지면을 최소화하기 위해 애플리케이션들이 가지고 있는 입력/출력 제어 명령 몇 가지도 제한될 예정입니다. 안드로이드 리눅스 커널에서 여태까지 발견된 대부분 취약점들은 바로 이 입력/출력 제어 명령을 활성화시키는 드라이버들에서 발견되었기 때문입니다.

구글은 최근 계속해서 리눅스 커널을 보호하기 위한 방법들을 끊임없이 개발해내고 있습니다. 리눅스 커널은 안드로이드라는 운영 체제가 프로세스들의 필수 접근 제어를 강화 및 활성화시키고, 새로운 정책을 자동으로 만들고, 권한에 따라 특정 행동들을 제한하기 위해 반드시 필요로 하기 때문입니다.

구글의 이런 노력은 커널 셀프 프로텍선 프로젝트(Kernel Self Protection Project) 등의 여러 가지 사업으로도 드러난 바 있고, 안드로이드 운영체계의 사용자가 빠르게 늘어감에 따라 구글이 보안에 더 집중하고 있습니다.

http://www.boannews.com/media/view.asp?idx=51372