Sabtu, Oktober 24, 2009

Jenis-jenis Ancaman Jaringan

Berikut ini akan dijelaskan beberapa tipe-tipe serangan yang dapat dilancarkan oleh pihak-pihak tertentu terhadap sebuah jaringan komputer:

  •  DOS/DDOS 
Denial of Services dan Distributed Denial of Services adalah sebuah metode serangan yang bertujuan untuk menghabiskan sumber daya sebuah peralatan jaringan komputer sehingga layanan jaringan komputer menjadi terganggu. Salah satu bentuk serangan ini adalah 'SYN Flood Attack', yang mengandalkan kelemahan dalam sistem 'three-way-handshake'. 'Three-way-handshake' adalah proses awal dalam melakukan koneksi dengan protokol TCP. Proses ini dimulai dengan pihak klien mengirimkan paket dengan tanda SYN. Lalu kemudian pihak server akan menjawab dengan mengirimkan paket dengan tanda SYN dan ACK. Terakhir, pihak klien akan mengirimkan paket ACK.

Setelah itu, koneksi akan dinyatakan terbuka, sampai salah satu pihak mengirimkan paket FIN atau paket RST atau terjadi connection time-out. Dalam proses 'three-way-handshake', selain terjadi inisiasi koneksi, juga terjadi pertukaran data-data parameter yang dibutuhkan agar koneksi yang sedang dibuat dalam berjalan dengan baik. Dalam serangan ini, sebuah host akan menerima paket inisiasi koneksi (Paket dengan flag SYN) dalam jumlah yang sangat banyak secara terus menerus. Akibatnya host yang sedang diserang akan melakukan alokasi memori yang akan digunakan untuk menerima koneksi tersebut dan karena paket inisiasi terus-menerus diterima maka ruang memori yang dapat digunakan untuk menerima koneksi akan habis. Karena semua ruang memori yang dapat digunakan untuk menerima koneksi sudah habis, maka ketika ada permintaan baru untuk melakukan inisiasi koneksi, host ini tidak dapat melakukan alokasi memori sehingga permintaan baru ini tidak dapat dilayani oleh host ini. Untuk menghindari pelacakan, biasanya paket serangan yang dikirimkan memiliki alamat IP sumber yang dipalsukan. Untuk menghadapi serangan seperti ini, sistem operasi – sistem operasi modern telah mengimplementasikan metode-metode penanganan, antara lain :

• Micro-blocks. Ketika ada sebuah host menerima paket inisiasi, maka host akan mengalokasikan ruang memori yang sangat kecil, sehingga host tersebut bisa menerima koneksi lebih banyak. Diharapkan ruang memori dapat menampung semua koneksi yang dikirimkan, sampai terjadi connection-time-out, dimana koneksi-koneksi yang stale, yaitu koneksi yang tidak menyelesaikan proses 'three-way-handshake' atau sudah lama tidak ada transaksi data, akan dihapuskan dari memori dan memberikan ruang bagi koneksi-koneksi baru. Metode ini tidak terlalu efektif karena bergantung pada kecepatan serangan dilakukan, apabila ternyata kecepatan paket serangan datang lebih cepat daripada lamanya waktu yang perlu ditunggu agar terjadi connection-time-out pada paket-paket yang stale, make ruang memori yang dapat dialokasikan akan tetap habis.

• SYN Cookies. Ketika menerima paket inisiasi, host penerima akan mengirimkan paket tantangan yang harus dijawab pengirim, sebelum host penerima mengalokasikan memori yang dibutuhkan. Tantangan yang diberikan adalah berupa paket SYN-ACK dengan nomor urut khusus yang merupakan hasil dari fungsi hash dengan input alamat IP pengirim, nomor port, dll. Jawaban dari pengirim akan mengandung nomor urut tersebut. Tetapi untuk melakukan perhitungan hash membutuhkan sumber-daya komputasi yang cukup besar, sehingga banyak server-server yang aplikasinya membutuhkan kemampuan komputasi tinggi tidak mempergunakan metode ini. Metode ini merubah waktu peng-alokasian memori, yang tadinya pada awal dari proses 'threeway-handshake', menjadi diakhir dari proses tersebut. (notes: pada standard TCP/IP yang baru, ditentukan bahwa diperlukan cara yang lebih baik untuk menentukan urut paket, sehingga sulit untuk ditebak. Jadi kemungkinan secara default, metode ini akan digunakan pada seluruh peralatan jaringan komputer atau sistem operasi yang ada).

• RST Cookies. Mirip dengan SYN Cookies, hanya tantangan yang dikirimkan host penerima ke pengirim adalah sebuah paket yang salah. Apabila pengirim adalah pengirim yang valid, maka pengirim akan mengirimkan paket RST lalu mengulang kembali koneksi. Ketika penerima menerima paket RST, host tersebut tahu bahwa pengirim adalah valid dan akan menerima koneksi dari pengirim dengan normal. Karena ada masalah dengan implementasi lapisan TCP/IP, metode ini kemungkinan tidak kompatibel dengan beberapa sistem operasi. Metode ini merubah waktu pengalokasian memori, yang tadinya pada awal dari proses 'three-way-handshake', menjadi diakhir dari proses tersebut.

  • Packet Sniffing
Packet Sniffing adalah sebuah metode serangan dengan cara mendengarkan seluruh paket yang lewat pada sebuah media komunikasi, baik itu media kabel maupun radio. Setelah paket-paket yang lewat itu didapatkan, paket-paket tersebut kemudian disusun ulang sehingga data yang dikirimkan oleh sebuah pihak dapat dicuri oleh pihak yang tidak berwenang. Hal ini dapat dilakukan karena pada dasarnya semua koneksi ethernet adalah koneksi yang bersifat broadcast, di mana semua host dalam sebuah kelompok jaringan akan menerima paket yang dikirimkan oleh sebuah host. Pada keadaan normal, hanya host yang menjadi tujuan paket yang akan memproses paket tersebut sedangkan host yang lainnya akan mengacuhkan paketpaket tersebut. Namun pada keadaan tertentu, sebuah host bisa merubah konfigurasi sehingga host tersebut akan memproses semua paket yang dikirimkan oleh host lainnya. Cukup sulit untuk melindungi diri dari gangguan ini karena sifat dari packet sniffing yang merupakan metode pasif (pihak penyerang tidak perlu melakukan apapun, hanya perlu mendengar saja). Namun ada beberapa hal yang bisa dilakukan untuk mengatasi hal ini, yaitu:


Secara rutin melakukan pemeriksaan apakah ada host di jaringan kita yang sedang dalam mode promiscuous, yaitu sebuah mode dimana host tersebut akan memproses semua paket yang diterima dari media fisik. Akan tetapi hal ini hanya akan melindungi diri kita terhadap packet sniffer yang berada pada satu kelompok jaringan dengan kita. Penyerang yang melakukan sniffing dari luar jaringan komputer kita tidak akan terdeteksi dengan menggunakan metode ini.

• Mempergunakan SSL atau TLS dalam melakukan pengiriman data. Ini tidak akan mencegah packet sniffer untuk mencuri paket yang dikirimkan, akan tetapi paket-paket yang dicuri tidak bisa dipergunakan karena dikirimkan dengan menggunakan format yang terenkripsi.

• Melakukan koneksi VPN, sehingga tetap bisa mempergunakan aplikasi yang tidak mendukung SSL atau TLS dengan aman.

Packet Sniffing sebagai tools pengelola jaringan.
Sebenarnya selain sebagai menjadi alat untuk melakukan kejahatan, packet sniffer juga bisa digunakan sebagai alat pertahanan. Dengan melakukan analisa paket-paket yang melalui sebuah media jaringan komputer, pengelola dapat mengetahui apabila ada sebuah host yang mengirimkan paket-paket yang tidak normal, misalnya karena terinfeksi virus. Sebuah IDS juga pada dasarnya adalah sebuah packet sniffer yang bertugas untuk mencari host yang mengirimkan paket-paket yang berbahaya bagi keamanan. Selain itu packet sniffer juga bisa menjadi alat untuk melakukan analisa permasalahan yang sedang dihadapi sebuah jaringan komputer. Misalkan ketika sebuah host tidak dapat berhubungan dengan host lainnya yang berada pada kelompok jaringan yang berbeda, maka dengan packet sniffer, pengelola jaringan komputer dapat melakukan penelusuran dimana permasalahan koneksi itu terletak.

  • IP Spoofing
 IP Spoofing adalah sebuah model serangan yang bertujuan untuk menipu seseorang. Serangan ini dilakukan dengan cara mengubah alamat asal sebuah paket, sehingga dapat melewati perlindungan firewall dan menipu host penerima data. Hal ini dapat dilakukan karena pada dasarnya alamat IP asal sebuah paket dituliskan oleh sistem operasi host yang mengirimkan paket tersebut. Dengan melakukan raw-socket-programming, seseorang dapat menuliskan isi paket yang akan dikirimkan setiap bit-nya sehingga untuk melakukan pemalsuan data dapat dilakukan dengan mudah.

Salah satu bentuk serangan yang memanfaatkan metode IP Spoofing adalah 'man-in-the-middleattack'. Pada serangan ini, penyerang akan berperan sebagai orang ditengah antara dua pihak yang sedang berkomunikasi. Misalkan ada dua pihak yaitu pihak A dan pihak B lalu ada penyerang yaitu C. Setiap kali A mengirimkan data ke B, data tersebut akan dicegat oleh C, lalu C akan mengirimkan data buatannya sendiri ke B, dengan menyamar sebagi A. Paket balasan dari B ke A juga dicegat oleh C yang kemudian kembali mengirimkan data 'balasan' buatannya sendiri ke A. Dengan cara ini, C akan mendapatkan seluruh data yang dikirimkan antara A dan B, tanpa diketahui oleh A maupun C. Untuk mengatasi serangan yang berdasarkan IP Spoofing, sebuah sistem operasi harus dapat memberikan nomor-urut yang acak ketika menjawab inisiasi koneksi dari sebuah host. Dengan nomor urut paket yang acak, akan sangat sulit bagi seorang penyerang untuk dapat melakukan pembajakan transmisi data.

Selain itu, untuk mengatasi model serangan 'man-in-the-middle-attack', perlu ada sebuah metode untuk melakukan otentikasi host yang kita hubungi. Otentikasi dapat berupa digitalcertificate yang eksklusif dimiliki oleh host tersebut. Konfigurasi firewall yang tepat juga dapat meningkatkan kemampuan jaringan komputer dalam menghadapi IP Spoofing. Firewall harus dibuat agar dapat menolak paket-paket dengan alamat IP sumber jaringan internal yang masuk dari interface yang terhubung dengan jaringan eksternal.

  • DNS Forgery
Salah satu cara yang dapat dilakukan oleh seseorang untuk mencuri data-data penting orang lain adalah dengan cara melakukan penipuan. Salah satu bentuk penipuan yang bisa dilakukan adalah penipuan data-data DNS. DNS adalah sebuah sistem yang akan menterjemahkan nama sebuah situs atau host menjadi alamat IP situs atau host tersebut. Cara kerja DNS cukup sederhana, yaitu sebuah host mengirimkan paket (biasanya dengan tipe UDP) yang pada header paket tersebut berisikan alamat host penanya, alamat DNS resolver, pertanyaan yang diinginkan serta sebuah nomor identitas. DNS resolver akan mengirimkan paket jawaban yang sesuai ke penanya. Pada paket jawaban tersebut terdapat nomor identitas, yang dapat dicocokkan oleh
penanya dengan nomor identitas yang dikirimnya. Oleh karena cara kerja yang sederhana dan tidak adanya metode otentikasi dalam sistem komunikasi dengan paket UDP, maka sangat memungkinkan seseorang untuk berpura-pura menjadi DNS resolver dan mengirimkan paket jawaban palsu dengan nomor identitas yang sesuai ke penanya sebelum paket jawaban dari DNS resolver resmi diterima oleh penanya. Dengan cara ini, seorang penyerang dapat dengan mudah mengarahkan seorang pengguna untuk melakukan akses ke sebuah layanan palsu tanpa diketahui pengguna tersebut. Sebagai contoh, seorang penyerang dapat mengarahkan seorang pengguna Internet Banking untuk melakukan akses ke situs Internet Banking palsu yang dibuatnya untuk mendapatkan data-data pribadi dan kartu kredit pengguna tersebut.

Untuk dapat melakukan gangguan dengan memalsukan data DNS, seseorang membutuhkan informasi-informasi di bawah ini :

• Nomor identitas pertanyaan (16 bit)
• Port tujuan pertanyaan
• Alamat IP DNS resolver
• Informasi yang ditanyakan
• Waktu pertanyaan.

Pada beberapa implementasi sistem operasi, informasi diatas yang dibutuhkan seseorang untuk melakukan penipuan data DNS bisa didapatkan. Kunci dari serangan tipe ini adalah, jawaban yang diberikan DNS resolver palsu harus diterima oleh penanya sebelum jawaban yang sebenarnya diterima, kecuali penyerang dapat memastikan bahwa penanya tidak akan menerima jawaban yang sebenarnya dari DNS resolver yang resmi.


DNS Cache Poisoning
Bentuk lain serangan dengan menggunakan DNS adalah DNS Cache Poisoning. Serangan ini memanfaatkan cache dari setiap server DNS yang merupakan tempat penyimpanan sementara data-data domain yang bukan tanggung jawab server DNS tersebut. Sebagai contoh, sebuah organisasi 'X' memiliki server DNS (ns.x.org) yang menyimpan data mengenai domain 'x.org'. Setiap komputer pada organisasi 'X' akan bertanya pada server 'ns.x.org' setiap kali akan melakukan akses Internet. Setiap kali server ns.x.org menerima pertanyaan diluar domain 'x.org', 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 'ns.x.org' dapat langsung memberikan jawaban yang benar. Dengan tahapantahapan tertentu, seorang penyerang dapat mengirimkan data-data palsu mengenai sebuah domain yang kemudian akan disimpan di cache sebuah server DNS, sehingga apabila server tersebut menerima pertanyaan mengenai domain tersebut, server akan memberikan jawaban yang salah. Patut dicatat, bahwa dalam serangan ini, data asli server DNS tidak mengalami perubahan sedikitpun. Perubahan data hanya terjadi pada cache server DNS tersebut.

Cara yang paling efektif dalam menghadapi serangan yang merubah DNS server 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.