Bot resistance

From: abslimit <abslimit_at_netwhood.online>
Date: Sat, 30 May 2020 16:36:37 +0300

Добрый день, коллеги,

Наверное, уже каждый админ публичной ноды столкнулся с ботами. Они
приходят и нарегивают аккаунты. В моем случае например ничего не писали,
так что цель использования для меня пока непонятна.

Так как спохватился как обычно поздно, а аккаунты уже были нареганы,
пришлось вычищать ручками.

Предлагаю в треде обсуждать методы борьбы с ботами и кооперироваться.

Я наверное начну.


Методы борьбы:


1) Нужно учитывать режим регистрации:

1.1) "Все могут регистриться" - наиболее подверженный атаке ботов,
соответственно и может быть наиболее сложен для защиты. Но при этом в
плане масшабируемости ноды, т.е. обслуживание при стабильно-высокой
интенсивности регистраций, может быть наиболее подходящим вариантом,
если вообще не единственным возможным.

1.2) Подтверждение регистрации - сдерживает неконтролируемую волну
регистраций, но может быть тяжело поддерживать если нода большая и
регистрации идут с высокой интенсивностью;

1.3) Регистрация по инвайтам - ну тогда нода уже становиться
непубличной. В тонкостях режима не разбираюсь, но кажется очевидным что
тут самый низкий риск набега ботов из возможных.


2) Вести черный список доменов.

По моему есть смысл начать вести *кооперативный черный список*. По
недавнему набегу на mstdn.netwhood.online собрал например вот такое:

https://git.netwhood.online/abslimit/activitypub-antibot/src/branch/master/blacklist_bot-attack.txt

Для кооперации наиболее удобно держать гит-репо. *Прошу пожалуйста
насчет этого вашего мнения.*

Блокать можно разными тактиками:

2.1) Внутри самого мастодон можно блокать почтовые домены. Управляется
из веб-морды в Модерация -> Блокировка e-mail доменов. Есть смысл это
автоматизировать.

2.2) Важно вести отдельный список ботовых доменов, на которые ссылается
MX-запись.

Например вот есть такой гарантированно зловредный домен в моем списке:

https://git.netwhood.online/abslimit/activitypub-antibot/src/branch/master/blacklist_bot-attack.MX.txt

Вот маленький скрипт который проверяет MX-запись домена-кандидата на
блокировку по списку из ботовых, и вносит в список ботовых если
MX-запись найдется по списку:

https://git.netwhood.online/abslimit/activitypub-antibot/src/branch/master/blacklist_bot-attack.sh

2.3) Как доп. мера защиты, если есть свой рекурсивный DNS-сервер, можно
добавлять и туда в блеклист. Либо просто в hosts. У меня есть скрипт,
который раз в N дней собирает один блеклист в dnscrypt-proxy из разных
источников в один блеклист:

https://git.netwhood.online/abslimit/activitypub-antibot/src/branch/master/blacklist_renew.sh

Что делает:

* Тащит вот этот список: https://github.com/StevenBlack/hosts, беру для
сервера "Unified hosts = (adware + malware)". Список форматируется под
формат dnscrypt-proxy;

* Добавляет список ботовых доменов, набитый опытом;

* Добавляет всякие мои статические записи;

* Удаляет исключения, если нужно
Received on Sat May 30 2020 - 06:36:46 PDT

This archive was generated by hypermail 2.3.0 : Tue Mar 02 2021 - 23:20:01 PST