
Microsoft Sentinel 및 Microsoft XDR(구 Microsoft 365 Defender)을 위한 위협 헌팅 및 위협 탐지에 초점을 맞춘 KQL 쿼리 저장소입니다.
_ _____ _ _____ _ _ ____ _____ _ _____ _ _ _ _ _ _ _____ ___ _ _ ____
| |/ / _ \| | |_ _| | | | _ \| ____| / \|_ _| | | | | | | | \ | |_ _|_ _| \ | |/ ___|
| ' | | | | | | | | |_| | |_) | _| / _ \ | | | |_| | | | | \| | | | | || \| | | _
| . | |_| | |___ | | | _ | _ <| |___ / ___ \| | | _ | |_| | |\ | | | | || |\ | |_| |
|_|\_\__\_|_____| |_| |_| |_|_| \_|_____/_/ \_|_| |_| |_|\___/|_| \_| |_| |___|_| \_|\____|
[!NOTE]
1월 27일: 거의 1년간의 기여 끝에, 이 저장소는 현재 커뮤니티 환경에 맞추고 더 나은 맥락화를 통해 계속 기여할 수 있도록 대대적인 재구축을 진행 중입니다.
이 저장소는 분석가와 위협 헌터가 Microsoft Sentinel 및 Microsoft Defender XDR에서 KQL의 강력함을 활용할 수 있도록 미리 만들어진 탐지 및 헌팅 쿼리(그리고 그 이상)를 제공하기 위한 노력의 일환입니다.
부탁드립니다:
즐기시고, 우려 사항이나 제안이 있으시면 언제든 연락 주세요: cyb3rmik3.
Microsoft Sentinel과 Microsoft 365 Defender가 일상적으로 사용하는 도구라면, Microsoft의 Certified Security Operations Analyst 과정(시험 코드 SC-200)을 수강하는 것을 고려해 보세요. Microsoft의 다양한 보안 제품과 이를 사용하여 데이터, 보안 신호를 제공하고 경고 및 인시던트를 분석하는 방법을 익히게 됩니다.
그렇긴 하지만, KQL에 중점을 둔 Microsoft 과정으로 바로 뛰어들 수도 있습니다:
Microsoft Defender XDR 고급 헌팅 전문가 교육은 보안 분석가와 위협 헌터가 고급 헌팅 기술을 향상할 수 있도록 포괄적인 가이드를 제공합니다. 이 교육은 "Tracking the Adversary"와 "L33TSP3AK"라는 일련의 웹캐스트를 통해 제공됩니다.
Mehmet Ergene(일명 cyb3rmonk)는 blu raven academy를 설립하여 초현실적인 랩 환경에서의 실습 경험을 포함한 다음과 같은 KQL 교육 과정을 제공합니다.
Rod Trent는 Kusto Query Language의 강력함과 단순함에 대해 논의하고 교육하기 위한 노력의 일환으로 블로그 게시물과 YouTube 동영상으로 구성된 MustLearnKQL 시리즈를 만들었습니다.
Invictus는 Microsoft Azure 및 Microsoft 365에서의 사고 대응 방법을 다루는 Incident Response in the Microsoft Cloud 교육을 만들었습니다. 여기에는 KQL 기초뿐만 아니라 KQL 쿼리팩과 클라우드 공격을 위한 고급 사용 사례 및 KQL 쿼리도 포함됩니다.
데이터는 SQL과 유사하게 데이터베이스, 테이블, 열의 계층 구조로 구성됩니다. 예를 들어, 고급 헌팅 스키마의 DeviceNetworkEvents 테이블에는 네트워크 연결 및 관련 이벤트에 대한 정보가 포함되어 있습니다.
where는 특정 조건자(predicate)를 기준으로 필터링합니다
DeviceNetworkEvents
| where LocalIP == "192.168.0.1"
DeviceNetworkEvents
| where DeviceName has "ComputerName"
쿼리가 실행되는 시점을 기준으로 한 시간 오프셋을 반환합니다
DeviceNetworkEvents
| where Timestamp > ago(1d)
지정된 순서대로 포함할 열을 선택합니다
DeviceNetworkEvents
| where Timestamp > ago(1d)
| where DeviceName has "ComputerName"
| project Timestamp, ActionType, RemoteIP, RemotePort, RemoteUrl
위협 헌팅은 지속적인 프로세스여야 합니다. 우리는 주기의 맨 위에서 가설(Hypothesis)로 시작합니다. 가설은 무엇을 헌팅할지 계획하는 데 도움을 주며, 이를 위해서는 어디서 헌팅할지, 어떻게 수행할지 이해해야 합니다. 즉, 우리가 보유한 데이터, 도구, 전문성, 그리고 이를 활용하는 방법을 이해해야 합니다. 헌팅 주기는 헌팅을 실행할 때 멈추지 않습니다. 이상 징후에 대응하는 것을 포함하여 수명 주기 전반에 걸쳐 수행해야 할 여러 단계가 여전히 있습니다. 활성 위협을 발견하지 못하더라도 수행할 활동은 존재합니다. 자세히 보기.
헌팅 접근 방식에는 두 가지 구성 요소가 있습니다: 악성 활동의 특성화(Characterization)와 헌팅 실행(Execution)입니다. 이러한 구성 요소는 지속적인 활동이어야 하며, 적대자와 환경에 대한 새로운 정보를 바탕으로 지속적으로 업데이트되어야 합니다. 자세히 보기.
커뮤니티 내에서 기여하고 공유하는 것은 우리 모두가 통찰력과 과제를 교환하고 집단적으로 전문성을 발전시킬 수 있는 협업 환경을 조성하므로 매우 중요합니다. 다음은 제가 북마크한 커뮤니티 리소스 중 일부입니다.
KQL Search는 Ugur Koc가 만든 프로젝트로, Microsoft Sentinel 및 Microsoft Defender XDR용 쿼리를 기여하는 KQL 커뮤니티 구성원들의 GitHub 저장소를 집계합니다. 이 저장소도 Microsoft 보안 스택으로 더 나은 방어를 구축하기 위한 다른 존경하는 구성원들의 노력과 함께 포함되어 있습니다.
[!WARNING]
이 GitHub 저장소의 KQL 쿼리는 정보 제공 목적으로만 제공됩니다. 사용자는 사용에 대한 전적인 책임이 있으며 주의를 기울여야 합니다. 프로덕션 환경에서 구현하기 전에 쿼리를 철저히 이해하고 테스트할 것을 권장합니다.