마이크로소프트는 마침내 수십 년 전의 윈도우 프린트데몬(Windows PrintDemon) 취약점을 패치했다. 하지만 기업 네트워크에 악용 대상이 되는 기기가 남아있을 수 있다.
   

ⓒ Getty Images Bank

   
마이크로소프트의 2020년 5월 업데이트는 윈도우 프린트 스풀러(Windows Print Spooler) 용 취약점을 포함해 111가지 취약점을 패치했다. 보안 업체 세이프브리치 랩스(SafeBreach Labs)의 펠렉 하다르와 토메르 바르가 발견한 이 취약점은 공격자가 이 취약점을 악용해 권한을 상승하고 임의의 코드를 실행할 수 있기 때문에 보안 전문가들의 주목을 받았다. 이 취약점은 프린트데몬이라고 명명됐으며, CVE-2020-1048로 알려진 이 결함은 1996년 이후 출시된 모든 윈도우 버전에 영향을 미친다. 

이 버그는 이전에 악명높은 스턱스넷(Stuxnet) 바이러스에 의해 악용되기도 했다. 이는 해결되긴 했지만, 윈도우 시스템에 한동안 계속 숨어있다가 소멸됐다.

 
프린트데몬이란 

윈도우는 새 프린터를 연결할 때, ‘드라이버(drivers)’를 설치해야 한다. 이는 프린터와 함께 제공되는 CD-ROM과 플로피 디스크로 전달되며 공급업체가 온라인으로 제공한다. 드라이버는 프린터, 운영체제, 중간 부품 간 통신을 쉽게 해줘 완성된 인쇄 출력을 제공한다. 

공급업체 편의를 위해 마이크로소프트는 프린터 제조업체에서 사용하고 확장할 수 있는 드라이버, API, 라이브러리를 제공한다. ‘윈도우 프린트 스풀러 서비스(spoolsv.exe)’는 모든 윈도우 버전에 번들로 제공되는 서비스 가운데 하나다. 이는 운영체제, 소프트웨어 컴포넌트, 프린터 드라이버, 프린터 간 인터페이스 역할을 한다. 인쇄 작업을 대기열에 넣고 전달하고 진행 상황을 추적하며 사용자 애플리케이션과 프린터 간에 이런 이벤트를 전달하는 것이다. 스풀러는 서비스 데몬으로 구현되며, 여기서 프린트데몬이라는 이름이 나오게 된다.

 
프린트데몬 기술 개요

이 결함을 악용하는 것은 3가지 사실에 기반한다. 
 

  • 관리자가 아닌 사용자가 윈도우 시스템에 프린터를 추가할 수 있다. 
  • 기본 매커니즘을 통해 물리적인 인쇄 기기가 아닌 파일로 인쇄할 수 있다. 
  • 윈도우에 중요한 인쇄 서비스는 시스템 권한으로 실행된다. 

프린터를 포함한 많은 악용 사례의 핵심은 과거부터 남아 있던 프린터 드라이브의 기능이다. 프린터를 구성할 때, 프린터가 상주하는 포트와 프린터 작업을 보낼 포트를 선택하라는 메시지를 표시한다. 그러나 포트는 물리적 LPT(병렬) 또는 USB 포트가 될 필요는 없다. 시스템의 로컬 가상 포트도 마찬가지로 유효하다. FILE: port(윈도우 8 이상에서 PortPROMT)는 ‘PDF로 인쇄’ 소프트웨어 드라이버와 동일한 기능이다. 
 
또한 다른 윈도우 구성 요소와 마찬가지로 spoolsv.exe는 시스템 권한으로 실행한다. 프린트 데몬을 악의적인 명령으로 속일 수 있고, 또는 파일을 FILE: port로 속여 물리적 인쇄 장치가 아닌 기존 시스템 파일(필수 DLL이나 EXE)로 연결시킬 수 있다면 공격은 성공한 것이다. 예를 들어, 악성코드로 프로세스 중 시스템 DLL을 덮어쓰면 윈도우가 부팅되고 해당 핵심 DLL을 로드하려고 할 때마다 스핀업되는 악성 DLL이 된다. 

보안 연구원인 알렉스 아이오네스코와 야르덴 샤피르는 블로그 포스트를 통해 다음과 같이 전했다. 

지금까지 우리가 보여준 것은 매우 미묘한 파일 시스템 수정으로 일부 EDR(Endpoint Detection and Response)/DFIR(Digital Forensics and Incident Response)가 SHD 파일의 생성을 모니터링해 알고 있지 않는 한, 특히 재부팅 후 어떤 프로세스로 인해 발생하지 않은 파일 복사/쓰기 동작을 할 수 있다는 것이다. 신중하게 조작된 포트 이름을 사용하면 해당 위치에 대한 액세스 권한이 있다고 가정했을 때, 스풀러가 디스크 아무 곳에나 실행 파일을 삭제할 수 있다. 

지난 10년 동안 이런 악용을 방지하기 위해 보안 검사 및 안전 장치 매커니즘이 윈도우 스풀러에 내장되어 있었지만, 프린트데몬을 해결하는 데에는 분명 부족했다. 연구원들은 스턱스넷 이후 윈도우 원래 버전은 완전히 깨졌고, 이후 강화되긴 했지만 여전히 망가진 상태라고 말했다. 

프린트데몬이 중요한 이유 

카스퍼스키에 따르면, 중소기업의 48%가 여전히 윈도우 XP와 7을 사용하고 있으며, 이에 대한 지원은 각각 2014년 4월, 2020년 1월에 공식적으로 종료됐다. 윈도우 서버 에디션은 전 세계 서버의 최대 72.1%의 점유율을 갖고 있다. 따라서 기업은 2020년 5월 업데이트 권고에 발표된 프린트데몬과 기타 여러 버그 등에 영향을 받을 위험에 처해있다.
 
권한 상승 결함을 사용하려면 공격자가 시스템에 대한 최소한의 기본 액세스 권한을 갖고 있어야 한다. 이는 시스템 관리자와 IT 및 운영 전문가에게는 안도감을 줄 수 있지만, 이 취약점이 더 광범위하고 정교한 체인 공격과 APT 캠페인의 일부로 통합되는 것을 막지 못한다.
 
누군가의 기업 자격 증명을 탈취해 사용자 AD(Active Directory) 계정에 쉽게 액세스할 수 있다. 공격자는 해킹한 사용자 계정이 액세스할 수 있는 모든 시스템에 악의적인 프린터와 포트를 구성할 수 있는 기반을 조용히 다지기 시작할 것이다.  

전 SOC 애널리스트인 필자는 최고의 의료 및 금융 업체들을 조사하면서 매일같이 직원의 받은 편지함으로 들어오는 피싱 사기를 관찰했다. 중요한 시스템에 액세스할 수 있는 의사를 포함해 사용자 상당 수가 자신의 자격 증명을 공개하면서 공격자에게 넘겨줬다. 공격자는 모든 아웃룩 편지함에서 피싱 이메일을 가져와 해킹한 자격 증명을 재설정하고 공격자가 액세스할 수 있는 컴퓨터를 철저히 검색한다. 

기업 네트워크는 일반적으로 윈도우 도메인, 아웃룩, 셰어포인트, 팀 및 미션 크리티컬 시스템에서 동일한 AD 또는 LDAP(Lightweight Directory Access Protocol) 자격 증명을 사용하는 상호 연결된 애플리케이션으로 구성되어 있다. 따라서 공격자가 기본 사용자 계정을 해킹한다면 이런 취약점을 통해 신속하게 더욱 민감한 시스템에 침투해 특권을 획득하고 명령을 실행할 수 있는 능력을 탈취한다. 

프린트데몬 공격을 실행하기 위해서는 한 줄 이상의 코드와 적절한 계획이 필요하다. 그러나 아이노네스쿠와 샤피르는 철저한 문서 작성과 개념 증명(PoC)을 통해 공격자의 공격 방법과 내용을 보여줬다. 

프린트데몬을 완화하는 방법 

우선 마이크로소프트가 게시한 2020년 5월 업데이트를 포함해 정기적인 업데이트 및 패치를 적용해야 한다. 패치는 새로운 악성 포트와 프린터가 추가되는 것을 방지하지만, 반드시 기존 포트를 제거하지는 않는다. 해킹당한 시스템은 철저히 지우고 불량 프린터 드라이버와 포트를 검색한다. 

취약점 교정 업체인 불칸 사이버(Vulcan Cyber) CPO 탈 모르겐슈타인은 “이 취약점을 악용하는 것을 방지하는 가장 간단한 해결책은 가능하면 프린트 스풀러 서비스를 중지하고 비활성화하는 것이다. 일반적으로 많은 서버와 일부 워크 스테이션은 인쇄 기능이 전혀 필요하지 않다. 이런 조치는 취약점을 완화하고 해당 기기의 공격 영역을 최소화한다”라고 설명했다.
  
모르겐슈타인은 “인쇄가 필요한 워크 스테이션의 경우, 변경 사항을 모니터링하고 다음 레지스트리 값에 대한 쓰기 액세스를 차단하면 누군가가 이 취약점을 악용하려고 시도하는지 확인할 수 있으며, 새로운 값을 삭제하면 공격이 중지된다”고 덧붙였다. 그가 언급한 레지스트리 키는 다음과 같다.
 
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionPorts

켄나 시큐리티(Kenna Security) 리서치 팀장 조나단 크랜은 “도메인 계정의 경우, 기업은 마이크로소프트의 그룹 정책 기능을 사용해 사용자 프린터 생성을 비활성화해야 한다. 많은 직원이 현재 재택근무를 하고 있다는 점을 감안할 때, 이는 어려운 일일 수 있다. 따라서 정상적인 주기에 패치를 적용해야 한다”라고 조언했다. 

레거시 시스템, 검토 및 업데이트 필수 

이와 같은 취약점을 발견하면 기업에서는 레거시 시스템 사용에 대해 많은 논쟁 거리가 생긴다. 예를 들어, 업데이트, 지원, 소프트웨어 호환성 측면에서 수명이 다한 오래된 윈도우 2008 서버를 계속 실행해야 하는 이유는 종종 증거로 남겨야 하는 비즈니스 문서에 있다. 
 
경영 관점에서 볼 때 사업부에서 절대적으로 요구하지 않는 한, 오래된 시스템을 최신 시스템으로 마이그레이션하는 데 시간과 노력을 할당하는 것보다 예산과 리소스를 새로운 애플리케이션 개발로 전환하는 것이 합리적이다. 그러나 전환이 지연된다면, 오래된 시스템이 취약점에 노출될 위험이 증가한다. 

보안 위험 솔루션 업체인 스카이박스 시큐리티(Skybox Security) 위협 정보팀 팀장 시반 니르는 “취약점 개선은 전체적인 시각에서 모두 검토해야 한다. 오래된 취약점이라도 여전히 악용될 수 있다. 기업은 자산 세부사항과 비즈니스에 대한 중요성, 위협 출처에 대한 노출, 공격자의 활동 등을 고려하는 위험 기반 우선순위(risk-based prioritization)를 사용해야 한다”라고 말했다. 

또한 레거시 시스템을 모두 평가, 관리, 교체할 수 있도록 설계된 일부 프레임워크를 참조하는 것이 좋다. 레거시 시스템을 운영하는 데 드는 숨겨진 비용을 업그레이드 비용보다 훨씬 더 높을 수 있다.
 
보안업체 옵티브 시큐리티(Optiv Security) CISO 브라이언 로젝은 “첫 번째 단계는 기존 솔루션을 적극적으로 일몰시키기 위해 매년 전략적 계획과 예산이 책정되도록 하는 것이다. 또한 레거시 솔루션에 필요한 액세스 권한과 사용을 제한해 시스템을 강화, 격리, 최소화하고 정책에 예외적이거나 높은 위험을 나타내는 시스템은 정기적으로 검토해야 한다”라고 제안했다. 

기업에 대한 포괄적인 정보보안 보증 정책은 레거시 시스템을 검토하고 분석하는 프로세스와 업그레이드에 수반하는 사항을 설정해야 한다. 계획 단계에서 오래된 시스템을 폐기하는 것은 불필요한 오버헤드로 보일 수 있지만, 보안 침해가 기업의 주 이슈가 된 시기에는 무시할 수 없다. editor@itworld.co.kr 





Source link

Write a comment:
*

Your email address will not be published.