你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用适用于 Azure 防火墙的 Microsoft Sentinel 来检测恶意软件

恶意软件是指旨在对计算机系统、网络或设备造成损害、破坏或危害其安全性和功能的任何软件。 它包括多种类型的威胁,例如病毒、蠕虫、木马、勒索软件、间谍软件、广告软件、Rootkit 等。 恶意软件可能会产生各种负面影响,例如窃取敏感数据、加密或删除文件、显示不需要的广告、降低性能甚至控制设备。

识别并消除系统或网络中的恶意软件非常重要,你可以通过采用各种检测技术(例如基于签名的技术、基于行为的技术、基于试探法的技术或基于机器学习的技术)来实现这一点。 恶意软件检测对于保护用户的安全和隐私以及系统和网络的完整性和可用性至关重要。

默认情况下,Azure 防火墙 IDPS 功能会自动检测并拒绝恶意软件,可以防止云工作负荷被感染。 你可以通过使用预构建的检测查询和 Microsoft Sentinel 进行自动检测和响应,进一步增强此功能。 在本文中,你将了解如何使用 Azure 防火墙的预定义 KQL 检测查询来检测 Azure 防火墙日志中发现的一些常见恶意软件,例如 CoinminerCl0pSunburst

这些检测使安全团队能够在内部网络上的计算机请求连接到 Internet 上的域名或 IP 地址(这些域名或 IP 地址与检测规则查询中定义的已知入侵指标 (IOC) 关联)时收到 Sentinel 警报。 真正检测应被视为入侵指标 (IOC)。 然后,安全事件响应团队可以启动响应并根据这些检测信号实施适当的自定义补救措施。

有关如何使用以下查询来部署分析规则的说明,请参阅使用 Microsoft Sentinel 和 Azure Web 应用程序防火墙检测新威胁

常见恶意软件攻击

以下恶意软件攻击在当今的网络上很常见。

Coinminer

由于最近加密货币挖矿的激增,对高性能网络处理单元的需求不断增加。 分布式计算正在扩展,采矿软件在合法和非法环境中都得到广泛使用。

Coinminer 代表一种恶意软件,它使用不知情受害者的计算机的硬件资源进行加密货币挖掘。 无戒备用户的电脑的图形处理单元 (GPU) 被用于运行各种旨在挖掘加密货币和计算交易块哈希的脚本。

为了减轻这些威胁的风险,应在典型的入口点实施主动措施。 这包括:确保 Jupyter 软件通过正确的身份验证进行部署、配置和更新 Web 应用程序以最大程度地减少漏洞、控制对 Docker 的外部访问,以及遵循额外的零信任原则。

以下检测查询可用于在 Sentinel 中创建分析规则,以使用 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 是一种勒索软件,其勒索方式是将独特的加密密钥应用于受害者的文件,然后要求用户支付赎金来解密文件。 它利用数据传输软件 MOVEit 中的漏洞向众多员工发送鱼叉式网络钓鱼电子邮件,希望传递 cl0p。 然后,它使用 truebotdewmode 等工具在网络内横向移动并窃取数据。 该勒索软件使用 AES-256 加密算法对文件进行加密。

Cl0p 漏洞包括 CVE-2023-35036、CVE-2023-34362 和 CVE-2023-35708。 2023 年 6 月,FBI 和 CISA 发布了有关此漏洞的新闻稿。 美国中西部的几所大学和政府组织都受到了 cl0p 勒索软件的影响。 航空公司、电视网络和英国零售商店是 cl0p 勒索软件犯罪团伙的最新受害者。

以下检测查询可用于在 Sentinel 中创建分析规则,以使用 Azure 防火墙日志自动检测并响应此恶意软件。

Cl0p 的检测查询:Sentinel/Detection 的防火墙恶意软件检测 - Cl0p.json 的分析规则查询

Sunburst

该恶意软件通过使用域生成算法 (DGA) 字符串来逃避检测并开展命令和控制后门攻击,以受害者为目标。 由于语法中使用的模式以及域信息的不断变化,安全工具通常很难跨过 DGA 字符串这道关卡来识别恶意软件所使用的域。

以下检测查询可用于在 Sentinel 中创建分析规则,以使用 Azure 防火墙日志自动检测并响应此恶意软件。

Sunburst 恶意软件的检测查询:Sentinel/Detection 的防火墙恶意软件检测 - Sunburst.json 的分析规则查询