
SIEM nativo per il cloud per analisi di sicurezza intelligenti per l'intera azienda.
Benvenuti nel repository unificato di Microsoft Sentinel e Microsoft 365 Defender! Questo repository contiene rilevamenti predefiniti, query di esplorazione, query di caccia, workbook, playbook e molto altro per aiutarti a prendere familiarità con Microsoft Sentinel e fornirti contenuti di sicurezza per proteggere il tuo ambiente e cacciare minacce. Le query di caccia includono anche query di caccia di Microsoft 365 Defender per scenari di caccia avanzati sia in Microsoft 365 Defender che in Microsoft Sentinel. Puoi anche inviare issues per qualsiasi esempio o risorsa che desideri vedere qui mentre esegui l'onboarding in Microsoft Sentinel. Questo repository accetta contributi e fai riferimento al wiki di questo repository per iniziare. Per domande e feedback, contatta [email protected]
Apprezziamo il tuo feedback. Ecco alcuni canali per esprimere le tue domande o feedback:
Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede l'accettazione di un Contributor License Agreement (CLA) che dichiara che hai il diritto di concederci, e che effettivamente concedi, i diritti di utilizzare il tuo contributo. Per dettagli, visita https://cla.microsoft.com.
Nota: Se sei un contributore alle prime armi per questo repository, segui la Guida generale su GitHub Fork the repo prima di clonare, oppure i Passaggi specifici per il repository Sentinel.
Contributo completamente nuovo o aggiornamento tramite questi metodi:
Come parte dei controlli della PR, eseguiamo una validazione della struttura per assicurarci che tutte le parti richieste della struttura YAML siano incluse. Per i rilevamenti, è presente una nuova sezione che deve essere inclusa. Consulta le linee guida per i contributi per maggiori informazioni. Se questa sezione o qualsiasi altra sezione richiesta non è inclusa, si verificherà un errore di validazione simile a quello di seguito. L'esempio è specifico per il caso in cui manchi la sezione entityMappings nel 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."
Come parte dei controlli della PR, eseguiamo una validazione sintattica delle query KQL definite nel modello. Se questo controllo fallisce, vai su Azure Pipeline (cliccando sul link degli errori nella scheda dei controlli della tua PR)
Nella pipeline puoi vedere quale test è fallito e qual è la causa:

Esempio di messaggio di errore:
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 stai utilizzando una tabella di log personalizzata (una tabella non definita su tutti gli spazi di lavoro per impostazione predefinita) devi verificare che lo schema della tabella sia definito in un file json nella cartella Azure-Sentinel\.script\tests\KqlvalidationsTests\CustomTables
Esempio per la tabella tablexyz.json
{
"Name": "tablexyz",
"Properties": [
{
"Name": "SomeDateTimeColumn",
"Type": "DateTime"
},
{
"Name": "SomeStringColumn",
"Type": "String"
},
{
"Name": "SomeDynamicColumn",
"Type": "Dynamic"
}
]
}
Per eseguire la validazione KQL prima di inviare una Pull Request sulla tua macchina locale:
Azure-Sentinel\\.script\tests\KqlvalidationsTests\dotnet testEsempio di output (in 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
Analogamente alla validazione KQL, esiste una validazione automatica dello schema di un rilevamento. La validazione dello schema include la frequenza e il periodo del rilevamento, il tipo di trigger e la soglia, la validità degli ID dei connettori (lista degli ID dei connettori validi), ecc. Un formato errato o attributi mancanti comporteranno un fallimento informativo del controllo, che dovrebbe guidarti nella risoluzione del problema, ma assicurati di esaminare il formato di un rilevamento già approvato.
Per eseguire la validazione KQL prima di inviare una Pull Request sulla tua macchina locale:
Azure-Sentinel\\.script\tests\DetectionTemplateSchemaValidation\dotnet testQuando invii una pull request, un CLA-bot determinerà automaticamente se devi fornire un CLA e decorerà la PR di conseguenza (ad esempio etichetta, commento). Segui semplicemente le istruzioni fornite dal bot. Dovrai farlo solo una volta per tutti i repository che utilizzano il nostro CLA.
Questo progetto ha adottato il Codice di condotta open source di Microsoft. Per maggiori informazioni, consulta le FAQ sul Codice di condotta o contatta [email protected] per ulteriori domande o commenti.
Per informazioni su cosa contribuire e ulteriori dettagli, fai riferimento alla sezione "get started" sul wiki del progetto.