DarkByte

Обо мне "">\
На Пикабу
13 рейтинг 5 подписчиков 5 подписок 2 поста 0 в горячем
Награды:
5 лет на Пикабу
5

Антиспам боты для телеграм про которые ты наверняка не слышал

Антиспам боты для телеграм про которые ты наверняка не слышал

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

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

mamed0v/NoSpamTelegram - самый простой вариант, который использует gpt-4o-mini модель ChatGPT для того, чтобы проверять каждое сообщение на спам. Такой подход сможет отловить процентов 80 спама, но также даст ложноположительные сработки. В текущем вариант бот не применяет никаких ограничений к пользователю. Можно использовать как заготовку для своего бота.

TiraelSedai/ClubDoorman - более продвинутый вариант AI антиспам бота, который предварительно делает различные логические проверки, нормализует текст, а после уже использует ML для определения спамности сообщения. Позволяет перенаправить сообщения о сработках из нескольких чатов в один (админский) и через него управлять блокировками.

umputun/tg-spam - бот объединяет возможности двух предыдущих ботов, используя для оценки спамности сообщения не только логические проверки, но и проверку сообщений через ИИ от OpenAI, имеет множество настроек, но один инстанс может работать только в одном чате.

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

@this_is_spam_bot - относительно недавно разработанный бот, о котором узнал из поста с пикабу. На текущий момент уже установлен примерно в 210 чатах, использует собственную LLM модель для обнаружения спама, и со слов создателя имеет очень хороший коэффициент корректных детектов относительно ложноположительных.

@user_ban_bot - достаточно эффективный бот, использующий логические проверки и статистический анализ по тем группам, в которые установлен, для выявления спама. Установлен примерно в 160 чатах, и как минимум в одном чате он выполняет свою работу на отлично.

@lolsbotcatcherbot - про своего бота рассказывал в предыдущем посте, и с тех пор немногое поменялось. Разве что появился канал с трансляцией результата работы AI - https://t.me/lolsBanFeed, можно посмотреть где он ошибается.

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

@RuModeratorAI_Bot - используется BERT LLM обученная на собранных из телеграм и Telegram spam archive спам сообщениях. Стоимость проверки одного сообщения 0.03руб, одной ссылки 0.8руб. Также есть API для проверки сообщений, через него моделью BERT за проверку одного сообщения берут 0.2руб. Насколько я вижу, бот пока что работает только в трёх чатах.

Наверняка я не знаю про более-лучшие варианты, и надеюсь что подскажите о них в комментариях. Два года тому назад мне бы эта информация очень пригодилась 😅

Показать полностью 1
16

Почему телеграм не борется со спамом?

А вы знали, что в телеграм есть спам? Я вот два с половиной года тому назад не знал, и использовал его для рабочих, личных чатиков на несколько десятков человек, а также для чтения новостных каналов. А потом вдруг что-то случилось, и я начал вступать в различные группы на тысячи и десятки тысяч пользователей. Открыл для себя новый дивный мир – полный спама, мошенников, и просто тупой рекламы.

Как-то так получилось, что я вписался модерировать один банковский чатик, но быстро понял, что вручную делать это достаточно затратно по времени. Поэтому отправился искать антиспам бота, полагая что за столько времени-то его наверняка сделали. Нашёл кучу мощных решений для управления группой: Group Help, Rose, Combot, Iris, ChatKeeper, и несколько ботов поменьше...

Но вместо функции антиспама у них предлагается капча и набор различных фильтров, типа удаления по ключевым словам (которые сам задаёшь), удаление всех сообщений с картинками, ссылками, голосовухами. И в итоге выбираешь: либо полностью запретить пользователям писать про крипту и использовать ссылки, либо также вручную постоянно удалять спам и каждый день добавлять всё новые и новые ключевые слова. Потому что спамер не совсем дурак, и немного изменив текст, успешно обходит защиту.

больше пробелов б-гу пробелов

больше пробелов б-гу пробелов

С капчей ситуация не лучше - спамеры её легко проходят. Какую-то на автомате, где-то специально обученный человек решает задачки, а потом уже софт рассылает туда, куда пустили. А вот у пользователей постоянно проблемы: кто-то не увидел, кто-то не успел, у кого-то 2 плюс 2 получается 8, или интернет настолько медленный, что капча не успела загрузиться за две минуты. Объяснений наслушался уйму.

Так пришла идея сделать своё решение, с блэкджеком и без капчи. А начать решил со сбора данных. Зарегистрировал несколько дополнительных аккаунтов, вступил с них в максимально возможное количество групп, и начал анализировать сообщения спамеров, а также их поведение. И поначалу казалось, что всё очевидно. Даже без анализа текста: просто по скорости входа в группы и скорости отправке сообщений в них. Но по пользователю нельзя посмотреть в каких группах он состоит, если не состоишь с ним в этих же группах, поэтому такой способ работал не для всех спамеров.

При анализе текста всё оказалось куда сложнее. Текст можно достаточно сильно исковеркать, но многие люди при этом по-прежнему смогут его прочитать. Кроме различных l33t техник, с заменой букв цифрами, символами и буквами из других языков, которые визуально похожи, в текст добавлялись дополнительные разделители между буквами, невидимые символы, emoji (и кастомные emoji), в словах дублировались символы или наоборот удалялись. И в качестве финала - всё это в виде картинки.

И когда мне началось казаться, что бот неплохо справляется со своей задачей - его начали добавлять в другие чаты. И вдруг начало выясняться, что с виду нормальные люди используют те же приёмы, что и спамеры. У кого-то сломалась кнопка с буквой «О» на клавиатуре (например, с русскоязычной раскладкой клавиатуры), поэтому во всех своих сообщениях на русском языке он использует латинскую «O». Кому-то нравится использовать больше emoji в тексте, чем букв. Некоторым очень сильно нужно продать лишние вещи, поэтому они сразу заходят во все барахолки, и разом во все эти группы они отправляют свои объявления.

Или так 😐

Или так 😐

Чтобы попробовать решить эту проблему, я начал собирать историю действий пользователей в публичных группах. По дате входа или первого сообщения, начал примерно считать дату регистрации аккаунта. Все собираемые сообщения прогонял через детектор спама и в итоге составил рейтинг пользователя. К текущему моменту обработал данные о 12 млрд сообщениях от 300 млн пользователей в примерно 4 млн групп. И по-прежнему остаётся бесконечный горизонт для сбора и анализа данных. Но ввиду лимитов телеграм и проблем с регистрацией новых аккаунтов - процесс идёт не так быстро, как хотелось бы.

Но уже с такими набором данных получилось натренировать автоматику на вполне адекватную работу по зачистке спамеров, без необходимости запрещать все слова, кроме тех, что добавили в белый список, или имитировать бурную деятельность заполняя чат бесконечным полотном из капч для всех входящих. Но без ложных срабатываний пока обойтись не удаётся. И пока что заметил, что больше всего бот не любит HR, которые не указывают вилку зарплат в вакансиях, а также рассказывают про "дружную команду".

Кроме того, остаётся нерешённой проблема со шлюхоботами, которые из отличительных признаков имеют только фотографию. И, в целом, иногда находятся не совсем тупые спамеры, а те, которые проявляют немного фантазии, поэтому требуется корректировать детекты. Пока не очень понятно как долго борьба с ветряными мельницами будет доставлять мне больше удовольствия, чем проблем. Но изначально планировал сделать бота для одного чата, а сейчас он уже установлен в 3000 групп, и успел заблокировать 1.1млн спамерских аккаунтов, полный список которых можно выгрузить через api.lols.bot

без кастинга не берут

без кастинга не берут

Одно время был популярен спам реакциями, и с тех пор у бота остался функционал превентивной блокировки (когда блокируется пользователь, не состоящий в группе). Но база разрослась, и достаточно часто стал сталкиваться с такой проблемой, что после добавления бота в группу с 50 участниками, бот блокирует 300 участников, в группе по прежнему остаётся 50 участников, но у админа начинается паника и он удаляет бота "пока он всех не заблокировал". Поэтому этот функционал буквально недавно отключил.

Также админы в целом боятся добавлять левых ботов, переживая из-за того, что боты могут подраться, или заблокировать всех участников, или даже украсть группу. И если с блокировкой всех участников переживания оправданы (разок была задача кикнуть 50к пользователей из чата на 200к - заняло буквально 15 минут), то подраться боты не могут (если у обоих есть админские права), и более того, они не видят сообщения друг друга, даже поругаться не смогут. А уж про захват группы так и вовсе фантастика - бот не может снять права у тех, кому он их не выдавал, и не может выдать другому больше прав, чем выдали ему самому.

Недавно телеграм начал отображать количество пользователей бота, и мне показалось что это может хоть как-то решить проблему с недоверием к неизвестному боту, но буквально позавчера эта цифра пропала, и не очень понятно к чему это, и надолго ли. Также не уверен, что эту проблему смогла бы решить публикация исходного кода, но в любом случае пока что таких планов нет, а для интеграции в своего бота можно использовать API. Конечно, получится не полноценный аналог, но в некоторых чатах уже вполне неплохо получается, особенно в паре с уже имеющимся защитным функционалом бота (многие экспериментируют с нейронными сетями, и иногда получается неплохо).

Боту выбрал легко читаемое и запоминаемое имя: @lolsbotcatcherbot

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

Простите за многабукаф. Если зайдёт, то больше про бота расскажу в следующей серии, а этот топик хотелось закрыть вопросом: «почему у большинства спамеров премиум подписка?»

Показать полностью 4
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества