커널 안티치트의 작동 방식
(s4dbrd.github.io)- 현대의 커널 기반 안티치트 시스템은 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 기반 원격 인증과 클라우드 게이밍이 장기적 대안으로 부상
-
커널 안티치트는 여전히 실질적 최전선이지만,
하드웨어 신뢰 검증과 서버 측 검증이 궁극적 방향으로 제시됨
Hacker News 의견들
-
요약하자면, 현대 치트는 하이퍼바이저나 BIOS 패치, DMA 장치 등을 이용해 안티치트를 우회함
하드웨어 수준에서 보호가 강화될수록 치트 제작자도 그만큼 진화함
하지만 AI 기반 플레이 분석이 등장하면서 치터 자체를 탐지하는 방식이 효과를 보이고 있음
결국 미래는 커널 모드가 아닌 유저 모드 안티치트와 게임플레이 분석에 있음- BIOS 패칭이 “매우 인기 있다”는 건 과장처럼 들림
오히려 그만큼 안티치트가 잘 작동하고 있다는 증거로 보임
예전엔 프로그램 하나만 받으면 바로 치트가 가능했지만, 지금은 진입 장벽이 높아져서 시도조차 안 하는 경우가 많음
다만 글의 앞부분에서는 이런 방어책이 무력화될 수 있다고 했는데, 그럼 신뢰할 수 없는 것 아닌가 하는 의문이 듦 - 나는 WoW를 하는데, 블리자드가 무고한 유저를 밴했다는 불만이 많았음
나도 두 계정이 밴당했지만 고객지원으로 풀렸음
그러나 AI가 지원 업무에 쓰이는 듯해 억울한 밴이 많을 것 같음
이런 행동 기반 밴 시스템은 헌신적인 유저까지 잘못 제재할 위험이 있어 신뢰가 어려움 - 네가 말한 기술들은 공격 비용을 높이는 효과가 있음
즉, 아무나 치트를 만들 수 없게 되므로 안티치트는 어느 정도 성공하고 있음
다만 게임플레이 분석은 노골적인 치터만 잡고 단순 ESP류는 놓칠 가능성이 큼 - 행동 분석은 ‘은밀한 치터’를 잡지 못함
이런 치터는 커뮤니티를 서서히 망가뜨리기 때문에 더 위험함 - ActiBlizz는 Bossland나 EngineOwning 같은 유료 치트 개발자들을 상대로 정기적으로 법적 대응을 하는 거의 유일한 회사임
- BIOS 패칭이 “매우 인기 있다”는 건 과장처럼 들림
-
커널을 건드리는 건 OS의 보안 모델 전체를 무시하는 행위임
실제로 버그 있는 안티치트가 루트 권한을 탈취당한 사례도 있음
OS의 샌드박스 기능과 부팅 단계의 신뢰 체계를 활용하는 게 맞음- PC 생태계는 부트 체인 보안을 휴대폰만큼 진지하게 다루지 않음
그래서 OS 기능에만 의존하기 어렵고, attestation도 현실적으로 적용 범위가 좁음
완벽하진 않아도 치터 수를 통계적으로 줄일 수 있다면 의미가 있음 - 진짜 보안은 클라이언트를 잠그는 게 아니라 서버에서 허용된 행동만 검증하는 것임
- 혹시 “검증된 소프트웨어만 설치 가능한 잠긴 PC를 팔자는 말이냐”는 의문이 듦
- “공격자가 들어온 뒤 피해를 줄이는 건 의미 없다”는 주장은 사이버보안 전반에서는 사실이 아님
- 모두가 원하는 소프트웨어를 실행할 자유를 잃으면서까지 치트를 막자는 건 과도함
- PC 생태계는 부트 체인 보안을 휴대폰만큼 진지하게 다루지 않음
-
선택적 안티치트 매칭 시스템이 있는 게임을 보고 싶음
안티치트를 켠 사람들끼리만 매칭되고, 끈 사람들은 커뮤니티 자율 규제로 운영되는 구조임
이런 실험은 Valve 정도 규모의 회사만 가능할 듯함- Valve의 CS2가 비슷한 방식을 쓰지만, Valorant보다 치트율이 높다고 들음
- 이미 FACEIT이 그런 역할을 함
하지만 커뮤니티 자율 규제는 대규모로는 절대 효율적이지 않음 - “그거 PlaySafe ID 아니냐”는 반응도 있었음
- 나도 이런 아이디어에 찬성함
개인적으로는 치터가 있으면 그냥 게임을 끄고 밖에 나가서 바람 쐬는 게 낫다고 생각함
커널 수준의 ‘멀웨어 같은’ 안티치트를 설치하느니 차라리 콘솔에서 노는 게 낫다고 봄
-
치터는 본질적으로 비정상적 행동 패턴을 보이므로, 서버에서 모든 입력을 기록하고 머신러닝 기반 이상 탐지를 적용하면 잡을 수 있음
또한 ‘허니팟’ 오브젝트를 만들어 치터만 반응하도록 유도하는 방법도 있음- 하지만 통계적 이상치만으로 치터를 단정할 수 없음
p-hacking처럼 우연한 변동을 의미 있는 신호로 착각할 수 있음 - 나도 통계적 허니팟 모델을 오래 주장해왔음
실제로 Dota 2는 클라이언트 내부의 비정상 데이터 영역을 읽은 계정을 모두 밴했음
관련 패치 공지 - 그러나 Valve도 ML 모델을 써왔지만, 여전히 Counter-Strike엔 치터가 많음
단순히 ML을 던져놓는다고 해결되는 문제가 아님 - 허니팟은 유용하지만 충분하지 않음
행동 분석은 커뮤니티의 변화 속도를 따라가기 어려움 -
CS2에서는 ‘time-to-damage’ 통계만으로도 많은 치터를 구분할 수 있음
치터는 보통 프로보다 100ms 정도 더 빠르게 반응함
- 하지만 통계적 이상치만으로 치터를 단정할 수 없음
-
나는 게이머는 아니지만, 온라인 게임의 치트 방지 문제는 기술적으로 흥미로운 난제라고 생각함
단순히 “모든 걸 서버에서 처리하라”는 조언은 현실성이 없음- 치트 방지는 사실상 불가능함
게임은 올림픽이 아니라 동네 리그 같은 것이라, 완벽한 공정성보다 재미가 중요함
치터끼리 매칭되게 하면 일반 유저는 영향이 줄어듦 - 가장 효과적인 방법은 능동적인 서버 관리자가 직접 관찰하고 밴하는 것임
하지만 대형 게임사는 이런 인력을 두지 않음 - 기술적으로는 치터가 게임이 돌아가는 기계를 통제하기 때문에 항상 우위에 있음
안티치트는 단지 진입 장벽을 높이는 역할임 - Netflix처럼 ISP 근처에 서버를 두는 분산 구조도 가능할 듯함
- 근본적인 해결책은 문화적 인식 변화임
온라인에서 치트하는 사람을 ‘루저’로 보는 분위기가 필요함
- 치트 방지는 사실상 불가능함
-
커널 수준 안티치트는 클라이언트를 최대한 잠그는 방식이지만, 여전히 치터는 존재함
결국 서버가 클라이언트를 완전히 신뢰할 수 없다는 뜻임- 이건 단순히 비용 문제가 아니라 지연(latency) 과 시점 차이의 문제임
네트워크 코드로도 완전히 해결할 수 없음 - 의욕적인 치터라면 카메라와 별도 컴퓨터로 입력을 자동화할 수도 있음
- 이건 단순히 비용 문제가 아니라 지연(latency) 과 시점 차이의 문제임
-
요즘의 경쟁 게임 문화는 기업이 유저를 친구 대신 낯선 사람과 경쟁하게 만드는 구조임
하지만 굳이 그렇게까지 해야 하나 싶음- 그래도 많은 사람은 경쟁 자체를 즐김
스포츠나 체스처럼 실력을 겨루는 건 인간의 본능적인 욕구임
- 그래도 많은 사람은 경쟁 자체를 즐김
-
커널 안티치트가 “가장 정교한 소프트웨어”라는 표현은 과장처럼 들림
시스템 콜을 가로채는 건 특별한 기술이 아님- “프로그래머 대부분이 평생 만져보지 못한 메모리 구조를 스캔한다”는 말은 좀 웃김
-
경쟁 게임을 안 해본 사람들이 많아 보임
Kernel-level anti-cheat(KLAC) 은 실제로 효과가 있음
VAC/VACNet 기반보다 FACEIT이나 Vanguard 같은 커널형이 훨씬 치트율이 낮음
물론 완벽하진 않지만 진입 장벽을 크게 높임
DMA 장치만 해도 수백 달러가 들고, 고급 치트는 구독형으로 비쌈
게임은 선택이므로 KLAC이 싫다면 안 하면 됨
하지만 그걸 거부하면 치터가 판치는 환경을 감수해야 함 -
TPM 기반 부팅 측정과 UEFI Secure Boot로 원격 인증이 가능하다고 들었는데, 공격자가 이를 조작할 수도 있다는 게 놀라움
- 예시로 tee.fail을 보면, 원격 인증을 무력화하는 방법이 설명되어 있음
우리는 기기 소유권을 완전히 보장받으면서도 차별받지 않을 자유를 가져야 함 - 마더보드와 TPM 칩 간 통신이 암호화되어 있지 않아 MITM 공격으로 값을 바꿀 수 있음
- 예시로 tee.fail을 보면, 원격 인증을 무력화하는 방법이 설명되어 있음