Offline Update Microsoft Defender for Linux

All’interno della community ho già creato una guida per spiegare come poter eseguire aggiornamento di Microsoft Defender for Endpoint per Linux attraverso Cron, vi lascio quindi il link all’articolo qual ora vogliate approfondire Update Microsoft Defender for Endpoint Linux con Cron – ICT Power.

Quest’oggi invece vorrei raccontarvi di come poter sfruttare una nuova funzionalità rilasciata da Microsoft per aggiornare in modalità “Offline” i “security intelligence updates”, questo perché fino al rilascio di questa funzionalità non era possibile, e l’Endpoint doveva comunicare con gli FQDN presenti in documentazione per poter scaricare gli aggiornamenti necessari.

Questa funzionalità è molto interessante perché permette di aggiornare in modalità offline l’intelligence di sicurezza in dispositivi linux con una limitata esposizione e/o assenza di Internet. Con la configurazione attraverso un server denominato Sever Mirror che si connette al cloud di Microsoft per scaricare gli aggiornamenti e successivamente “consegna” questi update ai dispositivi che non hanno connettività.

Quali sono quindi i vantaggi di questa soluzione?

Ci sono diversi vantaggi di questa soluzione, che vi riporto:

  • I Team di Security possono controllare e gestire la frequenza dei download delle firme nel server locale e la frequenza con cui gli endpoint “estraggono” le firme dal server locale
  • Viene disposto un ulteriore livello di protezione e controllo, questo perché le firme scaricate possono essere testate in un dispositivo di test prima che vengano propagate verso tutti gli endpoint
  • È necessaria una larghezza di banda inferiore, questo perché solo un server locale ottiene gli aggiornamenti
  • Il server mirror può essere eseguito su Windows, Linux e macOS e non è necessario installare Defender for Endpoint su di esso
  • Si ottiene una protezione pià aggiornata, perché le firme vengono sempre scaricate insieme al motore antivirus compatibile più recenti
  • Le versioni precedenti delle firme (n-1) vengono spostate in una cartella di backup nel server mirror. Se si verifica un problema con gli update è possibile eseguire un pull di questo backup
  • Nel raro caso in cui un aggiornamento offline non riesca, è possibile configurare un’opzione di fallback per ottenere gli aggiornamenti online dal cloud Microsoft

Quale è il funzionamento di questa funzionalità?

  • È stato configurato un server mirror, ovvero un server Web locale o NFS raggiungibile dal cloud Microsoft.
  • Le firme vengono scaricate dal cloud Microsoft in questo server mirror eseguendo uno script usando il processo cron o l’utilità di pianificazione nel server locale.
  • Linux endpoint che eseguono Defender per endpoint eseguono il pull delle firme scaricate dal server mirror a un intervallo di tempo predefinito.
  • Le firme estratte nei dispositivi Linux dal server locale vengono verificate prima di essere caricate nel motore antivirus.
  • Per avviare e configurare il processo di aggiornamento, è possibile aggiornare il file json di configurazione gestita nei dispositivi Linux.
  • È possibile visualizzare lo stato degli aggiornamenti nell’interfaccia della riga di comando di mdatp.

Figura 1: Diagramma del flusso di processo nel server mirror per il download degli aggiornamenti di Security Intelligence

Figura 2: Diagramma del flusso di processo nell’endpoint di Linux per gli aggiornamenti dell’intelligence di sicurezza

Prerequisiti

  • La versione 101.24022.0001 di Defender per endpoint o versione successiva deve essere installata negli endpoint Linux
  • Gli Endpoint Linux devono poter contattare il server mirror
  • Il server mirror può essere un server http/HTTPS o un server di condivisione di rete
  • Il server mirror deve aver accesso ai seguenti url:
  • Il server mirror deve supportare bash o PowerShell

Queste le caratteristiche minime del server mirror

CPU Core RAM Disco libero Swap
2 core (4 core preferiti) 1 GB min (4 GB preferiti) 2 GB Dipendente dal sistema

Naturalmente la configurazione può variare in base al numero di richieste da gestire da parte del server mirror.

Per darvi evidenza di come poter implementare questa funzionalità avrò a disposizione due Virtual Machine, nel mio caso Linux (Ubuntu), SRVUBUNTU che riceverà gli aggiornamenti e SRVMIRROR che sarà appunto il server mirror che si occuperà di distribuire questi aggiornamenti.

Figura 3: Specifiche SRVMIRROR

Figura 4: Caratteristiche SRVUBUNTU che risulta correttamente onbordato in Microsoft Defender

Come si configura il server mirror?

Microsoft mette a disposizione uno script ospitato in GitHub per procedere con l’attività che potete trovare al seguente link microsoft/mdatp-xplat: Microsoft Defender for macOS/Linux – config samples, auxiliary tools

Per prima cosa dovrete installare GIT nel server mirror, nel mio caso essendo una macchina Linux vi mostrerò come installarlo su Ubuntu, eseguo login alla macchina in Putty ed eseguo “sudo apt-get install git”

Figura 5: Installazione GIT sulla macchina Ubuntu

Successivamente recarsi nella cartella in cui voler installare il repository, nel mio caso la cartella “repo” che ho creato ed eseguire questo comando “git clone https://github.com/microsoft/mdatp-xplat.git

Figura 6: Installazione del repo necessario per l’attività

Figura 7: Alberature dopo aver clonato il repo

Il file settings.json contiene alcuni parametri che sono configurabili e per comodità vi riporto in tabella:

Nome campo Valore Descrizione
downloadFolder stringa Esegue il mapping al percorso in cui lo script scarica i file.
downloadLinuxUpdates bool Se impostato su true, lo script scarica il Linux aggiornamenti specifici per .downloadFolder
logFilePath stringa Configura i log di diagnostica in una determinata cartella. Questo file può essere condiviso con Microsoft per il debug dello script in caso di problemi.
downloadMacUpdates bool Lo script scarica gli aggiornamenti specifici di Mac in downloadFolder.
downloadPreviewUpdates bool Scarica la versione di anteprima degli aggiornamenti disponibili per il sistema operativo specifico.
backupPreviousUpdates bool Consente allo script di copiare l’aggiornamento precedente nella _back cartella e i nuovi aggiornamenti vengono scaricati downloadFolderin .

I parametri di default che sono i seguenti:

Figura 8: Parametri Default del file settings.json

Io userò i seguenti, ma saranno da modificare in base alle vostre cartelle o alle vostre esigenze

Figura 9: Parametri che utilizzerò io

Dopo aver configurato i parametri potrete, eseguire manualmente questo comando “./xplat_offline_updates_download.sh” che vi permetterà di eseguire lo script di Downloader sulla macchina mirror:

Figura 10: Script che ha funzionato nel modo corretto

Dopo l’esecuzione dello script le firme più recenti vengono scaricati nella cartella configurata all’interno del file settings.json, che nel mio caso è /home/azureadmin/repo

Figura 11: File creati eseguendo lo script

Ora questa cartella dovrà essere raggiungibile dalle macchine che necessitano di ricevere gli aggiornamenti, nel mio caso ho usato un banale server http con Python per demo che è raggiungibile solo dall’IP della VM che dovrà ricevere gli update, ma il modo più consono è da valutare in base alla configurazione presente all’interno della vostra infrastruttura, infatti da una macchina sulla rete ottengo questo risultato:

Figura 12: Macchina Mirror che stà correttamente esponendo gli aggiornamenti

Ora si rende necessario configurare le macchine che dovranno ricevere gli aggiornamenti e lo faremo tramite una policy direttamente dal portale di Security Microsoft in cui dovremmo configurare i seguenti parametri:

Impostazione Descrizione
Abilitare l’aggiornamento dell’intelligence per la sicurezza offline Questa impostazione abilita la funzionalità di aggiornamento dell’intelligence di sicurezza offline negli endpoint Linux. Quando si abilita questa impostazione, diventano disponibili le due impostazioni seguenti. Assicurarsi che siano abilitati anche gli aggiornamenti automatizzati di Intelligence per la sicurezza.
Fallback dell’aggiornamento dell’intelligence per la sicurezza offline nel cloud Se impostato su True, l’endpoint tenterà di ottenere gli aggiornamenti delle firme dal cloud Microsoft se non riesce a recuperarli dal server mirror.
URL o directory dell’aggiornamento dell’intelligence per la sicurezza offline Questa impostazione specifica l’URL o il percorso della directory del server mirror che ospita gli aggiornamenti di Security Intelligence. L’URL deve essere nel formato http://<mirror_server_address>/linux/production/ (se si usa un server HTTP/HTTPS) o un percorso di directory (se si usa una condivisione di rete o un punto di montaggio locale/remoto). Per altre informazioni, vedere Ospitare gli aggiornamenti dell’intelligence di sicurezza offline nel server mirror .
Intelligence per la sicurezza Intervallo di tempo di aggiornamento Per impostazione predefinita, gli endpoint Linux estraggono gli aggiornamenti delle firme dal server mirror ogni 8 ore (28800 secondi). Usare questa impostazione se si desidera specificare un intervallo diverso. Specificare l’intervallo in secondi.

Figura 13: Procediamo a creare una nuova policy per SO Linux

Figura 14: Selezioniamo la piattaforma ed il template

Figura 15: Nome e Descrizione Parlante e proseguiamo con la configurazione

Figura 16: Configurazioni da fare per puntare al server mirror, nel mio caso non faccio fallback in cloud

Una volta salvata la policy attendere la propagazione, nel mio caso circa 20 minuti, se volete verificare la corretta applicazione di potete eseguire questo comando “mdatp health –details definitions”

Figura 17: Vediamo l’URL del nostro server Mirror configurato correttamente da Policy

E se volessi automatizzare il download delle definizioni sul server Mirror?

Se il server Mirror fosse Windows basterebbe creare un task schedulato che esegue il download ogni X tempo, per Linux invece è necessario creare un Cron a tal proposito per il discorso cron vi lascio il link ufficiale:

How to schedule an update for Microsoft Defender for Endpoint on Linux – Microsoft Defender for Endpoint | Microsoft Learn

Per una prima fase di implementazione vi lascio anche il link di un articolo scritto per la community, solo la prima parte riguarda Cron dovrete modificare lo script presente nell’articolo con il batch SH presente in questo articolo per il download degli update

Update Microsoft Defender for Endpoint Linux con Cron – ICT Power

Conclusioni

Con questo metodo è possibile eseguire aggiornamenti di Defender for Endpoint, e di conseguenza estendere la protezione anche a device che per loro natura non possono contattare il cloud di Microsoft in quanto appartenenti a reti segregate.

Questa nuova funzionalità a mio avviso è uno step in avanti da parte di Microsoft, che sempre di più permette a tutte le infrastrutture di ottenere aggiornamenti e aumentare in modo considerevole la protezione degli endpoint.