Dalam artikel ini saya 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:
- Mematikan Server
 
- Menyibukkan Server 
- Tanpa bug/vulnerability
 
- Meng-exploit bug/vulnerability
 
 
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 )
 
- MySQL IF Query DoS ( SA25188 )
 
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.
- 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:
- Apache mod_deflate 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.
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 komentar:
Posting Komentar
Silahkan mengirimkan komentar anda.