
SIEM natif du cloud pour l'analyse de sécurité intelligente pour l'ensemble de votre entreprise.
Bienvenue dans le référentiel unifié Microsoft Sentinel et Microsoft 365 Defender ! Ce référentiel contient des détections prêtes à l'emploi, des requêtes d'exploration, des requêtes de chasse, des classeurs, des playbooks et bien plus encore pour vous aider à démarrer avec Microsoft Sentinel et vous fournir du contenu de sécurité pour sécuriser votre environnement et chasser les menaces. Les requêtes de chasse incluent également des requêtes de chasse Microsoft 365 Defender pour des scénarios de chasse avancés dans Microsoft 365 Defender et Microsoft Sentinel. Vous pouvez également soumettre à issues tous les exemples ou ressources que vous souhaiteriez voir ici lors de votre intégration à Microsoft Sentinel. Ce référentiel accueille les contributions et référez-vous au wiki de ce référentiel pour commencer. Pour toute question ou retour, veuillez contacter [email protected]
Nous apprécions vos retours. Voici quelques canaux pour exprimer vos questions ou commentaires :
Ce projet accueille les contributions et les suggestions. La plupart des contributions nécessitent que vous acceptiez un contrat de licence de contributeur (CLA) déclarant que vous avez le droit de, et que vous nous accordez effectivement, les droits d'utiliser votre contribution. Pour plus de détails, visitez https://cla.microsoft.com.
Note : Si vous contribuez pour la première fois à ce référentiel, suivez le guide général de fork de dépôt GitHub avant de cloner ou les étapes spécifiques pour le dépôt Sentinel.
Nouvelle contribution ou mise à jour via ces méthodes :
Dans le cadre des vérifications de la PR, nous exécutons une validation de structure pour nous assurer que toutes les parties requises de la structure YAML sont incluses. Pour les détections, une nouvelle section doit être incluse. Consultez les directives de contribution pour plus d'informations. Si cette section ou toute autre section requise n'est pas incluse, une erreur de validation se produira similaire à celle ci-dessous. L'exemple est spécifiquement si le YAML manque la section 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."
Dans le cadre des vérifications de la PR, nous exécutons une validation de syntaxe des requêtes KQL définies dans le modèle. Si cette vérification échoue, allez dans Azure Pipeline (en cliquant sur le lien d'erreurs dans l'onglet des vérifications de votre PR)
Dans le pipeline, vous pouvez voir quel test a échoué et quelle en est la cause :

Exemple de message d'erreur :
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'
Si vous utilisez une table de journaux personnalisée (une table qui n'est pas définie sur tous les espaces de travail par défaut), vous devez vérifier que votre schéma de table est défini dans un fichier json dans le dossier Azure-Sentinel\.script\tests\KqlvalidationsTests\CustomTables
Exemple pour la table tablexyz.json
{
"Name": "tablexyz",
"Properties": [
{
"Name": "SomeDateTimeColumn",
"Type": "DateTime"
},
{
"Name": "SomeStringColumn",
"Type": "String"
},
{
"Name": "SomeDynamicColumn",
"Type": "Dynamic"
}
]
}
Afin d'exécuter la validation KQL avant de soumettre la Pull Request sur votre machine locale :
Azure-Sentinel\\.script\tests\KqlvalidationsTests\dotnet testExemple de sortie (sur 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
De même que pour la validation KQL, il existe une validation automatique du schéma d'une détection. La validation du schéma inclut la fréquence et la période de la détection, le type de déclencheur et le seuil, la validité des ID de connecteurs (liste des ID de connecteurs valides), etc. Un format incorrect ou des attributs manquants entraîneront un échec de vérification informatif, qui devrait vous guider dans la résolution du problème, mais assurez-vous de consulter le format des détections déjà approuvées.
Afin d'exécuter la validation KQL avant de soumettre la Pull Request sur votre machine locale :
Azure-Sentinel\\.script\tests\DetectionTemplateSchemaValidation\dotnet testLorsque vous soumettez une pull request, un robot CLA déterminera automatiquement si vous devez fournir un CLA et décorera la PR de manière appropriée (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le robot. Vous n'aurez besoin de le faire qu'une seule fois sur tous les dépôts utilisant notre CLA.
Ce projet a adopté le Code de conduite open source Microsoft. Pour plus d'informations, consultez la FAQ du Code de conduite ou contactez [email protected] pour toute question ou commentaire supplémentaire.
Pour savoir ce que vous pouvez contribuer et pour plus de détails, reportez-vous à la section « Démarrer » du wiki du projet.