ADG Оставить заявку
Блог Информационная безопасность 5 мин чтения

Спам захлестнул почту, а фильтров толком нет

Осень 2002-го: вал спама, подбираем нормальные антиспам-фильтры. Как мы боролись серыми списками и первыми RBL, чем это било по пользователям и где нашли компромисс.

Контекст момента

вал спама в 2002, воюем серыми списками и первыми RBL

К осени почта у клиентов стала тонуть. Ещё год назад спам был мелочью, пара писем в день про виагру и нигерийского принца, а теперь это вал: у активного ящика половина входящих, а то и больше, - мусор. Люди перестают открывать почту, потому что за реальным письмом от партнёра надо перелопатить два десятка предложений вложить деньги в акции, которых не существует. А инструментов, чтобы это разгрести, почти нет. Из того, что есть под рукой, - серые списки и первые RBL; чем богаты, тем и воюем, а под рукой негусто.

Чем вообще можно фильтровать в 2002-м

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

Первый способ - RBL, они же чёрные списки. Это внешний сервис, который держит перечень адресов, откуда замечен спам, и на приёме письма ты спрашиваешь у него: вот с этого IP лезут, брать? Если адрес в списке - отбиваешь на входе, даже не приняв тело письма. Дёшево и быстро. Проблема в том, что списки эти в 2002-м молодые, ведут их энтузиасты, и качество разное. Один аккуратный, другой заносит целые подсети провайдеров скопом, потому что там среди тысячи честных клиентов завёлся один спамер. Отбиваешь спамера - и вместе с ним режешь письма всех, кто сидит у того же провайдера.

Второй способ - серые списки, greylisting. Идея красивая до наглости: когда незнакомый отправитель стучится с письмом, ты ему временно отказываешь. Мол, занят, приди позже. Нормальный почтовый сервер по правилам через несколько минут повторит попытку, и тогда ты письмо примешь. А спамерские рассылки шлют в один заход и не возвращаются, им некогда, у них миллион адресов. Не повторил - значит спам, до свидания.

Как это выглядело в бою

Мы завели у клиента с самой захламлённой почтой связку из обоих. Серый список первым эшелоном, RBL добивать остальное.

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

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

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

С RBL история была злее. Пару раз мы отбили письма, которые клиент очень ждал, потому что отправитель сидел на провайдере, чью подсеть какой-то список занёс целиком. Человек не спамер, письмо законное, а наш сервер его отфутболил на входе, и отправитель даже не всегда получал внятный отказ. Ложное срабатывание в фильтре спама - это не "лишнее письмо в папке", это молча съеденное письмо, которого ждали. Один такой случай по вреду перевешивает сотню отсеянного мусора.

Где оказался компромисс

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

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

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

Общий вывод осени 2002-го невесёлый и честный: хорошего решения против спама нет. Есть набор грубых инструментов, каждый из которых бьёт и по врагу, и по своим, и вся работа - это подбор, где меньше своих под раздачу. Мы стали смотреть на почтовую защиту как на настройку под конкретную контору, а не как на галочку "включить фильтр": разобрать, что и куда у клиента ходит, и настраивать под это, а не по шаблону. Живём с тем, что есть, и стараемся хотя бы не терять чужие письма своими руками.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.