詳細検索

Microsoft Sentinel과 함께 사용할 수 있는 3가지 KQL 템플릿! 사고 조사를 가속화하는 팁

아바타
글쓴이 西田
5분 읽기

Microsoft Sentinel과 함께 사용할 수 있는 3가지 KQL 템플릿! 사고 조사를 가속화하는 팁
日本語에서 번역 • 원문 보기
西田
西田

안녕하세요, 저는 Colorkrew Security의 니시다입니다. 이런 문제는 사고 대응 분야에서 흔히 듣는 우려입니다.

 

"알림이 왔는데 어디서부터 시작해야 할지 모르겠어요."
"나는 KQL을 쓸 수 있지만, 매번 처음부터 쓰는 건 어렵다."
"조사 중에 너무 많은 시간이 걸리고, 초기 조치도 지연됩니다."

KQL(Kusto 쿼리 언어)은 Microsoft Sentinel과 Defender 제품의 로그를 검사하는 언어입니다.
잘 활용하면 초기 속도가 크게 달라집니다.
이번에는 현장에서 실제로 사용되는 '먼저 타격해야 할 세 가지 템플릿'을 소개하겠습니다.

1. 템플릿이 중요한 이유

사건 대응은 시간과의 싸움입니다.
매번 '어떤 표를 볼지'와 '어떤 항목을 필터링할까'를 생각하면, 중요한 초기 행동 시간이 녹아버릴 것입니다.

템플릿을 미리 준비한다면:

  • 설문 시작 시간 단축
  • 누락된 설문조사 감소
  • 주니어 회원도 일정 수준의 연구를 할 수 있습니다.

2. 템플릿 (1): 로그인 지점에서의 조사

이는 의심스러운 로그인 전후의 행동을 전개하는 템플릿입니다.

KQL

타겟 사용자의 최근 로그인 기록
사인인 로그
| 여기서 TimeGenerated > 전(7d)
| 여기서 UserPrincipalName == "target@example.com" 
| 프로젝트 TimeGenerated, UserPrincipalName, IPAddress, Location, AppDisplayName, 
          ConditionalAccessStatus, RiskLevelDuringSignIn, ResultType
| TimeGenerated 설명에 따른 순서

다음은 확인해야 할 몇 가지 사항입니다:

  • IPAddress: 평소와 다른 국가/지역에서 접근하나요?
  • RiskLevelDuringSignIn: 마이크로소프트의 AI가 위험을 결정하고 있나요?
  • 조건부 접근 상태: 조건부 접근 권한을 우회하고 있나요?
  • 결과유형: 성공(0) 또는 실패(50126 등)?

의심스러운 로그인 시도가 발견되면 그 IP에서 다른 계정으로도 시도가 있는지 확인하세요.

KQL

동일한 IP에서 여러 사용자에게 로그인 시도
사인인 로그
| 여기서 TimeGeneral은 > 전(24h)
| 어디서 IPAddress == "suspicious.ip.here" 
| summarize count(), make_set(UserPrincipalName) by IPAddress

3. 템플릿 (2): 터미널 포인트에서의 조사

엔드포인트에서 의심스러운 행동이 감지되면, 이는 터미널의 전체 그림을 포착하는 템플릿입니다.

KQL

대상 장치의 최신 프로세스 출시 이력
디바이스프로세스이벤트
| 여기서 TimeGeneral은 > 전(24h)
| 여기서 DeviceName == "target-device-name" 
| 프로젝트 TimeGenerated, DeviceName, InitiatingProcessFileName, 
          FileName, ProcessCommandLine, AccountName
| TimeGenerated 설명에 따른 순서

또한 네트워크 연결도 확인하세요.

KQL

대상 장치의 외부 통신 이력
디바이스 네트워크 이벤트
| 여기서 TimeGeneral은 > 전(24h)
| 여기서 DeviceName == "target-device-name" 
| 여기서 RemoteIPType != "Private" 
| 프로젝트 TimeGenerated, DeviceName, RemoteIP, RemoteURL, RemotePort, 
          InitiatingProcessFileName, ActionType
| TimeGenerated 설명에 따른 순서

확인 포인트:

  • ProcessCommandLine:p owershell, cmd, wscript 등에서 의심스러운 명령 실행.
  • RemoteUrl: 알려진 C2 도메인 및 의심스러운 IP와 통신
  • InitiatingProcessFileName: 정식 프로세스로 위장된 실행 파일

4. 템플릿 (3): 이메일 시작 조사

이 템플릿은 피싱 이메일과 악성 첨부파일을 조사하는 데 사용됩니다.

KQL

특정 도메인의 이메일 수령 기록
이메일이벤트
| 여기서 TimeGenerated > 전(7d)
| 여기서 SenderFromDomain == "suspicious-domain.com" 
| 프로젝트 TimeGenerated, SenderFromAddress, RecipientEmailAddress, 
          주제, 위협 유형, 배달행동, 배달위치
| TimeGenerated 설명에 따른 순서

또한 이메일을 받은 사용자가 첨부파일을 열었는지도 확인합니다.

KQL

이메일 수신 후 기기 활동 (클릭 후 추적)
이메일URLInfo
| 여기서 TimeGenerated > 전(7d)
| join kind=inner ( 
    디바이스프로세스이벤트
    | 여기서 TimeGenerated > 전(7d)
) $left. URL == $right. 프로세스명령줄
| 프로젝트 TimeGenerated, URL, DeviceName, FileName, AccountName

5. 팀과 템플릿을 공유하고 관리하는 방법

KQL 템플릿을 Sentinel에서 "저장된 쿼리"로 관리하거나 Git 저장소에서 Markdown 파일로 관리하는 것이 현실적입니다.

권장 관리 방법:

  • GitHub에 KQL 쿼리 컬렉션 저장소를 생성하세요
  • 파일 유형을 사고 유형(피싱/, 계정 침해 등)으로 나누기
  • 사용 후 효과가 있었는지에 대한 댓글을 남기고 계속 개선해 주세요.

6. 컬러크루 시큐리티의 접근 방식

Colorkrew Security는 KQL 설문조사 템플릿 개발과 팀 내 구축을 지원합니다.

**초기 반응 속도가 피해의 규모를 결정합니다. **
템플릿 유지보수부터 설문 절차의 표준화까지, 현장에서 사용 가능하게 만들 것입니다.

Related Articles