Securing Bind DNS memberikan panduan untuk mengamankan server DNS menggunakan software Bind dengan cara-cara seperti menggunakan versi terbaru dari Bind, menerapkan filter trafik, membatasi transfer basis data zona, mengimplementasikan autentikasi transfer zona, dan menerapkan DNS Security Extension (DNSSEC). Dokumen ini juga menjelaskan serangan-serangan terhadap DNS seperti spoofing, cache poisoning, dan DDoS serta langkah-langkah pencegahan untuk mengamankan server Bind.
4. DNS
Semacam buku telepon yang terdapat di Internet
Spesifikasi Fungsi ;
- Domain server
- Mapping ip address ke hostname
- Mapping kotak surat (@contoh.net)
- Filtering (DNSBL/spam filter, Domain Filter)
- Infrastruktur Distribusi
6. HIRARKI DNS
com domain
net edu com
apnic.net
domain google
apnic
isisun tislabs
moon
training
www
ftp www
net ns2 ns1
domain
7. KOMPONEN DNS
1. DNS AUTHORITATIVE ;
- Memberikan jawaban Dari Recussor
- Administrasi nama domain
- Database Record Resource (RR)
2. DNS RECURSIVE ;
- Pencari jawaban dari client
- Memberi jawaban yang tepat ke client
8. RECORD RESOURCE DNS
Record Resource Database pada DNS Authoritative
A HOSTNAME
PTR Reverse Address Mapping
CNAME Aliases
MX Mail Exchange Domain
NS Authoritative DNS
10. MODEL DNS AUTHORITATIVE
Primary DNS ;
1. Menyimpan database RR domain
2. Update database RR domain
Secondary DNS ;
1. Backup dari DNS Primary
2. Menyimpan database RR domain
12. SERANGAN DNS
- Penyerang mengirimkan permintaan DNS Query ke DNS
Resolver
B. DNS Resolver akan meminta jawaban query ke DNS
Authoritative
C. Masalah besar jika permintaan dari Bot Network
D. Efek ; DNS Resource, Traffic Resource, Internet Down
14. SERANGAN DNS
1. Penyerang meracuni query cache DNS Server
2. User akan menggunakan fasilitas e-banking
3. User meminta DNS query untuk mencari domain e-
banking
4. DNS Menjawab permintaan, tapi memberikan jawaban
salah
5. User akan membuka fasilitas e-banking yang salah.
15. SERANGAN DNS
3. Distributed Denial Of Service
- Salah satu teknik serangan dari DOS
- Permintaan request / layanan yang secara bersamaan
sehingga Resource sebuah Server mengalami gangguan.
- Melibatkan Bot Network
16. SERANGAN DNS
4. Bind Spoofing
Secara umum, bind paling banyak digunakan oleh
banyak system administrator
Query yang dihasilkan mudah untuk ditebak
http://www.trusteer.com/list-context/publications/bind-9-dns-cache-poisoning
Source UDP Port mudah ditebak
Hasil dari spoofing ada DNS Cache Poisoning
17. Preventive Bind DNS
1. Menggunakan Bind versi terbaru
Versi terbaru Bind Software ;
Bind 9.9.0
Bind 9.8.2
Bind 9.7.5
Versi terbaru dari bind dapat dilihat di ;
http://www.isc.org/software/bind
18. Preventive Bind DNS
2. Preventive Bind Server Infrastruktur
Hindari untuk menggunakan 1 subnet
Hindari untuk menggunakan 1 router
Hindari untuk menggunakan 1 leases line/backbone
Menggunakan slave server yang berada jauh
secara jaringan
Menggunakan metode DNS Proxying
20. Preventive Bind DNS
DNS adalah nameserver yang hanya sebagai primary dns
DNS tidak listing di registar
NS 1 NS 3 adalah nameserver yang terdaftar di Registar
21. Preventive Bind DNS
3. Filter Traffic Bind DNS Server
Gunakan host anda hanya untuk server bind.
Filter semua traffic, kecuali UDP dan TCP port 53
- Router
- Firewall Host
Contoh filter iptables (Linux Firewall);
# iptables -A INPUT -p tcp -m tcp -dport 53 -j ACCEPT
# iptables -A INPUT -p udp -m udp -dport 53 -j ACCEPT
# iptables -P INPUT DROP
22. Preventive Bind DNS
4. Membatasi database zona transfer named.conf
Tujuan untuk mengindari crackers untuk melihat content
Database Zona ( Resource Records), Host demographic
Contoh :
options {
allow-transfer { 206.168.119.178; };
};
23. Preventive Bind DNS
5. Authentifikasi Transfer Zone named.conf
Komunikasi antar server pada saat transfer database
zona domain dengan menggunakan transfer signature
(Tsig)
Contoh di primary server :
key dilarang-mengintip {
algorithm hmac-md5;
secret mZiMNOUYQPMNwsDzrX2ENw==;
};
zone contoh.com {
type master;
file db.contoh.com;
allow-transfer { key dilarang-mengintip; };
};
24. Preventive Bind DNS
Contoh di slave server named.conf
key dilarang-mengintip {
algorithm hmac-md5;
secret mZiMNOUYQPMNwsDzrX2ENw==;
};
server 208.8.5.250 {
transfer-format many-answers;
keys { dilarang-mengintip.; };
};
zone contoh.com {
type slave;
file bak.contoh.com;
allow-transfer { none; };
};
25. Preventive Bind DNS
6. Mengamankan server dari serangan cache poisoning
Dengan menerima request query dari internet, bind server
akan mudah dicari kelemahannya
Mematikan opsi recursive dari internet;
Contoh
options {
recursion no;
};
26. Preventive Bind DNS
Membatasi layanan query
Contoh :
acl internal { 206.168.119.176/29; };
options {
directory /var/named;
allow-query { internal; };
};
zone contoh.com {
type master;
file db.contoh.com;
allow-query { any; };
};
27. Preventive Bind DNS
7. Menjalankan aplikasi bind di lingkungan chroot dan
Dijalankan oleh user selain root (named)
Chroot adalah metode direktori virtual
Jika terjadi incident, maka attacker tidak sampai
memasuki sistem utama
Contoh struktur chroot :
/var/named/chroot/etc
/var/named/chroot/var/named/data
.......
28. Preventive Bind DNS
8. DNS Security Extension (DNSSEC)
Tindakan preventive dari serangan cyber
Memastikan proses query yang valid
Semacam SSL authentication DNS
29. Preventive Bind DNS
8.1 Deploy DNSSec
Enable DNSSec pada authoritative servers ;
options {
dnssec足enable yes;
};
Enable DNSSec pada resursive servers ;
options {
dnssec足enable yes;
dnssec足validation yes;
};
Package ssl harus ada pada server
30. Preventive Bind DNS
DNSSec membutuhkan 2 key yaitu ZSK dan KSK;
ZSK = berfungsi sebagai signature data pada zone
KSK = berfungsi sebagai signature dari zona sign key (ZSK)
Membuat KSK ;
#dnssec-keygen -r /dev/random -f KSK -a RSASHA1 -b 2048
-n ZONE contoh.com
Membuat ZSK ;
#dnssec-keygen -r /dev/random -a RSASHA1 -b 1024 -n
ZONE contoh.com
Dari perintah diatas, masing masing menghasilkan 2 file
yaitu
.key dan .private
31. Preventive Bind DNS
Memasukan hasil dari zsk dan ksk kedalam database zona
domain;
$INCLUDE *.key
Signing database zona domain;
#dnssec-signzone -l dlv.isc.org -r /dev/random -o
contoh.com
-k Kcontoh.com.+005+aaaaa contoh.com.db Kcontoh.com.
+005+bbbbb.key
aaaaa adalah KSK key dan bbbbb adalah ZSK key
Hasil dari signing diatas adalah contoh.signed
32. Preventive Bind DNS
Mengaktifkan statement trusted-keys ;
Contoh pada named.conf;
trusted-keys {
dlv.isc.org. 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+ju
oZrW3euWEn4MxDCE1+lLy2brhQv5rN32RKtMzX6Mj70jdzeND4XknW58
dnJNPCxn8+jAGl2FZLK8t+1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0
PG73Te9fZ2kJb56dhgMde5ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTw
FlgPe+jnGxPPEmHAte/URkY62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOw
IeU/Rw/mRx/vwwMCTgNboMQKtUdvNXDrYJDSHZws3xiRXF1Rf+al9Um
Z fSav/4NWLKjHzpT59k/VStTDN0YUuWrBNh";
};
34. Preventive Bind DNS
Update nama zona database pada named.conf
Contoh ;
rubah
zone zonename {
file dir/zonefile;
};
dengan
zone zonename {
file dir/zonefile.signed;
};
35. Preventive Bind DNS
9. Referensi
- https://dlv.isc.org
- DNS ATTACKS HIMANSHU PRABHAKAR
- Security challenges in DNS Philippe Camacho
- Introduction to DNSSEC Tom Daly
- http://www.cymru.com