위협 모델 — 왜 치트가 존재하는가
온라인 경쟁에서 치트는 더 잘 보고, 더 빨리 맞히고, 덜 들키는 것을 자동화하려는 시도다. OS와 안티치트는 그 시도를 서로 다른 층에서 막거나 흔적으로 남긴다. SS는 호스트에 남은 기록을 읽어 무슨 일이 있었는지 재구성한다.
왜 이 장인가
절차만 읽으면 버튼 순서는 알아도 그 이유가 빠진다.
- 왜 Prefetch를 먼저 보나
- 왜 스캐너 히트만으로 끝내지 않나
- 왜 DMA 이야기가 나오면 라벨을 올리면 안 되나
위협 모델이 그 "왜"를 설명한다. 실제 방법은 빠른 시작과 표준 절차에 있다.
플레이어·치트·안티치트·SS의 위치
- 안티치트는 런타임·커널·서버 신호로 지금 막거나 수집한다.
- SS는 제보 이후 호스트에 남은 기록으로 이야기를 재구성한다.
- 둘은 보완 관계다. SS가 안티치트를 대체하지 않는다.
공격자가 원하는 것
아래는 개념 분류일 뿐 구현 방법이 아니다.
| 이득 | 의미 | SS와의 접점(개념) |
|---|---|---|
| 시야·정보 | 벽 뒤·레이더·ESP류 | 프로세스·모듈·오버레이·주입 계열 |
| 입력·조준 | 이동·조준 보조 | 입력 경로·외부 장치·매크로 경계 |
| 지속·은닉 | 재실행·덜 보이기 | 삭제·타임스탬프·정상 프로세스 위장 |
| 검사 기만 | 검사자가 보는 것을 속인다 | 파일리스 실행·로그 채널 조작·실행 위장(IFEO·디코이)·볼륨 회피 |
| 권한 | 보호 우회 | 드라이버·취약 서명 드라이버의 존재 |
| 물리 분리 | 본체가 다른 기계 | 2PC·DMA, 호스트 흔적이 줄어듦 |
치트가 악성코드와 겹치는 기법 이름(주입·하이재킹·위장)을 쓰는 이유는 Windows 프로세스 동작 방식 자체가 같기 때문이다. MITRE ATT&CK 기법은 원래 기업 침해 분류 체계지만, "프로세스를 다른 프로세스 주소 공간에 끼워 넣는다" 같은 현상 이름을 공유한다. SS 문서는 ATT&CK을 기법 이름의 사전으로 쓸 뿐, 재현 매뉴얼로 쓰지 않는다.
공격자의 선택 — 비용과 은닉의 사다리
공격자가 특정 기법을 고르는 기준은 "얼마나 안 보이나"와 "얼마나 비싸나"의 균형이다. 아래로 갈수록 호스트에 남는 흔적이 줄어들지만 비용이 오른다.
| 층 | 공격자가 얻는 것 | 치르는 비용 | 호스트에 남는 것 | 방어·SS 쪽 |
|---|---|---|---|---|
| 유저모드 도구·로더 | 만들기 쉽고 빠르다 | 스캐너·실행 흔적에 노출 | Prefetch·USN·BAM·모듈 목록 전부 | Ring3 흔적이 풍부한 SS 기본 전장 |
| 파일리스·정상 바이너리 | 디스크에 치트 파일을 두지 않는다 | 실행 주체와 명령행·로그는 남는다 | 호스트의 Prefetch·ScriptBlock 로그·명령행·메모리 잔재 | 실행 주체 추적, 로그 무결성 |
| 인젝션·위장 | 모듈 목록과 스캐너에서 덜 띈다 | 기법별 파생 흔적이 남는다 | 인젝터 실행 흔적, 경로·이미지 불일치, unbacked 메모리(실행 파일에 매핑되지 않은 영역, 용어집) | 모듈·경로·타임라인 교차 |
| 안티포렌식·클리너 | 기존 기록을 지우거나 기록 장치를 손댄다 | 지우고 끄는 행위 자체가 새 기록 | 1102·104, 저널 재생성, 채널 비활성·ACL 변경, 클리너 자체 실행 흔적 | 안티포렌식 점검, 공백·상태 자체가 신호 |
| 커널·드라이버 | 안티치트 콜백·핸들 시야를 뚫는다 | 서명 필요, 로드 기록, BYOVD 카탈로그 노출 | .sys 파일, 서비스 설치 이벤트, CI 로그 | Ring0 진입 조건, 서명·CI 상태 |
| 외부 장치·2PC | 호스트 에이전트와 물리 분리 | 별도 하드웨어·구성 비용 | 호스트에는 거의 없음. 장치 트리·원격 도구 단서 | 환경·제보·물리적 맥락, 확정 신중 |
| 외부 입력·영상 처리 | 게임 메모리를 건드리지 않고 화면과 입력만으로 조준을 돕는다 | 캡처카드·두 번째 PC·입력 장치가 필요하고, 화면에 보이는 정보만 쓸 수 있다 | USB 입력 장치의 연결 이력 정도. 같은 PC에서 돌리면 그 프로그램의 실행 흔적 | 장치 이력과 행동 제보 대조, Insufficient 기본 |
이 사다리가 SS의 검사 순서를 만든다. 위층일수록 흔적이 많고 읽기 쉽다. 아래층일수록 호스트 흔적이 적어서, 흔적이 없다는 관찰만으로는 결론을 낼 수 없는 경우가 많아진다.
영상 처리 경로는 이 사다리의 예외다. 2PC AI 제품의 월 구독료는 20~70달러로 펌웨어·DMA 제품(250~1,500달러)보다 싸면서, 게임 PC 안에 설치하는 하드웨어가 없어 DMA보다 흔적이 적다. 2026년 1분기 FACEIT에 새로 들어온 치트 벤더 36곳 중 17%가 AI·다중 장치 제품이었고 52%가 펌웨어·DMA였다.
왜 층이 이동하나
탐지가 한 층을 잘 보게 되면, 이득을 유지하려는 쪽은 비용이 더 큰 층으로 옮긴다. 층 이동은 탐지 압력에 대한 비용 전가다. SS가 Ring3를 1순위로 두는 이유는 두 가지다. 흔적이 가장 많이 남는 층이고, 남기지 않으려는 시도 자체가 안티포렌식 패턴을 만들기 때문이다.
기법이 실제로 바꾸는 것
각 기법은 "무엇을 바꾸는가"가 다르고, 그래서 남는 파생 흔적이 다르다.
| 기법 종류 | 바꾸는 것 | 파생 흔적 |
|---|---|---|
| 파일 삭제·교체 | 디스크의 파일 | USN DELETE→CREATE, 실행 기록과 현재 파일의 시각 불일치 |
| 메모리 전개(인젝션) | 대상 프로세스의 주소 공간 | unbacked 실행 영역, 모듈 목록 미등재, 인젝터 실행 흔적 |
| 파일리스·호스트 실행 | 실행 파일의 유무 | 치트 .pf는 없지만 실행 주체의 .pf·스크립트 로그·명령행·메모리 |
| 로그·저널 삭제 | OS가 남긴 기록 | 삭제 이벤트 자체(1102·104), 저널 재생성, 아티팩트 공백 |
| 로그 채널·설정 조작 | 기록 장치의 상태 | 비활성 채널·비기본 경로·ACL 거부·4616 |
| 서비스·스레드 억제 | 로깅 동작 | 서비스 Running인데 기록이 끊기는 불일치, Suspended 스레드 |
| 설정 변경 | 보호 기능 on/off | 설정 값 자체(환경 노트), CodeIntegrity 이벤트 |
| 실행 위장(IFEO·디코이) | 검사자가 여는 파일의 정체 | IFEO 키·대체 스트림·동명 파일의 시각·해시 불일치 |
| 볼륨·인덱스 회피 | 기록이 남는 범위 | 저널 없는 볼륨·마운트 기록·검색 도구 제외 목록 |
| 장치 위장 | 하드웨어 식별자 | 장치 트리 이상, 드라이버·서비스 흔적 |
| VM·샌드박스 격리 | 검사자가 보는 OS의 범위 | 검사 대상이 게스트면 시스템 제조사·모델의 가상화 문자열, VM 도구 서비스, 디스크 장치 이름. 호스트 안 VM·Windows Sandbox면 VM 소프트웨어 실행 흔적, 가상 디스크 파일, .wsb 구성 파일 |
공격자가 무엇을 하든 그 행위는 다른 층이나 다른 채널에 파생 흔적을 만든다. 탐지자는 기법 자체보다 그 파생물을 읽는다.
왜 흔적이 남나
Windows가 이 기록을 남기는 목적은 탐지가 아니라 성능·호환·프리페치·감사다.
| 메커니즘(예) | OS 쪽 목적 | SS가 읽는 이유 |
|---|---|---|
| Prefetch | 부팅·실행 가속 | 무엇이 실행됐는가의 후보 |
| USN Journal | NTFS 변경 추적 | 생성·삭제·이름변경 타임라인 |
| BAM 등 실행 흔적 | 시스템 상태 | 실행 주장 교차 |
| 이벤트 로그 | 운영·보안 감사 | 서비스·로그온·CI 단서 |
| 서명 검증 | 신뢰 실행 | 경로·서명 위생 |
다음 장 Windows가 남기는 흔적은 이 연장이다. SS가 읽는 것은 정상 기능의 부산물이다.
흔적을 교차하는 법
흔적이 축이 되려면 서로 다른 아티팩트가 같은 사건을 가리켜야 한다. 교차의 축은 네 가지다.
- 이름·경로. Prefetch의
.pf이름, USN의 파일 경로, BAM의 실행 경로가 같은 파일을 가리키는가. - 시각. 제보 시간대와 실행·삭제·변경 시각이 겹치는가. 실행 후 삭제처럼 순서가 맞는가.
- 행위자. 같은 계정 SID에 묶인 기록인가. 사용자 진술과 어긋나는가.
- 부모·맥락. 어떤 프로세스가 그 실행을 일으켰는가. 설치·업데이트 과정의 일부인가.
두 축 이상이 같은 이름과 시각을 가리키면 단서가 교차한다. 한 축만 맞으면 리드(lead, 조사 실마리, 용어집)에 머문다.
SS가 보는 것과 못 보는 것
| 본다(조건 충족 시) | 못 보거나 약하다 |
|---|---|
| 디스크 아티팩트·실행 흔적 | 완전히 휘발됐거나 디스크를 안 건드린 경우(파일리스도 실행 주체의 흔적은 남는다) |
| 타임라인 교차 | 암호화된 외부 기기 내부 |
| 진술과 아티팩트의 모순 | 서버 측 순수 네트워크 치트 단독 |
| 환경 설정 상태 | 설정이 꺼져 있다는 사실만으로 하는 행위 증명 |
| 제보 패턴 + 호스트 맥락 | 제보의 감정적 표현만으로 한 판정 |
Insufficient 라벨이 있는 이유가 여기 있다. 못 보는 영역을 거짓 Clean으로 메우지 않기 위해서다.
정상 설명을 먼저 생각한다
같은 흔적이 무고한 이유로 생기는 경우가 흔하다. Confirmed를 쓰기 전에 아래를 먼저 소거한다.
- 공유 PC·공유 계정. 다른 사용자가 돌린 것일 수 있다. SID와 계정 진술로 구분한다.
- 새로 설치한 시스템. 새 포맷이면 흔적이 얇은 것이 정상이다. 설치 시각을 본다.
- 자동 실행·업데이터. 런처·브라우저·백신이 같은 모양의 흔적을 만든다. 부모 프로세스와 주기를 본다.
- 기업·조직 이미지. GPO로 로깅이 꺼진 관리형 시스템은 기본값이 다르다. 서비스 상태를 본다.
- 프라이버시 도구 사용자. 정리 도구를 습관적으로 쓰는 사용자도 있다. 도구 자체의 실행 기록을 본다.
Community
Community. 아래는 커뮤니티에서 반복되는 말을 의역한 것이다. 어느 문장도 판정 조건으로 쓰지 않는다.
- "스캐너 한 번에 잡혔다 / 안 잡혔다"는 스캐너 결과를 단독 근거로 삼는 말이다. 히트는 리드이지 판정이 아니다.
- "DMA라서 로컬에 없다"는 부분적으로 가능하지만 증명을 대체하지 못한다. 제보·환경·Ring3 공백을 분리해 기록한다.
- "그냥 클린하다"는 안티포렌식과 생략 여부를 확인하기 전에는 쓰지 않는다.
- 포럼의 탐지 토론은 어떤 신호가 논쟁되는지에 대한 힌트일 뿐, Confirmed 체크리스트가 아니다.
- "내부 치트는 재시작하면 끊긴다"는 말이 있는데, 재시작 이후의 Prefetch·BAM·USN을 보면 된다는 뜻이다.
- "메모리에서만 실행되니 흔적이 없다"는 말이 돌지만, 실행 주체의 Prefetch·스크립트 로그·명령행·메모리는 남는다는 인정이 뒤따른다.
- 로그를 지우는 대신 채널을 끄거나 시간을 바꾼다는 이야기가 있다. 끄고 바꾼 사실 자체가 기록된다는 인정이 뒤따른다.
연구 문헌(arXiv 등)은 보통 탐지 성능·분류·한계를 다룬다. 여기서는 그 한계 문장만 가져오고 페이로드나 우회 코드는 가져오지 않는다.
요약
| 질문 | 답 |
|---|---|
| 치트는 왜 있나 | 경쟁 이득의 자동화와 은닉 |
| 왜 기법이 겹치나 | 같은 OS 메커니즘을 쓰기 때문 |
| 왜 층을 옮기나 | 탐지 압력에 따른 비용 전가 |
| 왜 Ring3부터인가 | 흔적 밀도, 재현성, 동의 범위 실무 |
| 왜 확정이 어렵나 | 공백·오탐·환경·층 밖 행위 |
| 윤리 경계는 | 탐지와 교육에 한정, 조리법 없음 |
Sources
- MITRE ATT&CK: T1055 프로세스 주입 · T1070 지표 제거 · T1562/001 방어 수단 무력화 · T1620 리플렉티브 코드 로딩 · T1218 서명된 바이너리 프록시 실행 · T1546/012 IFEO
- Microsoft 보안 기능: HVCI · Kernel DMA Protection
- 커널 안티치트 기술 글(secret.club)
- Intorqa: Face Off - Auditing FACEIT's Anti-Cheat for CS2 (2026-07-31) (2PC AI 구성, 가격대, 2026년 1분기 벤더 비율)
- VM 격리: Check Point Research Evasions: 레지스트리 · WMI · MS Windows Sandbox .wsb 구성 파일
Next
- 흔적이 생기는 이유 → Windows가 남기는 흔적
- 층 구조 → 3-Layer 모델
- 원칙으로 고정 → 원칙 10
- 손으로 실행 → 빠른 시작
- 라벨 → 판정 루브릭
