
SIEM nativo da nuvem para análises de segurança inteligentes para toda a sua empresa.
Bem-vindo ao repositório unificado do Microsoft Sentinel e do Microsoft 365 Defender! Este repositório contém detecções prontas para uso, consultas de exploração, consultas de caça, workbooks, playbooks e muito mais para ajudar você a se familiarizar com o Microsoft Sentinel e fornecer conteúdo de segurança para proteger seu ambiente e caçar ameaças. As consultas de caça também incluem consultas de caça do Microsoft 365 Defender para cenários de caça avançados tanto no Microsoft 365 Defender quanto no Microsoft Sentinel. Você também pode enviar para issues quaisquer amostras ou recursos que gostaria de ver aqui ao embarcar no Microsoft Sentinel. Este repositório aceita contribuições e consulte o wiki deste repositório para começar. Para perguntas e feedback, entre em contato pelo e-mail [email protected]
Valorizamos seu feedback. Aqui estão alguns canais para ajudar a expressar suas dúvidas ou comentários:
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Contribuinte (CLA) declarando que você tem o direito de, e de fato nos concede, os direitos de usar sua contribuição. Para detalhes, visite https://cla.microsoft.com.
Nota: Se você é um contribuidor pela primeira vez neste repositório, siga o guia geral de Fork do repositório no GitHub antes de clonar ou etapas específicas para o repositório do Sentinel.
Contribuição totalmente nova ou atualização através destes métodos:
Como parte das verificações do PR, executamos uma validação de estrutura para garantir que todas as partes necessárias da estrutura YAML estejam incluídas. Para Detecções, há uma nova seção que deve ser incluída. Consulte as diretrizes de contribuição para mais informações. Se esta seção ou qualquer outra seção obrigatória não for incluída, ocorrerá um erro de validação semelhante ao abaixo. O exemplo é especificamente se o YAML não tiver a seção 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."
Como parte das verificações do PR, executamos uma validação de sintaxe das consultas KQL definidas no modelo. Se esta verificação falhar, vá para o Azure Pipeline (clicando no link de erros na guia de verificações do seu PR)
No pipeline, você pode ver qual teste falhou e qual é a causa:

Exemplo de mensagem de erro:
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'
Se você estiver usando uma tabela de logs personalizada (uma tabela que não está definida em todos os workspaces por padrão), você deve verificar se o esquema da sua tabela está definido em um arquivo json na pasta Azure-Sentinel\.script\tests\KqlvalidationsTests\CustomTables
Exemplo para o arquivo tablexyz.json
{
"Name": "tablexyz",
"Properties": [
{
"Name": "SomeDateTimeColumn",
"Type": "DateTime"
},
{
"Name": "SomeStringColumn",
"Type": "String"
},
{
"Name": "SomeDynamicColumn",
"Type": "Dynamic"
}
]
}
Para executar a validação KQL antes de enviar o Pull Request na sua máquina local:
Azure-Sentinel\\.script\tests\KqlvalidationsTests\dotnet testExemplo de saída (no 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
Similarmente à validação KQL, existe uma validação automática do esquema de uma detecção. A validação de esquema inclui a frequência e o período da detecção, o tipo de disparo e o limiar da detecção, validade dos IDs de conectores (lista de IDs de conectores válidos), etc. Um formato incorreto ou atributos ausentes resultarão em uma falha de verificação informativa, que deve orientá-lo na resolução do problema, mas certifique-se de observar o formato de uma detecção já aprovada.
Para executar a validação KQL antes de enviar o Pull Request na sua máquina local:
Azure-Sentinel\\.script\tests\DetectionTemplateSchemaValidation\dotnet testAo enviar um pull request, um bot do CLA determinará automaticamente se você precisa fornecer um CLA e decorará o PR adequadamente (por exemplo, etiqueta, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para mais informações, consulte as Perguntas Frequentes sobre o Código de Conduta ou entre em contato com [email protected] para perguntas ou comentários adicionais.
Para informações sobre o que você pode contribuir e mais detalhes, consulte a seção "comece aqui" no wiki do projeto.