Pull to refresh

Спам и Миранда

Reading time2 min
Views3.1K
В последнее время спам в icq превратился в постоянную головную боль — спамеры стали изворотливее и хитрее, да и АОЛ помог им. Штатные, слегка устаревшие средства перестали справляться, и в день стало проскакивать 20-30 предложений купить или скачать что нибудь. Возникла навязчивая идея прекратить это.


Для начала расскажу про то как спам в Миранде может фильтроваться вообще

Первый уровень отсечения спама — протокольный модуль. Я говорю про модификацию ICQ+, но в официальном ICQj все будет работать примерно так же. Здесь фильтрация идет довольно просто — при получении события от неопознанного контакта (то есть не существующего в локальном контакт-листе) его капсы (список поддерживаемых фич протокола) проверяются на соответствие icqlib от товарища mlu который используется подавляющим большинством спамеров, а так же парочке его модификаций. Так как капсы у них довольно уникальные, то это гарантированно спамбот.

Второй уровень — фильтрующие модули. Они ставят хук после шифровальных модулей в цепочке обработки новых событий. У меня стоит StopSpam, принцип действия которого стар как спам — новым контактам задается контрольный вопрос, и пока не будет получен верный ответ контакт является скрытым и все его события игнорируются. В моем вопросе нужно посчитать определенный интеграл, поэтому вместе со спамерами на нем улетало 100% желающих познакомится.

Если месяца 3-4 назад на этих двух уровнях падало 100% спама, то теперь ситуация изменилась. Во-первых, на давно забытый рынок спамящего софта вышло несколько новых производителей, которые догадались о возможности фильтрации по капсам — теперь их не отличить от квипа и официальных клиентов.
Во-вторых, как я уже говорил, помог AOL — «левые» контакты стали автоматически добавляться в серверную группу Not-in-list, что в половине случаев стало вводить СтопСпам в заблуждение.

Несмотря на жуткий дефицит времени, мои руки добрались до исходников СтопСпама, в довершении ко всему неправильно обрабатывающему на данный момент запросы авторизации. В результате появился небольшой мод, традиционно — StopSpam+ =)

Первым делом была профикшена фильтрация авторизации, и настал момент поставить группу Not-in-list на место. Сделать это можно просто — не рассматривать контакты в этой группе как авторизованные.

Кроме того возникли небольшие идеи по расширению возможностей — например случайное составление вопросов, из двух-трех математических действий.
Очень хотелось бы сделать различение без вопроса — ибо некоторых он очень напрягает. Но действенных методов я не нашел — фильтрация по ключевым словам запросто обходится, статистический (Баесов) фильтр — туда же, да тем более стат. анализ в IM как то неуместен. Базы спамеров наподобие DNSBL здесь невозможны — уины меняются каждый день, а IP легко скрывается. Единственное что возможно — URIBL, но обычно адреса шлются в виде тарабарщины, которую нужно проинтерпретировать самому. Может у вас есть какие нибудь идеи на этот счет?

Код мода выложен на нашем svn
Правда пока последние изменения я туда не закоммичивал — есть некоторые сомнения.

Бинарник

Небольшой UPD: залил релизную сборку, плюс опции теперь хранятся в старой секции StopSpam

Буду рад вменяемым пожеланиям =)

Перенес в Miranda IM
Tags:
Hubs:
+52
Comments115

Articles