Поделиться через


Обнаружение вредоносных программ с помощью Microsoft Sentinel для Брандмауэр Azure

Вредоносные программы — это любое программное обеспечение, которое предназначено для причинения ущерба, сбоя или компрометации безопасности и функциональности компьютерных систем, сетей или устройств. Он включает различные типы угроз, таких как вирусы, черви, трояны, программы-шантажисты, шпионские программы, рекламные программы, коркиты и многое другое. Вредоносные программы могут иметь различные негативные последствия, такие как кража конфиденциальных данных, шифрование или удаление файлов, отображение нежелательных объявлений, замедление производительности или даже контроль над устройством.

Важно определить и устранить вредоносные программы из системы или сети, которые можно сделать, используя различные методы обнаружения, такие как сигнатурные, основанные на поведении, эвристические методы или методы на основе машинного обучения. Обнаружение вредоносных программ жизненно важно для защиты безопасности и конфиденциальности пользователей, а также целостности и доступности систем и сетей.

Функция Брандмауэр Azure IDPS автоматически обнаруживает и запрещает вредоносные программы по умолчанию и может предотвратить заражение облачных рабочих нагрузок. Вы можете расширить эту возможность, используя автоматизированное обнаружение и ответ с помощью предварительно созданных запросов обнаружения и Microsoft Sentinel. В этой статье вы узнаете, как обнаружить некоторые распространенные вредоносные программы, обнаруженные в Брандмауэр Azure журналах, таких как Coinminer, Cl0p и Sunburst использовать предопределенные запросы на обнаружение KQL для Брандмауэр Azure.

Эти обнаружения позволяют группам безопасности получать оповещения Sentinel, когда компьютеры на внутренних подключениях к доменным именам или IP-адресам в Интернете, связанным с известными индикаторами компрометации (IOCs), как определено в запросе правила обнаружения. Истинные положительные обнаружения должны рассматриваться как индикаторы компрометации (IOCs). Затем группы реагирования на инциденты безопасности могут инициировать ответ и реализовать соответствующие пользовательские действия по исправлению на основе этих сигналов обнаружения.

Инструкции по развертыванию правил аналитики с помощью следующих запросов см. в статье "Обнаружение новых угроз с помощью Microsoft Sentinel с помощью Azure Брандмауэр веб-приложений".

Распространенные эксплойты вредоносных программ

Следующие эксплойты вредоносных программ распространены в современных сетях.

Coinminer

Из-за недавнего всплеска добычи криптовалют, существует растущая потребность в высокопроизводительных сетевых единицах обработки. Распределенные вычисления расширяются и широко распространена доступность программного обеспечения интеллектуального анализа данных как в юридических, так и в незаконных контекстах.

Coinminer представляет тип вредоносных программ, которые используют аппаратные ресурсы компьютера невоимой жертвы для добычи криптовалют. Единица обработки графики (GPU) компьютера пользователя, не подозревающего пользователя, используется для выполнения различных скриптов, направленных на добычу криптовалют и вычисление хэшей блоков транзакций.

Чтобы снизить риск этих угроз, следует реализовать упреждающие меры на типичных точках входа. Это включает в себя обеспечение развертывания программного обеспечения Jupyter с правильной проверкой подлинности, настройкой и обновлением веб-приложений для минимизации уязвимостей, контроля внешнего доступа к 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. Затем он использует такие инструменты, как truebot и dewmode для бокового перемещения в сети и эксфильтрации данных. Программа-шантажисты шифрует файлы с помощью алгоритма шифрования AES-256.

Cl0p уязвимости включают CVE-2023-35036, CVE-2023-34362 и CVE-2023-35708. В июне 2023 года ФБР и CISA опубликовали пресс-релиз об этой эксплуатации. Эффекты cl0p программ-шантажистов регистрируются в нескольких университетах в США Midwest и государственных организациях. Авиакомпании, телевизионные сети и британские розничные магазины являются последними жертвами cl0p банды программ-шантажистов.

Следующий запрос обнаружения можно использовать для создания правила аналитики в Sentinel для автоматического обнаружения и реагирования на эту вредоносную программу с помощью журналов Брандмауэр Azure.

Запрос обнаружения: обнаружение вредоносных программ брандмауэра для Sentinel/Detection — запрос Cl0pправила аналитики для Cl0p.json

Sunburst

Эта вредоносная программа предназначена для жертв с помощью строк создания домена (DGA), чтобы избежать обнаружения и установления атаки серверной части команды и управления. Строки DGA часто трудно определить домены, используемые вредоносными программами, из-за шаблона, используемого в синтаксисе, и их постоянного изменения сведений о домене.

Следующий запрос обнаружения можно использовать для создания правила аналитики в Sentinel для автоматического обнаружения и реагирования на эту вредоносную программу с помощью журналов Брандмауэр Azure.

Запрос обнаружения вредоносных Sunburst программ: обнаружение вредоносных программ брандмауэра для Sentinel/Detection — запрос правила аналитики для Sunburst.json