Detectar malware com o Microsoft Sentinel para Firewall do Azure

Malware é qualquer software projetado para causar danos, interrupções ou comprometer a segurança e a funcionalidade de sistemas de computador, redes ou dispositivos. Ele inclui diversos tipos de ameaças, como vírus, worms, trojans, ransomware, spyware, adware, rootkits e muito mais. O malware pode ter vários impactos negativos, como roubar dados confidenciais, criptografar ou excluir arquivos, exibir anúncios indesejados, diminuir o desempenho ou até mesmo assumir o controle do dispositivo.

É importante identificar e eliminar malware de um sistema ou rede, o que você pode fazer empregando várias técnicas de detecção, como técnicas baseadas em assinatura, baseadas em comportamento, baseadas em heurística ou baseadas em machine learning. A detecção de malware é vital para proteger a segurança e a privacidade dos usuários, bem como a integridade e a disponibilidade de sistemas e redes.

O recurso IDPS do Firewall do Azure detecta e bloqueia malware automaticamente por padrão e pode impedir que as cargas de trabalho na nuvem sejam infectadas. Você pode aprimorar ainda mais essa capacidade ao utilizar a detecção e resposta automatizadas por meio de consultas de detecção predefinidas e o Microsoft Sentinel. Neste artigo, você explora como detectar alguns malwares comuns encontrados em logs do Firewall do Azure, como Coinminer, Cl0p e Sunburst usando consultas de detecção em KQL predefinidas para o Firewall do Azure.

Essas detecções permitem que as equipes de segurança recebam alertas do Sentinel quando os computadores na rede interna solicitam conexões a nomes de domínio ou endereços IP na Internet que estão associados a IOCs (Indicadores de Comprometimento) conhecidos, conforme definido na consulta da regra de detecção. As detecções verdadeiras positivas devem ser consideradas como Indicadores de Comprometimento (IOCs). Então, as equipes de resposta a incidentes de segurança podem iniciar uma resposta e implementar ações de correção personalizadas apropriadas com base nesses sinais de detecção.

Para obter instruções para implantar as regras analíticas usando as consultas a seguir, consulte Detectar novas ameaças usando o Microsoft Sentinel com o Firewall de Aplicativo Web do Azure.

Explorações comuns de malware

As explorações de malware a seguir são comuns nas redes atuais.

Coinminer

Devido ao recente aumento na mineração de criptomoedas, há uma necessidade crescente de unidades de processamento de rede de alto desempenho. A computação distribuída está se expandindo, assim como a disponibilidade generalizada de software de mineração, tanto em contextos legais quanto ilegais.

Coinminer representa um tipo de malware que usa os recursos de hardware do computador de uma vítima desprevenida para mineração de criptomoedas. A GPU (unidade de processamento gráfico) do computador do usuário desavisado é usada para executar vários scripts destinados à mineração de criptomoedas e ao cálculo de hashes de bloco de transação.

Para atenuar o risco dessas ameaças, medidas proativas devem ser implementadas nos pontos de entrada típicos. Isso inclui garantir que o software Jupyter seja implantado com a autenticação adequada, configurar e atualizar aplicativos Web para minimizar vulnerabilidades, controlar o acesso externo ao Docker e seguir princípios adicionais de Confiança Zero.

A consulta de detecção a seguir pode ser usada para criar uma regra de análise no Sentinel para detectar e responder automaticamente a esse malware usando os logs do Firewall do Azure.

// 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 é um ransomware que opera aplicando chaves de criptografia distintas aos arquivos da vítima e solicitando um resgate para a descriptografar os arquivos. Ele usa uma vulnerabilidade no software de transferência de dados MOVEit e envia emails de phishing para vários funcionários na esperança de entregar cl0p. Em seguida, ele usa ferramentas como truebot e dewmode para mover-se lateralmente dentro da rede e exfiltrar dados. O ransomware criptografa arquivos usando o algoritmo de criptografia AES-256.

As vulnerabilidades Cl0p incluem CVE-2023-35036, CVE-2023-34362 e CVE-2023-35708. Em junho de 2023, o FBI e a CISA publicaram um comunicado à imprensa sobre essa exploração. Os efeitos do ransomware cl0p são registrados em várias universidades do Centro-Oeste dos EUA e organizações governamentais. Companhias aéreas, redes de TV e lojas de varejo sediadas no Reino Unido são as mais recentes vítimas do grupo de ransomware cl0p.

A consulta de detecção a seguir pode ser usada para criar uma regra de análise no Sentinel para detectar e responder automaticamente a esse malware usando os logs do Firewall do Azure.

Consulta de detecção para Cl0p: Detecções de malware do Firewall para Sentinel/Detecção – Consulta de regra analítica para Cl0p.json

Sunburst

Esse malware tem como alvo suas vítimas usando cadeias de caracteres DGA (algoritmo de geração de domínio) para evitar a detecção e estabelecer um ataque de backdoor de comando e controle. As cadeias de caracteres DGA geralmente dificultam para as ferramentas de segurança identificarem os domínios usados pelo malware devido ao padrão usado na sintaxe e à constante alteração das informações de domínio.

A consulta de detecção a seguir pode ser usada para criar uma regra de análise no Sentinel para detectar e responder automaticamente a esse malware usando os logs do Firewall do Azure.

Consulta de detecção de malware Sunburst: Detecções de malware do Firewall para Sentinel/Detecção – Consulta de regra analítica para Sunburst.json