쿼리를 실행하세요 고급 사냥, 그런 다음 동일한 쿼리를 Microsoft Graph의 runHuntingQuery에 보내 결과를 JSON으로 얻습니다. 포털의 내보내기 버튼은 LogTotal이 오늘 읽지 않는 스프레드시트 형식의 파일을 생성합니다. 고급 사냥은 30일간의 데이터를 유지하므로 그 이전의 데이터는 Sentinel 또는 Defender 데이터를 스트림하는 곳에서 가져와야 합니다.
Defender XDR은 엔드포인트, 아이덴티티, 이메일 및 클라우드 앱 원격 측정을 하나의 쿼리 가능한 장소에 보관하며, 이는 대부분의 Microsoft-shop 조사에서 첫 번째 단계가 됩니다. Prime Core는 Microsoft Defender 데이터에 대해 17,197개의 탐지 규칙을 가지고 있으며, 이는 659개의 MITRE ATT&CK 기술에 매핑되어 있습니다. 아래는 이를 추출, 정리 및 LogTotal에서 무료로 조사하는 방법입니다.
시작하기 전에
권한. Graph의 경우 ThreatHunting.Read.All 권한이 필요합니다. 로그인한 사용자도 고급 사냥을 허용하는 Defender 역할이 필요합니다.
제한. 쿼리는 몇 분 후에 시간 초과되며 결과가 제한됩니다. 시간을 기준으로 또는 장치에 따라 분할할 계획을 세우십시오.
테이블. DeviceProcessEvents, DeviceNetworkEvents, DeviceLogonEvents, DeviceFileEvents, DeviceRegistryEvents, DeviceEvents (ASR 및 AMSI 이벤트 포함), EmailEvents, IdentityLogonEvents, AlertInfo 및 AlertEvidence. 시간 열은 Timestamp입니다.
예시는 2026년 10월에 확인한 Microsoft의 문서를 따릅니다.
1단계: 쿼리 작성
DeviceProcessEvents
| where Timestamp between (datetime(2026-10-19) .. datetime(2026-10-20))
| where DeviceName startswith "ws-042"
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256
포털에서 먼저 이를 실행하세요. Defender의 장치 이름은 종종 FQDN이므로 startswith가 ==보다 더 효율적으로 작동합니다.
2단계: Microsoft Graph을 통해 내보내기
Connect-MgGraph -Scopes "ThreatHunting.Read.All"
$kql = @"
DeviceProcessEvents
| where Timestamp between (datetime(2026-10-19) .. datetime(2026-10-20))
| where DeviceName startswith "ws-042"
"@
$resp = Invoke-MgGraphRequest -Method POST `
-Uri "https://graph.microsoft.com/v1.0/security/runHuntingQuery" `
-Body (@{ Query = $kql } | ConvertTo-Json) -ContentType "application/json"
$resp.results | ForEach-Object { $_ | ConvertTo-Json -Depth 10 -Compress } |
Out-File ws042_proc_1019.jsonl -Encoding utf8
각 행은 줄당 하나의 JSON 객체로 반환됩니다. 여러 날 또는 여러 장치에 대해, 제한 내에 머물도록 날짜 창을 기준으로 반복합니다.
3단계: LogTotal에 업로드, 정리 및 검토
- 업로드. 열기 logtotal.com 및 .jsonl 파일을 드롭합니다.
- 정리.
- 검토.
문제가 발생했을 때
| 증상 | 가능한 원인 | Fix |
|---|---|---|
| Graph에서의 403 | ThreatHunting.Read.All 동의 또는 Defender 역할 누락 | 동의를 부여하거나 역할을 확인하세요 |
| 쿼리가 시간 초과되거나 부분적인 결과를 반환함 | 하나의 쿼리에 너무 많은 데이터 | 시간 창을 좁히거나 장치 세트를 좁혀보세요 |
| 30일보다 오래된 데이터 없음 | 고급 사냥 유지 | Sentinel 또는 스트리밍 목적지를 사용하세요 |
| 행 수가 둥근 숫자에서 멈춤 | 결과 제한 | 창을 나누세요 |
| 알려진 장치에 대한 행이 없음 | 이름 불일치 (짧은 이름과 FQDN) | startswith 또는 has 사용 |
FAQ
장치에서 raw EVTX를 가져올 수 있나요?
예, Defender for Endpoint의 라이브 응답을 통해 가능합니다: getfile 명령을 통해 EVTX를 포함한 파일을 기기에서 가져올 수 있습니다.
Sentinel과 동일한가요?
아니요, 통합 Defender 포털 내에서 겹치지만 Sentinel은 더 오래된 기록을 유지합니다.