Simulasi IP Traceback dengan Algoritma Efficient Probabilistic

advertisement
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)
Download