Paulus Artha Sasmita 12111081 22/TI 11-6-2015
Metode DNS Spoofing
Metode-Metode DNS Attack Serangan DNS Spoofing/Cache Poisoning DNS spoofing atau cache poisoning adalah teknik untuk memasukkan atau meracuni cache pada suatu server DNS dengan data atau informasi yang salah. Metode ini mengeksploitasi server yang vulnerable untuk memodifikasi data yang disimpannya yang nantinya akan digunakan oleh sistem yang menjadi target. Jika sebuah server DNS terkena DNS spoofing atau cache poisoning maka data atau informasi yang diberikan server DNS tersebut tidak valid lagi karena telah di-spoof atau diracuni oleh sang penyerang. Misal: server DNS dari target.com terkena DNS spoofing maka sang penyerang dapat memasukkan data atau informasi yang salah pada server DNS tersebut sehingga dia dapat menggunakannya untuk melakukan beberapa hal yang berhubungan dengan record DNS pada target.com: o
A record Jika record ini teracuni maka sang penyerang mungkin akan memberikan pemetaan dari nama host ke alamat IP yang salah sehingga server DNS jadi tidak berfungsi sebagaimana mestinya. Sang penyerang dapat pula membuat website yang sama dengan website aslinya. Kemudian pemetaan nama ke alamat IP diarahkan ke website yang telah dia buat tadi. misal website bank atau situs ecommerce, sang penyerang dapat memanen username, password, nomor kartu kredit, dan informasi para pengguna layanan website itu. Contoh:
Setiap komputer pada organisasi yang mempunyai otoritas terhadap domain target.com akan bertanya pada server 'ns1.target.com' setiap kali akan melakukan akses Internet. Setiap kali server ns1.target.com menerima pertanyaan di luar domain 'target.com', server tersebut akan bertanya pada pihak otoritas domain. Setelah mendapatkan jawaban yang dibutuhkan, jawaban tersebut akan disimpan dalam cache, sehingga jika ada pertanyaan yang sama, server 'ns1.target.com' dapat langsung memberikan jawaban yang benar. Kemudian seorang penyerang menginginkan untuk mengelabui cachenya untuk mempercayai bahwa www.klikbca.com memiliki alamat IP 222.100.100.1, penyerang ini menginginkan semua permintaan (query) ke cache-nya untuk ke alamat www.klikbca.com terarah ke alamat 222.100.100.1 yang mana alamat IP ini adalah alamat IP website yang penyerang buat, sedangkan alamat IP asli server DNS dari klikbca.com adalah 222.224.104.11. Bila serangan ini tidak berhasil atau didapatkan alamat yang tepat dari www.klikbca.com, maka untuk mencobanya lagi harus menunggu TTL selesai dalam cache. Kejadian ini sangat mungkin terjadi, apabila domain dari klikbca.com memiliki lebih dari satu server DNS dan penyerang tidak mengetahui server mana yang menjadi target query. Patut dicatat, bahwa dalam serangan ini, data asli server DNS tidak mengalami perubahan sedikitpun. Perubahan data hanya terjadi pada cache server DNS tersebut. o
MX record Dengan memasukkan data mx record yang tidak valid, sang penyerang bisa mengarahkan semua lalu lintas email ke server milik sang penyerang dan tetap mem-forward/meneruskan email untuk server tujuan.
Spoofing data mx record pada server DNS Penyerang bisa juga menggunakan permintaan rekursif (recursive query) suatu host/domain ke server DNS target untuk meracuni cache server DNS. Server tersebut akan mencari name-server yang bertanggung jawab terhadap host dan akan mengirimkan query ke name-server tersebut untuk meminta record mengenai
host/domain
yang
diminta.
Pada saat bersamaan dengan pemberian respon oleh name-server yang dimintai untuk melakukan resolving, dimasukkan juga data/informasi tentang suatu pemetaan host/domain yang salah/palsu. Sehingga resolver/klien lain yang meminta resolving host tersebut akan mendapatkan respon yang salah/palsu juga.
Penangganan DNS Attack Cara yang paling efektif dalam menghadapi serangan yang merubah DNS server/DNS spoofing adalah dengan melakukan otentikasi host yang akan kita hubungi. Model otentikasi yang banyak digunakan saat ini adalah dengan mempergunakan digital certificate. Dengan digital certificate, seseorang dapat dengan yakin bahwa host yang dia akses adalah host yang sebenarnya. Cara lainnya yaitu program DNS mempunyai pilihan untuk mematikan atau menonaktifkan proses caching. Jika proses caching tidak diaktifkan, menipu balasan kepada sebuah server adalah sia-sia. Program yang paling terbaru telah mempunyai patch untuk melawan poisoning. Saat ini, paket-paket yang diterima dengan cacatan authoritative / berkuasa diverifikasi dahulu sebelum memasukannya ke dalam cache.
Berikut ini adalah rekomendasi yang relatif aman pada BIND: 1. Penggunaan versi BIND terbaru. Sebagian besar versi BIND lama mempunyai bug dan dapat dieksploitasi sehingga akan menimbulkan serangan. Dengan menggunakan versi terbaru diharapkan dapat meminimalkan adanya bug dan eksploitasi yang bisa dilakukan terhadap name-server karena bug pada versi sebelumnya biasanya
sudah diperbaiki pada versi yang lebih baru. Jangan lupa ketika meng-upgrade baca perubahan yang ada (release notes), karena pada beberapa versi terbaru ada perubahan konfigurasi untuk mengaktifkan fitur baru dan kinerjanya.
2. Mengurangi kesalahan pada satu titik Ada beberapa cara: o
Menyediakan server DNS lebih dari satu yang otoritatif pada tiap zone (berbeda subnet, berbeda router, berbeda koneksi).
o
Menyediakan master name-server cadangan.
o
Menyediakan name-server cadangan untuk resolution.
3. Pembatasan zone-transfer Melakukan pembatasan zone-transfer hanya kepada secondary name-server atau mesin yang benar-benar mempunyai authority terhadap informasi atau data pada zone yang bersangkutan. Pada /etc/named.conf tambahkan baris allow transfer { [ip-atau-jaringan-yang-boleh-melakukan-zone-transfer]}; di bagian options atau zone. Selain itu bisa juga dengan menggunakan metode Transaction SIGnature (TSIG). Zone-transfer tidak dapat dilakukan oleh name-server yang meminta tanpa key (kode TSIG) yang sama pada primary-master name-server. 4. Membatasi dynamic update Dynamic update harus dibatasi pada server DNS kita dari permintaan update informasi host/domain. Pada /etc/named.conf tambahkan baris allow update { [ip-atau-jaringan-yang-boleh-melakukan-update]}; di bagian options atau zone. Contoh: Dynamic update tidak dapat dilakukan oleh name-server yang meminta tanpa key (kode TSIG) yang sama pada primary-master name-server.
5. Pembatasan query Membatasi query atau permintaan terhadap data atau informasi yang ada dalam database-cache atau berkas zone server DNS. Pada /etc/named.conf tambahkan baris allow query { [ip-atau-jaringan-yang-boleh-melakukan-query]}; di bagian options atau zone.
6. Membatasi permintaan rekursif Dengan pembatasan permintaan rekursif pada server DNS maka dapat meminimalkan ancaman DNS spoofing/cache poisoning. Permintaan rekursif dapat dibatasi dengan options allow-recursion. Jika ingin mematikan fasilitas permintaan rekursif dapat menggunakan options recursion no. 7. Membagi fungsi dua name-server. Pembagian fungsi dari name-server yaitu: o
Fungsi untuk menerima dan menjawab query akan menghindari adanya kelebihan beban pada server DNS kita terutama permintaan resolving yang banyak.
o
Fungsi untuk name-server jaringan internal dan eksternal untuk menghindari informasi atau data dimanfaatkan oleh orang yang tidak bertanggung jawab.
Ketika kita mencoba membuat dua server DNS, kita membutuhkan dua komputer server (perangkat keras). Dengan BIND versi 8 ke atas kita dapat membuat dua name-server dalam satu komputer sehingga kita dapat membagi name-server untuk menerima dan menjawab query atau permintaan resolving nama domain. 8. Menolak permintaan versi BIND Permintaan versi perangkat lunak BIND biasanya dilakukan penyerang untuk mengetahui versi dari BIND dan akan membandingkan dengan daftar versi yang mempunyai kelemahan. Selanjutnya si penyerang akan menyerang dengan serangan atau eksploitasi yang spesifik pada versi BIND tertentu. Kita harus
menolak permintaan versi dan mencatat permintaan tersebut, yaitu dengan mengedit /etc/named.conf dan zone.
9. Menjalankan named sebagai pengguna biasa atau non-root. Penggunaan account root untuk menjalankan named adalah tindakan yang penuh resiko. Orang lain atau penyusup dapat mengekploitasi atau memanfaatkan kelemahan layanan yang dijalankan oleh root sehingga dia bisa mendapatkan hak root dengan eksploitasinya. Tambahkan pengguna baru misal: named, set direktori kerja /var/named/, pastikan pengguna named hanya dapat menjalankan program name-server named saja. Pastikan pengguna named mempunyai hak akses pada direktori kerja named (/var/named/), berkas zone dan juga hak untuk menulis pid dari named.
10. Konfigurasi antarmuka dimana named mendengarkan permintaan resolving host/domain. Dengan mengkonfigurasi antarmuka jaringan (misal kartu jaringan eth0) untuk mendengarkan atau listening pada port 53 maka dapat membatasi jaringan mana yang dapat mengirimkan query atau permintaan resolving nama domain terhadap server DNS.
11. Kontrol akses atau Access Control Lists (ACL) ini dapat membatasi layanan DNS kepada host/jaringan yang dipercaya yaitu dengan memasukkan data host dan jaringan tersebut ke dalam berkas konfigurasi. Data atau informasi databasecache server DNS hanya dapat diakses oleh host dan jaringan yang terpercaya sehingga mempersempit kesempatan seorang penyusup untuk melakukan pengambilan data host dan jaringan pada suatu perusahaan. Contoh: Deklarasi ACL dengan nama "dalam" untuk jaringan internal.
12. Chroot Jail Teknik ini akan menghindari named digunakan oleh penyusup untuk melakukan modifikasi filesystem serta menghindari adanya buffer overflow.
Secara umum langkah menjalankan named dengan lingkungan chroot() yaitu: Pilih direktori kerja named misal /var/named/, jika anda menginginkan direktori lain bisa anda buat sendiri. Salin berkas-berkas yang penting untuk menjalankan named: named (binary), named.conf, zone. Jalankan named dengan option -t.
13. Mematikan layanan yang tidak perlu dan mem-filter lalu lintas data. Layanan-layanan yang tidak digunakan pada host yang menjalankan name-server sebaiknya dimatikan selain itu juga perlu dilakukan pem-filteran-an lalu lintas data. Lalu lintas atau permintaan yang menuju port 53/tcp dan port 53/udp diijinkan tetapi tetap di-filter dan dibatasi melalui konfigurasi name-server. Layanan lain pada host yang masih digunakan dapat di-filter enggunakan firewall.
14. Memonitor server DNS dan berita keamanan BIND. Seiring dengan waktu keamanan menjadi ancaman bagi sistem kita. Untuk memperkecil atau mempersempit terjadinya pemanfaatan kelemahan sistem kita terutama server DNS maka kita harus tetap memonitor server (monitor berkas catatan/log sistem) dan mengikuti informasi melalui mailing-list keamanan BIND ataupun di website keamanan/sekuriti. Di milis dan website tersebut biasanya tersedia informasi kelemahan-kelemahan yang terjadi pada suatu perangkat lunak ataupun sistem dan cara mencegahnya.
Kesimpulan
Kesimpulan dari penelitian ini adalah BIND (Barkeley Internet Name Domain) sebagai implementasi dari protokol Domain Name System yang paling umum dan banyak digunakan mempunyai standar yang memiliki kelemahan-kelemahan sehingga menyebabkan kerawanan (vulnerabilities) yang menjadi subjek penyerangan. Lakukan pencegahan DNS attack dengan cara konfigurasi dan implementasi yang aman pada server DNS, salah satunya yaitu dengan menerapkan digital certificate untuk meyakinkan user akan keaslian host yang diaksesnya.
DAFTAR PUSTAKA
http://budi.insan.co.id/courses/ec5010/projects/sandi-report.pdf http://opensource.telkomspeedy.com/wiki/index.php/Instalasi_BIND http://www.layangan.com/asfik/writings/dns-bind.html http://student.eepisits.edu/~relief/prakJarkom/dns/DNS%20System%20OKk.ppt