
SIEM nativo en la nube para análisis de seguridad inteligente para toda su empresa.
Bienvenido al repositorio unificado de Microsoft Sentinel y Microsoft 365 Defender. Este repositorio contiene detecciones listas para usar, consultas de exploración, consultas de búsqueda, libros, runbooks y mucho más para ayudarte a ponerte al día con Microsoft Sentinel y proporcionarte contenido de seguridad para proteger tu entorno y buscar amenazas. Las consultas de búsqueda también incluyen consultas de búsqueda de Microsoft 365 Defender para escenarios de búsqueda avanzada tanto en Microsoft 365 Defender como en Microsoft Sentinel. También puedes enviar a issues cualquier ejemplo o recurso que te gustaría ver aquí al incorporarte a Microsoft Sentinel. Este repositorio acepta contribuciones; consulta la wiki de este repositorio para comenzar. Para preguntas y comentarios, comunícate con [email protected]
Valoramos tus comentarios. Aquí tienes algunos canales para ayudarte a plantear tus preguntas o comentarios:
Este proyecto acepta contribuciones y sugerencias. La mayoría de las contribuciones requieren que aceptes un Acuerdo de Licencia de Colaborador (CLA) que declara que tienes el derecho y realmente nos otorgas los derechos para usar tu contribución. Para más detalles, visita https://cla.microsoft.com.
Nota: Si eres un contribuyente primerizo a este repositorio, consulta la Guía general de fork del repositorio de GitHub antes de clonar, o los Pasos específicos para el repositorio de Sentinel.
Contribuciones completamente nuevas o actualizaciones mediante estos métodos:
Como parte de las verificaciones de la PR, ejecutamos una validación de estructura para asegurarnos de que todas las partes requeridas de la estructura YAML estén incluidas. Para las detecciones, hay una nueva sección que debe incluirse. Consulta las directrices de contribución para obtener más información. Si esta sección o cualquier otra sección requerida no se incluye, se producirá un error de validación similar al siguiente. El ejemplo es específicamente si falta la sección entityMappings en el YAML:
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."
Como parte de las verificaciones de la PR, ejecutamos una validación de sintaxis de las consultas KQL definidas en la plantilla. Si esta verificación falla, ve a Azure Pipeline (presionando el enlace de errores en la pestaña de verificaciones de tu PR)
En el pipeline puedes ver qué prueba falló y cuál es la causa:

Ejemplo de mensaje de error:
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 estás usando una tabla de logs personalizada (una tabla que no está definida en todos los espacios de trabajo por defecto), debes verificar que el esquema de tu tabla esté definido en un archivo json en la carpeta Azure-Sentinel\.script\tests\KqlvalidationsTests\CustomTables
Ejemplo para table tablexyz.json
{
"Name": "tablexyz",
"Properties": [
{
"Name": "SomeDateTimeColumn",
"Type": "DateTime"
},
{
"Name": "SomeStringColumn",
"Type": "String"
},
{
"Name": "SomeDynamicColumn",
"Type": "Dynamic"
}
]
}
Para ejecutar la validación KQL antes de enviar la Solicitud de extracción en tu máquina local:
Azure-Sentinel\\.script\tests\KqlvalidationsTests\dotnet testEjemplo de salida (en 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 manera similar a la validación KQL, existe una validación automática del esquema de una detección. La validación del esquema incluye la frecuencia y el período de la detección, el tipo y umbral de activación de la detección, la validez de los Ids de conectores (lista de Ids de conectores válidos), etc. Un formato incorrecto o atributos faltantes resultarán en un fallo informativo de la verificación, que debería guiarte en la resolución del problema, pero asegúrate de revisar el formato de una detección ya aprobada.
Para ejecutar la validación KQL antes de enviar la Solicitud de extracción en tu máquina local:
Azure-Sentinel\\.script\tests\DetectionTemplateSchemaValidation\dotnet testCuando envías una solicitud de extracción, un bot de CLA determinará automáticamente si necesitas proporcionar un CLA y decorará la PR apropiadamente (por ejemplo, etiqueta, comentario). Simplemente sigue las instrucciones proporcionadas por el bot. Solo necesitarás hacer esto una vez en todos los repos que utilicen nuestro CLA.
Este proyecto ha adoptado el Código de Conducta de Código Abierto de Microsoft. Para obtener más información, consulta las Preguntas frecuentes sobre el Código de Conducta o comunícate con [email protected] si tienes preguntas o comentarios adicionales.
Para obtener información sobre qué puedes contribuir y más detalles, consulta la sección "comenzar" en la wiki del proyecto.