Apa itu DGA dan Bagaimana Mendeteksinya?

Algoritma Pembuatan Domain (DGA) adalah kelas algoritma yang secara berkala dan dinamis menghasilkan sejumlah besar nama domain. Biasanya, domain digunakan oleh malware dan botnet sebagai titik pertemuan untuk memfasilitasi panggilan balik ke server Command & Control milik pelaku kejahatan. DGA memungkinkan malware menghasilkan puluhan ribu domain per hari, sebagian besar tidak terdaftar. Sejumlah besar domain yang tidak terdaftar digunakan untuk menyamarkan domain yang terdaftar, sehingga botnet yang terinfeksi dapat menghindari deteksi dan pencegahan melalui sistem deteksi keamanan berbasis tanda tangan atau reputasi IP.

Keluarga malware pertama yang diketahui menggunakan DGA adalah Kraken pada tahun 2008. Kemudian pada tahun yang sama, worm Conflicker membuat taktik DGA menjadi terkenal. Bahkan setelah 10 tahun, Conflicker atau salah satu variannya masih dapat ditemukan di beberapa jaringan saat ini.

Seiring dengan makin maraknya penyebaran malware, penggunaan DGA menjadi makin meluas.

Tujuan Deteksi DGA

Karena aktivitas DGA merupakan indikator penting adanya penyusupan, maka sangat penting untuk mendeteksi aktivitas semacam itu di jaringan Anda. Ada tiga tingkat deteksi DGA, dengan setiap tingkat berikutnya berkorelasi dengan peningkatan tingkat keparahan. Deteksi pada tingkat selanjutnya lebih sulit, tetapi lebih penting.

Jika DGA terdeteksi, artinya satu atau beberapa sistem Anda telah terinfeksi oleh malware berbasis DGA dan telah menjadi botnet. Beberapa tindakan perlu diambil. Tujuan pertama adalah mengidentifikasi sistem yang terpengaruh, membersihkan atau mengkarantinanya dengan benar untuk mencegah eskalasi.

Tujuan berikutnya adalah untuk menentukan apakah nama domain DGA tertentu terdaftar. Jika domain tersebut terdaftar, maka domain tersebut telah menjadi server Command & Control aktif yang menghadirkan risiko besar bagi jaringan Anda. Sistem yang terinfeksi, yang sekarang menjadi botnet, dapat menggunakan server ini untuk menelepon ke rumah dan menerima perintah dari penyerang jahat. Oleh karena itu, komponen kedua dari sistem deteksi DGA yang efektif adalah kemampuan untuk membedakan domain terdaftar dari yang tidak terdaftar.

Misalnya, DGA dapat menghasilkan 1000 domain, dari xyzwer1, xyzwer2 …. hingga xyzwer1000. Peretas hanya perlu mendaftarkan satu domain, yaitu xyzwer500, bukan 999 domain lainnya. Jika domain yang terdaftar dan IP terkaitnya dapat diidentifikasi, informasi tersebut dapat digunakan untuk memblokir saluran komunikasi antara sistem yang menjadi target dan server Command & Control. Selain itu, intel harus disebarkan ke semua sistem pencegahan atau deteksi lain yang ada untuk menghalangi panggilan balik ke server tersebut dari sistem mana pun dalam jaringan.

Tujuan terakhir namun paling penting dari sistem deteksi DGA adalah untuk menentukan apakah panggilan balik berhasil dengan domain terdaftar dan apakah kontak telah dilakukan antara sistem yang terinfeksi dan server Command & Control. Jika aktivitas tersebut terdeteksi, beberapa kerusakan mungkin telah terjadi. Mungkin malware di jaringan Anda telah diperbarui, atau malware baru telah diinstal. Data sensitif mungkin telah dicuri.

Bagaimana cara kerja Deteksi DGA?

Aktivitas DGA dideteksi dengan menangkap dan menganalisis paket jaringan, biasanya dalam lima langkah umum.

Langkah 1 – Mendeteksi Aplikasi DNS
Deteksi dimulai melalui permintaan DNS dan/atau pesan respons. DNS merupakan protokol Internet yang mendasar, dan sebagian besar firewall memiliki kebijakan untuk mengizinkan lalu lintas DNS keluar pada port 53 yang disediakan. Namun, seorang peretas dapat memanfaatkan port 53 untuk mengirim lalu lintasnya tanpa mematuhi format pesan DNS standar. Serangan ini disebut DNS tunneling. Mesin Deep Packet Inspection (DPI) direkomendasikan untuk mengidentifikasi aplikasi DNS dengan lebih tepat.

Langkah 2 – Ekstrak Nama Domain
Setelah aplikasi jaringan diidentifikasi sebagai DNS, nama domain dalam pesan kueri dan respons DNS perlu diekstrak. Untuk mengekstrak nama domain yang tepat, konten pesan DNS perlu diurai dengan hati-hati dan mesin DPI diperlukan untuk melakukan tugas ini.

Langkah 3 – Mendeteksi DGA apa pun
Analisis perlu dilakukan pada domain yang diekstrak dari pesan DNS untuk menentukan apakah domain tersebut adalah DGA. Ini mungkin langkah yang paling rumit. Tantangannya adalah mengurangi positif palsu dan negatif palsu. Mekanisme deteksi telah berkembang secara dramatis selama 10+ tahun terakhir.
Beberapa mekanisme didasarkan pada Entropi Shannon yang relatif sederhana.
https://www.splunk.com/blog/2015/10/01/random-words-on-entropy-and-dns.html
Beberapa mekanisme didasarkan pada Ngram yang lebih canggih seperti yang disajikan oleh Fyodor dalam konferensi Hitb
Akhir-akhir ini, seiring makin populernya pembelajaran mesin, metodologinya juga telah diterapkan pada deteksi DGA. Pembelajaran mesin dapat menggabungkan fitur-fitur Ngram, Entropi Shannon, serta panjang nama domain untuk memengaruhi keputusan. Beberapa model pembelajaran mesin telah dicoba. Ada sebuah blogpost yang sangat bagus oleh Jay Jacobs pada tahun 2014 yang menjelaskan proses tersebut.
Berikut adalah detektor DGA sumber terbuka lain berdasarkan Pembelajaran Mesin dengan Rantai Markov:
https://github.com/exp0se/dga_detector

Langkah 4 – Mendeteksi Domain DGA Terdaftar
Untuk mendeteksi apakah nama domain DGA terdaftar, respons DNS perlu diperiksa. Melacak permintaan DNS saja tidak cukup – sistem deteksi harus melacak seluruh transaksi untuk memfasilitasi korelasi antar bagian informasi.

Langkah 5 – Mendeteksi Lalu Lintas ke Domain DGA Terdaftar
Ketika sebagian besar sistem deteksi DGA yang ada berfokus pada pendeteksian apakah nama domain merupakan domain DGA, sistem tersebut sering kali melupakan pertanyaan terakhir, yang paling penting: apakah ada lalu lintas yang telah dikirim ke domain DGA yang terdaftar? Untuk mendeteksi hal ini secara tepat waktu, deteksi domain DGA harus dipadukan erat dengan pemeriksaan lalu lintas jaringan. Hasilnya perlu digaungkan kembali ke mesin pemeriksaan lalu lintas segera sebelum kerusakan terjadi.

Langkah 6 – Memblokir Lalu Lintas ke Domain DGA Terdaftar
Meskipun secara teknis bukan bagian dari deteksi, jika ada integrasi dengan sistem pencegahan seperti Firewall atau IPS, aturan harus segera dimasukkan untuk memblokir semua lalu lintas ke domain terdaftar.

Sistem deteksi DGA yang hebat harus menjalankan kelima langkah tersebut. Sistem deteksi DGA yang baik juga harus mencakup Langkah 5. Sayangnya, sebagian besar sistem deteksi DGA saat ini berhenti pada langkah 6 atau langkah 3.

Kesimpulan
Karena DGA sulit dideteksi dengan sistem deteksi atau pencegahan berbasis tanda tangan atau reputasi, DGA menjadi sangat populer di kalangan pengembang malware.
Sistem deteksi cerdas diperlukan untuk melakukan deteksi. Sistem deteksi DGA yang baik harus mengekstrak informasi nama domain dari transaksi DNS, melakukan analisis menyeluruh untuk mendeteksi status DGA, memeriksa status pendaftaran domain yang dicurigai, berkorelasi dengan inspeksi lalu lintas jaringan untuk menilai tingkat penyusupan, dan idealnya terintegrasi dengan sistem pencegahan untuk menghindari penyusupan lebih lanjut. Untuk mengurangi positif palsu maupun negatif palsu, pembelajaran mesin harus dipertimbangkan secara serius. Hanya dengan kecerdasan yang komprehensif dan menyeluruh di setiap tahap, ancaman dapat benar-benar diatasi.

Publikasi

Repositori di Github oleh Andrey Abakumove berisi algoritma untuk menghasilkan nama domain, serta kamus nama domain berbahaya.

Gulir ke Atas