DNS Forensics

Melanjutkan postingan di kategori Internet Forensics, postingan kali ini akan membahas mengenai DNS Forensics.

Kita pelajari dulu tentang DNS ya.. 🙂

SEKILAS TENTANG DNS

DNS (Domain Name System) adalah bentuk distribusi database yang digunakan untuk menerjemahkan nama komputer ke IP address (mapping) dan dari IP address ke nama komputer (reverse mapping). Secara sederhana mapping berhubungan dengan dua hal, yaitu nama komputer seperti www.uii.ac.id dan ftp.fti-uii.ac.id serta IP address seperti 192.168.10.1 dan 202.150.76.202.

Untuk melakukan komunikasi dan mengakses komputer yang terhubung dalam jaringan, sebetulnya cukup menggunakan IP address dari masing-masing komputer saja. Tapi akan sangat sulit tentunya apabila harus mengingat IP address dari banyak komputer yang terhubung ke jaringan. Komputer saling berkomunikasi menggunakan IP address bukan menggunakan nama komputer. Untuk itulah diperlukan sebuah mekanisme agar nama komputer tersebut dapat diterjemahkan ke dalam IP address, salah satunya adalah dengan memanfaatkan layanan DNS server, yang menerjemahkan nama komputer ke IP address dan sebaliknya.

Sebagai contoh, komputer dengan IP address 202.162.33.10 memiliki nama www.friendster.com *duh, jadul beud yah.. 😛 *, IP address 203.162.32.1 adalah www.google.com dan lain sebagainya. Sehingga, jika kita akan menghubungi sebuah komputer di internet, misalnya www.friendster.com maka kita cukup menggunakan nama komputer tersebut.

STRUKTUR HIERARKI DNS

DNS mengatur proses penamaan komputer secara hierarkis dalam struktur pohon (tree). Struktur tersebut terbentuk dari sebuah node yang memiliki sub node, masing-masing sub node memiliki lagi sub node di bawahnya dan begitu seterusnya. Node-node tersebut diberi label sehingga disebut domain.

Domain ditentukan berdasarkan tingkatan kemampuan yang ada di struktur hierarki yang disebut dengan level. Level paling atas di hierarki disebut dengan Root Domain. Root domain di ekspresikan dengan lambang ‘ . ’ (dot).

Berikut merupakan ilustrasi sederhana mengenai struktur DNS:

Level kedua setelah root domain disebut Top Level Domain (TLD) yaitu semua node yang tepat berada di bawah root.

Contoh dari top level domain adalah com, edu, net, org, net, gov, dan Country Code Top Level Domain yang berupa dua buah huruf untuk melambangkan kode negara. Misalnya:

  • id : Indonesia
  • uk : United Kingdom (Inggris)
  • au : Australia
  • sg : Singapura

Top level domain dapat berisi second level domain dan host. Sedangkan second level domain dapat berisi host dan domain lain, yang disebut dengan subdomain. Sebagai contoh:

1. Domain CNLAB-UII yang bernama cnlab-uii.net terdapat komputer (host) server1.cnlab-uii.net, subdomain www.cnlab-uii.net dan mail.cnlab-uii.net.

2. pop.mail.yahoo.com

  • Top-level domain   : com
  • Domain                    : yahoo.com
  • Subdomain             : mail.yahoo.com
  • Host                          : pop.mail.yahoo.com

 

KOMPONEN KERJA DNS

Untuk memahami cara kerja DNS terlebih dahulu harus dipahami tentang komponen-komponen yang bekerja di dalamnya. Gambar berikut mengilustrasikan komponen-komponen DNS secara sederhana:

Keterangan:

  • Cache    : media penyimpanan sementara
  • Resolver : bagian dari program aplikasi yang berfungsi menjawab pertanyaan tentang domain (local DNS)

Cara kerja resolver:

Resolver menjawab pertanyaan dari client meliputi dua cara.

Resolver memeriksa cache-nya, jika jawaban yang diminta terdapat di dalam cache-nya, maka resolver kemudian akan memberikan jawaban berupa IP address dari alamat yang dimaksud.

2. Jika tidak terdapat jawaban dalam cache, maka resolver akan bertanya kepada DNS server serta menginterprestasikan hasilnya.

  • Pertanyaan kepada DNS server membuat DNS server yang menjadi default-nya memberikan jawaban atas pertanyaan itu. Jika informasi pada Zona File dari DNS server tidak ditemui, maka DNS server akan mengirimkan message failure kepada client.
  • Kemudian client akan menghubungi DNS server yang lain untuk mencari jawaban atas pertanyaan tersebut. Jika berhasil ditemukan, maka DNS server yang dihubungi client tersebut akan memberikan jawaban berupa IP address dari alamat yang dimaksud kepada DNS server lokal untuk kemudian dikirim ke client yang me-request-nya.

Proses tersebut disebut dengan Forward Lookup Query, yaitu permintaan dari client dengan cara memetakan nama komputer (host) ke IP address.

STUDI KASUS DNS

Pompom ingin mengakses www.friendster.com *frenster maning, frenster maning.. 😀 * Proses yang terjadi agar si Pompom dapat menghubungi komputer www.friendster.com adalah :

Browser diarahkan ke http://www.friendster.com

  1. DNS client menghubungi DNS server lokal untuk mendapatkan IP address dari www.friendster.com
  2. DNS server lokal memeriksa cache-nya, jika akses tersebut sudah pernah dilakukan sebelumnya, maka DNS server lokal akan mengambil IP address www.friendster.com dari data cache-nya.
  3. Jika dalam data cache tidak ditemukan informasi yang dicari, maka kemudian DNS server lokal akan mengirimkan message failure kepada client bahwa IP address dari alamat yang diminta tidak ditemukan.
  4. Kemudian client melakukan request kepada DNS server tertinggi yaitu ‘ . ’ (dot) atau root server. Dan hasilnya akan dikembalikan lagi ke client.
  5. Jika tidak ditemukan lagi, maka client akan menghubungi DNS server .com (Top level Domain). Hasilnya juga akan dikembalikan lagi ke client.
  6. Kemudian jika belum dapat ditemukan, client akan menghubungi DNS server friendster.com
  7. DNS server friendster.com memberikan IP address dari subdomain www.friendster.com
  8. IP address tersebut kemudian dikirimkan kembali ke DNS server lokal untuk diberikan kepada browser dan kemudian dicatat dalam data cache DNS server lokal.
  9. Browser mengarah ke IP address yang dimaksud untuk mengakses komputer pada IP address tersebut.

Yeeey..!!! Pompom akhirnya bisa friendster-friendsteran.

NB:

Ini ada juga yg menarik, pembahasan mengenai cara kerja DNS yang digambarkan dalam komik di https://howdns.works/. Pake bahasa Inggris sih, tapi smoga gak menyurutkan niat untuk belajar DNS. Bisa dicekidot langsung ke TKP ya.. 🙂

SERANGAN PADA DNS

DNS juga rentan terhadap ancaman keamanan. Serangan-serangan yang mungkin terjadi pada DNS adalah sebagai berikut:

1. DNS Spoofing

~ Terdiri dari:

  • Intranet DNS Spoofing (Local Network)
  • Internet DNS Spoofing (Remote Network)

~ Cara mencegah DNS spoofing (DNS spoofing best practice):

  • Resolve semua query DNS ke DNS server lokal.
  • Blok request DNS agar tidak ke server eksternal.
  • Konfigurasi DNS resolver agar menggunakan port yang random.
  • Firewall.
  • Implementasi DNSSEC (DNS Security Extensions).
Teknologi yang dikembangkan antara lain untuk melindungi DNS dari serangan dengan tanda tangan digital pada data agar data tersebut diyakini valid. Tanda tangan digital tidak mengenkripsi data, namun hanya untuk membuktikan keabsahan alamat situs yang dikunjungi.
  • Membatasi user yang dapat akses ke layanan DNS.
  • Secure DNS server (hardening server).
  • Implementasi DNS internal.

2. DNS Poisoning

~ Teknik untuk menipu DNS server agar percaya bahwa DNS telah menerima informasi yang autentik.

~ Memungkinkan attacker untuk mengganti IP address DNS entry pada bagian alamat target.

~ Terdiri dari:

  • Proxy Server DNS Poisoning
Contohnya trojan menuliskan settingan proxy server di web browser.
  • DNS Cache Poisoning
Mengubah/menambah record DNS ke DNS resolver cache sehingga query DNS diteruskan ke situs yang berbahaya (malicious site).

 

Lhaaa.. Terus udah sepanjang ini, forensik-nya di mana? Kan katanya judule DNS Forensics.. 😀 Sabar-sabar.. Coba disimak di latihan soal di bawah ini ya.. 🙂

LATIHAN SOAL

Latihan soal dapat dilihat di sini.

OK, segitu dulu ya.. Semoga bermanfaat. Insya Allah dilanjutin lagi di postingan selanjutnya.. 🙂

SUMBER

Leave Comment

Your email address will not be published. Required fields are marked *