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
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:
- TCPSYN 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 adalah 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.
- Apachemod_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.
Courtesy of: www.dos-attack.net
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.
Tidak ada komentar:
Posting Komentar