Anda di halaman 1dari 2

Penyerangan dengan Menggunakan DNS Poisoning

Sangat menarik untuk di pelajari, itu kesan pertama penulis ketika membaca beberapa artikel
tentang metode penyerangan ke nameserver dengan cara poisoning (memberikan racun) kepada
nameserver yang memegang otoriti terhadap sebuah domain. Bagaimana cara memberikan
racun kepada nameserver? Dan bagaimana dampaknya? Dalam artikel kali ini saya akan
mencoba membahas materi ini dengan beberapa visualisasi.

Sebelum kita masuk dalam inti permasalahan saya akan jelaskan terlebih dahulu bagaimana
proses query terjadi ketika Anda melakukan request terhadap sebuah domain. Setidaknya ada
tiga nameserver yang akan di kontak ketika Anda melakukan request domain yang Anda
inginkan. Ketiga nameserver itu adalah:

ISP Nameserver

Root nameserver

Authoritative nameserver

Misal dalam contoh begini, ketika Anda menggunakan program nslookup untuk mencari ip dari
domain google.com maka yang akan terjadi adalah program nslookup akan mengirimkan query
ke nameserver ISP untuk meminta nomor ip dari domain google.com. Selanjutnya nameserver
ISP akan meminta petunjuk kepada nameserver induk (root nameserver) untuk mencari di mana
lokasi nameserver yang memegang otoriti domain google.com. Ketika sudah menemukan
nameserver pemegang otoriti domain tersebut, kemudian root nameserver akan membalas query
nameserver ISP dengan mengirimkan nama nameserver pemegang otoriti domain. Di sini
nameserver ISP akan mengirimkan query ke nameserver pemegang otoriti domain dan
nameserver pemegang otoriti akan mengirimkan nomor ip dari domain google.com ke
nameserver ISP. Dan kemudian nameserver ISP akan mengiriman nomor ip ke program
nslookup.

Okee selanjutnya bagaimana dalam konteks penyerangan terhadap nameserver? Tentu


sebelumya kita akan pelajari dulu kelemahan dari program DNS server, misal kita ambil contoh
BIND. Di dalam kerjanya, BIND meng-generate multi query untuk setiap domain yang sama
dalam waktu yang sama juga dan BIND ketika menerima query sama sekali tidak melakukan
pengecekan terhadap IP dari peminta domain tersebut tapi hanya menggunakan transaksi IDs
untuk mengautentifikasi peminta domain kecuali ketika dia telah menemukan IP domain yang di
cari dia akan mengirimkan informasi tersebut ke IP tujuan (peminta IP domain). Artinya dengan
melihat kelemahan ini kita bisa melakukan banyak query ke nameserver dalam satu waktu
sekaligus dengan menggunakan transaksi IDs yang di random agar BIND membentuk multi
query. Dan bahayanya adalah dengan kelemahan BIND ini kita bisa mengirimkan sebuah fake
information (informasi palsu) ke nameserver tentang informasi dari sebuah domain yang
mengakibatkan nameserver salah memberikan alamat IP dari domain tersebut.

Kesimpulannya seorang attacker bisa membelokan alamat dari sebuah domain dengan
menggunakan metode DNS Poisoning dan coba Anda bayangkan ketika nameserver di berikan
fake information di nameserver yang akibatnya nameserver akan menerjemahkan bahwa domain
itu adalah milik attacker/penyerang. Penyerang itu sendiri telah menyediakan program spoofing
juga. Akibatnya bisa Anda perkirakan sendiri, setiap informasi yang di kirim ke domain tersebut
akan masuk ke alamat attacker dan program spoofing yang terpasang telah membantu attacker
untuk mendapatkan informasi penting seperti login, password bahkan mungkin data-data rahasia.

Apakah semudah itu nameserver bisa di manipulasi? Jawabannya tentu tidak, setidaknya ada
dua model penyerangan yang bisa dilakukan. Yang pertama adalah dengan menggunakan
conventional spoofing, yang kedua adalah dengan menggunkan metode birthday attack (artikel
Joe Stewart, “DNS Cache Poisoning”). Lalu apa perbedaan dari kedua metode di atas?
Perbedaannya terletak pada jumlah query yang di kirimkan ke nameserver. Conventional
spoofing dalam melakukan penyerangan hanya mengirimkan satu informasi query ke nameserver
sedangkan Birthday Attack melakukan penyerangan dengan mengirimkan beberapa ribu query
agar nameserver termanipulasi ketika menjawab query tersebut dan nameserver akan
mengirimkan informasi yang salah ke nameserver atau user yang merequest domain tersebut.

Coba Anda bayangkan, di sini attacker sebelumnya telah mengirimkan ribuan query dari domain
yang sama ke victim nameserver (1) kemudian attacker juga mengirimkan spoofing dengan
membuat replies palsu ke nameserver target (2). Yang terjadi ketika ketika ada user yang
merequest domain tersebut ke nameserver korban(3), victim nameserver akan me-reply dengan
alamat yang salah karena telah di poisoning oleh penyerang (4). Dalam kondisi seperti si attacker
telah berhasil menghijacking owner dari domain tersebut dan memutuskan trafik ke situs
sebenarnya karena informasi victim domain telah di ganti dengan IP lain.

Tingkat probabilitas (keberhasilan) antara metode spoofing cara konvensional dan birthday attack
kemungkinan untuk berhasil lebih banyak di miliki oleh birthday attack tentu ini karena metode
kedua mengirimkan banyak query untuk domain yang sama.

Dari informasi yang penulis baca, metode poisoning masih bisa di lakukan di BIND 8 dan 9
walaupun mungkin untuk BIND versi 9 tingkat probabilitasnya hanya 20 % dari 5000 paket/query
yang di kirimkan ke victim nameserver.

Bagaimana solusi untuk mengatasi DNS poisoning?

Pertama tentu penulis menyarankan kepada Anda untuk mengganti BIND Anda ke versi 9.x
(bukan 9) yang sudah mampu menangani penyerangan dengan metode ini. Atau alternatif lain
Anda bisa mencoba DJBDNS buatan D.J. Bernstein (pembuat program qmail). Cara kedua
adalah dengan mendisable recursive query ke nameserver dengan membuat split DNS yaitu
membuat dua nameserver. Nameserver utama di gunakan untuk menangani domain name dari
public domain. sedangkan nameserver kedua di yang berada di internal network bertugas
sebagai cache nameserver yang bertugas menjawab query dari user yang merequest domain
tersebut sehingga kalau pun di serang dengan ribuan query hal ini tidak akan meracuni informasi
public domain karena sudah di tangani oleh nameserver pertama yang di lengkapi juga dengan
firewall.

Di dalam konfig BIND memang ada option untuk mengatur allow-recursion untuk membatasi
ip/address yang dapat mengakses nameserver, tapi perlu di ingat bahwa seorang penyerang pun
bisa dengan mudah mengetahui ip mana saja yang di ijinkan untuk mengirimkan query ke
nameserver. Dengan merubah source IP di query-command dengan IP yang di ijinkan untuk
mengakses nameserver, penyerangan model ini akan tetap dapat di langsungkan.

Anda mungkin juga menyukai