표준 절차
한 세션은 오리엔테이션에서 시작해 스캐너(단서), Ring3 코어 축, 안티포렌식, 환경 노트를 지나 소결과 증거 패키지로 닫고, 필요하면 에스컬레이션 게이트로 넘어간다. 이 문서는 30~45분짜리 전체 흐름을 단계별 목적과 판단 포인트 중심으로 풀어 쓴다. 각 축의 상세 판독법은 해당 카드에, 한눈에 보는 체크리스트는 빠른 시작에 있다.
시작 전: 사전 조건
절차는 검사 시작 전에 아래를 고정한다. 이 단계가 비어 있으면 뒤에서 나온 증거가 "무엇을 증명하는가"를 잃는다.
동의·범위. 검사 목적, 어디까지 볼지(범위), 무엇을 기록할지에 대한 동의를 받는다. 녹화 여부와 보관 기간도 이때 알린다(개인정보·법적 고려). 대상 게임과 안티치트(FACEIT / EAC / BE / Vanguard / 기타)를 고정하고, 제보 내용을 확정한다. 제보 고정이란 데모 클립 시각, 의심 행위, 닉네임과 시간대를 문서로 못 박는 일이다. 뒤의 모든 타임라인 판독이 이 시간대와 맞춰진다. 매크로 허용 여부와 밴 권한은 별도 운영 정책 문서의 몫이고, 이 절차는 증거 언어만 제공한다.
호출·접속 시각. 대상자에게 검사를 통보한 호출 시각과 원격 접속을 시작한 시각을 적는다. 서버가 대상자를 게임 안에 멈춰 두는 프리즈를 쓰면 프리즈 시각이 호출 시각이다. 두 시각 사이는 대상자가 검사를 알고 있지만 검사자는 아직 화면을 보지 못하는 구간이라 정리 시도가 들어갈 수 있다. T+33 안티포렌식에서 이 구간의 삭제·서비스 변경·설정 변경을 먼저 본다.
녹화. 검사 도구를 켜기 전에 녹화를 시작해 세션이 끝날 때까지 끊지 않는다. 원본 파일은 편집하지 않고 증거 패키지 루트에 두며, SHA-256 해시를 00-meta.txt에 적는다.
검사 대상 확인. 원격으로 보는 OS가 실제 호스트인지 확인한다. msinfo32의 시스템 제조업체·시스템 모델 값을 기록한다. 가상화 제품 이름이 보이면 VM 게스트다(VMware 게스트는 "VMware, Inc."와 "VMware Virtual Platform"). 게스트를 검사하면 호스트에 남은 흔적은 범위 밖이므로 그 사실을 메타에 적는다. PC방·공용 PC인지도 확인한다. 순간복구, 여러 사용자, 선설치 게임 때문에 해석 기준이 달라진다(FP 베이스라인).
도구 정책. 승인된 스캐너·파서만 쓴다. 메모리 덤프나 커널 접근 도구는 동의와 위험 고지 이후에만 돌린다. 해시 조회는 의심 파일 단건으로 제한한다. VirusTotal 대량 조회로 결과 행만 채우는 것은 증거가 아니다. 도구는 공식 배포처에서 받는다. 배포처가 해시를 공개하면 대조하고, 실행 파일의 SHA-256을 메타에 적는다. 실행하기 전에 도구 파일 이름으로 IFEO(Image File Execution Options) 키에 Debugger 값이 걸려 있지 않은지 본다. 걸려 있으면 그 이름으로 실행한 도구 대신 Debugger로 지정된 프로그램이 뜬다(서명·경로 카드). 검사 결과나 파일을 외부 서버·웹훅으로 보내는 도구는 도구 정책과 동의 범위에 그 전송이 들어 있을 때만 쓴다.
도구 흔적 구분. 검사 도구마다 실행 시각을 적는다. 검사 도구도 실행되면 Prefetch·USN·BAM에 기록을 남기므로, 이 시각이 있어야 타임라인에서 도구의 흔적과 대상자의 흔적을 가를 수 있다.
호스트 메타. T+0에 hostname, Windows build, 타임존, 부팅 시각, 로그인 계정(로컬/MS)·관리자 여부, 디스크 여유, 보안 제품 존재 여부를 메타 파일에 적는다. 이 값들이 뒤의 "저널 생성 시각이 부팅보다 늦다" 같은 판독의 기준점이다.
표준 타임라인
| 시각 | 단계 | 산출 |
|---|---|---|
| T+0 | 오리엔테이션 | 메타·동의·AC·제보 고정, 로그 무결성 확인, 증거 폴더 |
| T+5 | 자동 스캐너 | 히트 export (단서로만) |
| T+10 | Prefetch | 실행 후보, 정렬·공백 |
| T+14 | USN | delete/rename 클러스터 |
| T+18 | BAM·레지스트리 | SID별 실행 기록 |
| T+22 | Recent·LNK | 열람·경로 흔적 |
| T+25 | 서명·경로 위생 | 서명 상태, 위장 경로 |
| T+28 | 프로세스·모듈 | 로드 모듈, 인젝션 분기 |
| T+30 | 메모리 (선택) | 분기 기준 충족 시에만 덤프 |
| T+33 | 안티포렌식 | 공백·와이프 패턴 |
| T+36 | 매크로 | SW 바인딩 + 온보드 매크로 2회 |
| T+38 | 환경 노트 | IOMMU/HVCI 등 가중치 |
| T+40 | Ring3 소결 | 축별 상태 + 에스컬레이션 벡터 |
| T+42 | 증거 패키지 | 폴더 정리 + 07-verdict.md |
| T+45 | 에스컬레이트 또는 종료 | Ring0/DMA 게이트 또는 종료 |
오리엔테이션 (T+0)
5분 안에 아래를 끝낸다.
- 동의와 범위를 다시 확인한다. 녹화가 돌고 있는지 본다.
winver또는 설정 → 정보에서 Windows build를 기록한다. BAM 같은 아티팩트는 빌드에 따라 없을 수 있어 이 번호가 해석의 전제다.- 시간대와 로컬 시계를 제보 시각과 대조한다. 제보자가 다른 나라에 있거나 시계가 어긋나 있으면 타임라인 정렬 전체가 흔들린다.
- 최근 재부팅·업데이트 여부를 묻고, 가능하면 이벤트로 확인한다. Prefetch 히스토리 길이와 저널 최하단의 해석이 달라진다.
- 2PC·캡처 카드·스트리밍 여부를 직접 질문한다. 이 답이 뒤의 DMA 게이트 입력이다.
- 증거 루트 폴더를 만든다(증거 패키지 템플릿 복사).
- 검사 대상 확인 결과(VM 게스트 여부, PC방·공용 PC 여부)를 메타에 적는다.
- T+0 스냅샷. 스캐너보다 먼저 프로세스 트리(시작 시각 포함), 서비스 목록과 서비스 프로세스의 시작 시각, Prefetch 폴더 목록(이름·수정 시각)을 캡처한다. 검사 도구를 실행하면 그 도구의
.pf가 새로 생기고, 폴더가 상한(Windows 8 이상 1,024개)에 차 있으면 오래된.pf가 밀려날 수 있다. 이 스냅샷이 T+10 Prefetch와 T+28 프로세스 판독의 기준선이다. 프로세스·서비스 캡처는05-process/, Prefetch 목록은02-prefetch/에 둔다.
로그 무결성 확인 (T+0~T+5)
로그를 읽기 전에, 읽을 로그가 손대지 않았는지를 먼저 본다. 채널이 꺼져 있거나 .evtx 경로가 바뀐 상태에서 나온 "로그가 비어 있다"는 해석이 아니라 오독이다. 이 확인은 스캐너(T+5)를 돌리기 전에 끝내고, 결과를 06-af/에 남긴다.
- 채널 활성 상태. 검사에 쓸 채널(PowerShell Operational·Security·System)이 enabled인지 본다. 비활성 채널이 있으면 그 사실과 로그가 끊긴 시작점을 기록한다.
- .evtx 경로. 각 로그 등록정보의 파일 경로가
Winevt\Logs기본값인지 본다. 비기본 경로는 변경 후 복원하는 우회의 흔적이다. - 파일 ACL. .evtx 파일·ConsoleHost_history·Prefetch 폴더에 명시적 deny 엔트리가 없는지 본다. 정상 상태에는 없는 쓰기 거부다.
- 시간 순서. 이벤트 레코드 번호와 타임스탬프의 역전, Security 4616·Kernel-General 1(시스템 시각 변경)을 필터링한다. 제보 시간대 근처의 시각 변경은 그 뒤 타임라인 전체의 신뢰를 바꾼다.
- 공백. 로그 마지막 시각과 현재의 갭, 채널별로 기록이 끊긴 구간을 대조한다.
이 단계의 결과가 안티포렌식(T+33)의 입력이다. 여기서 나온 이상은 뒤의 모든 축에서 "비어 있음"을 어떻게 읽을지를 바꾼다. 비활성 채널의 공백은 부재가 아니라 상태다.
Ring3 순서와 판단 포인트
각 단계는 해당 카드의 절차를 따른다.
T+5 스캐너: 단서만. 승인된 스캐너만 실행하고 히트 리스트 전체를 export한다. 히트마다 경로 실존 여부, 규칙명, 심각도를 적고 FP 베이스라인의 패밀리와 대조한다. 검증된 히트는 Prefetch·USN·BAM 큐에 올린다. 이 시점에서 Confirmed는 금지다. 스캐너가 없거나 정책이 금지하면 그 사실만 기록하고 수동 Ring3로 진행한다.
T+10 Prefetch. 폴더를 Date Modified로 정렬해 캡처하고 SysMain 서비스 상태를 기록한다. 제보 시간대·스캐너 히트와 이름을 교차한다. 긴 세션인데 대량 공백이면 안티포렌식 리드(재검증이 필요한 단서)로 적어 두고 넘어간다. 이 시점 판정이 아니다. 상세는 Prefetch 카드.
T+14 USN. 시간 창과 경로 키워드로 필터링해 export한다. "비어 있다"는 주장은 도구 2종 또는 권한·볼륨 재확인으로 받쳐야 한다. delete/rename 클러스터를 Prefetch·BAM과 맞춘다. 저널이 랩(wrap)돼 오래된 기록이 사라진 경우는 와이프가 아니라 Insufficient로 적는다. 상세는 USN 카드.
T+18 BAM·레지스트리. 현재 SID의 BAM 키를 열고, UserAssist·ShimCache·Amcache(범위 안일 때)를 보조로 읽는다. 세션 활동 대비 BAM이 비어 있으면 안티포렌식 리드다. ShimCache는 실행 로그 전체가 아니므로 단독 해석에 주의한다. Windows 11이면 PCA 파일(C:\Windows\appcompat\pca\)도 본다(Windows 흔적). 상세는 BAM 카드.
T+22 Recent·LNK. Recent·점프리스트·MRU를 연다. 깨진 LNK도 대상 경로 문자열을 보존하므로 버리지 않는다. 삭제된 타깃은 USN과 교차한다. 상세는 Recent/LNK 카드.
T+25 서명·경로 위생. 앞 단계에서 올라온 의심 바이너리의 Authenticode 상태와 경로 위생을 본다. 무서명 단독은 Confirmed가 아니다. 상세는 서명 카드.
T+28 프로세스·모듈. 게임·안티치트·오버레이의 정상 기준선을 잡고 비정상 모듈 경로·서명을 본다. 서비스 메모리 문자열도 보고, 서비스 시작 시각을 함께 적는다. 인젝션 강신호가 나올 때만 다음 메모리 슬롯으로 분기한다. 상세는 프로세스 카드.
T+30 메모리 (선택). 다음 중 하나 이상에 해당하고 디스크 교차 계획이 있을 때만 들어간다: 경로 불일치·할로잉 의심 프로세스, 게임 프로세스 안의 사용자 경로 미서명 모듈 + 실행 아티팩트, 조직 정책상 강제 덤프. 동의 → 덤프 해시·도구 버전 기록 → Volatility3 최소 세트 순서다. 디스크 타임라인 교차 없이 memory-only Confirmed는 금지다. 상세는 메모리 카드.
T+33 안티포렌식. Prefetch·USN·BAM·Recent가 세션 대비 "너무 깨끗한지" 체크리스트로 본다. 호출 시각과 접속 시각 사이 구간을 먼저 본다. Security 1102(로그 삭제)·System 104와 Defender 설정·예외 변경(Microsoft Defender Antivirus 5001 실시간 보호 끔, 5007 설정 변경)을 필터링하고 클리너 잔여 이름을 찾는다. T1070 계열은 해석 프레임으로만 쓰고 단독 확정 근거로 삼지 않는다. 상세는 안티포렌식 카드.
T+36 매크로. 매크로 소프트웨어 UI의 바인딩을 캡처하고 온보드 프로필(입력 장치 펌웨어에 저장된 매크로) 2회 테스트를 기록한다. 허용·금지 판정은 서버 매크로 정책이 내린다. 절차는 존재 여부와 유형만 고정한다. 상세는 매크로 카드.
T+38 환경 노트. IOMMU / Kernel DMA Protection, HVCI / Memory integrity, VBS 상태를 캡처한다. 플랫폼 요구(FACEIT 보안 요구 등) 미충족은 규정 위반일 수 있으나 치트 확정과 분리해서 적는다. 2PC·캡처 카드 진술은 DMA 게이트 입력이다. 전부 가중치로만 쓴다. 상세는 플랫폼·환경.
Ring3 소결 (T+40)
소결은 판정 파일 초안이 되며 다음 다섯 질문에 답해야 한다.
- 완료한 Ring3 축 목록 (SCAN / PF / USN / BAM / REC / SIG / PROC / MEM / AF / MAC).
- 축별 상태: 정상 / 리드 / Suspicious 후보 / Insufficient.
- 스캐너 히트 재검증 결과 요약 (몇 건이 FP 패밀리로 기각됐는지 포함).
- 에스컬레이션 벡터: 드라이버·열거 불일치 의심, 숨김 장치·DMA 제보·IOMMU off와 행동 제보의 결합, 커널 콜백·HVCI 관련 이상.
- Ring3만으로 끝낼지, Ring0/DMA 게이트로 갈지 명시. 아무것도 안 적으면 게이트를 건너뛴 것이다.
로그 무결성 확인에서 이상이 나왔으면, 그 이상이 어느 축의 "비어 있음" 해석에 영향을 줬는지 소결에 적는다. 이상이 없었다는 결과도 남긴다.
스킵 규칙
건너뛰는 것은 허용되지만, 문서화 없는 스킵이 있으면 Clean을 내릴 수 없다.
- 메모리: R3-PROC 분기 기준 미충족이면 skip과 이유 한 줄.
- 스캐너: 정책 금지·미설치면 "수동 Ring3만"으로 기록.
- 시간 부족: 해당 축을 Insufficient로 명시한다. 시간이 모자란 세션에 Clean을 붙이지 않는다.
종료 또는 에스컬레이션 (T+45)
Ring3 소결에서 에스컬레이션 벡터가 없으면 종료하고 증거 패키지를 닫는다. 벡터가 있으면 Ring0 게이트(드라이버 목록·서명·LOLDrivers 단건 대조·CI/HVCI 상태) 또는 DMA 게이트(숨김 장치·Kernel DMA Protection·2PC 실물 확인)로 넘긴다. 두 게이트의 세부는 Ring3로 부족한 순간에 이어지는 Ring0 안전 깊이와 DMA / L0 안전 깊이에 있다. BYOVD 재현·취약 드라이버 설치 실험·DMA 보드 사용법·펌웨어 플래시·구매 경로는 이 절차 전체에서 금지다.
세션 운영
거부·중단·세션 중 조작. 대상자가 검사를 거부하거나 중간에 끊으면, 또는 세션 중에 파일을 지우거나 검사 도구·프로세스를 끄는 것을 보면, 관찰한 사실과 시각을 적고 녹화를 보존한다. 그때까지 끝낸 축과 끝내지 못한 축을 소결에 적는다. 라벨은 모은 증거로 판정 루브릭을 따라 정하고, 거부·중단에 대한 제재는 운영 정책이 따로 정한다. 세션 중에 관찰한 삭제·종료 시도는 녹화와 함께 안티포렌식 축의 근거가 된다.
세션 종료. 끝낼 때 다음을 하고 결과를 00-meta.txt의 session_close에 적는다.
- 원격 세션을 끊는다.
- 이 세션을 위해 원격 도구의 무인 접근(상대가 수락하지 않아도 비밀번호로 접속하는 설정, AnyDesk의 Unattended Access 등)을 켰다면 끄고 비밀번호를 지운다.
- 대상 PC에 복사한 검사 도구와 임시 출력물을 지운다. 드라이버를 설치하는 도구를 썼다면 드라이버를 지웠는지 적는다. 남은 SS 도구 드라이버는 다음 검사에서 FP이자 BYOVD 후보가 된다(FP 베이스라인).
- 녹화를 멈추고 원본의 SHA-256을 적는다.
산출물
세션을 닫기 전에 다음이 있어야 한다.
- 라벨 하나와 근거 불릿
- 증거 폴더 인덱스
- 스킵·공백 목록
- 에스컬레이션 여부와 그 이유
- Confirmed면 검토자 서명, 검토자가 없으면 그 사실
- 녹화 원본과 패키지 해시 목록(증거 패키지)
흔한 실수
- 절차에 없는 "빠른 확정 지름길"을 임의로 만든다.
- Ring0·DMA 절차를 이 단계에서 펼친다. 그것은 에스컬레이션 문서의 몫이다.
- 스캐너 히트가 나오자마자 소결 없이 판정한다. 히트는 큐이지 결과가 아니다.
- 스킵한 축을 소결에 적지 않고 조용히 넘어간다.
- 비활성 채널의 공백을 "로그가 지워졌다" 또는 "아무 일도 없었다"로 읽는다. 로그 무결성 확인 결과가 먼저다.
- 스캐너를 T+0 스냅샷보다 먼저 돌린다.
- 검사 도구의 실행 시각을 적지 않아 도구의 흔적과 대상자의 흔적을 섞는다.
Sources
- MS 이벤트 1102 — 로그 삭제 감사 이벤트
- MS 이벤트 4616 (시스템 시각 변경 감사 이벤트)
- MS fsutil usn — 저널 조작 명령 구문
- MS Learn: Microsoft Defender Antivirus event IDs and error codes (5001·5007)
- Securelist: What makes Windows 11 interesting from a digital forensics perspective (2025-10-14) (PCA 파일 경로)
- SANS ISC: Forensic Value of Prefetch (2022-10-21) (Prefetch 상한 1,024)
- Broadcom KB 438099: VMware tools installation failed (VM 게스트의 msinfo32 제조업체·모델 값)
- MITRE ATT&CK T1546.012: Image File Execution Options Injection
- AnyDesk: Set up Unattended Access
Next
- 시간 배분 → 빠른 시작
- 라벨 → 판정 루브릭
- 증거 → 증거 패키지
- 에스컬레이션 → Ring3로 부족한 순간
