Bab 2 Tinjauan Pustaka 2.1 Penelitian Sebelumnya Salah satu bidang variabel dalam IP header yang dapat dikorelasikan dengan probabilitas dinamis adalah bidang 8 bit Timeto-Live (TTL). Hal ini digunakan untuk melacak jumlah hop berjalan dan untuk membatasi jumlah hop sebuah paket dapat melakukan perjalanan di Internet sehingga mencegah paket data dapat diteruskan oleh router tanpa batas waktu. Nilai TTL adalah decremented oleh satu per satu setiap hop selama proses routing. Telah diamati bahwa di Internet saat ini, jumlah maksimum hop ada 32 hops, dalam praktiknya cukup bagi paket untuk mencapai tujuan. Jadi, secara umum nilai TTL diinisialisasi dengan nilai 32 ketika IP header sedang dikonstruksi, meskipun dapat diatur antara angka 1 dan 255. Bagian TTL memberikan perkiraan yang baik tentang seberapa jauh paket telah melakukan perjalanan dan dapat dikorelasikan dengan probabilitas penandaan. Probabilitas penandaan p dibentuk dengan Persamaan 2.1. p = 0.51- (1 / TTL) (2.1) Nilai konstan dipilih sebagai 0,51 karena nilai TTL diasumsikan berkisar dari 1 sampai 32. Dalam kasus khusus di mana TTL adalah satu, p diatur ke nilai 0,01. 7 8 Marking prosedure at router R for each packet P { TTLV: =get TTL value in IP header if TTLV == 1 { q:= 0.01 } else { q:= 0.51 - (1/TTLV) } let u be a random number from [0,1] if ( u <= q ) { P.distance: =0 P.edge: = h(R) { else { if (P.distance==0) { P.edge:=P.edge XOR h(R) } P.distance: = P.distance + 1; } Gambar 2.1 Prosedur Penandaan Berbasis TTL (Devasundaram, 2006) Gambar 2.1 menunjukkan prosedur penandaan berbasis TTL. Bilangan acak yang dihasilkan antara nol dan satu. Jika jumlah yang dihasilkan kurang dari atau sama dengan perhitungan probabilitas penandaan maka paket di-set untuk penandaan oleh router (Devasundaram, 2006). 9 2.2 Tinjauan tentang Protocol TCP/IP Sebelum membahas tentang DoS attack dan PPM akan dibahas protokol TCP/IP secara ringkas. 2.2.1 Protokol Stack Protokol stack adalah implementasi dari rangkaian protokol jaringan komputer. TCP/IP (Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas Internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Gambar 2.2 OSI Layers dan protokol TCP/IP (Dostalek dan Kabelova, 2006) 10 Gambar 2.2 menunjukkan protokol TCP/IP dan OSI layers. TCP/IP menggunakan empat layers sementara OSI menggunakan tujuh layers. TCP/IP dan OSI adalah sistem yang berbeda satu sama lain secara signifikan, meskipun mempunyai fungsi yang sama pada lapisan jaringan dan transportasi. Penulisan ini akan membahas protokol TCP/IP secara ringkas. Gambar 2.3 Hubungan antar Protokol TCP/IP (Panwar dkk, 2004) Gambar 2.3 menunjukkan hubungan antar protokol di lapisan yang berbeda. Penjelasan tentang protokol TCP/IP akan dibahas di bawah ini. Protokol TCP/IP memiliki empat layer, yaitu : 1. Physical layer (Network Interface Layer) Pada lapisan ini, didefinisikan bagaimana penyaluran data dalam bentuk frame-frame data pada media fisik. Media fisiknya dapat berupa ethernet, token ring, kabel, serat optik, frame relay atau gelombang radio. 11 2. Network Layer (Internet Layer) Lapisan ini bertugas untuk menjamin agar suatu paket yang dikirimkan dapat menemukan tujuannya. Lapisan ini memiliki peranan penting terutama dalam mewujudkan internetworking yang meliputi wilayah luas (worldwide internet). Pada layer ini terdapat tiga macam protokol, yaitu IP (Internet Protocol), ARP (Address Resolution Protocol), ICMP (Internet Control Message Protocol). Beberapa tugas penting pada network layer adalah : - Pengalamatan (addressing), yakni melengkapi setiap paket data dengan alamat internet atau yang dikenal dengan internet protocol address (IP address) sehingga jaringan TCP/IP independent dari jenis media, sistem operasi, dan komputer yang digunakan. - Routing, yakni menentukan rute kemana paket data akan dikirim agar mencapai tujuan yang diinginkan. Routerrouter pada jaringan TCP/IP-lah yang menentukan penyampaian paket data dari pengirim ke penerima. 3. Transport Layer Berisi protokol yang bertanggung jawab untuk mengadakan komunikasi antara dua komputer. Kedua protokol tersebut adalah : - User Datagram Protocol (UDP), protokol process-toprocess yang menambahkan hanya alamat port, check-sum error control, dan panjang informasi data dari lapisan di atasnya. - Transmission Control Protocol (TCP), menyediakan layanan penuh lapisan transport untuk aplikasi. 12 4. Aplication Layer Application Layer dalam TCP adalah kombinasi lapisan- lapisan session, presentations dan application pada OSI. Lapisan ini mendefinisikan aplikasi-aplikasi yang dijalankan pada jaringan. Beberapa protokol yang telah dikembangkan pada lapisan ini yaitu: SMTP (Simple Mail Transfer Protocol) untuk pengiriman electronic mail, FTP (File Transfer Protocol) untuk transfer file, HTTP (Hyper Text Transfer Protocol) untuk aplikasi berbasis web atau WWW (Worl Wide Web), NNTP (Network News Transfer Protocol) untuk distribusi news group. 2.2.2 Internet Protokol a. IP Address IP address dibentuk oleh sekumpulan bilangan biner sepanjang 32 bit, yang dibagi atas empat bagian. Setiap bagian panjangnya 8 bit. IP address merupakan identifikasi setiap host pada jaringan Internet sehingga tidak boleh ada host lain (yang tergabung ke Internet) menggunakan IP address yang sama. Dilihat dari keperluan jaringan, IP address dapat dibagi menjadi dua kelompok, yaitu private IP address dan public IP address. Private IP address digunakan untuk jaringan local (LAN). Sedangkan public IP address digunakan untuk jaringan public (Internet). Umumnya header mempunyai 20 bytes. Tetapi, header dapat juga berisi entries yang lebih panjang. Pada header IP ada field berisi informasi Internet address, IP address asal dan tujuan dari paket data. IP datagram ditunjukkan pada Gambar 2.4. 13 Gambar 2.4 IP Datagram (Dostalek dan Kabelova, 2006) b. ICMP (Internet Control Message Protocol) ICMP (Internet Control Message Protocol) adalah salah satu protokol utama dari protokol Internet. ICMP utamanya digunakan oleh sistem operasi komputer jaringan untuk mengirim pesan kesalahan. Sebagai contoh, bila komputer tujuan tidak bisa dijangkau maka ICMP akan mengirim pesan “Destination unreachable”. ICMP berbeda tujuan dengan TCP dan UDP. ICMP tidak digunakan secara langsung oleh aplikasi jaringan milik pengguna. Salah satu pengecualian adalah aplikasi ping yang mengirim pesan ICMP Echo Request (dan menerima Echo Reply) untuk menentukan apakah komputer tujuan dapat dijangkau dan berapa lama paket yang dikirimkan dibalas oleh komputer tujuan. 14 Gambar 2.5 Paket ICMP (Dostalek dan Kabelova, 2006) Gambar 2.5 menunjukkan struktur paket ICMP. Panjang header paket ICMP selalu 8 byte. Empat byte pertama selalu memiliki arti yang sama, dan isinya dari 4 byte yang tersisa tergantung pada jenis paket ICMP. Empat byte pertama dari header selalu berisi jenis pesan, kode pesan, dan sebuah checksum 16 bit. Format pesan tergantung pada nilai dari type field. Field code kemudian menetapkan masalah yang sedang ditandai oleh ICMP. 2.2.3 Transport Protokol Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP) merupakan dua protokol terpenting dalam layer 15 Transport. Keduanya digunakan oleh berbagai aplikasi TCP/IP. Pada subbab ini akan dibahas secara ringkas kedua protokol tersebut. a. TCP (Transmission Control Protocol) TCP (Transmission Control Protocol) merupakan protokol yang bersifat connection oriented karena sebelum proses transmisi data terjadi, dua aplikasi TCP harus melakukan pertukaran kontrol informasi (handshaking). TCP juga bersifat reliable karena menerapkan fitur deteksi kesalahan dan retransmisi apabila ada data yang rusak, sehingga keutuhan data dapat terjamin. Gambar 2.6 TCP Header (Dostalek dan Kabelova, 2006) Gambar 2.6 menunjukkan TCP header. Panjang TCP header adalah 20 bytes dan diikuti dengan item opsional. Item opsional terdiri dari tipe item opsional, panjang item opsional, dan nilainya. Protokol TCP bertanggung jawab untuk mengirimkan data dari sumber ke tujuan dengan benar. TCP dapat mendeteksi kesalahan atau hilangnya data dan melakukan pengiriman kembali sampai data diterima dengan lengkap. TCP selalu meminta konfirmasi setiap kali 16 data dikirim, untuk memastikan apakah data telah sampai di tempat tujuan. Kemudian TCP akan mengirimkan data berikutnya atau melakukan pengiriman ulang (retransmisi) apabila data sebelumnya tidak sampai atau rusak. Data yang dikirim dan diterima kemudian diatur berdasarkan nomor urut. Protokol TCP sangat cocok digunakan untuk koneksi yang membutuhkan kehandalan tinggi, seperti aplikasi telnet, SSH, FTP, HTTP. b. UDP (User Datagram Protocol) UDP merupakan protokol yang bersifat connectionless. Artinya, saat melakukan pengiriman data tidak dilakukan proses handshaking, tidak ada sequencing datagram, dan tidak ada jaminan bahwa paket data (datagram) yang dikirim akan tiba dengan selamat. UDP juga tidak menyediakan fitur koreksi kesalahan. UDP hanya menyediakan fasilitas multiplexing aplikasi (via nomor port) dan deteksi kesalahan (via checksum) yang tersedia pada header dan muatan. Deteksi kesalahan pada UDP hanya bersifat opsional. Transmisi data yang realible, dilakukan ditingkat aplikasi. Tidak bisa dikerjakan ditingkat protokol UDP. Gabar 2.7 UDP Header (Dostalek, Kabelova, 2006) 17 Gambar 2.7 menunjukkan UDP header yang berisi jumlah kedua sumber dan port tujuan sama dengan TCP. Nomor port dari protokol UDP tidak ada hubungannya dengan nomor port TCP. UDP menggunakan himpunan independent nomor port. Panjang field UDP menunjukkan panjang datagram UDP (panjang header + panjang data). Panjang minimum adalah 8 bytes, sebuah datagram UDP hanya berisi header dan tidak ada data. Layanan yang menggunakan UDP yaitu transmisi audio/video, seperti : VoIP, audio/video streaming. UDP tidak cocok untuk pengiriman paket data berukuran besar karena peluang jumlah paket yang hilang/rusak sangat besar. 2.3 Serangan DoS (Denial of Service) 2.3.1 Definisi DoS (Denial of Service) dan DDoS (Distributed Denial of Service) Denial of Service (DoS) merupakan upaya untuk mencegah pengguna yang sah mengakses layanan yang tersedia (Stallings, 2011). DoS menurunkan kinerja sebuah web site dengan terusmenerus mengulang request ke server. Serangan ini mengakibatkan server korban menjadi sibuk melayani request yang terkirim dan berakhir dengan menghentikan aktivitas atau berhenti dengan sendirinya karena tidak mampu melayani request. DDoS (Distributed Denial of Service) adalah serangan terkordinasi dari banyak sumber yang ditujukan untuk menghabiskan sumberdaya target sehingga tidak bisa menyediakan layanan bagi pengguna sah (Stallings, 2011). Penyerang menjadikan 18 beberapa komputer yang terhubung dalam jaringan sebagai zombie atau secondary victim untuk melakukan serangan terhadap target. Serangan DDoS menggunakan banyak komputer untuk mengkoordinasi serangan DoS ke satu atau lebih target. Penggunaan teknologi client/server attacker dapat mengefektifkan serangan DoS dengan memanfaatkan sumberdaya dari bagian komputer yang tanpa disadari bertindak sebagai platform serangan. Gambar 2.8 Skema Serangan DDoS (Stallings, 2011) Gambar 2.8 merupakan ilustrasi dari serangan yang mengkonsumsi transmisi data sumber daya, berikut langkah-langkah penyerangan (Stallings, 2011) : 1. Penyerang mengambil kendali dari beberapa host melalui Internet, menginstruksikan mesin yang terhubung di dalam jaringan untuk mengirim ICMP ECHO packets ke target dengan alamat palsu ke kelompok host yang bertindak sebagai reflektor, seperti yang dijelaskan selanjutnya. 19 2. Node di situs yang dijadikan sebagai perantara menerima permintaan palsu berganda dan merespon dengan mengirim paket balasan echo ke situs target. 3. Router target dibanjiri oleh paket-paket dari situs yang dijadikan perantara, tanpa meninggalkan kapasitas transmisi data untuk lalu lintas data yang sah. 2.3.2 Jenis Serangan DDoS DDoS mempunyai dua tipe serangan yaitu model AgentHeandler dan model IRC-based. Gambar 2.9 Jaringan Serangan DDoS (Specht dan Lee, 2003) Gambar 2.9 menunjukkan jaringan serangan DDoS yang terbagi menjadi dua bagian Agent-Handler dan IRC-Based, masingmasing bagian mempunyai jenis serangan yang berbeda-beda. berikut akan dibahas lebih rinci mengenai kedua model serangan tersebut. 1. Model Agent-Handler Serangan DDoS model Agent-Handler terdiri atas clients, handler, dan agents. Client adalah dimana penyerang berkomunikasi 20 dengan sistem serangan DDoS lainnya. Handlers adalah paket-paket software yang terletak diseluruh jaringan Internet yang digunakan oleh client penyerang untuk berkomunikasi dengan agents. Serangan DDoS model Agent-Handler ditunjukkan pada Gambar 2.10. Gambar 2.10 Serangan DDoS Model Agent-Handler (Specht dan Lee, 2003) Software agent yang berada dalam sistem dikoordinasi untuk melakukan serangan. Penyerang berkomunikasi dengan sejumlah handler untuk mengidentifikasi agents mana saja yang sedang berjalan, kapan untuk menjadwalkan serangan-serangan, atau kapan untuk meng-upgrade agents. Pemilik dan pengguna sistem tidak mengetahui bahwa sistem mereka turut ambil bagian dalam sebuah serangan DDoS. Penyerang akan mencoba meletakkan software handler pada router yang berhasil dikuasai atau server jaringan yang menangani lalu lintas data dalam jumlah besar. Hal ini membuat lebih sulit untuk mengidentifikasi pesan-pesan antara client dan handler, dan antara handler dan agent. Komunikasi antara penyerang dan handler dan antara handler dan agents dapat melalui protokol TCP, UDP atau ICMP (Specht dan Lee, 2003). 21 Dalam suatu jaringan serangan DDoS, sistem yang telah dimasukkan software agent disebut sebagai korban sekunder. Korban primer adalah sistem yang menjadi target serangan DDoS. Setiap program agent hanya menggunakan beberapa sumberdaya (memori dan bandwith) ketika berpartisipasi dalam sebuah serangan. Akan tetapi, software agent dirancang dengan baik menggunakan sumberdaya dalam jumlah kecil agar para pengguna program sekunder mengalami sedikit perubahan dalam performa sistem mereka. 2. Model IRC-based IRC adalah sistem chating online multiple user. IRC mengijinkan para pengguna komputer untuk membuat interkoneksi dua pihak atau lebih dan menulis pesan-pesan secara realtime satu sama lainnya. Arsitektur jaringan IRC terdiri dari sejumlah server IRC yang terdapat di seluruh internet dengan kanal-kanal untuk saling berkomunikasi melalui Internet. Jaringan-jaringan chat IRC mengijinkan para penggunanya untuk membuat kanal-kanal publik, rahasia dan private. Kanal-kanal publik adalah kanal-kanal dimana banyak pengguna dapat chat dan berbagi pesan dan file. Kanal publik mengijinkan pengguna kanal tersebut untuk melihat semua nama-nama IRC dan pesan-pesan user yang ada di dalam kanal tersebut. Kanal-kanal private dan rahasia dibuat oleh pengguna untuk berkomunikasi hanya dengan pengguna lainnya yang telah ditentukan. Baik kanal private ataupun kanal rahasia melindungi nama-nama dan pesan-pesan para penggunanya dari users lainnya yang tidak memiliki akses ke kanal tersebut. Walaupun content dari kanal private tersembunyi, perintah tertentu untuk mencari kanal 22 akan mengijinkan para pengguna yang tidak berada dalam kanal untuk mengidentifikasi keberadaan kanal tersebut sedangkan kanalkanal rahasia lebih sulit untuk dicari kecuali penggunanya adalah pengguna dari kanal tersebut. Gambar 2.11 Serangan DDoS Model IRC-Based (Specht dan Lee, 2003) Gambar 2.11 menunjukkan model serangan berbasis IRC. Arsitektur serangan DDoS berbasis IRC mirip dengan model serangan DDoS Agent-Handler. Perbedaannya bahwa model IRC tidak menggunakan program handler yang terinstal di sebuah server jaringan, tetapi menggunakan sebuah kanal komunikasi IRC untuk menghubungkan client ke agent-agent. Dengan menggunakan kanal IRC, penyerang yang menggunakan jenis arsitektur serangan DDoS ini mempunyai keuntungan tambahan. Sebagai contoh, penyerang dapat menggunakan port-port IRC yang sah untuk mengirimkan pesan-pesan kepada para agent. Hal ini membuat pelacakan perintah DDoS menjadi lebih sulit. Selain itu sejumlah server IRC cenderung memiliki volume traffic yang besar yang memudahkan penyerang untuk menyembunyikan keberadaannya dari administrator jaringan. Keuntungan lainnya adalah penyerang tidak perlu untuk memelihara 23 sebuah daftar dari agent-agent karena penyerang cukup masuk ke server IRC dan melihat daftar dari semua agent yang ada. Software agent yang terinstal dalam jaringan IRC biasanya berkomunikasi dengan kanal IRC dan memberitahukan penyerang ketika agent berjalan. 2.3.3 Taksonomi Serangan DDoS Ada berbagai macam teknik serangan DDoS. Ada dua kelas utama dari serangan DDoS, yaitu bandwith depletion dan resource depletion attacks. Gambar 2.12 Taksonomi Serangan DDos (Specht dan Lee, 2003) Gambar 2.12 menunjukkan taksonomi dari serangan DDoS, yang terbagi menjadi dua bagian, berikut penjelasannya : 24 2.3.3.1 Serangan untuk menguras bandwith (bandwith depletion attacks) Serangan DDoS untuk menguras bandwidth adalah serangan yang dirancang untuk membanjiri jaringan korban dengan traffic yang tidak diinginkan untuk mencegah lalu lintas yang sah mencapai sistem korban (primer). Bandwith Depletion dibagi menjadi dua kelas. Sebagai berikut : a. Flood attacks Sebuah flood attack melibatkan secondary victim dengan mengirimkan banyak data pada traffic menuju sistem korban, untuk memenuhi bandwidth pada sistem korban. Besarnya jumlah paket yang dikirim oleh secondary victim ke sistem korban membuat sistem korban menjadi lambat, membuat sistem crash atau memenuhi bandwith. Hal ini mencegah pengguna-pengguna yang sah untuk mengakses sumberdaya-sumberdaya korban. 1) UDP Flood attacks. User Datagram Protocol (UDP) adalah protokol connectionless. Paket data yang dikirimkan melalui UDP tidak membutuhkan handshaking antara pengirim dan penerima, dan sistem penerima hanya akan menerima paket itu dengan diproses. Paket UDP yang dikirim dalam jumlah besar ke sistem korban dapat menjenuhkan jaringan, menghabiskan Bandwidth yang tersedia untuk permintaan layanan yang sah ke sistem korban. Dalam serangan DDoS UDP flood, serangan ini dirancang untuk menyerang korban secara acak. Menyebabkan sistem korban memproses data yang masuk dan mencoba menentukan aplikasi data yang diminta, jika sistem korban tidak berjalan di aplikasi pada port sasaran, maka sistem 25 korban akan mengirimkan sebuah paket ICMP untuk sistem pengiriman menunjukkan pesan "destination port unreachable". DDoS tool penyerang juga akan men-spoof alamat IP address sumber dari paket serangan. Hal ini membantu menyembunyikan identitas korban sekunder dan menjamin bahwa paket-paket dari sistem korban tidak dikirim kembali ke secondary victim, tapi ke komputer lain dengan alamat palsu. 2) ICMP Flood attacks. Paket ICMP (Internet Control Message Protocol) yang dirancang untuk fitur manajemen jaringan seperti lokasi peralatan jaringan dan menentukan jumlah hop atau round-trip-time untuk mendapatkan lokasi sumber ke tujuan. b. Serangan amplifikasi Suatu serangan amplifikasi DDoS bertujuan untuk menggunakan fitur alamat IP broadcast yang terdapat pada kebanyakan router untuk menguatkan dan memantulkan serangan. Gambar 2.13 Serangan Amplification (Specht dan Lee, 2003) 26 Gambar 2.13 menunjukkan serangan amplifikasi. Fitur ini mengijinkan suatu sistem pengirim untuk menentukan sebuah alamat IP broadcast sebagai alamat tujuan dari suatu alamat spesifik. Hal tersebut menginstruksikan router-router yang melayani paket-paket di dalam jaringan untuk menduplikasi paket-paket dan mengirimkan semuanya ke alamat-alamat IP yang ada dalam jangkauan alamat broadcast. Dua jenis serangan amplifikasi, yaitu serangan smurf dan serangan fraggle (Specht dan Lee, 2003) : 1) Dalam serangan DDoS Smurf, penyerang mengirimkan paket ke network amplifier (sistem pendukung pengalamatan broadcast). Dengan alamat pengirim palsu untuk alamat IP korban. Paket menyerang biasanya ICMP ECHO REQUESTs, paket (mirip dengan "ping") permintaan penerima untuk menghasilkan suatu paket ICMP ECHO REPLY. Penguat mengirimkan paket ICMP ECHO REQUEST ke semua sistem dalam rentang alamat broadcast, dan masing-masing system akan mengembalikan ICMP ECHO REPLY ke alamat IP korban. 2) Sebuah serangan DDoS fraggle mirip dengan serangan smurf bahwa penyerang mengirimkan paket ke network amplifier. Perbedaan fraggle dari smurf terletak pada fraggle menggunakan paket UDP ECHO bukan paket ICMP ECHO. Ada variasi dari serangan fraggle dimana paket-paket UDP ECHO dikirim ke port yang mendukung membangkitkan karakter, dengan alamat pengirim palsu ke layanan korban menciptakan infinite loop. echo 27 2.3.3.2 Serangan untuk menghabiskan sumberdaya (Resource Depletion Attacks) Suatu serangan yang menghabiskan sumber daya adalah serangan yang ditujukan pada sebuah server atau proses di sistem korban sehingga sistem tersebut tidak dapat memproses permintaanpermintaan layanan yang sah. a. Protocol Exploit Attacks Serangan protocol exploit dibagi menjadi dua bagian yaitu serangan TCP SYN dan serangan PUSH+ACK. 1) Serangan TCP SYN. Transfer Control Protocol (TCP) melakukan proses handshake penuh diantara pengirim dan penerima, sebelum paket-paket data dikirim. TCP Synchronization ditunjukkan pada Gambar 2.14 (a). (a) TCP Synchronization (b) TCP Syn Attack Gambar 2.14 Serangan yang memanfaatkan kelemahan protocol TCP (Specht dan Lee, 2003) Gambar 2.14 (b) menunjukkan TCP Syn Attack. Sistem penerima dengan mengirimkan permintaan sebuah ACK (Acknowledgement) SYN-nya sendiri. Sistem pengirim kemudian mengirim kembali ACK-nya dan komunikasi dapat 28 dimulai di antara kedua system, jika sistem penerima dikirimi sebuah paket SYNx tetapi tidak menerima sebuah ACKY+1 untuk SYNy yang dikirim balik ke pengirim,penerima akan mengirim ulang sebuah ACK+ SYN yang baru setelah beberapa saat. Sumber daya prosessor dan memori pada sistem penerima dipesan untuk permintaan TCP SYN tersebut hingga batas waktu (timeout) terjadi. Dalam suatu serangan memerintahkan TCP SYN zombie-zombie DDoS, untuk penyerang mengirimkan permintaan-permintaan TCP SYN palsu ke suatu server korban untuk melumpuhkan sumber daya prosessor server. mencegah server untuk merespon kepada hal ini permintaan- permintaan yang sah. Serangan TCP SYN mengeksploitasi proses handshake three-way diantara system pengirim dan sistem penerima dengan mengirimkan paket-paket TCP SYN dalam jumlah besar ke sistem korban dengan address alamat IP asal yang dipalsukan, sehingga sistem korban merespon ke suatu sistem yang tidak me-request dengan ACK+SYN. Ketika request SYN diproses dalam jumlah besar oleh sebuah server dan tidak ada satu pun respon ACK+SYN, server akan mulai kehabisan sumber daya prosessor dan memori. 2) Serangan PUSH + ACK mirip dengan serangan TCP SYN dimana tujuannya adalah untuk menguras sumber daya sistem korban. Beberapa agent penyerang mengirimkan paket-paket TCP dengan bit-bit PUSH dan ACK di-set ke satu. Paket-paket ini memerintahkan sistem korban untuk membongkar semua 29 data di dalam buffer TCP (terlepas dari apakah buffer penuh atau tidak) dan mengirimkan suatu acknowledgement ketika selesai. Apabila proses ini diulang dengan beberapa agent, sistem penerima tidak dapat memproses paket-paket yang masuk dalam jumlah besar dan sistem korban akan crash. b. Malformed Packet Attacks Suatu serangan Malformed adalah serangan dimana penyerang memerintahkan zombie-zombie untuk mengirim paket-paket IP yang salah ditujukan ke sistem korban untuk membuat sistem korban crash. Ada dua jenis serangan paket Malformed. Dalam suatu serangan IP address, paket berisi alamat IP asal dan alamat IP tujuan yang sama. Hal ini dapat membingungkan sistem operasi dari sistem korban dan mengakibatkan sistem korban crash. Dalam serangan IP packet options, suatu paket malformed dapat mengacak field-field pilihan di dalam sebuah paket IP dan men-set semua bit Quality of Service (QoS) ke satu agar sistem korban harus menggunakan tambahan waktu pemprosesan untuk menganalisa trafik. Apabila serangan ini diperbanyak dengan menggunakan jumlah agent yang cukup, serangan ini dapat mematikan kemampuan pemprosesan dari sistem korban. 2.3.4 Taksonomi untuk Mengatasi Serangan DDoS Saat ini ada sejumlah solusi tersedia untuk mengurangi efek dari serangan DDoS, tetapi tidak ada metode yang komprehensif untuk melindungi terhadap semua bentuk yang dikenal serangan DDoS. Banyak derivatif serangan DDoS yang terus-menerus 30 dikembangkan oleh penyerang untuk mem-baypass setiap ada penanggulangan baru. Gambar 2.15 Taksonomi Penanggulangan Serangan DDoS (Specht dan Lee, 2003) Gambar 2.15 menunjukkan taksonomi penanggulangan serangan DDoS. Pada gambar diatas penanggulangan serangan DDoS dibagi menjadi enam bagian dan dapat diklasifiksikan menjadi dua bagian yaitu sebelum serangan terjadi dan saat serangan terjadi. a. Sebelum serangan DDoS terjadi Sebelum serangan DDoS terjadi penanggulangan dilakukan dengan cara mendeteksi dan menetralisir potensi serangan. Teknik yang digunakan terdiri dari tiga sub kelompok yaitu mendeteksi dan menetralisir handler, mencegah serangan sekunder, dan mencegah potensi serangan. 31 b. Selama serangan DDoS terjadi Saat serangan DDoS terjadi penanggulangan dilakukan dengan cara menghentikan serangan atau membelokkan serangan. Teknik yang digunakan terdiri dari tiga sub kelompok yaitu menghentikan serangan, membelokkan serangan, dan forensik. Penelitian ini menggunakan teknik yang termasuk sub kelompok forensik yaitu IP traceback. IP traceback menyimpan pola lalu lintas data selama serangan DDoS terjadi dengan memberi tanda pada paket (packet marking). Paket yang sudah ditandai tadi kemudian dianalisis untuk menemukan sumber serangan. 2.4 Packet Marking Teknik penandaan paket bergantung pada router sepanjang jalur serangan untuk mengidentifikasi diri. menandai paket dengan informasi Router menghasilkan paket tambahan berdasarkan ICMP atau langsung memasukkan informasi tersebut dalam paket header. 2.4.1 ICMP Packet Marking Ketika router atau host tujuan menginformasikan sesuatu kerusakan pada IP datagram, protokol yang digunakan adalah ICMP. Karakteristik dari ICMP antara lain : - ICMP menggunakan IP - ICMP melaporkan kerusakan 32 - ICMP tidak dapat melaporkan kerusakan dengan menggunakan pesan ICMP, tetapi untuk menghindari pengulangan. - Untuk data yang terfragmentasi, pesan ICMP hanya mengirimkan pesan kerusakan pada fragmentasi pertama. - Pesan ICMP tidak merespon dengan mengirimkan data secara broadcast atau multicast. - ICMP tidak akan merespon kepada IP datagram yang tidak memiliki header IP pengirim. - Pesan ICMP dapat membuat proses kerusakan pada datagram. Gambar 2.16 ICMP Traceback (Devasundaram, 2006) Gambar 2.16 menunjukkan ilustrasi penandaan paket yang melewati router dengan IP traceback. Korban menerima tambahan informasi secara tetap dari paket yang datang. Pesan ini berisi sebagian kecil informasi yang menunjukkan dari mana paket datang, kapan paket dikirim, dan membuktikan keaslian paket. Untuk mengurangi overhead dalam penambahan pengiriman paket tersebut maka router akan memberikan satu pesan ICMP traceback untuk setiap 20.000 paket yang melewati router. 2.4.2 IP Header Packet Marking Metode penandaan paket pada IP traceback telah menarik banyak perhatian. Paket data ditandai dengan informasi penting oleh 33 router sepanjang jalan. Korban menggunakan informasi yang tersimpan di dalam IP header untuk merekonstruksi jalur serangan. Dalam metode ini, rekonstruksi jalur serangan bergantung pada banyaknya paket yang telah ditandai dan dikumpulkan oleh korban. Probabilistic Packet Marking memperoleh perhatian yang luas karena mengeluarkan biaya yang rendah dalam hal pemprosesan router dan waktu rekonstruksi. Mengacu pada Gambar 2.4 yang menunjukkan IP datagram yang belum menyimpan informasi penandaan paket. Bagaimana dan dimana IP datagram akan menyimpan informasi penandaan paket terletak pada identification field dalam IP header. Dua fields yang memungkinkan dapat terjadi overloaded pada saat penulisan informasi penandaan paket adalah options field dan identification field. Options field dalam paket IP header digunakan untuk menambahkan informasi tambahan untuk pengolahan tambahan seperti pengujian, debugging, dan keamanan. Namun, penandaan pada options field, menimbulkan beberapa masalah. Penandaan di options field memperbesar ukuran paket, yang dapat menyebabkan paket IP akan terbagi di sepanjang jalan. Options field adalah field yang tidak sesuai digunakan untuk penandaan karena akan menimbulkan masalah saat merekonstruksi jalur serangan karena terdapat kemungkinan bahwa penyerang dapat memodifikasi jalur data dan memalsukan informasi (Devasundaram, 2006). 34 Gambar 2.17 Alur Kerja Probabilistic Packet Marking (Devasundaram, 2006) Gambar 2.17 menunjukkan proses penandaan paket. Identification field dalam paket IP header dirancang untuk menyimpan identitas paket yang terbagi. Ini membedakan potongan paket IP dan memungkinkan dapat digabungkan kembali dengan benar pada sisi penerima. Menurut penelitian bahwa kurang dari 0,25% paket di Internet terbagi menjadi beberapa bagian, sehingga mengandalkan pada identification field. Penelitian tersebut merupakan suatu penegasan yang berfungsi sebagai pembenaran bahwa identifikasi field lebih tepat digunakan untuk menyimpan informasi penandaan paket (Davasundaram, 2006). Savage pertama kali menjelaskan dan mengimplementasikan pengambilan sampel probabilistik dengan probabilitas 1/25 untuk menghindari overhead yang berlebihan pada penandaan paket di router. Selanjutnya, setiap paket menyimpan informasi sebagian jalur, bukan jalur lengkap. Menggunakan pendekatan ini bersama 35 dengan teknik kompresi dan bidang tambahan dapat mencegah penipuan informasi routing. Savage mengusulkan untuk menggunakan IP header 16-bit dalam identification field untuk menyimpan informasi router (Devasundaram, 2006). Gambar 2.18 Overloaded IP Header dari Savage (Devasundaram, 2006) Gambar 2.18 menunjukkan overloaded IP header. Identification field terbagi menjadi offset, distance dan edge fragment yang digunkan untuk menyimpan informasi penandaan paket. Pembagian identification field lebih detail dapat dilihat pada Gambar 2.19. Identification field 16 bit dibagi menjadi tiga bagian dengan pembagian Offset 3 bit menyatakan 8 macam fragmen yang mungkin ada, 5 bit menyatakan distance, dan 8 bit menyatakan fragmen edge (Savage, 2000). Gambar 2.19 Pembagian Identification Field untuk Penandaan Paket (Savage, 2000) 36 Down Song dan Adrian Perrig memodifikasi edgeidentification berbasis PPM dari untuk lebih mengurangi kebutuhan penyimpanan, dengan menyimpan hash dari setiap IP address bukan dari alamat itu router itu sendiri. Pendekatan ini beranggapan korban memiliki peta jaringan lengkap dari semua router upstream. Setelah edge-fragment reassembly, metode ini membandingkan hash IP address yang dihasilkan untuk hash IP address router yang berasal dari peta jaringan. Metode dimodifikasi untuk menjadi lebih efektif terhadap serangan DDoS dari pada metode sebelumnya. (untuk memfasilitasi rekonstruksi jalur serangan). Overloaded IP header dari Song dan Perrig ditunjukkan pada Gambar 2.20. Gambar 2.20 Overloaded IP Header dari Song dan Perrig (Devasundaram, 2006) Gambar 2.21 Paket Marking dalam IP Header (Song dan Perrig, 2001) Gambar 2.21 menunjukkan paket marking dalam IP header, dimana alamat IP router dikodekan dan nilai hash disimpan dalam header. Sskema ini menunjukkan bahwa, 16 bit field identifikasi IP 37 dibagi menjadi distance 5 bit, dan edge 11 bit dengan menggunakan hash. 2.4.3 Algoritma Pada penulisan ini algoritma yang digunakan adalah algoritma Efficient Probabilistic Packet Marking yang merupakan modifikasi dari algoritma Probabilistic Packet Marking. 2.4.3.1 PPM (Probabilistic Packet Marking) Algoritma PPM (Probabilistic Packet Marking) digunakan untuk memecahkan masalah IP traceback. PPM digunakan untuk menemukan peta Internet atau sebuah grafik serangan selama serangan Distributed Denial of Service (DDoS). Algoritma PPM terdiri dari dua prosedur yaitu prosedur penandaan paket dan prosedur rekonstruksi grafik. Dalam prosedur penandaan paket, paket-paket secara acak menyandikan setiap sisi pada grafik serangan dan memperoleh prosedur rekonstruksi grafik, grafik dibangun dari informasi yang dikodekan. a. Prosedur Packet Marking Dalam penerapkan layanan IP Traceback yang harus dilakukan adalah mengalokasikan ruang yang cukup dalam paket IP header sehingga ruang ini dapat digunakan untuk mencatat jalur yang dilintasi sebuah paket. Misalnya, setiap router, di samping melakukan forwarding paket dan fungsi routing, mencatat atau menambahkan ID-nya sendiri di ruang pra-dialokasikan pada paket header. Dalam analogi ini ketika korban menerima paket yang telah ditandai, korban dapat memeriksa paket header dan mendapatkan 38 secara lengkap informasi jalur yang dilalui paket yang ditandai. Satu masalah besar tentang pendekatan ini adalah bahwa panjang jalur yang dilalui (misalnya, jumlah hop) dari sebuah paket tidak tetap. Sehingga mustahil untuk pra-mengalokasikan diawal untuk jumlah yang cukup dalam ruang paket header. Kesulitan lain teknik pencatatan jalur informasi yang lengkap dari setiap paket ke korban adalah bahwa jika penyerang berpotensi dapat memanipulasi informasi jalur dan mengisinya dalam proses identifikasi router yang palsu di dalam paket header dapat menyesatkan korban. Router mengkodekan informasi dalam tiga field yang menandai serangan paket yaitu awal, akhir, dan jarak. Field awal dan akhir menyimpan alamat IP untuk dua router pada titik akhir tepi yang ditandai. Field jarak mencatat jumlah hop diantara kedua sisi yang ditandai dan lokasi korban (Savage, 2000). Marking prosedure at router R for each packet w let x be a random number from [0..1] if x < Pm then write R into w.start and 0 into w.distance else if w.distance = 0 then write R into w.end increment w.distance Gambar 2.22 Algoritma Packet Marking (Bhavani dan Reddy, 2010) Gambar 2.22 menunjukkan algoritma Packet Marking dimana di dalam PPM paket menyimpan informasi pada tepi dalam header IP. Router menentukan bagaimana paket dapat diproses tergantung pada bilangan acak yang dihasilkan. Jika x lebih kecil dari yang 39 telah ditetapkan kemungkinan untuk menandai pm, router memilih untuk memulai pengkodean sebuah sisi. Router menetapkan field awal dari paket yang masuk ke alamat router dan mengatur ulang field jarak ke nol. Jika x lebih besar dari pm, router memilih untuk mengakhiri pengkodean sebuah sisi dengan menetapkan alamat router di bidang akhir. Menurut Algoritma Probabilistic Packet Marking, setiap paket dapat menandai atau menghapus tanda edge field dengan beberapa kemungkinan. Misalkan Pm(d) menyatakan bahwa sebuah sisi ditandai, dan itu adalah (d) hop jauh dari lokasi korban. Rumus PPM ditunjukkan pada Persamaan 2.2 (Bhavani dan Reddy, 2010). Pm(d) = p(1-p)d b. d≥0 (2.2) Prosedur rekonstruksi grafik Setelah paket ditandai (marked) oleh router, korban dapat merekonstruksi jalur serangan untuk mengetahui asal penyerang. Algoritma untuk merekonstruksi jalur diperlihatkan pada Gambar 2.23. let G be a tree with root being victim V ; let edges in G be tuples(start,end,distance); for (each received marked packet w) { if (w.distance==0) then insert edge (w.start,V,0) into G ; Else insert edge (w.start, w.end, w.distance) into G ; } remove any edge (x,y,d) with d ≠ distance from x to V in G ; extract path (Ri…Rj) by enumerating acyclic paths in G ; Gambar 2.23 Algoritma Grafik Rekonstruksi Jalur (Bhavani dan Reddy, 2010) 40 Setelah korban menerima paket, pertama perlu filtering paket yang tanpa tanda (karena korban tidak memuat informasi apapun dalam membuat grafik serangan). Pihak korban menjalankan algoritma konstruksi grafik untuk seluruh paket yang telah ditandai yang dikumpulkan kembali dan membangun grafik yang menggambarkan serangan. 2.4.3.2 EPPM (Efficient Probabilistic Packet Marking) PPM mempunyai banyak fitur yang diinginkan. Sebagai contoh, router yang jauh dari korban memiliki peluang yang sangat rendah untuk menyampaikan informasi penandaan paket kepada korban. Sebab, informasi dari router sebelumnya (upstream routers) ditimpa oleh router sesudahnya (downstream routers) yang mengakibatkan hilangnya informasi penandaan paket yang ditulis oleh router yang terletak jauh dari korban. Untuk mengatasi masalah di atas, maka algoritma PPM perlu dimodifikasi untuk meningkatkan efektifitasnya. Hasil modifikasi ini disebut Efficient Probabilistic Packet Marking (EPPM). Gambar 2.24 menunjukkan algoritma efficient probabilistic packet marking. EPPM menggunakan field tambahan yang disebut sebagai flag yang membutuhkan salah satu dari nol atau satu. Nilai flag pada awalnya dibuat nol. Jika paket sudah diberi tanda maka flag bernilai satu (Bhavani dan Reddy, 2010). 41 for (each packet w received by the router) { generate a random number x between [0..1]; If (x < Pm and flag=0) then /* router starts marking. flag 0 implies that the packet is not encoded previously */ write router's address into w.start and 0 into w.distance Else { If ( w.distance = 0 ) then write router address into w.end and 1 into flag } /* flag 1 implies that the packet has encoded an edge and no other successive router start encoding */ If (flag = 1) then Increment w.distance by 1 /*w.distance represents the distance of the encoded edge from the victim V */ } } Gambar 2.24 Algoritma Efficient Packet Marking Prosedure (Bhavani dan Reddy, 2010)