
企業全体のインテリジェントなセキュリティ分析のためのクラウドネイティブSIEM。
Microsoft Sentinel と Microsoft 365 Defender の統合リポジトリへようこそ!このリポジトリには、すぐに使える検出、探索クエリ、ハンティングクエリ、ブック、プレイブックなどが含まれており、Microsoft Sentinel の導入を迅速に進め、環境を保護して脅威を追跡するためのセキュリティコンテンツを提供します。ハンティングクエリには、Microsoft 365 Defender および Microsoft Sentinel の両方での高度なハンティングシナリオ向けの Microsoft 365 Defender ハンティングクエリも含まれています。また、Microsoft Sentinel のオンボーディング時にここで見たいサンプルやリソースがあれば、issues に投稿してください。このリポジトリへのコントリビューションを歓迎します。始めるには、このリポジトリの wiki を参照してください。質問やフィードバックについては、[email protected] までお問い合わせください。
お客様のフィードバックを大切にしています。質問やフィードバックをお寄せいただくには、以下のチャンネルをご利用ください。
このプロジェクトでは、コントリビューションと提案を歓迎しています。ほとんどのコントリビューションでは、お客様のコントリビューションを使用する権利があり、実際に使用することを許可することを宣言する Contributor License Agreement(CLA)に同意する必要があります。詳細については、https://cla.microsoft.com をご覧ください。
注:このリポジトリに初めてコントリビュートする方は、クローンを作成する前に、一般的な GitHub リポジトリのフォーク手順 または Sentinel リポジトリ固有の手順 を参照してください。
以下の方法で、全く新しいコントリビューションの作成または既存のコントリビューションの更新を行います。
PR チェックの一環として、YAML 構造の必須部分がすべて含まれていることを確認する構造検証を実行します。検出については、含める必要がある新しいセクションがあります。詳細については、コントリビューションガイドラインを参照してください。このセクションまたは他の必須セクションが含まれていない場合、以下のような検証エラーが発生します。 以下の例は、YAML に entityMappings セクションがない場合の具体的なエラーです。
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:00.95] Kqlvalidations.Tests.DetectionTemplateStructureValidationTests.Validate_DetectionTemplates_HaveValidTemplateStructure(detectionsYamlFileName: "ExcessiveBlockedTrafficGeneratedbyUser.yaml") [FAIL]
X Kqlvalidations.Tests.DetectionTemplateStructureValidationTests.Validate_DetectionTemplates_HaveValidTemplateStructure(detectionsYamlFileName: "ExcessiveBlockedTrafficGeneratedbyUser.yaml") [104ms]
Error Message:
Expected object to be <null>, but found System.ComponentModel.DataAnnotations.ValidationException with message "An old mapping for entity 'AccountCustomEntity' does not have a matching new mapping entry."
PR チェックの一環として、テンプレートで定義された KQL クエリの構文検証を実行します。このチェックが失敗した場合は、Azure Pipeline に移動し(PR の [Checks] タブのエラーリンクをクリック)、どのテストが失敗したか、その原因を確認します。
パイプラインでは、どのテストが失敗したか、その原因を確認できます。

エラーメッセージの例:
A total of 1 test files matched the specified pattern.
[xUnit.net 00:00:01.81] Kqlvalidations.Tests.KqlValidationTests.Validate_DetectionQueries_HaveValidKql(detectionsYamlFileName: "ExcessiveBlockedTrafficGeneratedbyUser.yaml") [FAIL]
X Kqlvalidations.Tests.KqlValidationTests.Validate_DetectionQueries_HaveValidKql(detectionsYamlFileName: "ExcessiveBlockedTrafficGeneratedbyUser.yaml") [21ms]
Error Message:
Template Id:fa0ab69c-7124-4f62-acdd-61017cf6ce89 is not valid Errors:The name 'SymantecEndpointProtection' does not refer to any known table, tabular variable or function., Code: 'KS204', Severity: 'Error', Location: '67..93',The name 'SymantecEndpointProtection' does not refer to any known table, tabular variable or function., Code: 'KS204', Severity: 'Error', Location: '289..315'
カスタムログテーブル(すべてのワークスペースでデフォルトで定義されていないテーブル)を使用している場合は、Azure-Sentinel\\.script\tests\KqlvalidationsTests\CustomTables フォルダの JSON ファイルでテーブルスキーマを定義していることを確認してください。
テーブル tablexyz.json の例
{
"Name": "tablexyz",
"Properties": [
{
"Name": "SomeDateTimeColumn",
"Type": "DateTime"
},
{
"Name": "SomeStringColumn",
"Type": "String"
},
{
"Name": "SomeDynamicColumn",
"Type": "Dynamic"
}
]
}
Pull Request を送信する前に、ローカルマシンで KQL 検証を実行するには:
Azure-Sentinel\\.script\tests\KqlvalidationsTests\ に移動します。dotnet test を実行します。出力例(Ubuntu の場合):
Welcome to .NET Core 3.1!
----------------------
SDK Version: 3.1.403
Telemetry
---------
The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry