커널 안티치트의 작동 방식

1 week ago 6

  • 현대의 커널 기반 안티치트 시스템은 Windows 환경에서 가장 복잡한 보안 소프트웨어 중 하나로, 게임 실행 중에도 커널 수준에서 메모리와 시스템 이벤트를 감시함
  • 유저모드 보호의 한계를 극복하기 위해 커널 드라이버를 활용하며, 프로세스·스레드 생성, 이미지 로드, 레지스트리 변경 등을 실시간 감시
  • BattlEye, EasyAntiCheat, Vanguard, FACEIT AC 등 주요 시스템은 커널 드라이버·서비스·게임 DLL의 3계층 구조로 동작하며, 부팅 시 로드되는 Vanguard는 가장 강력한 제어권을 가짐
  • 메모리 스캐닝, 후킹 탐지, 드라이버 무결성 검증, DMA 공격 대응, 행동 기반 탐지 등 다층적 방어를 결합해 치트 행위를 차단
  • 최종적으로는 TPM 기반 원격 인증과 하드웨어 신뢰 검증이 게임 보안의 핵심 기반으로 부상하고 있음

1. 유저모드 보호의 한계와 커널로의 이동

  • 유저모드 프로세스는 커널의 권한 하위에 있어, 커널 드라이버나 하이퍼바이저 수준의 치트에 쉽게 우회됨
    • 예: ReadProcessMemory 호출은 커널 후킹으로 위조 가능
  • 커널 모드 치트는 게임 메모리를 직접 조작하고, 유저모드 탐지를 회피할 수 있음
  • 이에 대응해 안티치트가 커널 레벨로 이동, 동일한 권한 수준에서 감시 수행

2. 치트와 안티치트의 ‘무기 경쟁’

  • 유저모드 → 커널 → 하이퍼바이저 → DMA로 이어지는 권한 상승 경쟁이 지속
  • 안티치트는 드라이버 차단, 하이퍼바이저 탐지, IOMMU 기반 DMA 방어로 대응
  • 이 과정은 치트 제작 비용과 난이도를 높여 일반 사용자의 접근을 차단하는 효과를 가짐

3. 주요 커널 안티치트 시스템

  • BattlEye: BEDaisy.sys 커널 드라이버 중심, 프로세스·스레드·이미지 로드 콜백 등록
  • EasyAntiCheat(EAC): Epic Games 소유, 유사한 3계층 구조
  • Vanguard: 부팅 시 vgk.sys 로드, 드라이버 화이트리스트 모델로 강력한 제어
  • FACEIT AC: 커널 수준 감시로 높은 신뢰도 확보
  • ARES 2024 논문은 이들 시스템이 루트킷과 유사한 기술적 구조를 가지지만, 목적은 방어임을 명시

4. 커널 안티치트의 3계층 구조

  • 커널 드라이버: 시스템 콜 후킹, 메모리 스캔, 접근 제어 수행
  • 유저모드 서비스: 네트워크 통신, 밴 관리, 텔레메트리 전송 담당
  • 게임 DLL: 게임 프로세스 내부 검증 및 서비스와 IPC 수행
  • IOCTL, Named Pipe, Shared Memory를 통해 상호 통신

5. 부팅 시 로드와 런타임 로드의 차이

  • BattlEye/EAC: 게임 실행 시 드라이버 로드, 종료 시 언로드
  • Vanguard: 부팅 시 로드되어 이후 로드되는 모든 드라이버를 감시
    • 이로 인해 시스템 재부팅이 필요하며, 부팅 단계부터 보호 가능

6. 커널 콜백 기반 감시

  • ObRegisterCallbacks: 프로세스 핸들 접근 제어, 외부 프로세스의 메모리 접근 차단
  • PsSetCreateProcessNotifyRoutineEx: 치트 프로세스 생성 차단
  • PsSetCreateThreadNotifyRoutine: 게임 프로세스 내 비정상 스레드 감지
  • PsSetLoadImageNotifyRoutine: 비허용 DLL 로드 탐지
  • CmRegisterCallbackEx: 레지스트리 변경 감시
  • 미니필터 드라이버: 파일 시스템 수준에서 치트 파일 접근 차단

7. 메모리 보호와 스캐닝

  • 핸들 접근 제한으로 외부 메모리 읽기/쓰기 차단
  • 코드 섹션 해시 검증으로 코드 패치 탐지
  • VAD 트리 순회로 수동 매핑된 실행 메모리 탐지
  • 익명 실행 메모리, 수동 매핑 DLL, 쉘코드를 휴리스틱으로 식별

8. 인젝션 탐지

  • CreateRemoteThread, APC, NtMapViewOfSection, Reflective DLL 등 다양한 주입 기법 탐지
  • 스택 프레임 분석(RtlWalkFrameChain) 으로 비정상 코드 실행 여부 확인

9. 후킹 탐지

  • IAT 후킹: 가져오기 주소 테이블의 변조 탐지
  • 인라인 후킹: 함수 시작부의 JMP 명령 비교로 패치 여부 확인
  • SSDT, IDT, GDT 무결성 검사로 커널 수준 후킹 방지
  • 직접 syscall 사용 탐지로 ntdll 우회 시도 차단

10. 드라이버 수준 보호

  • 서명되지 않은 드라이버 및 테스트 서명 모드 감지
  • BYOVD(취약 드라이버 악용) 공격 차단을 위한 블록리스트 운영
  • PiDDBCacheTable, MmUnloadedDrivers, BigPool 등 커널 내부 구조를 감시해 수동 매핑 드라이버 탐지

11. 안티디버깅 및 분석 방지

  • NtQueryInformationProcess로 디버거 존재 확인
  • KdDebuggerEnabled 변수로 커널 디버거 감지
  • ThreadHideFromDebugger 플래그로 숨겨진 스레드 탐지
  • RDTSC 기반 타이밍 검사, 하드웨어 브레이크포인트, 하이퍼바이저 존재 여부로 분석 환경 차단

12. DMA 기반 치트와 대응

  • PCIe DMA 장치가 CPU 개입 없이 메모리 읽기 수행
  • IOMMU가 DMA 접근을 제한하지만, 비활성화·오구성 시 무력화 가능
  • FPGA 장치의 합법적 장치 위장으로 탐지 어려움
  • Secure Boot, TPM 2.0을 통한 부팅 무결성 검증으로 일부 완화 가능

13. 행동 기반 탐지와 머신러닝

  • 마우스 입력 분석으로 인간적 움직임과 자동 조준 구분
  • CNN·Transformer 모델을 활용한 트리거봇·에임봇 탐지
  • 그래프 신경망으로 팀 기반 부정행위(벽핵·공모) 탐지
  • 텔레메트리 파이프라인: 커널 입력 캡처 → 암호화 전송 → 서버 ML 분석 → 밴 결정

14. 가상환경 및 분석 회피

  • CPUID 하이퍼바이저 비트와 벤더 문자열로 VM 탐지
  • VMware, VirtualBox, Hyper-V의 레지스트리·디바이스 흔적 확인
  • 이중 가상화 환경은 명령 실행 지연으로 식별 가능

15. 하드웨어 식별과 밴 집행

  • SMBIOS, 디스크, GPU, MAC, MachineGuid 등으로 HWID 생성
  • HWID 스푸핑은 레지스트리·드라이버·물리적 조작으로 시도되나,
    식별자 불일치나 비정상 포맷으로 탐지 가능

16. 향후 동향과 기술적 전환

  • DMA 이후 단계는 펌웨어 기반 치트로, 탐지 난이도 극대화
  • AI 기반 하드웨어 조준봇은 인간 입력과 구분 어려움
  • TPM 기반 원격 인증과 클라우드 게이밍이 장기적 대안으로 부상
  • 커널 안티치트는 여전히 실질적 최전선이지만,
    하드웨어 신뢰 검증과 서버 측 검증이 궁극적 방향으로 제시됨

Read Entire Article