보안 / 윈도우

윈도우의 프린트나이트메어 취약점, 공격 방법과 패치, 회피하는 방법

Lucian Constantin  | CSO 2021.07.09
마이크로소프트는 윈도우 프린팅 기능에 존재하는 것으로 알려진, 공격자가 취약한 시스템을 완전히 제어할 수 있는 원격 코드 실행 관련 취약점을 해결하는 긴급 보안 업데이트를 배포하기 시작했다.
 
ⓒ Microsoft 

프린트나이트메어(PrintNightmare, CVE-2021-34527)로 부르는 이 취약점은 윈도우 프린트 스풀러(WIndows Print Spooler) 서비스에 위치하며, 이 서비스에서 악용 가능한 공개된 익스플로잇이 강화되고 있다. 기업은 가능한 빨리 패치를 적용하거나, 패치를 적용할 수 있게 되기 전까지 인바운드 원격 프린팅을 꺼놓는 것이 좋다.


취약점 혼동으로 새 취약점을 대중에게 먼저 공개

마이크로소프트의 6월 월간 업데이트에는 CVE-2021-1675로 추적할 수 있는 또 다른 윈도우 프린트 스풀러 서비스 취약점에 대한 패치가 포함되어 있다. 그리고 처음에는 로컬 권한 상승(Local Privilege Escalation, LPE) 문제로 설명됐다. 텐센트 시큐리티(Tencent Security)의 지펑 후오, 에이파인(Afine)의 피오트르 마데즈, 엔에스포커스(Nsfocus)의 윤하이 장이 이 취약점을 발견했다.

6월 29일, 다른 2명의 보안 연구원인 상포(Sangfor)의 지니앙 펭과 후펑 리가 CVE-2021-1675에 대한 분석 보고서를 발표했다. 이 보고서에서는 이 취약점을 익스플로잇, 단순한 권한 상승을 넘어 RCE(Remote Code Execution)를 달성할 수 있음을 증명했다. 

이 연구원들은 또한 윈도우 프린팅 기능성에 대한 더 규모가 큰 보안 분석의 일환으로 실시한 조사 결과를 발표하면서, 마이크로소프트에 보고하기 전에 취약점을 발견했다고 밝혔다. 이 2명의 연구원은 곧 개최될 블랙햇 USA ‘스풀러 분석: 윈도우 프린터의 LPE 및 RCE 취약점(Diving Into Spooler: Discovering LPE and RCE Vulnerabilities in Windows Printer)’ 컨퍼런스에서 추가 취약점들이 포함된 조사 결과를 발표할 계획이다.

상포의 연구원들이 프린트나이트메어라는 이름으로 CVE-2021-1675 RCE 분석 결과를 게시할 때 알지 못했던 것은 실제는 아주 유사하지만 궁극적으로는 다른 취약점을 제시해 설명했다는 점이다. 이는 마이크로소프트 6월 패치가 보호하지 못하는 취약점이다. 

마이크로소프트는 이 보고서들을 검토하고, CVE-2021-1675를 LPE가 아닌 RCE 취약점으로 내용을 수정했으며, CVE-2021-34527 ID를 부여한 새로운 프린트나이트메어 취약점에 대한 보안 권고를 만들었다.


프린트나이트메어 익스플로잇 및 공격 벡터

지니앙 펑과 후펑 리는 이런 문제를 인지하면서 개념 증명용 익스플로잇을 없앴지만, 이미 늦었고, 다른 연구진이 이에 대해 분석, 확대하기 시작했다. 이로 인해 이 취약점에 대한 최소 3개 이상의 개념 증명용 익스플로잇이 구현됐으며, 일부는 공격 벡터가 추가됐다.

최초 익스플로잇은 프린트 시스템 원격 프로토콜(MS-RPRN)을 사용했다. 이에 익스플로잇이 도메인 컨트롤러로 구성된 윈도우 서버나 UAC(User Account Control)이 비활성화되거나 NoWarningNoElevationOnInstall이 활성화되는 등의 기본이 아닌 설정이 적용된 윈도우 10 기기로 제한됐었다. 

이후 온라인에서 Cube0x0으로 불리는 또 다른 연구원이 프린트 시스템 비동기 원격 프로토콜(MS-PAR)을 통해 익스플로잇을 이용하는 또 다른 방법을 찾았다. 미미카츠(Mimikatz) 개발자인 벤자민 델피에 따르면, 이 방법을 이용하면 도메인 컨트롤러에 국한되지 않고 기본 구성 상태의 더 많은 윈도우 기기에서 프린트나이트메어 익스플로잇이 가능해진다. 델피는 침입 테스터와 악성 공격자 모두에 인기가 있는 오픈소스 도구인 미미카츠에 이 기능성을 구현했다.

공개된 정보와 익스플로잇 방법이 많기 때문에, 보안 연구원들은 이런 익스플로잇들이 광범위하게 이용되는 것은 시간 문제일 뿐이라고 지적한다. 이미 이런 상태일 수도 있다. 마이크로소프트 보안 권고는 모든 윈도우 에디션이 영향을 받으며, 이 취약점에 대한 익스플로잇을 탐지했다고 경고한다.


프린트나이트메어 패치와 회피 방법

마이크로소프트는 윈도우 10 1607, 윈도우 서버 2012, 윈도우 서버 2016은 빠졌지만, 문제가 되는 많은 윈도우 버전을 대상으로 화요일에 긴급 패치를 배포했다. 메모리 프로세스에 직접 적용할 수 있는 마이크로패치를 개발한 제로패치닷컴(0patch.com)의 연구원들은 누락된 윈도우 버전에도 효과가 있고, 현재까지 알려진 모든 공격 벡터를 방어하는 무료 패치를 배포했다.

CERT 코디네이션 센터(Cordination Center)의 보안 권고에 따르면, 마이크로소프트가 제공하는 업데이트는 LPE가 아닌 원격 코드 실행 관련 익스플로잇만 억제한다. CERT/CC 분석가들이 마이크로소프트가 제안한 다음의 수동 해결책들을 적용하는 것이 좋다고 권고하는 이유가 여기에 있다.

- 해결책 1. 프린트 스풀러(Print Spooler) 서비스를 비활성화한다
소속 기업에서 프린터 스풀러 서비스를 적절히 비활성화할 수 있다면, 다음 파워셸(PowerShell) 명령을 이용한다.
  
  • Stop-Service -Name Spooler -Force
  • Set-Service -Name Spooler -StartupType Disabled

프린트 스풀러 서비스를 비활성화하면 로컬 및 원격 인쇄 기능을 이용할 수 없다.

- 해결책 2. 그룹 정책(Group Policy)을 통해 인바운드 원격 프린팅을 비활성화한다
다음과 같이 그룹 정책을 통해 인바운드 원격 프린팅을 비활성화하는 설정을 구성할 수 있다. 
 
  •  
  • 컴퓨터 구성(Computer Configuration)/ 관리 템플릿(Administrative Templates)/ 프린터(Printers)
  • 원격 공격을 차단하도록 ‘Allow Print Spooler to accept client connections:’ 정책을 비활성화한다
  • 프린트 스풀러 서비스를 다시 시작하면 그룹 정책이 적용된다

이 정책은 인바운드 원격 프린팅 작업을 막아, 원격 공격 벡터를 차단한다. 시스템은 더 이상 프린터 서버로 기능하지 않는다. 그러나 직접 기기를 연결하는 로컬 프린팅은 계속 이용할 수 있다. editor@itworld.co.kr 

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.