보안 제품정보


구글, 윈도우에서 또 제로데이 취약점 발견 2019.03.20

일부 요청 처리 시 커널 모드 드라이버가 검사를 다 하지 않아
실제 공격에 활용될 가능성 매우 낮지만, 패치는 진행하기로


[보안뉴스 문가용 기자] 구글 프로젝트 제로(Google Project Zero) 팀에 소속된 한 보안 전문가가 윈도우와 윈도우용 드라이버에 영향을 줄 수 있는 새로운 버그를 발견했다. 이 전문가는 제임스 포쇼(James Forshaw)라는 인물이며, 윈도우 일부 버전에 탑재된 커널 모드 드라이버들이 특정 요청을 처리하는 과정에서 충분한 확인을 하지 않는 것이 문제의 근원이라고 한다. 이를 익스플로잇 하면 권한이 상승된다.

[이미지 = iclickart]


MS에 따르면 윈도우는 PreviousMode 필드를 UserMode나 KernelMode로 설정함으로써 시스템 호출을 구분한다고 한다. 이런 과정을 통해 호출의 아규먼트가 신뢰받는 곳에서부터 온 것인지 아닌지 확인할 수 있는 것이다. 이런 원리는 파일을 열거나 만들 때에도 적용된다. PreviousMode를 특정 변수에 할당함으로써 매개변수와 버퍼가 올바른 것인지 확인하는 것이다.

그런데 포쇼는 윈도우에 있는 일부 커널 모드 드라이버에서 IRP_MJ_CREATE와 관련된 요청들이 처리될 때 접근 권한 관련 검사가 제대로 실행되지 않는다는 것을 발견했다. “파일을 만들거나 열게 하는 호출의 아규먼트에 대한 제어권이 충분히 있는 공격자라면 사용자 모드로부터 발생하는 요청들을 사용해 이 취약점을 남용할 수 있습니다. 그리고 IRP_MJ_CREATE 요청을 전송하고 KernelMode로 설정함으로써 권한을 상승시키는 게 가능합니다.”

포쇼는 일부 검사가 제대로 진행되지 않는다는 이 취약점을 익스플로잇 하기 위해서는 두 가지 커널 모드 코드 패턴이 필요하다고 설명한다. “하나는 initiator라고 하는데, 파일 생성이나 파일 열기와 같은 호출을 만들어내는 역할을 합니다. 다른 하나는 receiver인데, IRP_MJ_CREATE 요청들을 처리하는 역할을 합니다. 공격에 성공하려면 initiator를 조작해 receiver가 처리하는 장비 객체를 열어야 합니다. 그러면 receiver 내 보안 검사 장치가 무력화됩니다.”

MS는 포쇼와 함께 공동으로 이 버그에 대한 분석을 실시했다. 그리고 현재 MS가 지원하는 윈도우 버전들에는 포쇼가 우려하는 상태(로컬에서의 권한 상승)를 야기하는 initiator와 receiver가 쌍으로 존재하지 않는다는 것을 알아낼 수 있었다. 즉 이론상으로는 공격이 가능하지만 실제로 이 취약점을 익스플로잇 하는 것 자체는 쉽지 않을 수 있다는 것이다.

그렇지만 MS는 이 문제를 그냥 놔두지 않기로 했다. 차기 윈도우 버전들에 적용될 ‘심층 방어’의 일환으로 이 문제를 고치기로 결정한 것. “윈도우 10 19H1 버전부터 픽스들을 전부 포함시킬 예정입니다. 물론 아직 호환성 실험 등을 더 해야 하므로 픽스 전부가 한꺼번에 배포되지는 않을 겁니다.”

MS가 실질적인 위협 가능성이 없다시피 한데도 픽스를 발표하기로 한 데에는 이유가 있다. “서드파티 드라이버들 중 이 취약점에 영향을 받는 것이 나타날 수 있습니다. 그래서 예방책을 쓴 것입니다. MS는 모든 커널 드라이버 개발자들에게 이러한 취약점의 내용을 알려주고 코드를 점검하라고 권했습니다.”

3줄 요약
1. 구글 프로젝트 제로, 또 MS 윈도우 환경에서 취약점 발견.
2. 커널 모드에서 일부 요청에 대한 검사가 제대로 이뤄지지 않는 것이 문제였음.
3. 구글과 MS가 함께 분석했을 때, 실제 위험성은 낮은 것으로 판명됨. 그렇지만 패치는 개발되고 배포될 예정.

[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>