
Strumenti di sicurezza di Microsoft Threat Intelligence
Strumenti di sicurezza Python di Microsoft Threat Intelligence.
msticpy è una libreria per indagini e hunting in ambito InfoSec nei Jupyter Notebook. Include funzionalità per:
Include anche alcuni strumenti per notebook che fanno risparmiare tempo, come widget per impostare i limiti temporali delle query, selezionare e visualizzare elementi da liste e configurare l'ambiente del notebook.

Il pacchetto msticpy è stato sviluppato inizialmente per supportare la creazione di Jupyter Notebook per Microsoft Sentinel. Sebbene Azure Sentinel sia ancora un grande focus del nostro lavoro, stiamo estendendo i componenti di interrogazione/acquisizione dati per ottenere dati di log da altre fonti (attualmente sono supportati Splunk, Microsoft Defender for Endpoint e Microsoft Graph, ma stiamo lavorando attivamente per supportare dati da altre piattaforme SIEM). La maggior parte dei componenti può anche essere utilizzata con dati provenienti da qualsiasi fonte. I Pandas DataFrame sono utilizzati come formato di input e output ubiquitario di quasi tutti i componenti. Esiste anche un data provider per facilitare l'acquisizione e l'elaborazione di dati da file CSV locali e DataFrame serializzati (pickled).
Il pacchetto soddisfa tre esigenze centrali per gli investigatori e i cacciatori di minacce (hunters) di sicurezza:
Accogliamo con favore feedback, segnalazioni di bug, suggerimenti per nuove funzionalità e contributi.
Per installazione base:
pip install msticpy
o per l'ultima build di sviluppo
pip install git+https://github.com/microsoft/msticpy
Per aggiornare msticpy all'ultima versione pubblica non beta, esegui:
pip install --upgrade msticpy
Nota: è buona norma copiare il file msticpyconfig.yaml e salvarlo sul disco ma al di fuori della cartella msticpy, facendovi riferimento in una variabile d'ambiente. Questo evita di perdere le configurazioni ogni volta che si aggiorna l'installazione di msticpy.
La documentazione completa è su ReadTheDocs
Notebook di esempio per molti dei moduli si trovano nella cartella docs/notebooks e notebook correlati.
Puoi anche sfogliare i notebook di esempio citati alla fine di questo documento per vedere alcune funzionalità in contesto. Puoi provare alcune funzioni del pacchetto in questa demo interattiva su mybinder.org.
QueryProvider è una libreria di query estensibile rivolta a Microsoft Sentinel/Log Analytics, Microsoft XDR, Splunk, OData e altre fonti di dati di log. Ha anche supporto speciale per i dataset Mordor e per l'uso di dati locali.
Le query parametrizzate integrate consentono di eseguire query complesse con una singola chiamata di funzione. Aggiungi le tue query usando un semplice schema YAML.
La classe TILookup può cercare IoC attraverso più provider TI. I provider integrati includono AlienVault OTX, IBM XForce, VirusTotal e Azure Sentinel.
L'input può essere un singolo IoC observable o un pandas DataFrame contenente più observable. A seconda del provider, potresti aver bisogno di un account e di una chiave API. Alcuni provider applicano anche limitazioni di velocità (throttling, soprattutto per i livelli gratuiti), che potrebbero influire sull'esecuzione di ricerche in blocco.
TIProviders e TILookup Usage Notebook
Le classi di lookup GeoIP consentono di abbinare le geolocalizzazioni degli indirizzi IP usando:

Il modulo AzureData contiene funzionalità per arricchire i dati riguardanti i dettagli degli host Azure con ulteriori dettagli esposti tramite l'API di Azure. Il modulo AzureSentinel consente di interrogare incidenti, recuperare query di rilevamento e caccia (hunting). AzureBlogStorage permette di leggere e scrivere dati dall'archivio blob.
Azure Resource APIs, Azure Sentinel APIs, Azure Storage
Questo sottopacchetto contiene diversi moduli utili per lavorare su indagini di sicurezza e caccia (hunting):
Rileva sequenze insolite di eventi nei tuoi dati di Office, Active Directory o altri log. Puoi estrarre sessioni (ad esempio attività avviate dallo stesso account) e identificare e visualizzare sequenze anomale di attività. Ad esempio, rilevare un attaccante che imposta una regola di inoltro della posta sulla casella di posta di qualcuno.
Anomalous Sessions e Anomalous Sequence Notebook
L'analisi di serie temporali consente di identificare pattern anomali nei dati di log tenendo conto delle normali variazioni stagionali (ad esempio il flusso e riflusso regolare degli eventi nelle ore del giorno, giorni della settimana, ecc.). Utilizzando sia analisi che visualizzazione si evidenziano flussi di traffico o attività di eventi anomali per qualsiasi set di dati.

Visualizza qualsiasi evento di log su una timeline interattiva. Utilizzando la Bokeh Visualization Library il controllo timeline consente di visualizzare uno o più flussi di eventi, zoomare interattivamente su specifici intervalli di tempo e visualizzare i dettagli degli eventi rappresentati.

La funzionalità dell'albero di processo ha due componenti principali:
Ci sono un insieme di funzioni di utilità per estrarre alberi individuali e parziali dal set di dati elaborato.

Process Tree e Process Tree Notebook
Ti permette di usare le funzionalità di MSTICPy in modo "entity-centric". Tutte le funzioni, query e ricerche che riguardano un particolare tipo di entità (ad esempio Host, IpAddress, Url) sono raccolte insieme come metodi di quella classe di entità. Quindi, se vuoi fare cose con un indirizzo IP, basta caricare l'entità IpAddress e sfogliare i suoi metodi.
Pivot Functions e Pivot Functions Notebook
Estrattore di Base64 e archivi (gz, zip, tar). Proverà a identificare qualsiasi stringa codificata in base64 e a decodificarle. Se il risultato assomiglia a uno dei tipi di archivio supportati, decomprimerà i contenuti. I risultati di ogni decodifica/decompressione vengono ricontrollati per ulteriore contenuto base64 fino a una profondità specificata.
Base64 Decoding e Base64Unpack Notebook
Utilizza espressioni regolari per cercare pattern di Indicator of Compromise (IoC) - Indirizzi IP, URL, domini DNS, Hash, percorsi file. L'input può essere una singola stringa o un pandas dataframe.
IoC Extraction e IoCExtract Notebook
Questo modulo è pensato per riassumere grandi numeri di eventi in cluster di pattern diversi. Eventi ripetitivi ad alto volume spesso rendono difficile vedere elementi unici e interessanti.

Questo è un modulo di apprendimento non supervisionato implementato usando SciKit Learn DBScan.
Event Clustering e Event Clustering Notebook
Modulo per caricare e decodificare i log di audit Linux. Unisce messaggi con lo stesso ID messaggio in singoli eventi, decodifica i campi dati codificati in esadecimale ed esegue una formattazione e normalizzazione specifica per evento (ad esempio, per eventi di avvio di processo riassemblerà gli argomenti della riga di comando del processo in una singola stringa).
Modulo per supportare l'indagine di un host Linux con solo logging syslog abilitato. Include funzioni per raccogliere dati host, raggruppare eventi di accesso e rilevare sessioni utente contenenti attività sospette.
Un modulo per supportare il rilevamento di attività maligne note della riga di comando o pattern sospetti di attività della riga di comando.
Un modulo per supportare l'indagine di nomi di dominio e URL con funzioni per validare un nome di dominio e fare screenshot di un URL.
Sono costruiti a partire dalla raccolta Jupyter ipywidgets e raggruppano funzionalità comuni utili in attività InfoSec come selettori di liste, impostazioni dei limiti temporali delle query e visualizzazione degli eventi in un formato facile da usare.


Notebook di esempio:
Visualizza direttamente su GitHub o copia e incolla il link su nbviewer.org
Vedi i seguenti notebook per ulteriori esempi dell'uso di questo pacchetto in pratica:
Per linee guida per gli sviluppatori (brevi), vedi questo articolo wiki Contributor Guidelines
Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede di accettare un Contributor License Agreement (CLA) che dichiari di avere il diritto e di concederci effettivamente i diritti di utilizzare il tuo contributo. Per dettagli, visita https://cla.microsoft.com.
Quando invii una pull request, un CLA-bot determinerà automaticamente se devi fornire un CLA e decorerà la PR in modo appropriato (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 Microsoft Open Source Code of Conduct. Per maggiori informazioni consulta le FAQ sul Code of Conduct o contatta [email protected] per ulteriori domande o commenti.