윈도우 PC 포렌식 방어 — 암호화부터 흔적 관리까지
윈도우가 남기는 포렌식 아티팩트(Prefetch, Shellbags, USN Journal, Event Logs, pagefile.sys 등)의 위치와 의미, 위험도별 관리법을 정리합니다.
회사 컴퓨터에서 이직 사이트 들어가거나 이력서 열어봤는데, 나중에 IT 팀이나 누군가가 기록을 뒤지면 어디까지 보일지 불안한 거다 — 그 불안은 근거가 있다.
이혼 소송 준비 중이라 변호사 상담 기록을 PC에서 정리하고 있거나, 회사에서 내부고발 자료를 모으고 있거나, 아니면 단순히 — 내 PC를 누군가 들여다봤을 때 뭘 했는지 알 수 없게 만들고 싶거나.
이유야 각자 다르겠지만, 공통된 착각이 하나 있다. “파일 지우고 휴지통 비우면 끝 아냐?”
아니다. 윈도우는 사용자가 의식하지도 못하는 곳에, 생각보다 훨씬 많은 흔적을 남긴다.
윈도우가 몰래 기록하는 것들
윈도우에는 “포렌식 아티팩트”라고 불리는 것들이 있다. 사용자가 직접 만든 파일이 아니라, OS가 자동으로 생성하는 메타데이터다. 프로그램 실행 기록, 폴더 열람 이력, 파일 변경 로그, 심지어 RAM에 있던 데이터까지 — 전부 디스크 어딘가에 쌓이고 있다.
포렌식 수사관이 PC를 받으면 가장 먼저 보는 게 이것들이다. 파일을 아무리 지워도, 이 아티팩트가 남아 있으면 “이 PC에서 언제, 무슨 프로그램을, 어떤 폴더에서 실행했는지”가 복원된다.
하나씩 보겠다.
Prefetch — 프로그램 실행 기록
Prefetch는 윈도우가 프로그램 로딩 속도를 높이기 위해 만드는 파일이다. 프로그램을 한 번이라도 실행하면 C:\Windows\Prefetch에 .pf 파일이 생긴다.
파일명 형식은 프로그램명-해시값.pf다. 예를 들어 TELEGRAM.EXE-9A3B1C2D.pf라고 적혀 있으면, 텔레그램을 실행한 적이 있다는 뜻이다. 마지막 실행 시각과 총 실행 횟수까지 기록된다.
관리법:
C:\Windows\Prefetch폴더 안의.pf파일을 직접 삭제할 수 있다 (관리자 권한 필요)- Prefetch 기능 자체를 끄려면: 레지스트리
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters에서EnablePrefetcher값을0으로 변경 - 끄면 프로그램 로딩이 살짝 느려질 수 있지만, 체감하기 어려운 수준이다
Recent Files / Jump Lists — 최근 파일과 점프 리스트
작업 표시줄에서 프로그램을 우클릭하면 최근에 열었던 파일 목록이 뜬다. 이게 Jump Lists다. 파일 탐색기의 “최근에 사용한 항목”도 같은 계열이다.
Jump Lists는 %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations와 CustomDestinations 폴더에 저장된다. 파일을 지워도, 심지어 프로그램을 삭제해도 이 기록은 남아 있다.
관리법:
설정 → 개인 설정 → 시작→ “최근에 연 항목 표시” 끄기- 레지스트리로 완전 비활성화:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced에서Start_TrackDocsDWORD를0으로 설정 - 기존 기록 수동 삭제:
%APPDATA%\Microsoft\Windows\Recent폴더 내용 전부 삭제
Shellbags — 폴더 열람 기록
Shellbags는 윈도우 탐색기가 폴더의 보기 설정(아이콘 크기, 정렬 방식, 창 크기)을 기억하기 위해 레지스트리에 저장하는 기록이다.
문제는, 폴더를 삭제해도 Shellbags 기록은 남는다는 거다. “이 PC에서 D:\비밀\자료 폴더를 열어본 적이 있다”는 사실이, 폴더 자체가 사라진 뒤에도 레지스트리에 남아 있다.
위치는 HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU와 Bags 키다.
관리법:
- Shellbag Analyzer & Cleaner — 무료 도구로 Shellbags 기록을 확인하고 삭제할 수 있다
- 수동으로 레지스트리
BagMRU와Bags키를 삭제해도 되지만, 레지스트리 직접 편집에 익숙하지 않으면 도구를 쓰는 게 안전하다
Thumbcache — 썸네일 캐시
이미지나 동영상 파일이 있던 폴더를 열면, 윈도우 탐색기가 미리보기 썸네일을 생성한다. 이 썸네일이 %LOCALAPPDATA%\Microsoft\Windows\Explorer에 thumbcache_*.db 파일로 저장된다.
원본 파일을 삭제해도 썸네일은 캐시에 남는다. 민감한 이미지가 있었다면, 파일은 지웠는데 축소판이 남아 있는 상황이 발생한다.
관리법:
디스크 정리(cleanmgr)→ “미리 보기” 항목 선택 후 정리- 직접 삭제:
%LOCALAPPDATA%\Microsoft\Windows\Explorer에서thumbcache_*.db파일 삭제 (탐색기를 닫은 상태에서) - 썸네일 생성 자체를 끄려면:
파일 탐색기 옵션 → 보기탭에서 “항상 아이콘을 표시하고 미리 보기는 표시하지 않음” 체크. 또는그룹 정책 편집기(gpedit.msc)→사용자 구성 → 관리 템플릿 → Windows 구성 요소 → 파일 탐색기→ “미리 보기 그림의 캐싱 사용 안 함”을 “사용”으로 설정 (Pro 이상 에디션만 가능)
USN Journal — 파일 변경 로그
USN Journal(Update Sequence Number Journal)은 NTFS 파일 시스템이 모든 파일 변경 사항을 기록하는 로그다. 파일 생성, 삭제, 이름 변경, 수정 — 전부 밀리초 단위 타임스탬프로 기록된다.
크기가 제한되어 있어서 며칠~몇 주치만 남지만, 그 기간 내의 파일 활동은 아주 상세하게 복원된다. “4월 28일 오후 3시 12분 47초에 기밀자료_최종.docx 파일이 생성되었다” — 이런 수준이다.
관리법:
- 관리자 권한 명령 프롬프트에서
fsutil usn deletejournal /d C:로 삭제 가능 - 삭제하면 새 저널이 자동 생성되므로, 이전 기록만 사라지고 이후 기록은 다시 쌓인다
- 주기적으로 삭제하는 스크립트를 작업 스케줄러에 등록할 수 있다
Event Logs — 이벤트 로그
윈도우 이벤트 로그는 시스템 시작/종료, 프로그램 설치/제거, 로그인/로그아웃, USB 연결 등을 기록한다. C:\Windows\System32\winevt\Logs에 .evtx 파일로 저장된다.
포렌식에서 특히 주목하는 건 보안 로그(Security.evtx)와 시스템 로그(System.evtx)다. “이 계정이 언제 로그인했는지”, “어떤 USB가 연결되었는지”가 여기 남는다.
관리법:
이벤트 뷰어(eventvwr.msc)→ 각 로그 우클릭 → “로그 지우기”- 명령줄에서 일괄 삭제:
wevtutil cl security,wevtutil cl system,wevtutil cl application - 주의: 보안 로그를 지우면 이벤트 ID 1102(“감사 로그가 지워졌다”)가 새로 기록된다. 로그를 지운 행위 자체는 남는다는 뜻이다
브라우저 아티팩트
크롬, 엣지 같은 브라우저는 방문 기록, 쿠키, 캐시, 다운로드 기록을 로컬 SQLite 데이터베이스에 저장한다.
- 크롬:
%LOCALAPPDATA%\Google\Chrome\User Data\Default\(History, Cookies, Cache 폴더) - 엣지:
%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\
브라우저 내에서 “인터넷 사용 기록 삭제”를 하면 UI상으로는 사라지지만, 삭제된 레코드가 SQLite 데이터베이스의 “빈 공간”에 남아 있을 수 있다. 포렌식 도구는 이 빈 공간에서 삭제된 기록을 복구한다.
관리법:
- 브라우저 기록 삭제는 기본 중의 기본이다 — 이건 이미 하고 있을 거다
- 한 단계 더: 브라우저를 닫은 상태에서 위 경로의
History,Cookies파일 자체를 삭제하면 SQLite 빈 공간 문제도 해결된다 (다음에 브라우저를 열면 새 파일이 생성된다) - 가장 깔끔한 방법: 민감한 브라우징은 처음부터 시크릿/프라이빗 모드에서 한다. 로컬에 기록 자체가 쓰이지 않는다
pagefile.sys와 hiberfil.sys — RAM 흔적
이 두 파일은 다른 아티팩트보다 위험도가 한 단계 높다.
pagefile.sys(페이지 파일)는 RAM이 부족할 때 데이터를 디스크에 임시 저장하는 가상 메모리 파일이다. 열어둔 문서의 내용, 복호화된 비밀번호, 메신저 대화 — RAM에 있던 것들이 이 파일에 쓰일 수 있다.
hiberfil.sys(절전 파일)는 더 직접적이다. 노트북 덮개를 닫으면 윈도우가 RAM 전체를 이 파일에 그대로 덤프한다. 절전 모드 직전에 열려 있던 모든 것 — 브라우저 탭, 문서, 메신저 창 — 의 스냅샷이 디스크에 저장되는 거다.
둘 다 C:\ 루트에 숨김 파일로 존재한다.
관리법:
- hiberfil.sys 삭제: 관리자 명령 프롬프트에서
powercfg -h off실행하면 최대 절전 모드가 비활성화되고 파일이 삭제된다 - pagefile.sys 종료 시 초기화: 레지스트리
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management에서ClearPageFileAtShutdownDWORD를1로 설정. 종료할 때 페이지 파일을 0으로 덮어쓴다. 다만 종료 시간이 수십 초~수 분 늘어난다 - 가장 확실한 방어: BitLocker로 디스크 전체를 암호화한다. 디스크가 암호화되어 있으면, PC를 꺼낸 상태에서 pagefile.sys나 hiberfil.sys를 읽는 게 불가능하다
현실적으로 필요한 수준
위에 나열한 아티팩트가 많아 보이지만, 전부 다 관리해야 하는 건 아니다. 자기 상황에 맞게 골라잡으면 된다.
🟢 일반 사용자 — “PC 팔기 전에 정리하고 싶다” / “가족이 볼까 봐 걱정된다”:
BitLocker 켜기 + 브라우저 기록 삭제 + Prefetch 폴더 정리. 이 세 가지면 충분하다. Shellbags나 USN Journal까지 신경 쓸 필요 없다.
🟡 민감한 상황 — 불법 도박 기록이 걱정되거나, 정신건강 상담 내역을 숨기고 싶거나, 스토킹 피해자라서 가해자 모르게 증거를 모으는 중이라면:
위의 기본 + pagefile 종료 시 초기화 + 최대 절전 비활성화 + Shellbags 정리 + Jump Lists 비활성화. 폴더 구조와 프로그램 실행 이력까지 지우는 거다.
🔴 OPSEC 필요 — 내부고발자, 기자의 취재원, 인권 활동가처럼 PC 압수 시 내용물이 생존과 직결되는 경우:
윈도우에서 흔적을 관리하는 방식으로는 한계가 있다. 아무리 아티팩트를 지워도 디스크의 비할당 영역에서 조각이 복구될 수 있다. 이 수준이 필요하면 Tails OS처럼 RAM에서만 작동하고 종료 시 전부 덮어쓰는 시스템을 써야 한다. 또는 가상머신(VPS) 안에서 작업하고 로컬에는 접속 기록만 남기는 구조가 현실적이다.
다만, 선은 분명히 있다
이 글은 “흔적을 지워서 수사를 방해하라”는 글이 아니다.
뭘 하든 개인의 영역이고, 내 PC에 뭐가 남아 있는지 관리하는 건 프라이버시 차원의 문제다. 이혼 소송 준비 중에 상대방이 내 PC를 뒤지는 상황, 회사가 퇴사 직원의 PC를 포렌식 업체에 넘기는 상황 — 이런 건 수사 방해가 아니라 자기 보호다.
선은 다른 데서 갈린다. 아청물을 유통하면서 흔적을 지우려는 거라면, 이 글의 내용으로는 도망칠 수 없다. 그쪽은 ISP 로그, 해시값 기반 탐지, 국제 공조가 별도로 작동하고, PC 포렌식은 수사의 일부일 뿐이다. 리벤지 포르노 유포도 마찬가지다 — 피해자 신고가 들어오면 플랫폼 로그부터 추적이 시작되고, 로컬 흔적은 퍼즐의 마지막 조각에 불과하다.
“추적이 어렵다”는 이야기는 소비 측에 해당되는 거지, 유통 측에 해당되는 게 아니다.
정리 — 지금 할 수 있는 최소한
- BitLocker 켜기 — 디스크 암호화는 모든 방어의 전제 조건이다. 이게 없으면 나머지가 무의미하다
- 최대 절전 끄기 — 관리자 CMD에서
powercfg -h off - pagefile 종료 시 초기화 — 레지스트리
ClearPageFileAtShutdown을1로 - Prefetch 폴더 정리 —
C:\Windows\Prefetch내용 삭제
이 네 단계만 해도 “PC를 빼앗겼을 때” 시나리오에서의 노출 범위가 대폭 줄어든다. 나머지 아티팩트(Shellbags, Jump Lists, USN Journal, Event Logs)는 상황이 민감할 때 추가로 관리하면 된다.
윈도우가 어떤 흔적을 남기는지 아는 것 자체가 방어의 시작이다.
자주 묻는 질문
- 윈도우에서 프로그램을 삭제하면 사용 흔적이 전부 사라지나요?
- 아닙니다. 프로그램을 제거해도 Prefetch 파일, 레지스트리 Shellbags, Jump Lists, 이벤트 로그, USN Journal 등에 실행 기록이 남습니다. 포렌식 도구는 이런 OS 수준 아티팩트에서 프로그램 사용 사실과 시점을 복원할 수 있습니다.
- pagefile.sys와 hiberfil.sys에는 어떤 정보가 남나요?
- pagefile.sys(가상 메모리)에는 RAM에서 밀려난 데이터가 기록되며, 열어둔 문서 내용, 비밀번호, 복호화된 파일 조각이 남을 수 있습니다. hiberfil.sys(절전 파일)에는 절전 모드 진입 시점의 RAM 전체 이미지가 저장됩니다. BitLocker 없이 디스크를 뽑아 다른 PC에 연결하면 이 파일들을 직접 읽을 수 있습니다.
- BitLocker만 걸면 포렌식에서 안전한가요?
- BitLocker는 디스크를 뽑아 다른 PC에서 읽는 "오프라인 공격"을 차단합니다. 하지만 PC가 켜져 있는 상태에서 압수되거나, 비밀번호/PIN을 제공하면 디스크 안의 모든 아티팩트에 접근 가능합니다. 암호화는 첫 번째 방어선이지, 유일한 방어선은 아닙니다.
- 이 글의 방법을 전부 적용하면 포렌식을 완전히 막을 수 있나요?
- 흔적을 대폭 줄일 수 있지만, 완전히 0으로 만드는 건 윈도우에서는 구조적으로 어렵습니다. 로컬 흔적을 원천 차단하려면 Tails OS처럼 RAM에서만 작동하고 종료 시 덮어쓰는 시스템이 필요합니다. 이 글은 윈도우를 쓰면서 현실적으로 가능한 관리법을 다룹니다.