System(PID 4) CPU 점유는 어떻게 탐지하나 — 커널 스레드·드라이버 부하 식별 방법

CPU를 먹는 주체가 일반 프로세스가 아니라 커널(System, PID 4)일 때, 그 부하를 어떻게 탐지하는지 정리합니다. System은 PID 4로 고정된 특별한 프로세스라 일반 프로세스와 탐지 로직은 비슷하되, 스레드·로드 모듈을 읽으려면 커널이 제공하는 별도 API와 높은 권한이 필요합니다. 실제 검증 방법과 현장 탐지 사례도 다룹니다.

System(PID 4)도 프로세스다

Windows 내부적으로 System은 PID가 4로 고정된 특별한 프로세스입니다. 프로세스이기에 CPU 점유 탐지 로직은 일반 프로세스와 비슷합니다. 다만 구현에 차이가 있습니다.

  • 시스템 권한 레벨이 높아 커널을 통해 획득한 특별한 권한으로만 접근 가능
  • System에서 동작하는 스레드·로드된 모듈을 읽으려면 일반 프로세스와 다른 커널 제공 별도 API로 처리

즉 "System이 CPU를 먹는다"는 것은 대개 커널 드라이버(.sys) 또는 커널 스레드가 원인이며, 어느 모듈이 먹는지까지 짚으려면 커널 레벨 접근이 필요합니다.

부하를 어떻게 "만들어" 검증하나

탐지 루틴을 개발·검증하려면 커널이 CPU를 많이 쓰는 상황을 인위적으로 만들어야 합니다. 그런데 윈도우가 잘 동작하면서도 커널 내부에서 CPU를 많이 쓰게 만드는 드라이버를 직접 개발하는 것은, 탐지 루틴을 만드는 것보다 난이도·개발량이 훨씬 큽니다.

대신 커널 레벨에서 다수 이벤트를 취합·처리하는 기존 보안 제품을 활용했습니다. 보안 제품은 Orange The Client처럼 커널에서 대량 이벤트를 다루므로, 해당 PC에 수천 개 실행 파일을 의도적으로 반복 복사해 커널 수집 이벤트를 폭증시키면, 그 제품의 커널 드라이버(.sys) CPU 사용량이 올라갑니다. 이렇게 System(PID 4) 영역의 커널 부하를 재현해 탐지 정확도를 검증할 수 있었습니다. (단 이런 테스트는 정책 서버 등 내부 환경이 갖춰져야 가능해, 사내 검증용 방법입니다.)

현장 탐지 사례

별도로, 제품 적용 과정에서 백신·비디오 카드·네트워크 카드의 사용량이 많을 때 발생하는 System CPU 점유 증상을 실제로 탐지·분석해, 올바르게 탐지하고 있음을 추가 검증했습니다.

  1. 비디오/네트워크 사용량 과다 — 드라이버 레벨 처리량이 늘며 System 점유 상승
  2. 백신(SEP 등) 동작 부하 — 보안 모듈의 커널 필터 드라이버가 System 시간으로 귀속
  3. 재현 테스트 — 위의 인위적 커널 이벤트 폭증

정리

"System이 CPU를 먹는다"는 표면 표시만으로는 원인을 알 수 없습니다. PID 4 프로세스의 스레드 시작 주소·로드된 커널 모듈을 커널 API로 읽어 어느 .sys가 부하의 주체인지 식별해야 합니다. Orange The Client는 이 커널 영역까지 들여다봐 "System CPU 점유"의 실제 원인 드라이버를 짚습니다.


Orange The Client 탐지 방식과 검증 과정을 정리한 기술 노트입니다(공인기관 문의 답변 기반).