Помимо обучения всей системы, Спамооборона умеет подстраиваться и под конкретного пользователя Яндекс. Почты — она корректирует "белые" списки по данным обратной связи и по списку корреспондентов, которым пользователь отправляет письма.
Основные элементы СпамообороныСпамооборона состоит из нескольких частей:
□ парсера, который разбирает письмо на элементы и собирает статистику;
□ анализирующего модуля, применяющего правила и вычисляющего "спамовый вес" каждого сообщения;
□ базы знаний, на основе которой работают правила.
Исходной информацией, с которой работает Спамооборона, является совокупность всех данных, относящихся к каждому сообщению. Это и данные почтовых серверов (IP-адреса, служебная информация), и заголовки писем, и тексты, включающие как "чистые", так и "грязные" элементы, вложения, подписи, адреса отправителей и т. п. Анализируется и сам текст письма — количество несловарных слов, скрытой информации. Системе пришлось обучаться и на письмах спамеров, которые сознательно коверкали русский язык, надеясь таким образом пробить оборону и донести свои письма до ящиков адресатов.
На первом этапе обработки письма в дело вступает парсер, который разделяет письмо на "чистую", воспринимаемую человеком, составляющую, и "грязную", "шумовую", составляющую, которая может содержать и невидимый для пользователя текст, и бессмысленные данные.
Одновременно с этим происходит анализ технической информации о письме — проверяется достоверность информации об отправителе, анализируется подлинность заголовков письма, учитываются особенности настройки сетей и почтовых систем отправителей. Поставщиком данных для системы правил является обновляемая база знаний, которая включает данные RBL, шинглы и наборы эвристик.
Пояснения Шингл — это специальным образом рассчитываемая метрика письма, позволяющая выявлять массовые рассылки. Алгоритм расчета шинглов основан на определении уникальных характеристик схожих сообщений.
RBL (Realtime Blackhole List) — это список IP-адресов открытых почтовых релеев, прокси-серверов и неадминистрируемых сетей, с которых рассылается спам. Яндекс поддерживает собственный RBL.
Анализирующий модуль отслеживает в письме признаки, которые описаны в правилах. Правила пишутся на некотором внутреннем языке, который позволяет учесть любое свойство и признак письма. Правила описывают известные признаки и спама, и, наоборот, "хороших" писем, при этом каждому правилу приписан определенный вес. Если суммарный вес сработавших правил выше некоторого порога, письмо считается спамом. Правила можно модифицировать и добавлять без изменения самой программы, что позволяет их оперативно корректировать, а база знаний (статистики массовости писем и вложений, "черные" списки) обновляется постоянно.
Каждое правило при срабатывании добавляет к "весу" письма определенное количество баллов (весовой коэффициент), как положительный, так и отрицательный. Любое из этих правил само по себе не является достаточным для принятия определенного решения — только совокупность их может с достаточной степенью уверенности сказать, относится ли письмо к спаму или нет. И если суммарный положительный вес сработавших правил превышает порог, определенный параметрами настройки системы, письмо маркируется как спам.
Примечание По данным Яндекс. Почты, отношение писем, неправильно помеченных как спам, к общему количеству "хороших" писем для массовой почты исчисляется десятыми долями процента. Для корпоративных сетей настройка может быть выполнена более целенаправленно, и в этом случае процент ложных срабатываний на порядок меньше.
База знаний, которая является третьим ключевым элементом системы, включает данные RBL, шинглы и наборы эвристик.
Обработка писемОбработка письма — это основной, но не окончательный этап. Определив полученное сообщение как спам, рассылку или "чистое" письмо, Спамооборона ставит на него свою "печать", добавляя в каждое письмо следующие служебные строки заголовка:
□ X-Spam-Flag — может принимать следующие значения:
• yes — письмо определено как спам;
• NO — "чистая" корреспонденция;
• DLVR — легальная рассылка (экспериментальный режим);
• SKIP — письмо на необслуживаемый адрес, истек срок действия лицензии или произошла ошибка.
□ X-Spam-Yversion — показывает номер установленной версии Спамообороны.
□ X-Spam-Ystatus — необязательный заголовок, может быть включен для добавления строки статуса, в которой отображается количество набранных баллов и перечень сработавших правил фильтрации. Заголовок статуса может понадобиться для отладочных целей перед обращением в Службу технической поддержки.
Эта информация используется для размещения сообщений по папкам в ящиках пользователей, но не только для этого. Многие пользователи Яндекс. Почты получают свою корреспонденцию с помощью почтовых клиентов. В этом случае данные из служебных строчек заголовка могут использоваться и в клиентских программах при настройке фильтров на значение заголовка X-Spam-Flag, а также на сервере правилами sieve (сервер IMAP производства Cyrus), procmail или другими средствами предварительной обработки почты.
Спамооборона может отображать результат проверки письма не только в виде служебного поля заголовка X-Spam-Flag, обычно не просматриваемого получателем почты, но и произвольной меткой в начале поля темы письма (Subject), которую можно задать настройкой системы. Помимо заданной метки в поле темы может быть также добавлен суммарный вес письма. Наличие метки также может обрабатываться фильтрами почтовых клиентов, но, кроме того, дает пользователю визуальное представление о том, что за корреспонденция попала в его почтовый ящик.
"Белые" спискиДля фильтрации писем Спамооборона использует также понятия "белого" списка. Он формируется на основе отправленных пользователями писем. В белом списке Спамообороны сохраняются пары адресов: корреспондент (внешний адрес) — получатель (локальный адрес). При получении письма извне проверяется наличие адреса внешнего корреспондента в "белом" списке. Возможны три режима проверки:
□ 0 — "белый" список не применяется;
□ 1 — используется общий список;
□ 2 — используются персональные списки.
Если адрес внешнего корреспондента найден в "белом" списке и включен режим 1, сработает правило отправитель в "белом" списке, компенсирующий вес которого администратор системы может назначить самостоятельно. Если рассуждать логически, то это значение должно перекрывать возможные отрицательные веса. Если в "белом" списке найдена доменная часть адреса электронной почты внешнего корреспондента, сработает правило обработки доменов.
Если включен режим 2, и адрес внешнего корреспондента найден в "белом" списке получателя, сработает правило отправитель в персональном "белом" списке, а если в "белом" списке получателя присутствует доменная часть адреса электронной почты отправителя, — соответственно, правило обработки доменов в персональном списке.
2.6.1. Спамооборона для компаний
Рассказывая о некоторых принципах обработки входящей корреспонденции, пришлось привести отдельные технические детали. Для тех, кто пользуется почтовым ящиком на Яндексе, эти сведения не требуются — все основные настройки уже сделаны и могут корректироваться пользователем лишь за счет собственного "белого" списка и выставлением оценки входящей корреспонденции по типу "спам — не спам".