커널 패치 보호

정의
커널 패치 보호(Kernel Patch Protection, 약칭 KPP)는 마이크로소프트가 64비트 버전 Windows 운영체제에 도입한 보안 메커니즘으로, 운영체제 커널 및 핵심 구조체에 대한 무단 수정(패치)을 방지하고 시스템 무결성을 유지하기 위해 설계되었다.

개요

  • 도입 시기: 최초로 Windows Vista x64에서 도입되었으며, 이후 Windows 7, Windows 8/8.1, Windows 10, Windows 11 등 64비트 Windows 전 버전에 적용되고 있다.
  • 목적: 악성 루트킷·커널 모드 드라이버가 커널 코드나 데이터 구조를 변조해 권한을 상승시키는 공격을 차단한다.
  • 동작 원리: 운영체제 부팅 시와 일정 주기마다 핵심 커널 구조(예: 시스템 서비스 디스크립터 테이블·중단 처리 루틴·핵심 함수 포인터 등)의 무결성을 검사한다. 무결성 검증에 실패하면 시스템은 버그체크(블루 스크린)를 수행하여 즉시 종료한다.
  • 제한 사항: KPP는 운영체제 레벨에서 강제 적용되므로 일반적인 사용자 모드 애플리케이션이나 서드파티 드라이버가 이를 비활성화하거나 우회하기 어렵다. 다만, 특수한 디버깅 도구나 커널 모드 코드를 이용한 고급 공격에서는 우회 시도가 보고된 바 있다.

어원/유래

  • 영어 원어 “Kernel Patch Protection”은 “커널(핵심)·패치(수정)·보호”라는 의미를 직접 번역한 표현이다. 한국어에서는 종종 “커널 패치 보호” 혹은 마이크로소프트가 공식 문서에서 사용한 “패치 가드”(PatchGuard)라는 용어와 동일하게 사용된다.
  • 마이크로소프트는 2006년 Windows Vista x64용 보안 기능으로 KPP를 발표하면서, 64비트 Windows에서의 루트킷 위협에 대응하기 위한 전략적 이유를 밝혔다.

특징

  1. 무결성 검증: 커널 코드와 핵심 데이터 구조에 대한 주기적 무결성 검사를 수행한다.
  2. 시스템 종료: 검증에 실패하면 시스템이 즉시 블루 스크린(버그체크)으로 종료되어 변조된 상태가 지속되지 않도록 한다.
  3. 비활성화 방지: KPP는 로드되는 모든 커널 모드 드라이버에 적용되며, 일반적인 레지스트리 값이나 설정 파일을 통해 비활성화할 수 없도록 설계되었다.
  4. 호환성 고려: 일부 레거시 드라이버가 KPP와 충돌하는 경우가 있어, 마이크로소프트는 드라이버 서명 요구와 함께 호환성 검증 절차를 제공한다.
  5. 우회 위험: 고급 공격자는 디버깅 인터페이스, 시스템 호출 훅, 혹은 하이퍼바이저 기반 기법을 이용해 KPP 검증을 회피하려 시도할 수 있으나, 이러한 방법은 복잡하고 탐지 위험이 높다.

관련 항목

  • PatchGuard: 마이크로소프트가 제공하는 KPP의 공식 명칭.
  • 윈도우 커널 모드: 운영체제 커널이 실행되는 보호된 모드.
  • 루트킷: 시스템 권한을 은밀히 상승시키기 위해 커널을 변조하는 악성 소프트웨어.
  • 시스템 무결성 보호 (System Integrity Protection): macOS에서 유사한 목적을 가진 보안 메커니즘.
  • 드라이버 서명: KPP와 연계되어, 서명되지 않은 커널 모드 드라이버 로드를 차단한다.

※ 본 내용은 마이크로소프트의 공식 문서와 신뢰할 만한 보안 연구 자료를 기반으로 작성되었으며, 정확한 기술 사양은 Microsoft Docs 및 최신 보안 백서 등을 참조한다.

둘러보기

더 찾아볼 만한 주제