DDOS Attack
Pengertian DDoS Attack
Dalam artikel ini kelompok kami akan menjelaskan mengenai jenis serangan
yang bisa dikatakan tidak ada obatnya, yaitu denial of service atau DoS. Bila
serangan DoS ini dilakukan secara beramai-ramai dan terorganisir dengan baik,
maka akan menghasilkan kerusakan yang dahsyat dan sanggup melumpuhkan
situs-situs populer seperti twitter.com dan metasploit.com.
Apa itu DoS
Denial of service adalah jenis serangan yang tujuannya adalah mencegah
pengguna yang sesungguhnya menikmati layanan yang diberikan server. Server
sesuai namanya adalah pelayan yang harus selalu siap melayani permintaan
pengguna, yang umumnya beroperasi 24 jam tanpa henti. Contohnya adalah web
server yang bertugas melayani pengunjung web menyediakan informasi dalam bentuk
halaman html. Dalam kondisi normal, pengunjung dapat meminta resource dari web
server untuk ditampilkan dalam browsernya, namun bila web server terkena
serangan DoS maka pengunjung tidak bisa menikmati layanan web server.
Secara umum ada 2 cara melakukan serangan DoS:
1. Mematikan Server
2. Menyibukkan Server
· Tanpa bug/vulnerability
· Meng-exploit bug/vulnerability
DoS dengan Mematikan Server: Kill Them!
Anda pernah mengalami ingin memakai telepon umum atau ATM namun tidak bisa
karena di mesin tersebut ditempel kertas berisi pesan “Out of Service” atau
“Sedang dalam perbaikan”. Telepon umum adalah target serangan DoS yang biasa
terjadi, dimana-mana kita menemukan telpon umum yang rusak karena serangan DoS
seperti membanting gagang telpon, mencabut kabel, memecahkan LCD dan aksi-aksi
lainnya.
Tujuan serangan ini adalah membuat server shutdown, reboot, crash, “not
responding”. Jadi serangan ini menghasilkan kerusakan yang sifatnya persisten
artinya kondisi DoS akan tetap terjadi walaupun attacker sudah berhenti
menyerang, server baru normal kembali setelah di-restart/reboot.
Bagaimana cara serangan DoS ini dilakukan? Serangan ini dilakukan dengan
meng-exploit bug/vulnerability pada server. Kata kunci pada vulnerability jenis
ini biasanya adalah “specially/carefully crafted packet/request”, yang artinya
paket yang dirancang khusus. Kenapa dirancang khusus? Sebab dalam paket itu
mengandung sifat tertentu yang membuat server mati ketika mengolah paket
khusus itu.
Mari kita perhatikan beberapa contoh vulnerability yang berakibat pada DoS
attack:
· Ping of Death ( CA-1996-26 )
Ini adalah jenis bug
yang sudah sangat tua. Praktis sudah tidak ada lagi sistem yang vulnerable
terhadap bug ini. Bug ini bila diexploit akan membuat server crash, freeze atau
reboot. Serangan ini dilakukan dengan
mengirimkan “specially crafted” paket berupa oversized ICMP packet, yaitu paket
yang ukurannya di atas normal. Ketika server menerima dan memproses paket yang
“aneh” ini, maka server akan crash, freeze atau reboot. Ini adalah contoh
serangan DoS “one shot one kill” karena bisa merusak server hanya dengan satu
tembakan saja.
· MySQL IF Query DoS ( SA25188 )
Bug ini akan membuat mysql server menjadi
crash hanya dengan mengirim sql khusus yang mengandung fungsi IF() contohnya:
“SELECT id from example WHERE id IN(1, (SELECT IF(1=0,1,2/0)))”. Ini juga jenis
serangan “one shot one kill”.
· Cisco Global Site Selector DNS Request
Denial of Service (SA33429)
Bug ini membuat DNS
server Cisco mati dengan mengirimkan beberapa “specially crafted” paket request
DNS dalam urutan tertentu.
Tiga contoh di atas kiranya cukup memberikan gambaran tentang bagaimana
serangan DoS jenis ini dilakukan. Pada intinya adalah attacker memanfaatkan
(baca:mengexploit) bug yang membuat server berhenti bekerja dan biasanya
dilakukan sendirian secara remote dengan mengirimkan specially crafted packet.
DoS dengan Menyibukkan Server: Make Them As Busy As Possible!
Pada waktu menjelang lebaran kita sering merasa begitu sulit mengirim sms,
bahkan sering terjadi gagal kirim. Begitu juga ketika berlangsung acara kuis di
TV, mengelpon ke nomor untuk menjawab kuis terasa begitu sulit. Hal ini
terjadi karena ada begitu banyak orang yang mengirim sms pada saat lebaran dan
menelpon pada waktu kuis sehingga membuat jaringan telekomunikasi menjadi
begitu sibuk sampai tidak bisa melayani pengguna lain. Peristiwa itu mirip
dengan yang terjadi ketika sebuah server mendapat serangan denial of service.
DoS yang terjadi pada peristiwa tersebut bukan jenis DoS yang mematikan server,
namun jenis DoS yang menyibukkan server.
Jenis DoS ini bersifat sementara, server akan kembali normal bila attacker
berhenti mengirimkan request yang membuat sibuk server.
DoS jenis ini terbagi lagi menjadi 2 jenis berdasarkan cara melakukan
serangan:
· Exploiting vulnerability: Menyerang dengan
malicious request/packet
· No vulnerability exploitation: Menyerang
dengan normal request/packet
Membuat server sibuk dengan mengexploitasi vulnerability lebih cepat
daripada tanpa mengeksploit vulnerability.
Make Server Busy by Exploiting
Vulnerability
Dalam serangan DoS jenis ini, attacker memanfatkan bug yang membuat server
berlebihan dalam menggunakan resource (cpu,memory,disk space dsb). Attacker
akan mencari cara bagaimana agar membuat server bekerja ekstra keras (jauh
lebih keras dari request normal) untuk melayani request dia. Biasanya serangan
DoS jenis ini tidak berupa serangan “one shot one kill”. Serangan dilakukan
dengan melakukan banyak request dengan setiap request membuat server
mengonsumsi lebih banyak resource dari request yang normal.
Dalam hitungan matematika sederhana, bila attacker bisa membuat server
bekerja selama 10 detik hanya untuk melayani dia (misal normalnya 0,1
detik), maka attacker bisa mengirimkan request 1.000x untuk membuat server
melayani dia selama 10.000 detik (2,7 jam lebih) sehingga membuat pengguna lain
tidak bisa menikmati layanan server.
Untuk lebih memahami DoS jenis ini, mari kita lihat contoh-contoh
vulnerability yang bisa diexploit untuk melancarkan serangan DoS jenis ini:
· TCP SYN Flood DoS
Ini adalah serangan DoS
yang sudah sangat tua. Attacker menyerang dengan cara membanjiri server dengan
malicious request berupa paket SYN dengan fake source IP address. SYN packet aadalah
paket dari client yang mengawali terbentuknya koneksi TCP/IP, setelah itu
server akan membalas dengan SYN-ACK, dan dilengkapi dengan paket SYN-ACK-ACK
dari client, tiga proses ini disebut three way handshake.
Triknya adalah pada fake
source ip address pada paket SYN dari client. Akibatnya server akan mengirim
SYN-ACK (step 2) ke ip address yang salah sehingga server juga tidak akan
mendapatkan balasan SYN-ACK-ACK dari client. Padahal untuk setiap client yang
mencoba membuka koneksi, server akan mengalokasikan resource seperti memori dan
waktu untuk menunggu datangnya balasan ACK dari client. Dengan cara ini
attacker menghabiskan resource server hanya untuk melayani request palsu dari
attacker.
· Apache mod_deflate DoS
Apache menggunakan
mod_deflate untuk memampatkan file. Bila visitor meminta sebuah file, maka
apache akan menggunakan mod_deflate untuk memampatkannya kemudian mengirimkan
ke visitor tersebut. Namun bila di tengah proses pemampatan, visitor memutuskan
koneksi TCP, Apache masih terus bekerja memampatkan file untuk visitor yang
sebenarnya sudah tidak ada (sudah disconnect). Jadi bugnya adalah pada borosnya
pemakaian resource cpu untuk memampatkan file untuk client yang sudah tidak
ada.
Attacker memanfaatkan
kelemahan ini dengan meminta sebuah file yang berukuran besar, kemudian dalam
waktu singkat memutuskan koneksi sehingga membuat server bekerja keras
mempatkan file untuk visitor yang sudah tidak ada. Request ini diulang
berkali-kali sampai server begitu sibuknya dan semua resource cpu habis.
Dua contoh vulnerability di atas cukup menjelaskan bagaimana serangan DoS
jenis ini dilakukan. Pada intinya adalah dengan mengirim banyak malicious
request/paket yang membuat server mengonsumsi resource lebih banyak dan
lebih lama untuk setiap requestnya.
Make Server Busy Without Exploiting
Vulnerability
Ini adalah jenis serangan yang mengandalkan pada kemampuan mengirimkan
normal request sebanyak-banyaknya sehingga server menjadi sibuk. Perbedaan DoS
jenis ini dengan DoS yang mengexploit vulnerability adalah pada requestnya.
Request yang dikirimkan pada DoS jenis ini adalah request yang normal seperti
yang dilakukan pengguna biasa, sehingga server tidak mengonsumsi resource
berlebihan. Sedangkan DoS yang mengandalkan vulnerability mengirimkan specially
crafted malicious request untuk membuat server mengonsumsi resource lebih
banyak untuk melayani malicious request tersebut.
Normal request hanya membuat server mengonsumsi resource dalam jumlah
biasa-biasa saja, tidak akan mengganggu kerja server secara keseluruhan.
Diperlukan normal request dalam jumlah yang sangat banyak untuk membuat server
terganggu kerjanya. Jadi agar serangan ini menjadi efektif, maka serangan harus
dilakukan beramai-ramai dari banyak tempat, semakin banyak penyerang semakin
bagus hasilnya. Serangan ini juga disebut dengan distributed DoS (DDoS) karena
dilakukan dari banyak lokasi yang terdistribusi (tersebar).
Serangan DDoS dilakukan dengan menggunakan komputer zombie atau robot.
Zombie adalah komputer yang sudah dikuasai attacker sehingga bisa dikendalikan
dari jarak jauh. Sekumpulan komputer zombie membentuk jaringan yang disebut
bot-net. Attacker mendapatkan banyak zombie dengan menyebarkan virus atau worm,
setiap komputer yang terinfeksi akan diinstall program yang membuat komputer
bersedia menjalankan perintah dari attacker.
Gambar di atas menjelaskan cara kerja DDoS. Attacker memberi perintah
kepada semua pasukannya untuk membuat request HTTP ke sebuah website. Bila
pasukan yang dikuasai attacker sangat besar, maka web server akan dibanjiri
request sehingga menjadi terlalu sibuk dan tidak bisa diakses oleh pengguna
yang sebenarnya (real visitor).
Serangan jenis ini tidak ada obatnya karena attacker tidak meng-exploit bug
atau vulnerability apapun. Bila pada jenis DoS yang lain, serangan dapat
dicegah dengan melakukan patching atau update software, maka serangan ini tidak
bisa dihentikan dengan update atau patch.
Kesimpulan
Denial of service adalah serangan yang membuat server tidak bisa melayani
pengguna yang sesungguhnya. Berikut adalah jenis-jenis serangan DoS berdasarkan
cara melakukan serangan:
· Mematikan Server: one shot, one kill untuk
membuat server menjadi crash, hang, reboot.
· Menyibukkan Server: mengirim banyak sekali
request untuk membuat server sibuk.
· Exploiting bug: mengirim banyak specially
crafted request. Jumlah request tidak sebanyak jenis DoS yang menyibukkan
server dengan normal request.
· Normal request: mengirim banyak request
normal seperti pengguna biasa. Diperlukan jumlah request yang lebih banyak
dibandingkan jenis DoS yang menyibukkan server dengan exploit bug. Biasanya
menggunakan botnet secara terdistribusi.
0 comments :
Post a Comment