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認定のSecurity Operations Analystコース(試験コードSC-200)を受講することを検討すべきです。Microsoftの幅広いセキュリティ製品と、それらを使用してデータやセキュリティシグナルを提供し、アラートやインシデントを分析する方法について習得できます。
とはいえ、KQLに焦点を当てたMicrosoftのコースにすぐに取り組むこともできます:
Microsoft Defender XDRの高度なハンティングのエキスパートトレーニングは、セキュリティアナリストや脅威ハンターが高度なハンティングのスキルを向上させるための包括的なガイドを提供します。このトレーニングは「Tracking the Adversary」および「L33TSP3AK」と題された一連のウェビナーを通じて提供されます。
Mehmet Ergene(別名cyb3rmonk)はblu raven academyを設立し、超リアルなラボ環境でのハンズオン体験を含む以下のKQLトレーニングコースを提供しています。
Rod TrentはMustLearnKQLシリーズを制作しました。これはブログ記事とYouTube動画のセットで、Kusto Query Languageの力とシンプルさについて議論し教育する取り組みです。
Invictus は、Microsoft Azure および Microsoft 365 におけるインシデント対応の方法を扱う Incident Response in the Microsoft Cloud トレーニングを作成しました。これには KQL の基礎に加え、KQL クエリパックや、クラウド攻撃に対するより高度なユースケースおよび KQL クエリも含まれています。
データは SQL と同様に、データベース、テーブル、列の階層に整理されています。たとえば、高度なハンティングスキーマの DeviceNetworkEvents テーブルには、ネットワーク接続および関連イベントに関する情報が含まれています。
where は特定の述語でフィルタリングします
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
脅威ハンティングは継続的なプロセスであるべきです。私たちはサイクルの頂点から仮説を立てることから始めます。仮説は、何をハンティングするのかを計画する助けとなり、そのためにはどこで、どのようにハンティングするのかを理解する必要があります。つまり、保有するデータ、ツール、専門知識、そしてそれらをどのように活用するのかを理解する必要があります。ハンティングサイクルはハンティングを実行した時点で終わるわけではありません。異常への対応を含め、ライフサイクル全体を通じて実施すべきフェーズがまだいくつか残っています。たとえアクティブな脅威を発見できなくても、実施すべき活動は存在します。詳細。
ハンティングへのアプローチには2つの要素があります。それは悪意のある活動の特性評価と、ハンティングの実行です。これらの要素は継続的な活動であるべきであり、敵対者や地形に関する新しい情報に基づいて絶えず更新されるべきです。詳細。
コミュニティ内での貢献と共有は、私たち全員が知見や課題を交換し、集合的に専門知識を高め合える協調的な環境を育むため、極めて重要です。以下に、私がブックマークしているコミュニティリソースの一部を紹介します。
KQL Search は、Ugur Koc によって作成されたプロジェクトで、Microsoft Sentinel や Microsoft Defender XDR 向けのクエリを提供する KQL コミュニティメンバーの GitHub リポジトリを集約しています。このリポジトリも、Microsoft セキュリティスタックでより優れた防御を構築するための、他の尊敬すべきメンバーの取り組みとともに含まれています。
[!WARNING]
この GitHub リポジトリ内の KQL クエリは、情報提供のみを目的として提供されています。その使用についてはユーザー自身が単独で責任を負い、注意を払う必要があります。本番環境に実装する前に、クエリを十分に理解し、テストすることをお勧めします。