
企業全体のインテリジェントなセキュリティ分析のためのクラウドネイティブ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
----------------
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Find out what's new: https://aka.ms/dotnet-whats-new
Learn about the installed HTTPS developer cert: https://aka.ms/aspnet-core-https
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docs
Write your first app: https://aka.ms/first-net-core-app
--------------------------------------------------------------------------------------
Test run for /mnt/c/git/Azure-Sentinel/.script/tests/KqlvalidationsTests/bin/Debug/netcoreapp3.1/Kqlvalidations.Tests.dll(.NETCoreApp,Version=v3.1)
Microsoft (R) Test Execution Command Line Tool Version 16.7.0
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Test Run Successful.
Total tests: 171
Passed: 171
Total time: 25.7973 Seconds
KQL 検証と同様に、検出スキーマの自動検証があります。 スキーマ検証には、検出の頻度と期間、検出のトリガータイプとしきい値、コネクタ ID の有効性(有効なコネクタ ID リスト)などが含まれます。 形式が間違っていたり、属性が欠落していると、情報提供のチェック失敗が発生し、問題の解決方法が示されますが、既に承認されている検出の形式も確認してください。
Pull Request を送信する前に、ローカルマシンで KQL 検証を実行するには:
Azure-Sentinel\\.script\tests\DetectionTemplateSchemaValidation\ に移動します。dotnet test を実行します。Pull Request を送信すると、CLA-bot が自動的に CLA の提供が必要かどうかを判断し、PR に適切にラベルやコメントを付けます。ボットの指示に従ってください。CLA を使用するすべてのリポジトリで、この操作は一度だけ必要です。
このプロジェクトは、Microsoft Open Source Code of Conduct を採用しています。詳細については、Code of Conduct FAQ をご覧いただくか、追加の質問やコメントがある場合は [email protected] までお問い合わせください。
コントリビュートできる内容や詳細については、プロジェクトの wiki の 「get started」 セクションを参照してください。