Microsoft Sentinel および Microsoft XDR (旧 Microsoft 365 Defender) 向けの、脅威ハンティングと脅威検出に焦点を当てた KQL クエリのリポジトリ。
_ _____ _ _____ _ _ ____ _____ _ _____ _ _ _ _ _ _ _____ ___ _ _ ____
| |/ / _ \| | |_ _| | | | _ \| ____| / \|_ _| | | | | | | | \ | |_ _|_ _| \ | |/ ___|
| ' | | | | | | | | |_| | |_) | _| / _ \ | | | |_| | | | | \| | | | | || \| | | _
| . | |_| | |___ | | | _ | _ <| |___ / ___ \| | | _ | |_| | |\ | | | | || |\ | |_| |
|_|\_\__\_|_____| |_| |_| |_|_| \_|_____/_/ \_|_| |_| |_|\___/|_| \_| |_| |___|_| \_|\____|
[!NOTE]
1月27日: 約1年間のコントリビューションを経て、このリポジトリは現在のコミュニティの状況に対応し、さらに貢献を続けるためのより良い文脈化を実現するため、大規模な再構築を行っています。
このリポジトリは、アナリストや脅威ハンターがMicrosoft SentinelおよびMicrosoft Defender XDRでKQLの力を活用できるように、すぐに使える検出・ハンティングクエリ(およびその他)を提供する取り組みです。
お願い:
楽しんでください。ご不明な点や提案がありましたら、cyb3rmik3までお気軽にお問い合わせください。
Microsoft SentinelとMicrosoft 365 Defenderを日常的に使用しているなら、マイクロソフトの認定セキュリティ運用アナリストコース(試験コード 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は特定の述語でフィルタリングします
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クエリは、情報提供のみを目的として提供されています。ユーザーはその使用について単独で責任を負い、注意を払う必要があります。本番環境で実装する前に、クエリを十分に理解しテストすることをお勧めします。