Bagaimana saya bisa menghentikan serangan bot di situs saya?

14

Saya memiliki situs (dibangun dengan wordpress) yang saat ini sedang dalam serangan bot (sebisa mungkin saya tahu). File diminta berulang kali, dan pengarahnya (hampir setiap waktu) turkyoutube.org/player/player.swf. File yang diminta berada jauh di dalam file tema saya, dan selalu diikuti oleh " ?v=" dan string panjang (yaitu r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke).

Saya telah mencoba menetapkan aturan .htaccess untuk pengarah itu, yang sepertinya berfungsi, kecuali bahwa sekarang halaman 404 saya sedang dimuat berulang-ulang, yang masih menggunakan banyak bandwidth. Apakah ada cara untuk membuat aturan .htaccess yang tidak memerlukan penggunaan bandwidth di pihak saya?

Saya juga mencoba membuat file robots.txt, tetapi serangan itu tampaknya mengabaikannya.

#This is the relevant part of the .htaccess file:
RewriteCond %{HTTP_REFERER} turkyoutube\.org [NC]
RewriteRule .* - [F]
Travis Northcutt
sumber
2
Apakah serangan datang dari IP yang sama setiap saat?
Ben Hoffman
Apakah .htaccessaturan Anda sengaja memicu file 404? Sepertinya melemparkan kesalahan izin ditolak sederhana akan menjadi penggunaan bandwidth yang lebih sedikit.
artlung
Ini adalah bagian yang relevan dari file .htaccess: RewriteCond% {HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule. * - [F]
Travis Northcutt
Namun, meskipun log akses saya menunjukkan "Kode Http: 404", sepertinya penggunaan bandwidth saya berhenti ketika saya membuat .htaccess berubah.
Travis Northcutt
Apakah Anda memiliki .htaccesskode yang Anda posting sebelum atau setelah .htaccessaturan wordpress utama ?
artlung

Jawaban:

8

Bagaimana dengan sedikit manuver corbomite ?

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?turkyoutube.org.*$ [NC]
RewriteRule ^(.*)$ http://127.0.0.1/$1 [R=401,L]

Catatan, belum diuji tetapi harus mengarahkan permintaan dari mereka kembali ke diri mereka sendiri dengan 401 Not Authorizedkode status. Artinya, jika bot bahkan menangani pengalihan (sangat tidak mungkin), tetapi masih akan melihat kode status. Kode status 404 mungkin lebih efektif. Salah satu harus memberitahu bot bahwa itu mungkin harus menyerah.

Aturan yang Anda poskan di komentar juga lebih dari cukup jika Anda memperluas ekspresi agar lebih cocok dengan tuan rumah. Saya menggunakan sesuatu yang dekat (sejauh aturan sebenarnya) untuk memblokir agen-pengguna yang cocok libwww-perl:

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* - [F,L]
Pos Tim
sumber
Apakah Anda menemukan bahwa banyak bot memiliki HTTP_USER_AGENT = libwww-perl? Ini sepertinya sesuatu yang paling banyak dibohongi oleh bot.
Liam
@Liam - secara mengejutkan, persentase yang layak dari mereka tidak pernah mencoba menyamar sebagai peramban asli (meskipun tentu saja, lebih banyak yang melakukannya daripada tidak). Saya pikir itu aneh juga :)
Tim Post
Perhatikan bahwa Anda menggunakan banyak regex yang sangat lambat di sini. Ini .*$setara dengan tidak ada yang jauh lebih cepat. Juga RewriteRule .* - [F,L], tidak perlu *karena Anda mengabaikan entri pula.
Alexis Wilke
2

Selain pemblokiran IP, saya akan meneliti file yang diminta. Ini adalah hal yang cukup umum untuk sistem sumber terbuka seperti WordPress dan Joomla untuk dieksploitasi, yang merupakan salah satu alasan mengapa mereka sering diperbarui. Jika Anda mengabaikan beberapa pembaruan, ada kemungkinan seseorang telah menembus situs Anda.

Saya sudah mengalami skenario itu terjadi pada saya dua kali, sekali di situs pengujian yang tidak pernah sepenuhnya dikerahkan (tetapi dibiarkan di tempat) dan lain kali di situs web perusahaan di mana seorang karyawan dengan akses yang valid "menyelipkan" phpBB untuk keluarganya untuk berkomunikasi - pembaruan akan mencegah masalah. Dalam kedua kasus, masalah ditemukan dengan analitik karena tampaknya mungkin benar dalam kasus Anda. Serangan Joomla menyuntikkan javascript yang menyebabkan browser pengguna memuat perangkat lunak, sedangkan yang terakhir memungkinkan peretas untuk mengunggah file ke server yang merupakan bagian dari situs google "pengganti" terdistribusi yang mengarahkan pengguna ke p * rn setiap kali. Meskipun ini bukan sepenuhnya peretasan biasa, periksa tabel pengguna DB Anda, untuk berjaga-jaga.

Tentu saja saya tidak bermaksud membuat alarm, tetapi tidak ada salahnya untuk meluangkan waktu untuk menggali situs Anda sesekali untuk mengetahui apa yang sebenarnya terjadi. Terkadang Anda akan terkejut dengan apa yang Anda temukan.

bpeterson76
sumber
Saya pikir inilah yang sebenarnya terjadi. Sepertinya file yang diminta seharusnya tidak ada di sana. Untungnya, kontributor inti wordpress yang ramah menghubungi saya, jadi saya merasa kami akan menyelesaikannya.
Travis Northcutt
1

Jika serangan itu berasal dari nomor IP yang sama setiap kali (atau sekelompok kecil nomor IP), Anda harus memblokir nomor IP itu di firewall Anda. Itu seharusnya tidak membebani bandwidth atau beban apa pun di server web Anda.

Jika Anda hosting di mesin Linux bahwa Anda memiliki akses root ke artikel ini menjelaskan bagaimana melakukan ini.

Keris
sumber
Itu tidak datang dari IP yang sama setiap waktu.
Travis Northcutt
0

Saya menggunakan DenyHosts [1] di semua server saya. DenyHosts melarang semua IP yang gagal masuk setelah n kali. Anda juga dapat mengirim notifikasi. Jadi, Anda memiliki ikhtisar besar dari mana ips / host masuk; dan itu juga memiliki fungsi pembaruan web dan fitur hebat lainnya. Tetapi itu masih sangat sederhana untuk menginstal.

Metode lain adalah melarang semua Kisaran IP / Blok (misalnya) dari China atau negara lain yang bukan grup target Anda. Ini dapat dilakukan dengan "Daftar Hitam" online atau hanya dengan file hosts.deny (seperti DenyHosts).

[1] http://denyhosts.sourceforge.net/

fwaechter
sumber
-1

Cukup lakukan 301 redirect ke situs fbi.

RewriteEngine di RewriteCond% {HTTP_REFERER} ^ http (s)?: // (www.)? Turkyoutube.org. $ [NC] RewriteRule ^ (. ) $ Http://www.fbi.gov [R = 301, L]

Bizzle panas
sumber