안티 치트(Anti-Cheat)
1. 안치치트란
안티치트는 온라인 게임에서 중심, 치트를 방지하고 공정한 환경 플레이를 유지하기 위해 개발된 시스템 또는 기술을 의미
2. 치트 사용 유형
메모리 - 게임의 메모리를 변조해 불법적인 이득을 얻는 방법 ( 속도 증가, 점프 증가, 체력 증가 등)
가입자 - 네트워크 패킷을 변조하여 서버와의 통신을 속인( 위치 변경, 텔레포트)
그래픽 조작 - 게임 렌더링을 변형하여 벽 너머의 적을 보거나 오브젝트를 투명하게 만듬 (월핵)
오토마우스 / 매크로 - AI 도는 자동화 스크립트를 사용해 게임 내에서 자동 조작 수행 ( 에임봇, 자동 사냥)
드라이버 수준 공격 - 커널 모드에서 실행되는 드라이버를 변조해 안티치트 우회 (언디렉터블 핵)
3. 안티치트의 원리 및 핵 감지 방법
1. 메모리 변조 감지
게임 실행 중 메모리 주소 감시
변조 가능성이 있는 메모리 영역을 주기적으로 체크
코드 서명 검증 및 데이터 해시 값을 비교하여 변조 탐지
2. 패킹 변조 감지
네트워크 패킷 암호화 및 무결성 검사
클라이언트와 서버 간의 데이터를 주기적으로 검증하여 비정상적인 값 탐지
속도 변조(스피드 핵) 감지를 위해 클라이언트 위치 변화 로그 확인
3. 디버거 및 후킹 감지
게임 프로세스를 디버깅하는 소프트웨어 탐지( Cheat Engine, OllyDbg)
API 후킹 감지( 핵 프로그램이 DirectX, WinAPI 등을 후킹하여 게임 데이터 조작)
드라이버 수준에서 비정상적인 프로세스 동작 감지
4. 행동 패턴 분석
플레이어 입력 데이터를 기록하여 비정상적인 패턴 탐지(ex. 인간이 불가능한 속도의 클릭)
에임봇, 오토핵 등의 자동화된 움직임 탐지
평소보다 극단적으로 높은 명중률이나 반응 속도 체크
5. 서버 측 검증
클라이언트에서 보내는 데이터가 유효한지 서버에서 이중 검증
플레이어 위치, 속도, 공격 판정을 서버에서 계산해 비정상적인 값 제거
중요 데이터(체력, 탄약, 아이템 수량 등)을 서버에서 관리해 변조 방지
6. 머신러닝 기반 탐지
정상적인 플레이어와 비정상적인 패턴을 학습해 핵 사용자 자동 탐지
비정상적인 조작을 하는 플레이어를 자동으로 밴하는 AI 시스템 도입
대표적인 안티치트 솔루션으로는
Easy Anti-cheat (FPS 및 멀티플레이어 게임에서 사용)
BattleEye(BE) - PUBG, Rainbow Six Siege 등에서 사용
Vanguard (Riot Games)- Valorant 전용 커널 레벨 안티치트
안티치트 우회를 막기 위한 보안 강화 방법
1. 커널 레벨 보호 - 커널 드라이버를 이용하여 치트 프로그래밍 실행되지 못하도록 차단
2. 코드 난독화 - 게임 코드 및 메모리를 난독화하여 리버스 엔지니어링 방지
3. 주기적인 업데이트 - 새로운 핵이 등장할 때마다 안티치트 모듈을 업데이트하여 대응
4. 커뮤니티 기반 제보 - 신고 시스템을 통해 수상한 플레이어 검증 및 차단