Як я можу зупинити атаку бота на своєму сайті?


14

У мене є сайт (створений за допомогою wordpress), який зараз перебуває під атакою бота (як найкраще я можу сказати). Здійснюється запит на файл знову і знову, а референс - майже (кожного разу) turkyoutube.org/player/player.swf. Запрошений файл знаходиться в моїх тематичних файлах, а за ним завжди " ?v=" і довгий рядок (тобто r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke).

Я спробував встановити .htaccess правило для цього реферала, яке, здається, працює, за винятком того, що зараз моя сторінка 404 завантажується знову і знову, яка все ще використовує велику пропускну здатність. Чи є спосіб створити правило .htaccess, яке не вимагає використання пропускної здатності з мого боку?

Я також спробував створити файл robots.txt, але атака, схоже, це ігнорує.

#This is the relevant part of the .htaccess file:
RewriteCond %{HTTP_REFERER} turkyoutube\.org [NC]
RewriteRule .* - [F]

2
Атака щоразу надходить з одного ІС?
Бен Хоффман

Ваше .htaccessправило навмисно запускає файл 404? Здається, що викидання звичайного дозволу відхилено помилкою буде меншим використанням пропускної здатності.
artlung

Це відповідна частина файлу .htaccess: RewriteCond% {HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule. * - [F]
Travis Northcutt

Однак, незважаючи на те, що мої журнали доступу показують "Http Code: 404", схоже, що моє використання пропускної здатності припинилося, коли я змінив .htaccess.
Травіс Нортчетт

Чи є у .htaccessвас код, який ви опублікували до або після основних .htaccessправил wordpress ?
artlung

Відповіді:


8

Як щодо невеликого маневру корбомітом ?

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

Зауважте, що не перевірено, але слід перенаправляти запити назад до себе з 401 Not Authorizedкодом статусу. Тобто, якщо бот навіть обробляє переспрямування (дуже малоймовірно), але він все одно побачить код статусу. Код стану 404 може бути більш ефективним. Або варто сказати боту, що він, мабуть, повинен відмовитися.

Правило, яке ви розмістили в коментарях, також є більш ніж адекватним, якщо ви розширите вираз, щоб трохи більше відповідати хосту. Я використовую щось близьке (наскільки це фактичне правило), щоб заблокувати відповідність користувачів-агентів libwww-perl:

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* - [F,L]

Чи вважаєте ви, що багато ботів мають HTTP_USER_AGENT = libwww-perl? Це здається, що б щось брехало.
Ліам

@Liam - на диво, пристойний відсоток із них ніколи не намагаються маскуватися як справжній браузер (хоча, безумовно, більше роблять, ніж не роблять). Я думав, що це теж дивно :)
Tim Post

Зауважте, що ви використовуєте тут дуже дуже повільний вираз. .*$Еквівалентно нічого, що набагато швидше. Крім того RewriteRule .* - [F,L], немає необхідності, *оскільки ви ігноруєте цей запис все одно.
Алексіс Вільке

2

Крім блокування IP-адреси, я б детально вивчив запитувані файли. Досить поширеною справою для використання систем з відкритим кодом, таких як WordPress та Joomla, є одна з причин, чому вони часто оновлюються. Якщо ви знехтували кількома оновленнями, можливо, хтось проник на ваш сайт.

У мене був такий сценарій, що траплявся зі мною двічі, один раз на тестувальному сайті, який ніколи не розгортався повністю (але був залишений на місці), а інший раз на веб-сайті компанії, де працівник з дійсним доступом "притулив" phpBB до своєї сім'ї спілкуватися - оновлення запобігли б проблемам. В обох випадках проблема була виявлена ​​з аналітикою, оскільки, здається, вона може бути правдою у вашому випадку. Атака Joomla вводила javascript, що змушував браузер користувача завантажувати програмне забезпечення, в той час як останній дозволяв хакеру завантажувати файли на сервер, що входив до розподіленого "альтернативного" google-сайту, що приводить користувача до p * rn кожного разу. Хоча це не зовсім звичайний злом, перевірте таблицю користувачів БД на всякий випадок.

Я, звичайно, не маю на меті викликати тривогу, але ніколи не зашкодить витрачати час, щоб раз у раз перекопати ваш сайт, щоб точно знати, що відбувається. Іноді ви здивуєтеся тому, що знайдете.


Я думаю, що саме це і відбувається насправді. Схоже, що запитуваний файл навіть не повинен бути там. На щастя, дружній дописувач ядра Wordpress зв’язався зі мною, тож я відчуваю, що ми це зрозуміємо.
Травіс Нортчетт

1

Якщо атака щоразу надходить з одного і того ж IP-номера (або невеликого набору IP-номерів), вам слід заблокувати цей IP-номер у брандмауері. Це не повинно коштувати ні пропускної здатності, ні завантаження вашого веб-сервера.

Якщо ви розміщуєте його на машині Linux, у вас є кореневий доступ до цієї статті, пояснюється, як це зробити.


Він не надходить з одного і того ж IP кожного разу.
Травіс Нортчетт

0

Я використовую DenyHosts [1] на всіх своїх серверах. DenyHosts забороняє всі IP-адреси, які не вдалося увійти після n разів. Ви також можете надсилати сповіщення. Таким чином, у вас є чудовий огляд, з якого ips / hosts входили логіни; а також має функцію веб-оновлення та інші чудові функції. Але це все ще дуже просто в установці.

Іншим методом є заборона всіх діапазонів / блоків IP (наприклад,) з Китаю чи інших країн, які не є вашою цільовою групою. Це можна зробити за допомогою "чорних списків" в Інтернеті або просто з файлом hosts.deny (наприклад, DenyHosts).

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.