원칙 10
좋은 검사는 도구보다 순서에서 나온다. 순서를 지키는 것이 실력이고, 판정 라벨을 함부로 올리지 않는 것이 신뢰다. 아래 열 가지는 모든 SS 세션에 공통으로 적용되는 규칙이다.
열 가지 원칙
| # | 원칙 | 뜻 |
|---|---|---|
| 1 | 동의와 범위가 먼저 | 합의한 범위 밖에서 모은 것은 증거가 아니라 사고다. |
| 2 | Ring3부터 | 디스크·실행 흔적을 보기 전에 커널이나 DMA로 건너뛰지 않는다. |
| 3 | 스캐너는 단서일 뿐 | 스캐너 히트는 가설이다. 수동 축과 교차하기 전에는 Confirmed가 아니다. |
| 4 | 교차 없이는 확정 없다 | 아티팩트 하나, 도구 하나로 단정하지 않는다. |
| 5 | 공백도 기록한다 | 없다는 것도 데이터다. 건너뛴 축, 휘발된 흔적, 권한 부족을 적는다. |
| 6 | 환경은 유죄가 아니다 | HVCI·IOMMU 같은 보호 기능이 꺼져 있어도 그 자체는 정황일 뿐 근거가 아니다. |
| 7 | 안티포렌식을 한 번은 본다 | "깨끗해 보인다"가 사실은 지운 결과일 수 있다. |
| 8 | 라벨은 네 개뿐 | Confirmed / Suspicious / Insufficient / Clean(조건부). 애매하면 올리지 말고 내린다. |
| 9 | 산출물은 증거 패키지 | 채팅 기록이나 스크린샷 한 장이 최종본이 아니다. |
| 10 | 탐지와 교육에 한정 | 이 문서는 흔적을 찾는 법만 다룬다. 설치·우회·재현 방법은 다루지 않는다. |
Clean은 조건부다. 무죄 선언이 아니라 "합의한 축에서 유력한 단서가 없었고 게이트를 통과했다"는 범위 한정 진술이다. 판정 루브릭의 네 조건을 모두 채워야 붙일 수 있다.
각 원칙이 존재하는 이유
1. 동의와 범위가 먼저
SS는 남의 PC를 들여다보는 행위다. 합의 없이는 검사가 아니라 침해가 된다. 시작 전에 어디까지 보는지(디스크 범위, 프로세스 목록, 메모리 덤프 허용 여부), 기록·녹화를 하는지, 결과를 누가 보는지를 정한다. 현장에서는 "범위에 없는 것을 우연히 봤다"는 상황이 꼭 생긴다. 그것은 증거에서 빼고 사고로 기록한다. 범위를 먼저 정해 두어야 나중에 "그건 보기로 한 적 없다"는 항의를 피할 수 있다.
동의·녹화·보존과 관련된 법 조항과 실무 규칙은 개인정보·법적 고려에 정리했다.
2. Ring3부터
유저모드 흔적은 OS가 이미 만들어 둔 기록이라 같은 시간에 가장 많은 독립 축을 확인할 수 있고, 대부분 읽기 전용이라 호스트를 바꾸지 않는다. 커널·DMA 도구를 먼저 꺼내는 유혹이 있지만, 유저모드 축이 닫히지 않으면 더 깊은 층의 발견물도 해석이 서지 않는다. Ring3 축을 끝내 소결을 쓰고, 에스컬레이션 진입 조건에 해당할 때만 아래로 내려간다.
3. 스캐너는 단서일 뿐
스캐너는 시그니처·경로 키워드·휴리스틱으로 "어디를 볼지"를 좁혀 주는 도구다. 히트에는 오탐이 섞여 있고, GPU·RGB·캡처 장치 소프트웨어가 반복적으로 걸린다. 히트를 받으면 경로가 실제로 있는지, 실행 아티팩트(Prefetch·USN·BAM)가 뒷받침하는지, 서명과 경로가 정상 위생인지를 직접 연다. 반대로 스캐너가 조용해도 Clean이 아니다. 스캐너가 안 보는 구간이 있기 때문이다.
4. 교차 없이는 확정 없다
어떤 단일 아티팩트든 정상 설명이 하나 이상 존재한다. Prefetch에 이름이 있어도 자동 실행일 수 있고, USN에 삭제가 있어도 업데이터일 수 있다. Confirmed를 쓰기 전에는 서로 독립된 축 두 개 이상이 제보 시간대에서 같은 가설을 가리키는지, 합리적인 정상 설명이 무너졌는지를 점검한다. 교차가 안 되면 Suspicious 이하로 둔다.
5. 공백도 기록한다
못 본 것과 없는 것은 다르다. 구분하지 않으면 Clean이 근거 없는 면책이 된다. 스킵한 축, 도구가 못 읽은 축, 권한으로 못 연 경로, 시간이 지나 밀려난 저널 구간을 전부 적는다. 공백은 결론의 재료다. Clean이냐 Insufficient냐를 가르는 것이 바로 공백 기록이다.
6. 환경은 유죄가 아니다
HVCI·IOMMU·Secure Boot 상태는 플랫폼이 요구하는 조건이지 행위 증거가 아니다. 구형 하드웨어, BIOS 미지원, 호환성 문제로 꺼져 있을 수 있다. 현장에서는 환경 노트로 분리해 기록하고, 판정에는 가중치로만 쓴다. "IOMMU가 꺼져 있으니 DMA를 썼다"는 문장은 이 원칙을 어긴 대표 사례다.
7. 안티포렌식을 한 번은 본다
지우는 행위 자체가 흔적을 남긴다. 이벤트 로그를 지우면 1102·104가 남고, USN 저널을 지우면 저널 재생성이 남는다. "너무 깨끗함"은 치트가 없어서가 아니라 지워서일 수 있다. 세션 중 한 번은 공백·와이프·속성 조작 패턴을 확인하는 패스를 돌린다. 안 돌리면 지워진 사건을 Clean으로 잘못 닫는다.
8. 라벨은 네 개뿐
"거의 확정", "느낌상 의심" 같은 언어는 재검증이 불가능하다. Confirmed / Suspicious / Insufficient / Clean(조건부) 넷만 쓴다. 애매하면 올리지 말고 내린다. 라벨을 내리는 것은 약한 결론이 아니라 정직한 결론이다. 추가 검사나 재소환 조건을 문장으로 달면 된다.
9. 산출물은 증거 패키지
채팅 기록이나 스크린샷 한 장은 재현이 안 된다. 번호가 매겨진 폴더에 메타, 축별 캡처·export, 판정 파일을 넣는다. 다른 검사자가 폴더만 보고 같은 결론에 도달할 수 있어야 증거다. 자세한 구조는 증거 패키지에 있다.
10. 탐지와 교육에 한정
이 문서는 흔적을 찾고 읽는 법만 다룬다. 치트 설치, 드라이버 로드, 펌웨어 플래시, exploit 코드, 구매 경로는 적지 않는다. 우회 기법은 "공격자가 무엇을 하는가"와 "남는 흔적" 수준까지만 서술한다. 검사자가 그 기법의 흔적을 찾는 데 필요한 만큼만 쓰는 것이 경계다.
3-Layer와의 관계
원칙은 검사의 흐름 위에 놓인다.
에스컬레이션은 특권이 아니라 갈림길이다. 조건을 충족했을 때만 여는 분기다.
원칙을 어기면 생기는 일
각 원칙이 왜 있는지는 어겼을 때 가장 잘 드러난다.
| 어긴 원칙 | 현장에서 나타나는 모습 |
|---|---|
| 1 동의·범위 | 나중에 "그건 보기로 한 적 없다"는 항의 |
| 2 Ring3부터 | 드라이버 목록만 뒤지다 시간을 다 씀 |
| 3 스캐너는 단서 | "스캐너가 빨개서 밴" |
| 4 교차 | Prefetch 하나로 Confirmed |
| 5 공백 기록 | Clean인데 절반을 안 봄 |
| 6 환경은 유죄 아님 | "IOMMU 꺼져 있으니 DMA 확정" |
| 7 안티포렌식 | 타임라인 공백을 정상으로 오해 |
| 8 라벨 네 개 | "거의 확정" "느낌상 의심" |
| 9 증거 패키지 | 증거 폴더 없이 구두 보고만 |
| 10 탐지·교육 | 교육 문서에 우회 절차가 섞임 |
Sources
- 적용: 표준 절차 · 판정 루브릭
- MS Learn — HVCI
- MS Learn — Kernel DMA Protection (환경이 행위 증거가 아니라 플랫폼 조건인 이유)
