Share via


Detetar malware com o Microsoft Sentinel for Azure Firewall

Malware é qualquer software projetado para causar danos, interrupções ou comprometer a segurança e a funcionalidade de sistemas, redes ou dispositivos de computadores. 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 deteção, como técnicas baseadas em assinatura, comportamento, heurística ou aprendizado de máquina. A deteção de malware é vital para proteger a segurança e a privacidade dos utilizadores, bem como a integridade e a disponibilidade dos sistemas e redes.

O recurso IDPS do Firewall do Azure deteta e nega automaticamente malware por padrão e pode impedir que as cargas de trabalho na nuvem sejam infetadas. Você pode aprimorar ainda mais esse recurso empregando deteção e resposta automatizadas usando consultas de deteção pré-criadas e o Microsoft Sentinel. Neste artigo, você explora como detetar alguns malwares comuns encontrados nos logs do Firewall do Azure, como Coinminer, Cl0p e Sunburst usando consultas de deteção KQL predefinidas para o Firewall do Azure.

Essas deteções permitem que as equipes de segurança recebam alertas do Sentinel quando máquinas na rede interna solicitam conexões com nomes de domínio ou endereços IP na Internet vinculados a IOCs (Indicadores de Compromisso) conhecidos, conforme definido na consulta da regra de deteção. As deteções verdadeiramente positivas devem ser consideradas como Indicadores de Compromisso (COI). Em seguida, 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 deteção.

Para obter instruções sobre como implantar as regras analíticas usando as consultas a seguir, consulte Detetar novas ameaças usando o Microsoft Sentinel com o Azure Web Application Firewall.

Explorações comuns de malware

As seguintes explorações de malware 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á a expandir-se e a disponibilidade generalizada de software de mineração, tanto em contextos legais como ilegais.

Coinminer Representa um tipo de malware que usa os recursos de hardware do computador de uma vítima involuntária para mineração de criptomoedas. A unidade de processamento gráfico (GPU) do PC do usuário desavisado é usada para executar vários scripts destinados a minerar criptomoedas e calcular hashes de bloco de transação.

Para mitigar 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 autenticação adequada, configuração e atualização de aplicativos Web para minimizar vulnerabilidades, controlar o acesso externo ao Docker e seguir princípios adicionais de Zero Trust.

A consulta de deteção a seguir pode ser usada para criar uma regra de análise no Sentinel para detetar e responder automaticamente a esse malware usando 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 encriptação distintas aos ficheiros da vítima e, em seguida, solicitando um resgate para a desencriptação dos ficheiros. Ele usa uma vulnerabilidade no software de transferência de dados MOVEit e envia e-mails de spear phishing para vários funcionários na esperança de entregar cl0p. Em seguida, ele usa ferramentas como truebot e para se mover lateralmente dentro da rede e dewmode exfiltrar dados. O ransomware encripta ficheiros usando o algoritmo de encriptação AES-256.

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

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

Consulta de deteção para: Deteções de malware de firewall para Sentinel/Detection - Consulta de regra analítica para Cl0pCl0p.json

Sunburst

Este malware tem como alvo as vítimas usando cadeias de caracteres do algoritmo de geração de domínio (DGA) para evitar a deteção e estabelecer um ataque backdoor de comando e controle. As cadeias de caracteres DGA são muitas vezes difíceis para as ferramentas de segurança identificarem os domínios usados pelo malware devido ao padrão usado na sintaxe e sua constante mudança das informações de domínio.

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

Detection Query for Malware: Firewall Malware Detections for Sunburst Sentinel/Detection - Consulta de regras analíticas para Sunburst.json