Share via


Détecter des programmes malveillants avec Microsoft Sentinel pour le pare-feu Azure

Les programmes malveillants sont tous les logiciels conçus pour causer des dommages, des interruptions ou compromettre la sécurité et les fonctionnalités des systèmes informatiques, des réseaux ou des appareils. Cela comprend divers types de menaces, comme les virus, les vers informatiques, les chevaux de Troie, les rançongiciels, les espiogiciels, les logiciels de publicité, les rootkits, etc. Les programmes malveillants peuvent avoir différents impacts négatifs, tels que le vol de données sensibles, le chiffrement ou la suppression de fichiers, l’affichage de publicités indésirables, le ralentissement des performances ou même la prise de contrôle de l’appareil.

Il est important d’identifier et d’éliminer les programmes malveillants d’un système ou d’un réseau, ce que vous pouvez faire en utilisant différentes techniques de détection, telles que les techniques basées sur des signatures, basées sur un comportement, basées sur des heuristiques ou basées sur le Machine Learning. La détection des programmes malveillants est essentielle pour protéger la sécurité et la confidentialité des utilisateurs, ainsi que l’intégrité et la disponibilité des systèmes et réseaux.

La fonctionnalité IDPS du pare-feu Azure détecte et refuse automatiquement les programmes malveillants par défaut et peut empêcher les charges de travail cloud d’être infectées. Vous pouvez améliorer cette fonctionnalité en utilisant la détection et la réponse automatisées à l’aide de requêtes de détection prédéfinies et de Microsoft Sentinel. Dans cet article, vous allez découvrir comment détecter certains programmes malveillants courants trouvés dans les journaux du pare-feu Azure, tels que Coinminer, Cl0p et Sunburst, en utilisant des requêtes de détection KQL prédéfinies pour le pare-feu Azure.

Ces détections permettent aux équipes de sécurité de recevoir des alertes Sentinel lorsque les ordinateurs du réseau interne demande des connexions aux noms de domaine ou aux adresses IP sur Internet liées aux indicateurs de compromission (IOC) connus, comme défini dans la requête de règle de détection. Les détections vraies positives doivent être considérées comme des indicateurs de compromission (IOC). Ensuite, les équipes de réponse aux incidents de sécurité peuvent lancer une réponse et implémenter des actions de correction personnalisées appropriées en fonction de ces signaux de détection.

Pour obtenir des instructions sur le déploiement des règles analytiques à l’aide des requêtes suivantes, consultez Détecter les nouvelles menaces à l’aide de Microsoft Sentinel avec Azure Web Application Firewall.

Attaques courantes de programmes malveillants

Les attaques de programmes malveillants suivantes sont courantes sur les réseaux actuels.

Coinminer

En raison de l’augmentation récente de l’extraction de crypto-monnaie, il y a un besoin croissant d’unités de traitement réseau hautes performances. L’informatique distribuée s’étend et les logiciels d’extraction sont largement disponibles, que ce soit dans des contextes légaux ou illégaux.

Coinminer représente un type de programme malveillant qui utilise les ressources matérielles de l’ordinateur d’une victime à son insu pour l’extraction de crypto-monnaie. L’unité de traitement graphique (GPU) du PC de l’utilisateur qui ne se doute de rien est utilisée pour exécuter différents scripts destinés à l’extraction de crypto-monnaies et au calcul des hachages de bloc de transaction.

Pour atténuer le risque de ces menaces, des mesures proactives doivent être mises en œuvre aux points d’entrée classiques. Cela inclut la garantie que le logiciel Jupyter est déployé avec l’authentification, la configuration et la mise à jour des applications web appropriées pour réduire les vulnérabilités, contrôler l’accès externe à Docker et suivre des principes de Confiance Zéro supplémentaires.

La requête de détection suivante peut être utilisée pour créer une règle d’analyse dans Sentinel pour détecter et répondre automatiquement à ce programme malveillant à l’aide des journaux du pare-feu 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 est un rançongiciel qui opère en appliquant des clés de chiffrement distinctes aux fichiers de la victime, puis en demandant une rançon pour le déchiffrement des fichiers. Il utilise une vulnérabilité dans le logiciel de transfert de données MOVEit et envoie des e-mails de harponnage à de nombreux employés dans l’espoir d’envoyer cl0p. Ensuite, il utilise des outils comme truebot et dewmode pour se déplacer latéralement dans le réseau et exfiltrer les données. Le rançongiciel chiffre les fichiers à l’aide de l’algorithme de chiffrement AES-256.

Les vulnérabilités Cl0p incluent CVE-2023-35036, CVE-2023-34362 et CVE-2023-35708. En juin 2023, le FBI et la CISA ont publié un communiqué de presse sur cette exploitation. Les effets des rançongiciels cl0p sont enregistrés dans plusieurs universités du Midwest et des organisations gouvernementales des États-Unis. Les compagnies aériennes, les réseaux de télévision et les magasins de détail basés au Royaume-Uni sont les dernières victimes du gang des rançongiciels cl0p.

La requête de détection suivante peut être utilisée pour créer une règle d’analyse dans Sentinel pour détecter et répondre automatiquement à ce programme malveillant à l’aide des journaux du pare-feu Azure.

Requête de détection pour Cl0p : Détections de programmes malveillants par le pare-feu pour Sentinel/Détection - Requête de règle d’analyse pour Cl0p.json

Sunburst

Ce programme malveillant cible les victimes à l’aide de chaînes d’algorithme de génération de domaine (DGA) pour échapper à la détection et établir une attaque de porte dérobée de commande et de contrôle. Il est souvent difficile pour les outils de sécurité d’identifier les domaines utilisés par les programmes malveillants en raison du modèle utilisé dans la syntaxe et du changement constant des informations relatives au domaine.

La requête de détection suivante peut être utilisée pour créer une règle d’analyse dans Sentinel pour détecter et répondre automatiquement à ce programme malveillant à l’aide des journaux du pare-feu Azure.

Requête de détection pour les programmes malveillants Sunburst : Détections de programmes malveillants par le pare-feu pour Sentinel/Détection - Requête de règle d’analyse pour Sunburst.json