Категорії
Uncategorized

Banjax

Banjax відповідає за фільтрацію, тестування та блокування ботів, ідентифікованих за допомогою відповідності регулярним виразам (regex), спільно з модулем Swabber, на ранніх етапах.

Banjax надає змогу налаштувати для кожного сайту або SHA-інверсне підтвердження роботи, або виклики Captcha. Ці завдання слугують простим методом виявлення запитів ботів, які не були перехоплені одним із налаштованих системою регулярних виразів (регексів).

Модуль Banjax інтегрований у проксі-сервер ATS і працює як фільтр, який перехоплює та аналізує HTTP-запити перед тим, як обслуговувати будь-який контент. Цей інструмент має низку функціональних операцій. Він дає змогу використовувати блокування регулярних виразів (регексів), SHA-перевірку та генерацію капч. Крім того, він надає можливості вайтлістингу для запобігання блокуванню дозволених ботів та легітимних автоматизованих запитів. Три функції Banjax вмикаються як фільтри в файлі banjax.conf. До того ж Banjax може збирати та надсилати детальну інформацію про кожен запит до Botbanger для подальшого аналізу поведінки запитувача.

Виявлення регулярних виразів (Regex detection)

У більшості масштабних атак у запитах кожного зловмисника можна знайти чіткі та виразні шаблони. Це дає змогу BotnetDBP за допомогою регулярних виразів знаходити ці шаблони і блокувати будь-якого бота, чиї запити з’являються з певною частотою. Регекс-фільтр здебільшого імітує можливості Fail2ban, але з більшим рівнем ефективності, необхідним для захисту від DDoS-атак. Це робиться перед тим, як обробляти будь-які подібні запити, й виявилося дуже важливим, коли особливо слабкі джерела піддаються атакам з боку значно більшої мережі ботів.

Реґекс-фільтри визначаються як набір правил, що вказують на обставини, за яких певний запит має бути заблокований.

Підтримуються такі параметри:

  • Правило (Rule) — читабельна назва заданого регексу для блокування.
  • Регекс (Regex) — містить рядок регулярного виразу, який буде перевірятися на відповідність запиту.
  • Інтервал (Interval) — проміжок часу між запитами, які Banjax повинен розглядати.
  • Hits_per_interval — кількість хітів за заданий проміжок часу, яку Banjax повинен враховувати, перш ніж заблокувати цю IP-адресу. Фактичне блокування розраховується як 1/1000 x hits_per_interval. Це означає, що для цього інтервалу Banjax рахує кількість запитів на мілісекунду і коли вона перевищує допустимий поріг, виконується блокування.

Оскарження запиту

Кешування проксі-сервера не є ефективним засобом запобігання кеш-бустінговим атакам. У цьому типі атак кожен бот запитує новий, унікальний ресурс з мережі. Оскільки кожен запит відрізняється від попереднього, в кешуючому проксі немає копії такого ресурсу, тому всі запити доходять до відправника, ефективно посилюючи DDoS-атаку за рахунок кількості проксі-серверів. Ця стратегія, по суті, спрямовує мережу Deflect проти тих самих людей, яким ми намагаємося допомогти.

Щоб запобігти цьому, BotnetDBP можна налаштувати так, щоб він надсилав завдання кожному комп’ютеру, який запитує вміст, дозволяючи продовжувати роботу лише тим, хто успішно вирішує завдання (автоматичне виявлення зломів кешу вже впроваджено і буде розгорнуто найближчим часом). Фільтр Challenger підтримує два методи для HTTP-запитів: SHA-інверсне завдання і капча. Ці функції насамперед призначені для боротьби з атаками на кеш-пам’ять, але також слугують для забезпечення законності запиту і надання механізму для уповільнення трафіку під час високого навантаження.

  • Функція SHA-завдання відправляє браузеру користувача інверсне зображення часткового значення SHA256 за допомогою Javascript. Це гарантує, що трафік походить від легітимного браузера, а не від попередньо запрограмованого бота. Для користувача це завдання не є складним, оскільки відбувається в межах взаємодії між браузером і сервером.
  • На відміну від цього, Captcha відображається безпосередньо користувачу, який повинен правильно вирішити візуальний тест і надіслати свою відповідь, перш ніж отримати доступ до вмісту сайту.

Користувачі Banjax можуть налаштувати Challenger за такими параметрами:

  • кількість разів, яку користувач може провалити тест, перш ніж його буде заблоковано;
  • рівень складності (час, необхідний браузеру для розв’язання інверсної задачі SHA256)
  • тривалість часу, протягом якого вирішене завдання може надавати доступ користувачу.

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

Список дозволених

Інструмент Banjax також можна налаштувати на дозвіл HTTP-запитів для певних IP-адрес через список дозволених, щоб безперешкодно взаємодіяти з сервером.