윈도우 디펜더가 위협을 잡았다 — 탐지 날짜는 받은 날이 아니다

작성자

카테고리:

백신이 “위협을 발견했다”고 알리면 가장 먼저 드는 생각은 “내가 방금 뭘 잘못 받았나”다. 그런데 그 알림에 찍힌 날짜를 잘못 읽으면, 멀쩡한 상황에 해킹당했다고 패닉하기 쉽다.

요약

탐지 날짜는 파일을 받거나 실행한 날이 아니다. 백신이 그 파일을 발견한 날일 뿐이다. 탐지 기록에서 파일 경로를 뽑고(Get-MpThreatDetection), 그 파일의 생성 시각과 대조하면 “오래전에 둔 파일을 뒤늦게 발견한 것”인지 “방금 뭔가 실행된 것”인지 5분 만에 가른다. 대부분은 전자다.

무슨 일이 있었나

어느 날 디펜더 보호 기록에 위협 하나가 떠 있었다. 분류는 HackTool, 상태는 “처리됨(격리)”였다.

문제는 그 탐지 날짜에 나는 PC 앞에 없었다는 것이다. 당직이라 집을 비웠다. “내가 안 건드렸는데 왜 그날 잡혔지?” 여기서 많은 사람이 해킹당했다고 패닉한다. 하지만 답은 훨씬 싱거웠다. 이 추적은 AI 짝꿍과 명령어를 같이 짚어가며 했다.

첫 번째 함정: 탐지 날짜 ≠ 받은 날

디펜더는 사람이 없어도 예약 스캔을 자동으로 돌린다. 그래서 화면에 찍힌 “탐지 날짜”는 파일이 시스템에 들어온 날도, 실행된 날도 아니다. 그냥 백신이 그 파일을 발견한 날이다.

비유하면 이렇다. 청소부가 화요일에 창고 구석에서 상한 음식을 발견했다고 해서, 그 음식이 화요일에 들어온 건 아니다. 언제 들어왔는지는 따로 확인해야 한다.

증거 1 — 탐지 기록에서 파일 경로 뽑기

화면 알림은 요약만 보여준다. 실제 파일이 어디 있었는지는 PowerShell로 캔다.

Get-MpThreatDetection | ForEach-Object {
  $name = (Get-MpThreat -ThreatID $_.ThreatID).ThreatName
  "$($_.InitialDetectionTime) | $name | $($_.Resources)"
}

Resources에 격리된 파일의 전체 경로가 찍힌다. 내 경우엔 이런 식이었다.

2026-06-19 10:43 | HackTool:... | file:D:\projects\_trash\downloads\...\setup.exe

여기서 두 가지가 보인다. 첫째, 파일은 휴지통(_trash) 폴더 안에 있었다. 즉 이미 버리려고 치워둔 것이다. 둘째, 탐지 시각은 오전 10시 43분, 내가 자리에 없던 시간이었다.

증거 2 — 파일 생성 시각과 대조

이제 결정타다. 그 파일이 실제로 언제 거기 생겼는지 본다.

Get-ChildItem 'D:\projects\_trash' -Recurse -Filter setup.exe |
  Select-Object FullName, CreationTime, LastWriteTime

생성 시각이 탐지보다 일주일 전이었다. 즉 파일은 일주일 전에 휴지통으로 옮겨졌고, 디펜더 예약 스캔이 그날에야 그 폴더를 훑어 발견하고 격리한 것이다. 그날 새로 실행된 게 아니다. 당직이라 자리를 비운 것과 아무 모순이 없다.

스캔이 자동으로 돈다는 것도 확인할 수 있다.

Get-MpComputerStatus | Select-Object QuickScanStartTime, QuickScanAge

QuickScanAge가 작으면(예: 1일 전) 디펜더가 정기적으로 알아서 스캔하고 있다는 뜻이다.

잔재 점검 — 정말 실행됐다면 흔적이 남는다

“그래도 혹시 실행된 거면?” 그 가설도 확인하고 넘어간다. 멀웨어가 실제로 실행돼 자리를 잡았다면 자동시작 항목이나 서비스에 흔적을 남긴다.

Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location

단, Win32_StartupCommand는 Run 키와 시작프로그램 폴더만 본다. 예약 작업(Get-ScheduledTask)·서비스(Get-CimInstance Win32_Service)·WMI 이벤트 구독 같은 다른 자동실행 통로는 못 잡는다. 더 철저히 보려면 Sysinternals Autoruns로 전체 자동실행 지점을 훑는 게 정석이다(관리자 권한 필요).

자동시작 목록이 전부 아는 프로그램(클라우드 동기화, 메신저, 백신 등)뿐이고 낯선 항목이 없으면 잔재는 없다고 본다. 디펜더가 파일을 격리(제거)했고 자동시작도 깨끗하면 상황 종료다.

백신 알림 받으면 어떻게 조사하나 — 4단계

정리하면, 백신이 뭔가 잡았다고 뜰 때 패닉 대신 이 순서로 본다.

  1. 탐지 ≠ 실행 — 탐지됐다고 실행된 건 아니다. 격리됐으면 백신이 이미 막은 것이다.
  2. 날짜 검증 — 탐지 날짜는 발견한 날일 뿐. 파일 생성 시각과 대조한다.
  3. 경로 확인 — Get-MpThreatDetection으로 실제 파일 위치를 본다. 휴지통이나 다운로드 폴더면 위험도가 다르다.
  4. 잔재 점검 — 자동시작과 서비스에 낯선 항목이 없으면 실행 흔적 없음이다.

이 네 가지를 5분 보면, 진짜 침해인지 “오래된 파일을 백신이 뒤늦게 청소한 것”인지 거의 가려진다. 대부분은 후자다.

신호 안전 쪽 (대개 오래된 파일) 의심 쪽 (추가 조사 필요)
파일 위치 휴지통·다운로드 폴더 시스템 폴더·시작프로그램
생성 시각 탐지보다 며칠~몇 주 전 탐지 직전
상태 격리·제거됨 활성(active)
자동시작 낯선 항목 없음 모르는 항목 추가됨

한 줄 결론

백신 알림의 날짜는 “발견한 날”이지 “당한 날”이 아니다. 놀라기 전에 경로와 생성 시각부터 본다.

관련 자료와 출처

참고: 위 PowerShell 명령은 내가 직접 돌려서 동작을 확인했다. 경로와 시각은 예시값으로 가렸다. 레지스트리·자동시작 경로는 환경마다 다를 수 있으니 본인 시스템에서 확인하길 권한다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다