Share via


Rilevare malware con Microsoft Sentinel per Firewall di Azure

Malware è qualsiasi software progettato per causare danni, interruzioni o compromettere la sicurezza e le funzionalità di sistemi informatici, reti o dispositivi. Include diversi tipi di minacce, ad esempio virus, worm, trojan, ransomware, spyware, adware, rootkit e altro ancora. Il malware può avere diversi effetti negativi, ad esempio rubare dati sensibili, crittografare o eliminare file, visualizzare annunci indesiderati, rallentare le prestazioni o persino assumere il controllo del dispositivo.

È importante identificare ed eliminare malware da un sistema o da una rete, che è possibile eseguire usando varie tecniche di rilevamento, ad esempio tecniche di rilevamento basate su firma, basate sul comportamento, basate sul comportamento, basate sull'euristica o tecniche basate su Machine Learning. Il rilevamento di malware è fondamentale per proteggere la sicurezza e la privacy degli utenti, nonché l'integrità e la disponibilità di sistemi e reti.

La funzionalità IDPS Firewall di Azure rileva e nega automaticamente malware per impostazione predefinita e può impedire che i carichi di lavoro cloud vengano infettati. È possibile migliorare ulteriormente questa funzionalità usando il rilevamento e la risposta automatizzati usando query di rilevamento predefinite e Microsoft Sentinel. In questo articolo viene illustrato come rilevare alcuni malware comuni rilevati in Firewall di Azure log, Coinminerad esempio e Cl0pSunburst usando query di rilevamento KQL predefinite per Firewall di Azure.

Questi rilevamenti consentono ai team di sicurezza di ricevere avvisi di Sentinel quando i computer nella rete interna richiedono connessioni a nomi di dominio o indirizzi IP su Internet collegati a indicatori noti di compromissione (IOC), come definito nella query delle regole di rilevamento. I rilevamenti veri positivi devono essere considerati indicatori di compromissione (IOC). I team di risposta agli eventi imprevisti di sicurezza possono quindi avviare una risposta e implementare azioni di correzione personalizzate appropriate in base a questi segnali di rilevamento.

Per istruzioni su come distribuire le regole analitiche usando le query seguenti, vedere Rilevare nuove minacce usando Microsoft Sentinel con Web application firewall di Azure.

Exploit di malware comuni

Gli exploit malware seguenti sono comuni sulle reti attuali.

Coinminer

A causa del recente aumento del mining di criptovaluta, c'è una crescente necessità di unità di elaborazione di rete ad alte prestazioni. Il calcolo distribuito sta espandendo e la disponibilità diffusa del software di data mining, sia in contesti legali che illegali.

Coinminer rappresenta un tipo di malware che utilizza le risorse hardware di un computer vittima inconsapevole per il mining di criptovaluta. L'unità di elaborazione grafica (GPU) del PC dell'utente insospettabile viene usata per eseguire vari script destinati a criptovalute di data mining e a calcolare hash di blocchi di transazioni.

Per attenuare il rischio di queste minacce, è necessario implementare misure proattive nei punti di ingresso tipici. Ciò include la garanzia che il software Jupyter venga distribuito con l'autenticazione, la configurazione e l'aggiornamento delle applicazioni Web per ridurre al minimo le vulnerabilità, controllare l'accesso esterno a Docker e seguire principi aggiuntivi zero trust.

La query di rilevamento seguente può essere usata per creare una regola di analisi in Sentinel per rilevare e rispondere automaticamente a questo malware usando Firewall di Azure log.

// Coinminer Detection Rule
// Detects suspicious traffic patterns associated with coinmining activity in Azure Firewall logs for Sentinel

let coinminerPorts = dynamic(["2375", "2376", "2377", "4243", "4244"]); // List of known coinminer ports  
//Assign the known domains to a variable
let coinminerdomains = dynamic(["teamtnt.red", "kaiserfranz.cc", "45.9.148.123"]); // List of known coinminer domains  

(union isfuzzy=true 

(AzureDiagnostics  
| where ResourceType == "AZUREFIREWALLS"  
| where Category == "AzureFirewallApplicationRule" 
| parse msg_s with Protocol 'request from ' SourceHost ':' SourcePort 'to ' DestinationHost ':' DestinationPort '. Action:' Action 
| extend action_s = column_ifexists("action_s", ""), transactionId_g = column_ifexists("transactionId_g", "")  
| where DestinationPort in (coinminerPorts) // Filter traffic on known coinminer ports  
| summarize CoinminerAttempts = count() by DestinationHost, DestinationPort  
| where CoinminerAttempts > 10 // Adjust threshold as needed  
), 

(AZFWIdpsSignature 
| where DestinationPort in (coinminerPorts) 
| summarize CoinminerAttempts = count() by DestinationIp, DestinationPort 
| where CoinminerAttempts > 10 // Adjust threshold as needed   

), 

(AzureDiagnostics  
| where ResourceType == "AZUREFIREWALLS"  
| where Category == "AzureFirewallDnsProxy"  
| parse msg_s with "DNS Request: " ClientIP ":" ClientPort " - " QueryID " " Request_Type " " Request_Class " " Request_Name ". " Request_Protocol " " Request_Size " " EDNSO_DO " " EDNS0_Buffersize " " Response_Code " " Response_Flags " " Response_Size " " Response_Duration  
| where Request_Name has_any(coinminerdomains)  
| extend DNSName = Request_Name  
| extend IPCustomEntity = ClientIP  

),  

(AzureDiagnostics  
| where ResourceType == "AZUREFIREWALLS"  
| where Category == "AzureFirewallApplicationRule"  
| parse msg_s with Protocol ' request from ' SourceHost ':' SourcePort 'to' DestinationHost ':' DestinationPort '. Action:' Action  
| where isnotempty(DestinationHost)  
| where DestinationHost has_any(coinminerdomains)  
| extend DNSName = DestinationHost  
| extend IPCustomEntity = SourceHost), 

(AZFWApplicationRule 
| where isnotempty(Fqdn) 
| where Fqdn has_any (coinminerdomains)   
| extend DNSName = Fqdn  
| extend IPCustomEntity = SourceIp), 

(AZFWDnsQuery 
| where isnotempty(QueryName) 
| where QueryName has_any (coinminerdomains) 
| extend DNSName = QueryName 
| extend IPCustomEntity = SourceIp 

), 

(AZFWIdpsSignature 
| where DestinationIp has_any (coinminerdomains) 
| extend DNSName = DestinationIp 
| extend IPCustomEntity = SourceIp 

), 

(AZFWIdpsSignature 
| where Description contains "coinminer" 
| extend DNSName = DestinationIp 
| extend IPCustomEntity = SourceIp 
) 

)

Cl0p

Cl0p è un ransomware che opera applicando chiavi di crittografia distintive ai file della vittima e quindi richiedendo un riscatto per la decrittografia dei file. Usa una vulnerabilità nel software MOVEit per il trasferimento dei dati e invia messaggi di posta elettronica di spear phishing a numerosi dipendenti nella speranza di consegnare cl0p. Usa quindi strumenti come truebot e dewmode per spostarsi successivamente all'interno della rete ed esfiltrare i dati. Il ransomware crittografa i file usando l'algoritmo di crittografia AES-256.

Cl0p le vulnerabilità includono CVE-2023-35036, CVE-2023-34362 e CVE-2023-35708. Nel giugno 2023, l'FBI e CISA pubblicano una stampa su questo sfruttamento. Gli effetti del cl0p ransomware sono registrati in diverse università negli Stati Uniti Midwest e organizzazioni governative. Compagnie aeree, reti TELEVISIVe e negozi di vendita al dettaglio basati sul Regno Unito sono le ultime vittime della cl0p banda ransomware.

La query di rilevamento seguente può essere usata per creare una regola di analisi in Sentinel per rilevare e rispondere automaticamente a questo malware usando Firewall di Azure log.

Query di rilevamento per Cl0p: Rilevamento malware firewall per Sentinel/Rilevamento - Query di regola analitica per Cl0p.json

Sunburst

Questo malware è destinato alle vittime usando stringhe DGA (Domain Generation Algorithm) per eludere il rilevamento e stabilire un attacco backdoor di comando e controllo. Le stringhe DGA sono spesso difficili per gli strumenti di sicurezza per identificare i domini usati dal malware a causa del modello usato nella sintassi e della loro costante modifica delle informazioni sul dominio.

La query di rilevamento seguente può essere usata per creare una regola di analisi in Sentinel per rilevare e rispondere automaticamente a questo malware usando Firewall di Azure log.

Query di rilevamento per Sunburst malware: Rilevamento malware firewall per Sentinel/Rilevamento - Query di regola analitica per Sunburst.json