Anda mengalami penolakan serangan layanan. Jika Anda melihat lalu lintas datang dari beberapa jaringan (IP berbeda pada subnet berbeda), Anda mendapat penolakan layanan terdistribusi (DDoS); jika itu semua berasal dari tempat yang sama Anda memiliki DoS lama yang sederhana. Akan bermanfaat untuk memeriksa, jika Anda mampu; gunakan netstat untuk memeriksa. Ini mungkin sulit dilakukan.
Penolakan layanan biasanya jatuh ke dalam beberapa kategori: berbasis lalu lintas, dan berbasis beban. Item terakhir (dengan layanan mogok) adalah DoS berbasis exploit dan sangat berbeda.
Jika Anda mencoba untuk mengetahui jenis serangan apa yang terjadi, Anda mungkin ingin menangkap beberapa lalu lintas (menggunakan wireshark, tcpdump, atau libpcap). Anda harus, jika mungkin, tetapi juga sadar bahwa Anda mungkin akan menangkap cukup banyak lalu lintas.
Seringkali tidak, ini akan datang dari botnet (jaringan host yang dikompromikan di bawah kendali pusat dari beberapa penyerang, yang penawarannya akan mereka lakukan). Ini adalah cara yang baik bagi penyerang untuk (sangat murah) mendapatkan bandwidth upstream dari banyak host yang berbeda di jaringan yang berbeda untuk menyerang Anda, sambil menutupi jejak mereka. The Low Orbit Ion Cannon adalah salah satu contoh dari botnet (meskipun sukarela bukan malware yang diturunkan); Zeus lebih khas.
Berbasis lalu lintas
Jika Anda berada di bawah DoS berbasis lalu lintas, Anda menemukan bahwa ada begitu banyak lalu lintas yang datang ke server Anda sehingga koneksi ke Internet sepenuhnya jenuh. Ada tingkat kehilangan paket tinggi ketika melakukan ping server Anda dari tempat lain, dan (tergantung pada metode routing yang digunakan) kadang-kadang Anda juga melihat latensi yang sangat tinggi (pingnya tinggi). Serangan semacam ini biasanya merupakan DDoS.
Meskipun ini adalah serangan yang "sangat keras", dan sudah jelas apa yang sedang terjadi, sulit bagi administrator server untuk melakukan mitigasi (dan pada dasarnya mustahil bagi pengguna hosting bersama untuk melakukan mitigasi). Anda akan membutuhkan bantuan dari ISP Anda; beri tahu mereka bahwa Anda berada di bawah DDoS dan mereka mungkin dapat membantu.
Namun, sebagian besar ISP dan penyedia transit akan secara proaktif menyadari apa yang sedang terjadi dan menerbitkan rute blackhole untuk server Anda. Artinya, mereka menerbitkan rute ke server Anda dengan biaya sesedikit mungkin, melalui 0.0.0.0
: mereka membuat lalu lintas ke server Anda tidak lagi dapat dilalui di Internet. Rute-rute ini biasanya / 32-an dan pada akhirnya dihapus. Ini sama sekali tidak membantu Anda; tujuannya adalah untuk melindungi jaringan ISP dari banjir. Untuk jangka waktu, server Anda akan secara efektif kehilangan akses Internet.
Satu-satunya cara ISP Anda (atau Anda, jika Anda memiliki SA Anda sendiri) dapat membantu adalah jika mereka menggunakan pembentuk lalu lintas cerdas yang dapat mendeteksi dan menilai kemungkinan lalu lintas DDoS. Tidak semua orang memiliki teknologi ini. Namun, jika lalu lintas datang dari satu atau dua jaringan, atau satu host, mereka mungkin juga dapat memblokir lalu lintas di depan Anda.
Singkatnya, ada sangat sedikit yang dapat Anda lakukan tentang masalah ini. Solusi jangka panjang terbaik adalah meng-host layanan Anda di banyak lokasi berbeda di Internet yang harus di-DDoSed secara individual dan bersamaan, membuat DDoS jauh lebih mahal. Strategi untuk ini tergantung pada layanan yang Anda butuhkan untuk melindungi; DNS dapat dilindungi dengan beberapa server nama otoritatif, SMTP dengan catatan MX cadangan dan penukar email, dan HTTP dengan DNS round-robin atau multihoming (tetapi bagaimanapun juga beberapa degradasi mungkin terlihat selama durasinya).
Load balancers jarang merupakan solusi yang efektif untuk masalah ini, karena load balancer itu sendiri mengalami masalah yang sama dan hanya menciptakan hambatan. IPTables atau aturan firewall lainnya tidak akan membantu karena masalahnya pipa Anda sudah jenuh. Setelah koneksi dilihat oleh firewall Anda, itu sudah terlambat ; bandwidth ke situs Anda telah dikonsumsi. Tidak masalah apa yang Anda lakukan dengan koneksi; serangan dikurangi atau selesai ketika jumlah lalu lintas masuk kembali ke normal.
Jika Anda dapat melakukannya, pertimbangkan untuk menggunakan jaringan distribusi konten (CDN) seperti Akamai, Limelight dan CDN77, atau gunakan layanan scrubbing DDoS seperti CloudFlare atau Prolexic. Layanan ini mengambil langkah-langkah aktif untuk mengurangi jenis serangan ini, dan juga memiliki banyak bandwidth yang tersedia di berbagai tempat sehingga membanjiri mereka pada umumnya tidak layak.
Jika Anda memutuskan untuk menggunakan CloudFlare (atau CDN / proxy lain), ingatlah untuk menyembunyikan IP server Anda. Jika seorang penyerang menemukan IP, ia dapat kembali DDoS server Anda secara langsung, melewati CloudFlare. Untuk menyembunyikan IP, server Anda tidak boleh berkomunikasi secara langsung dengan server / pengguna lain kecuali mereka aman. Misalnya server Anda tidak boleh mengirim email langsung ke pengguna. Ini tidak berlaku jika Anda meng-host semua konten Anda di CDN dan tidak memiliki server sendiri.
Juga, beberapa VPS dan penyedia hosting lebih baik dalam mengurangi serangan ini daripada yang lain. Secara umum, semakin besar mereka, semakin baik mereka dalam hal ini; penyedia yang sangat terpelajar dan memiliki banyak bandwidth akan secara alami lebih tangguh, dan satu dengan tim operasi jaringan yang aktif dan penuh staf akan dapat bereaksi lebih cepat.
Berbasis beban
Ketika Anda mengalami DDoS berbasis beban, Anda melihat bahwa rata-rata beban abnormal tinggi (atau CPU, RAM, atau penggunaan disk, tergantung pada platform dan spesifik Anda). Meskipun server tampaknya tidak melakukan sesuatu yang bermanfaat, ini sangat sibuk. Seringkali, akan ada banyak sekali entri dalam log yang menunjukkan kondisi yang tidak biasa. Lebih sering daripada tidak, ini datang dari banyak tempat yang berbeda dan merupakan DDoS, tapi itu belum tentu demikian. Bahkan tidak harus ada banyak host yang berbeda .
Serangan ini didasarkan pada membuat layanan Anda melakukan banyak hal mahal. Ini bisa seperti membuka sejumlah besar koneksi TCP dan memaksa Anda untuk mempertahankan statusnya, atau mengunggah file yang terlalu besar atau banyak ke layanan Anda, atau mungkin melakukan pencarian yang sangat mahal, atau benar-benar melakukan apa saja yang mahal untuk ditangani. Lalu lintas berada dalam batas dari apa yang Anda rencanakan dan dapat lakukan, tetapi jenis permintaan yang dibuat terlalu mahal untuk menangani begitu banyak .
Pertama, bahwa jenis serangan ini mungkin sering merupakan indikasi masalah konfigurasi atau bugdalam layanan Anda. Misalnya, Anda mungkin telah mengaktifkan logging dengan kata-kata yang terlalu banyak, dan mungkin menyimpan log pada sesuatu yang sangat lambat untuk ditulis. Jika seseorang menyadari hal ini dan melakukan banyak hal yang menyebabkan Anda menulis banyak log ke disk, server Anda akan melambat hingga merangkak. Perangkat lunak Anda mungkin juga melakukan sesuatu yang sangat tidak efisien untuk kasus input tertentu; penyebabnya sama banyaknya dengan ada program, tetapi dua contoh adalah situasi yang menyebabkan layanan Anda tidak menutup sesi yang selesai, dan situasi yang menyebabkannya menelurkan proses anak dan meninggalkannya. Jika Anda berakhir dengan puluhan ribu koneksi terbuka dengan status untuk melacak, atau puluhan ribu proses anak, Anda akan mengalami masalah.
Hal pertama yang mungkin dapat Anda lakukan adalah menggunakan firewall untuk menghentikan lalu lintas . Ini tidak selalu mungkin, tetapi jika ada karakteristik yang dapat Anda temukan di lalu lintas masuk (tcpdump bisa bagus untuk ini jika lalu lintasnya ringan), Anda dapat menjatuhkannya di firewall dan tidak akan lagi menimbulkan masalah. Hal lain yang harus dilakukan adalah memperbaiki bug di layanan Anda (menghubungi vendor dan bersiaplah untuk pengalaman dukungan yang lama).
Namun, jika ini masalah konfigurasi, mulailah dari sana . Matikan logging pada sistem produksi ke tingkat yang wajar (tergantung pada program ini biasanya default, dan biasanya akan melibatkan memastikan tingkat "debug" dan "verbose" logging tidak aktif; jika semua yang dilakukan pengguna dicatat dengan tepat dan detail halus, logging Anda terlalu bertele-tele). Selain itu, periksa proses anak dan permintaan batas , mungkin throttle permintaan yang masuk, koneksi per IP, dan jumlah proses anak diperbolehkan, sebagaimana berlaku.
Tak perlu dikatakan bahwa server Anda lebih baik dikonfigurasi dan disediakan, semakin sulit jenis serangan ini. Hindari pelit dengan RAM dan CPU pada khususnya. Pastikan koneksi Anda ke hal-hal seperti database backend dan penyimpanan disk cepat dan dapat diandalkan.
Berbasis eksploitasi
Jika layanan Anda secara misterius crash dengan sangat cepat setelah dibesarkan, khususnya jika Anda dapat menetapkan pola permintaan yang mendahului crash dan permintaan tersebut tidak sesuai atau tidak cocok dengan pola penggunaan yang diharapkan, Anda mungkin mengalami DoS berbasis eksploitasi. Ini bisa datang dari sesedikit hanya satu host (dengan hampir semua jenis koneksi internet), atau banyak host.
Ini mirip dengan DoS berbasis beban dalam banyak hal, dan pada dasarnya memiliki penyebab dan mitigasi yang sama. Perbedaannya hanyalah bahwa dalam kasus ini, bug tidak menyebabkan server Anda menjadi boros, tetapi mati. Penyerang biasanya mengeksploitasi kerentanan crash jarak jauh, seperti input kacau yang menyebabkan null-dereference atau sesuatu dalam layanan Anda.
Tangani ini dengan cara yang sama seperti serangan akses jarak jauh yang tidak sah. Firewall terhadap host asal dan jenis lalu lintas jika mereka bisa ditembaki. Gunakan validasi proksi terbalik jika berlaku. Kumpulkan bukti forensik (coba dan tangkap sebagian lalu lintas), ajukan tiket bug ke vendor, dan pertimbangkan untuk mengajukan keluhan pengaduan (atau pengaduan hukum) terhadap sumber juga.
Serangan-serangan ini cukup murah untuk dipasang, jika suatu exploit dapat ditemukan, dan mereka bisa sangat kuat, tetapi juga relatif mudah untuk dilacak dan dihentikan. Namun, teknik yang berguna terhadap DDoS berbasis lalu lintas umumnya tidak berguna terhadap DoS berbasis eksploitasi.