Mendeteksi malware dengan Microsoft Sentinel untuk Azure Firewall

Malware adalah perangkat lunak apa pun yang dirancang untuk menyebabkan kerusakan, gangguan, atau membahayakan keamanan dan fungsionalitas sistem komputer, jaringan, atau perangkat. Ini termasuk berbagai jenis ancaman, seperti virus, cacing, trojan, ransomware, spyware, adware, rootkit, dan banyak lagi. Malware dapat memiliki berbagai dampak negatif, seperti mencuri data sensitif, mengenkripsi, atau menghapus file, menampilkan iklan yang tidak diinginkan, memperlambat performa, atau bahkan mengendalikan perangkat.

Penting untuk mengidentifikasi dan menghilangkan malware dari sistem atau jaringan, yang dapat Anda lakukan dengan menggunakan berbagai teknik deteksi, seperti teknik berbasis tanda tangan, berbasis perilaku, berbasis heuristik, atau berbasis pembelajaran mesin. Deteksi malware sangat penting untuk melindungi keamanan dan privasi pengguna, serta integritas dan ketersediaan sistem dan jaringan.

Fitur IDPS Azure Firewall secara otomatis mendeteksi dan menolak malware secara default dan dapat mencegah beban kerja cloud terinfeksi. Anda dapat lebih meningkatkan kemampuan ini dengan menggunakan deteksi dan respons otomatis menggunakan kueri deteksi bawaan dan Microsoft Sentinel. Dalam artikel ini, Anda menjelajahi cara mendeteksi beberapa malware umum yang ditemukan di log Azure Firewall seperti Coinminer, Cl0p dan Sunburst menggunakan kueri deteksi KQL yang telah ditentukan sebelumnya untuk Azure Firewall.

Deteksi ini memungkinkan tim keamanan menerima pemberitahuan Sentinel ketika komputer pada koneksi permintaan jaringan internal ke nama domain atau alamat IP di Internet yang ditautkan ke Indikator Kompromi (IOC) yang diketahui, seperti yang didefinisikan dalam kueri aturan deteksi. Deteksi positif sejati harus dianggap sebagai Indikator Kompromi (IOC). Kemudian, tim respons insiden keamanan dapat memulai respons dan menerapkan tindakan remediasi kustom yang sesuai berdasarkan sinyal deteksi ini.

Untuk instruksi untuk menyebarkan aturan analitik menggunakan kueri berikut, lihat Mendeteksi ancaman baru menggunakan Microsoft Azure Sentinel dengan Azure Web Application Firewall.

Eksploitasi malware umum

Eksploitasi malware berikut umum terjadi pada jaringan saat ini.

Coinminer

Karena lonjakan penambangan cryptocurrency baru-baru ini, ada peningkatan kebutuhan untuk unit pemrosesan jaringan berkinerja tinggi. Komputasi terdistribusi berkembang dan ketersediaan perangkat lunak penambangan yang luas, baik dalam konteks hukum maupun ilegal.

Coinminer mewakili jenis malware yang menggunakan sumber daya perangkat keras komputer korban tanpa disadari untuk penambangan cryptocurrency. Unit pemrosesan grafis (GPU) dari PC pengguna yang tidak terduga digunakan untuk menjalankan berbagai skrip yang ditujukan untuk menambang cryptocurrency dan menghitung hash blok transaksi.

Untuk mengurangi risiko ancaman ini, langkah-langkah proaktif harus diterapkan di titik masuk yang khas. Ini termasuk memastikan bahwa perangkat lunak Jupyter disebarkan dengan autentikasi yang tepat, mengonfigurasi, dan memperbarui aplikasi web untuk meminimalkan kerentanan, mengontrol akses eksternal ke Docker, dan mengikuti prinsip Zero Trust tambahan.

Kueri deteksi berikut dapat digunakan untuk membuat aturan analitik di Sentinel untuk mendeteksi dan merespons malware ini secara otomatis menggunakan log Azure Firewall.

// 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 adalah ransomware yang beroperasi dengan menerapkan kunci enkripsi khusus ke file korban dan kemudian meminta tebusan untuk dekripsi file. Ini menggunakan kerentanan dalam perangkat lunak transfer data MOVEit dan mengirim email phishing tombak ke banyak karyawan dengan harapan untuk mengirimkan cl0p. Kemudian menggunakan alat seperti truebot dan dewmode untuk bergerak secara lateral dalam jaringan dan menyelundupkan data. Ransomware mengenkripsi file menggunakan algoritma enkripsi AES-256.

Cl0p kerentanan termasuk CVE-2023-35036, CVE-2023-34362 dan CVE-2023-35708. Pada Juni 2023, FBI dan CISA menerbitkan siaran pers tentang eksploitasi ini. Efek ransomware cl0p terdaftar di beberapa universitas di Midwest AS dan organisasi pemerintah. Maskapai penerbangan, jaringan TV, dan toko ritel berbasis di Inggris adalah korban terbaru dari cl0p geng ransomware.

Kueri deteksi berikut dapat digunakan untuk membuat aturan analitik di Sentinel untuk mendeteksi dan merespons malware ini secara otomatis menggunakan log Azure Firewall.

Kueri Deteksi untuk Cl0p: Deteksi Malware Firewall untuk Sentinel/Deteksi - Kueri aturan analitik untuk Cl0p.json

Sunburst

Malware ini menargetkan korban dengan menggunakan string algoritma pembuatan domain (DGA) untuk menghindari deteksi dan membuat serangan backdoor perintah dan kontrol. String DGA seringkali sulit bagi alat keamanan untuk mengidentifikasi domain yang digunakan oleh malware karena pola yang digunakan dalam sintaksis dan perubahan konstan informasi domain.

Kueri deteksi berikut dapat digunakan untuk membuat aturan analitik di Sentinel untuk mendeteksi dan merespons malware ini secara otomatis menggunakan log Azure Firewall.

Kueri Deteksi untuk Sunburst Malware: Deteksi Malware Firewall untuk Sentinel/Deteksi - Kueri aturan analitik untuk Sunburst.json