Langsung ke konten utama

Mengamankan DNS Server

DNS yang merupakan tulang punggung jaringan terutama Internet sering sekali dijadikan target serangan oleh para hacker/cracker. Ketika seseorang sudah berhasil menguasai server DNS dan dapat mengontrolnya maka akibatnya akan sangat luas pada jaringan dan memungkinkan untuk mendapatkan akses yang lebih besar.

Beberapa serangan dan issue keamanan yang terjadi pada server DNS adalah:


  • Penyerangan secara langsung pada perangkat lunak DNS sesuai dengan kelemahan yang diketahui atau berhasil dieksploitasi. Akibatnya sang penyerang dapat mengambil alih dan mengontrol host yang diserang. Setelah itu biasanya sang penyerang akan dapat menguasai jaringan sekaligus.
  • 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. 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:
    • 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 e-commerce, sang penyerang dapat memanen username, password, nomor kartu kredit, dan informasi para pengguna layanan website itu.
    • 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.

      spoofmail.jpg
      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.

    kashpureff.png

  • Denial of Service Attack (DoS)
    Denial of Service Attack adalah tipe penyerangan kepada suatu layanan dalam hal ini yang kita bicarakan adalah layanan DNS. Akibatnya orang lain yang akan menggunakan layanan server DNS ini tidak akan dapat menggunakannya.
    Penyerangan DoS bisa dengan mengirimkan
    • Permintaan zone-transfer secara bersamaan dari mesin yang berbeda dan terus menerus.
    • Pengiriman query secara membabi buta dan bersamaan dari mesin yang berbeda.
    • Pengiriman pesan respon ke port 53 dengan respon yang salah/tidak valid sehingga server DNS akan memberikan pesan kesalahan ke klien/resolver atau name-server lain.

    dos.png
    Denial of Service Attack

    Dengan melakukan penyerangan di atas maka lalu lintas paket data ke server DNS target menjadi banyak dan tidak terkendali sehingga akan membebani dan menghabiskan sumber daya server DNS tersebut misal prosesor, memori, bandwith, dll dan pada akhirnya server DNS itu tidak dapat melayani pemintaan dari klien yang benar-benar ingin meminta data atau informasi host/domain ke server tersebut.
  • Pengumpulkan Informasi/Data (Zone Transfer)
    Pengambilan/pentransferan data atau informasi mengenai suatu host, subdomain pada zone tertentu milik perseorangan atau perusahaan yang secara tidak sengaja akan memberikan suatu peta host dan jaringan yang ada dalam perusahaan. Dengan terjadinya hal ini maka sang penyerang akan mendapatkan info dan strategi selanjutnya untuk melakukan penyusupan atau penyerangan terhadap jaringan perusahaan itu.
  • Permintaan versi name-server
    Penyerang akan mengirim permintaan khusus versi name-server dan membandingkan dengan daftar kelemahan keamanan pada versi tertentu dari name-server. Setelah mendapatkan versi tersebut dan jika sesuai dengan daftar kelemahan keamanan name-server selanjutnya sang penyerang dapat segera melakukan serangan.
  • Server DNS dapat pula menjadi alat untuk menyerang server lain.
BIND sebagai implementasi dari DNS yang umum digunakan di Internet ternyata mempunyai sejarah keamanan yang banyak.

Beberapa kelemahan keamanan pada BIND:

  • TSIG bug
    • Buffer overflow pada kode TSIG pada semua versi BIND dibawah 8.2.3.
    • Memberikan akses pada host yang menjalankan named.
    • Dapat di-eksploit oleh worm li0n.
  • Complain bug
    • Buffer overflow pada nslookupComplain().
    • Mengijinkan penyerang untuk meng-crash named.
  • SRV bug
    • Pemrosesan record SRV yang tidak sesuai.
    • Menghasilkan loop yang tak terhingga.
  • NXT bug
    • Pemrosesan record NXT yang tidak sesuai
    • Memberikan akses pada host yang menjalankan named.
Catatan:
  • TSIG singkatan dari Transaction SIGnatures adalah suatu metode di mana antara primary-master dan secondary-master name-server dapat melakukan zone-transfer dan dynamic-update jika mempunyai kode TSIG yang sama/sesuai.
  • SRV adalah resource record yang menjelaskan informasi mengenai layanan jaringan yang umum digunakan atau terkenal. Resource record ini menggantikan WKS.
  • NXT adalah resource record yang digunakan pada DNSSEC untuk mengindikasikan secara aman bahwa resource record dengan nama pemilik dalam interval beberapa nama yang tidak ada dalam zone dan mengindikasikan tipe resource record yang ada (lihat RFC 2535).

Administrator yang mempunyai tanggung jawab terhadap server DNS diharapkan dapat terus memonitor dan mencegah adanya serangan dan eksploitasi terhadap server DNS-nya. Pencegahan dapat dilakukan dengan cara konfigurasi dan implementasi yang aman pada server DNS.

Di bawah ini adalah implementasi dan 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:
    • Menyediakan server DNS lebih dari satu yang otoritatif pada tiap zone (berbeda subnet, berbeda router, berbeda koneksi).
    • Menyediakan master name-server cadangan.
    • 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. Contoh:
    options {
    allow-transfer {192.168.3.3;};
    };
    atau pada zone
    zone "my-server.com" IN {
    type master;
    file "db.my-server.com";
    allow-transfer {192.168.3.3;};
    };
    Selain itu bisa juga dengan menggunakan metode Transaction SIGnature (TSIG). Contoh:
    key transfer.my-server.com. {
    algorithm hmac-md5;
    secret jggRewTTCgdTOUvWPd0cqPoRiQ/=;
    };

    zone "my-server.com" {
    type master;
    file "db.my-server.com";
    allow-transfer {key transfer.my-server.com.;};
    };
    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:
    options {
    allow-update {192.168.3.3;};
    };
    atau pada zone
    zone "tech-server.com" IN {
    type "master";
    file "db.tech-server.com";
    allow-update {127.0.0.1; 192.168.3.0/24;};
    };
    Selain itu bisa juga dengan menggunakan kode TSIG.
    key update.my-server.com. {
    algorithm hmac-md5;
    secret dkYjggRewTCgdT0qPoRiQjLoO8Gd;
    };

    zone "my-server.com" {
    type master;
    file "db.my-server.com";
    allow-update { key update.my-server.com.; };
    };
    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. Contoh:
    options {
    allow-query {127.0.0.1; 192.168.3.0/24;};
    };
    atau pada zone
    zone "my-server.com" IN {
    type master;
    file "db.my-server.com";
    allow-query {127.0.0.1; 192.168.3.0/24;};
    };
  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. Contoh:
    options {
    ...
    allow-recursion {192.168.3.0/24;};
    ...
    };
    Jika ingin mematikan fasilitas permintaan rekursif dapat menggunakan options recursion no. Contoh:
    options {
    recursion no;
    };
  7. Membagi fungsi dua name-server.
    Pembagian fungsi dari name-server yaitu:
    • Fungsi untuk menerima dan menjawab query akan menghindari adanya kelebihan beban pada server DNS kita terutama permintaan resolving yang banyak.
    • 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. Contoh:
    zone "bind" chaos {
    type master;
    file "bind";
    allow-query {localhost;};
    };
    dan pada zone BIND
    $TTL 86400
    @ CHAOS SOA localhost. root.localhost. {
    2002081219 ; Serial
    28800 ; Refresh
    14400 ; Retry
    3600000 ; Expire
    86400 ) ; Minimum
    NS localhost.
  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.
    # useradd -d /var/named/ -s /bin/false named

    # groupadd named
    Pastikan pengguna named mempunyai hak akses pada direktori kerja named (/var/named/), berkas zone dan juga hak untuk menulis pid dari named. Jalankan named dengan mengetikkan:
    # /usr/sbin/named -u named -g 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. Contoh:
    listen-on { 192.168.3.1;};
  11. Kontrol akses untuk host-host yang dipercaya.
    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 database-cache 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.
    acl "dalam" {
    { 192.168.3.0/24;};
    };
    Pada named.conf:
    zone "internal.my-server.com" {
    type master;
    file "internal";
    allow-query {"dalam";};
    };
  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.
    # /usr/sbin/named -u named -t /var/named/ 
  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 menggunakan 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.
sumber : http://pl.duniasemu.org/network/bind_dns/bind_dns-4.html

Komentar

Postingan populer dari blog ini

Sidoarjo Map (Peta Kabupaten Sidoarjo)

Sidoarjo Map . Kali ini maztam akan berbagi peta Sidoarjo barangkali ada yang membutuhkan peta ini supaya tidak tersesat di jalan ketika datang ke Sidoarjo. Sidoarjo merupakan salah satu Kabupaten yang berada di Jawa Timur, letaknya cukup strategis karena dekat dengan Kota Metropolitan Surabaya, yaitu berada tepat di selatan Kota Surabaya. Teman teman apabila perkunjung ke Sidoarjo, yang paling terkenal dari Sidoarjo adalah UKM-nya. Kota yang mempunyai julukan kota udang ini juga disebut sebut sebagai kota yang memiliki UKM yang paling banyak, dari kerajinan tas, kerupuk, sampai batik ada di Sidoarjo. Peta Sidoarjo Langsung saja bagi teman teman yang mengunduh peta Sidoarjo maztam telah mencari beberapa map yang mungkin bisa membantu. Map tersebut ada dua jenis yang pertama map gambar yang bisa di download dan map dari google, apabila teman mempunyai gadget bisa langsung dilihat. Peta Sidoarjo Google Map Sekian informasi dari maztam, semoga bisa membantu teman yang...

7 Alat Terbaik untuk Mengevaluasi Desain Web

Desain web yang efektif adalah desain yang dapat membuat para pengguna menemukan informasi dengan cepat dan dengan cara yang logis. Apakah para pengunjung menemukan konten yang anda ingin mereka untuk kunjungi? Apakah mereka mencarinya pada tempat yang tepat pada web anda? Apakah anda berhasil menarik perhatian mereka, atau mereka segera meninggalkan situs anda? Jika anda tertarik untuk menganalisa dan mengoptimalkan tampilan halaman anda - berikut ini adalah beberapa alat yang dapat membantu anda. 1. ClickHeat ClickHeat adalah alat visual sumber terbuka ( open source ) yang menunjukkan area "panas" dan "dingin" dari sebuah halaman situs. Ia memungkinkan anda melihat titik di mana pengguna paling banyak melakukan klik, dan daerah mana yang tidak mereka hiraukan. Download: Clickheat dari SourceForge.net. 2. Crazy Egg Crazy Egg menawarkan banyak sekali peralatan analisa yang dapat menangkap apa yang dilakukan oleh pengunjung. Fitur - fitur yang ada termasuk: Conf...

Segarnya Es Degan Jeruk Nipis di Cemeng Sidoarjo

Es Degan Jeruk Nipis . Panas panas gini maztam yang tengah sibuk menjalani rutinitas kerja harian membuat gerah tenggorokan. Minum air putih saja rasanya masih kurang terasa "segar", juga es yang lain tidak bisa melegakan tenggorokan yang kering. Akhirnya dalam perjalanan pulang, maztam mencoba untuk mampir sebentar ke warung Es Degan Pinggir jalan. Tapi karena Maztam belum punya kamera jadi belum bisa mengabadikan gambarnya, ini ilustrasinya : Sumber gambar : http://www.kedaijagongan.com/minuman/es-kelapa-muda-original Segarnya Terasa .... Es Degan ini berbeda dari biasanya, karena ada 2 menu yaitu Es Degan Jeruk Nipis dan Es Degan Madu Susu, karena jeruk nipis membawa sensasi segar dan dingin maka Maztam pun memilih Es Degan Jeruk Nipis. Dari nampak prentasinya (meniru master chef indonesia) benar benar menggoda, bayangkan saja saatu gelas besar es degan dengan potongan es kecil kecil diatasnya, rupanya jeruk nipisnya bukan main main, setengah potongan jeruk nip...