Microsoft Defender for Endpoint: Configurare gli Indicators con le API

Microsoft Defender for Endpoint, uno strumento che al giorno d’oggi offre, attraverso i continui investimenti che la casa di Redmond stà effettuando, una protezione a 360 gradi degli Endpoint Aziendali.

Microsoft, offre il collegamento tramite API al portale di Microsoft Defender XDR, in maniera veramente approfondita, dove è possibile vedere lo status dei device, le policy applicate e gli eventuali Incident, questo perché molte organizzazioni, magari con sviluppatori interni all’azienda integrano in modo nativo strumenti di Ticketing, software di reportistica con la componente XDR di casa Redmond.

Oggi vorrei darvi evidenza di come tramite le API di Microsoft Defender for Endpoint è possibile inserire gli Indicators senza dover necessariamente accedere al portale di Defender XDR, questa soluzione potrebbe essere molto utile per inserire gli indicatori in modalità blocco a partire da un tool di terze parti che “raccoglie” gli indici di compromissione e gli analisti sfruttano questo strumento per l’inserimento degli stessi senza dover necessariamente accedere al portale.

Figura 1: Componenti di Microsoft Defender for Endpoint dove viene spiegato l’esposizione della APIs da parte di Microsoft

Cosa sono gli Indicator in Microsoft Defender for Endpoint?

Un indicatore di compromissione (IoC) è un artefatto forense osservato sulla rete o su un Host. Un IoC indica, con elevata sicurezza, che si è verificata un’intrusione in un Endpoint o all’interno della rete, questo indici sono osservabili motivo per che li collega direttamente ad eventi che si possono misurare, come ad esempio:

  • Hash di Malware noti
  • Firme del traffico di rete dannoso
  • URL o domini noti che sono “distributori” di Malware

Per bloccare altre compromissioni o prevenire violazioni di IoC noti, gli strumenti a nostra disposizione dovrebbero essere in grado di rilevare tutti i dati dannosi enumerati dal set di regole dello strumento. La corrispondenza IoC è una funzionalità essenziale in ogni soluzione di protezione degli Endpoint.

Questa funzionalità offre a SecOps la possibilità di impostare un elenco di indicatori per il rilevamento e il blocco (Detection and Reponse).

Le organizzazioni possono creare indicatori che definiscono il rilevamento, la prevenzione e l’esclusione delle entità IoC. È possibile definire l’azione da intraprendere, nonché la durata dell’applicazione dell’azione e l’ambito del gruppo di dispositivi a cui applicarla.

Quando vengono inseriti gli Indicators sono possibili le seguenti operazioni:

  • Allow: l’esecuzione dell’IoC può essere eseguita sui dispositivi.
  • Audit: viene attivato un avviso quando l’IoC viene eseguito.
  • Warn: l’IoC richiede un avviso che l’utente può bypassare
  • Block Execution: l’esecuzione dell’IoC non è consentita.
  • Block and remediate: l’esecuzione dell’IoC non è consentita e all’IoC viene applicata un’azione correttiva.

Vi riporto inoltre una tabella in cui viene definito quali azioni sono consentite in base agli indicatori inseriti:

IoC type Available actions
Files Allow
Audit
Warn
Block execution
Block and remediate
IP addresses Allow
Audit
Warn
Block execution
URLs and domains Allow
Audit
Warn
Block execution
Certificates Allow
Block and remediate

Quali licenze sono necessarie per utilizzare questa funzionalità?

Per poter utilizzare la funzionalità di inserimento degli indici di compromissione all’interno di Defender for Endpoint è necessaria una licenza di Endpoint Protection di casa Redmond o una suite che comprenda:

Come sempre ringraziamo Aaron Dinnage per l’ottimo lavoro svolto con il suo sito Home | M365 Maps

Perché, se posso inserire gli IoC in modo manuale dovrei usare le API?

Una domanda decisamente lecita, inserire in modo manuale gli IoC all’interno del portale di Microsoft Defender XDR è sicuramente un metodo utilizzato in modo importante dalle organizzazioni che sfruttano questa funzionalità, ma altrettante aziende, o tramite i loro reparti di Cynet Threat Intelligence o con i loro analisti raccolgono gli IoC da diverse fonti li raccolgono in un file txt che è pubblicato in Internet ed hanno la necessità di inserire in modo automatico questi indicatori all’interno del portale di Microsoft Defender XDR.

Proprio per questo oggi vorrei darvi evidenza di come potersi collegare tramite API esposte direttamente da Microsoft e procedere all’inserimenti di questi indici recuperandoli appunto da txt pubblicato in internet.

Limitazioni nell’uso degli Indicators

Sono presenti alcune limitazioni nell’inserimento degli indicatori che si basano sul numero massimo degli stessi ovvero 15000 totali, per eventuali approfondimenti vi invito a consultare la pagina ufficiale Microsoft Overview of indicators in Microsoft Defender for Endpoint – Microsoft Defender for Endpoint | Microsoft Learn

Come posso inserire quindi gli IoC tramite API?

Per darvi evidenza di questa funzionalità io avrò un Tenant Microsoft con alcune licenze Microsoft 365 E5, un dispositivo gestito da Microsoft Intune e presente Defender for Endpoint, ed una macchina Ubuntu che esporrà in internet un File TXT contente gli indirizzi IP che saranno appunto i nostri IoC.

Figura 2: Licenze Microsoft 365 E5 presenti nel Tenant per sfruttare la funzionalità descritta nell’articolo

Figura 3: Device che risulta gestito da Microsoft Defender for Endpoint e a cui applicheremo gli indici di compromissione

Figura 4: Device demo che risulta correttamente gestito da Microsoft Defender for Endpoint

Figura 5: Parametro degli Indicator in Microsoft Defender che risulta vuoto allo stato attuale

Figura 6: Nome del gruppo a cui applicheremo gli IoC che contiene il device di Demo

Figura 7: File txt pubblicato in Internet che contiene gli IoC, per test ho inserito alcuni ip casuali per darvi poi evidenza del blocco

Procederemo ora a creare un’Applicazione in Entra ID con i seguenti permessi:

  • Ti.ReadWrite.All (Application)
  • Machine.ReadWrite.All (Application)

Accediamo quindi all’interfaccia di Microsoft Entra Admin Center

Figura 8: Accesso a Microsoft Entra Admin Center per creazione applicazione

Figura 9: Inserire un nome per l’applicazione e successivamente registrare la APP

Figura 10: Generazione Secret per l’applicazione

Figura 11: Copiare il Secret e tenerlo da parte, il secret sarà visualizzabile una sola volta altrimenti dovrete rigenerarlo

Figura 12: Selezioniamo Windows Defender ATP

Figura 13: Scegliamo di concedere a WindowsDefenderATP i permessi di Application

Ora dovremmo ricercare i seguenti permessi e applicarli cliccando su “ADD Permission”

  • Ti.ReadWrite.All
  • Machine.ReadWrite.All

Figura 14: Inserimento Permesso Ti.ReadWriteAll

Figura 15: Inserimento permesso Machine.ReadWrite.All

Figura 16: Eseguiamo il Grant Admin Consent

Figura 17: Permessi Concessi nel modo corretto

Figura 18: Copiatevi l’Application ID e il tenant ID dell’applicazione

Ora bisognerà predisporre lo script Powershell che permetterà il collegamento tramite API e l’inserimento quindi degli indicatori basati sul file txt pubblicato in Internet

I punti in “grassetto” e racchiusi tra “<>” sono i parametri che dovrete inserire in base alla vostra infrastruttura, una volta creato per capire che tutto funzioni nel modo corretto eseguitelo in Powershell

Figura 19: Script eseguito con successo

Figura 20: Indicators inseriti correttamente

Figura 21: File di log che viene popolato

Se ad esempio invece volete inserire degli indicator come dei domain, dovrete pubblicare un ulteriore file txt contenente i domini

Figura 22: File txt pubblicato che contiene i domini da bloccare

Inoltre servirà modificare lo script powershell nel seguente modo

Dopo l’esecuzione dello script vedrete popolarsi il campo Indicators inerente a URL/Domain:

Figura 23: Indicatori URL e Domain inseriti nel modo corretto

Ora sull’Endpoint verranno bloccate le connessioni verso questi FQDN, giusto per darvi evidenza accedendo alla macchina “GuidoCloudPC”:

Figura 24: Blocco che avviene sulla macchina a cui è applicato l’indicators

Figura 25: Incident che viene creato quando il dispositivo contattata un Indicatore contrassegnato come bloccato

Ora è importante capire come automatizzare il processo di inserimento degli IoC tramite una schedulazione, così è possibile permettere al sistema di inserire in modo automatizzato gli Indicators in modo costante. Io procederò a creare un task schedulato su un server che essendo sempre acceso è lo strumento adatto per questa tipologia di attività

Figura 26: Salvataggio Script PowerShell in una cartella del server, nel mio caso C:\service\Indicators

Figura 27: Aprite il task schedulare e procedete a creare un nuovo Task

Figura 28: Scegliete un nome e configurate i parametri necessari

Figura 29: Io schedulo l’esecuzione giornaliera, ma questo può essere modificato in base alle vostre esigenze

Figura 30: Overview di quando è schedulato il task

Ora come arguments, dovrete inserire il seguente comando: -NoProfile -ExecutionPolicy Bypass -File “C:\Percorso\TuoScript.ps1” dovrete creare un task per ogni script quindi nel mio caso saranno due script

Figura 31: Indichiamo che deve eseguire PowerShell richiamando lo script

Figura 32: Overview dello script schedulato

Figura 33: Inserimento credenziali Account amministratore della macchina

Dovrete ripetere tutti i passaggi indicati per il secondo script, o gli altri script che avrete creato

Figura 34: Script presente all’interno del Task Scheduler

Conclusioni

L’esposizione delle API da parte di Microsoft Defender XDR rappresenta un’opportunità strategica per le organizzazioni che desiderano automatizzare i processi di sicurezza, mantenendo al contempo il pieno controllo sulla gestione dei dati degli endpoint. La possibilità di inserire indicatori di compromissione tramite script semplici e diretti costituisce un tassello fondamentale per una difesa proattiva. Inoltre, l’integrazione via API apre la strada allo sviluppo di soluzioni personalizzate, offrendo agli sviluppatori gli strumenti necessari per migliorare in modo significativo la security posture aziendale.