Современные методы фильтрации спама на уровне почтового сервера

Введение

С проблемой спама сталкивался любой пользователь Интернет, пользующийся электронной почтой. В корпоративной среде с активным документооборотом спам особенно неприятен – он вклинивается в поток деловой корреспонденции, сотрудники вынуждены тратить рабочее время на фильтрацию почты, и полезные письма нередко теряются среди спама. Данная статья посвящена поиску наиболее оптимальной комбинации методов фильтрации спама на уровне почтового сервера.

Методы фильтрации спама

Классификация писем и детектирование спама может производиться с применением набора различных методик. Основными из них являются:

1)          Анализ формальных признаков. Метод основан на применении к письму набора правил, которые позволяют классифицировать письмо как спам. В частности, анализу подвергается заголовок письма, его структура, размер и ряд других признаков, в частности IP-адрес почтового сервера, от которого получено письмо, и IP-адреса промежуточных серверов, а также адрес отправителя. Кроме того, этот метод использует «черный» и «белый» списки почтовых адресов и IP-адресов, которые создаются и редактируются администратором.

2)          Контентная фильтрация. Данный метод основан на анализе содержимого письма с применением искусственного интеллекта, методов нечеткой логики и семантического анализа. Исследованию подвергается текст письма и вложения поддерживаемых типов (Plain Text, HTML, RTF, Microsoft Word). Важным моментом является то, что, кроме текста письма, анализу подвергаются находящиеся в нем графические изображения, которые все чаще применяются спамерами для обхода антиспам-систем.

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

   запросы к сервисам DNSBL (DNS-based black list – черные списки на базе DNS);

   проверка адреса отправителя по правилам, полученным по SPF (SPF также базируется на стандартном DNS-запросе);

   проверка найденных URL в теле письма ссылок при помощи сервиса SURLB – сервиса, предназначенного для опознания ссылок на рекламируемые спамерами ресурсы. Применение данной технологии позволяет блокировать письма, содержащие вместо осмысленного текста ссылку на информацию рекламного характера.

Байесовская фильтрация спама

Очень простым, интуитивно понятным методом «машинного обучения с учителем» (то есть при наличии Spam&Ham выборки) является наивная байесовская классификация. «Наивной» она называется потому, что исходит из предположения о взаимной независимости признаков, и, как ни странно, этого часто оказывается вполне достаточно.

В 2002-м году Paul Graham, имея некоторое количество свободного времени после продажи Viaweb Yahoo, написал статью "A Plan for Spam", которая привела к небольшой революции в технологии фильтрации спама. До статьи Graham, большинство спам-фильтров были написаны в терминах рукописных правил: если сообщение имеет в заголовке слово XXX, то вероятно оно является спамом; Если в сообщении имеется три или больше слов в строке написанных ЗАГЛАВНЫМИ БУКВАМИ, то вероятно, что это тоже спам. Graham провел несколько месяцев пытаясь написать фильтр, который бы использовал такие правила, до того, как осознал что это фундаментально неправильная задача.

Для того чтобы узнать индивидуальные признаки спама необходимо попытаться влезть в шкуру спамера. Чтобы не пытаться думать как спамер, Graham решил попробовать отделять спам от не-спама, используя статистику, собранную о том, какие слова появляются в обоих типах сообщений. Фильтр может отслеживать то, как часто отдельные слова появляются и в спаме и в не-спаме, и затем использовать частоты вхождения этих слов в сообщения, чтобы вычислить вероятность того, к какой группе относится сообщение. Он назвал этот подход Байесовской фильтрацией (Bayesian filtering) по ассоциации с названием статистического подхода, который он использовал для вычисления частот слов.

Много современных почтовых клиентов осуществляют байесовское фильтрование спама. Пользователи могут также установить отдельные почтовые программы фильтрования. Почтовые фильтры сервера, такие как DSPAM, SpamAssassin, SpamBayes, Bogofilter и ASSP, используют методы байесовского фильтрования спама, и функциональность иногда включается в пределах программного обеспечения почтового сервера непосредственно.

Автор, Paul Graham, предназначал баейсовский метод для персональной фильтрации. Для работы требуется, чтобы у классифицируемого объекта было достаточно признаков. Этому требованию идеально удовлетворяют все слова писем данного пользователя, исключая разве что очень редко встречающихся и совсем короткие. Вторым требованием является постоянное переобучение и пополнение коллекции «Spam+Ham». Все такие условия идеально работают в локальных почтовых клиентах, поддерживающих этот алгоритм.

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

Greylisting

Протокол SMTP, который используется для передачи электронных писем, имеет возможность в случае временного отказа в приеме письма предпринять попытку отправить его позже. Если письмо не удалось отправить в первый раз, то оно попадает в очередь и хранится там, при этом сервер периодически предпринимает попытки отправить его повторно.

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

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

-             В начале каждой новой SMTP-сессии происходит поиск триплекса "IP-адрес отправителя, почтовый адрес отправителя и почтовый адрес получателя" в белом списке. Если он там существует, то письмо проходит без задержек.

-             Если триплекс не находится в белом списке, то далее происходит поиск его в сером списке. Если он там найден, то письмо также проходит, а триплекс переносится в белый список.

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

Администратор сервера задает время жизни триплекса в сером и белом списках, по истечении этого времени запись из списка удаляется. Такой подход позволяет значительно сократить объемы служебного почтового трафика, обусловленного работой серого списка. Более того, только первое письмо доходит до адресата с задержкой, остальные же доставляются сразу (в случае, когда существует соответствующий триплекс в белом списке).

Преимущества:

-             Настройка серых списков требует лишь небольших затрат труда от администратора сервера и совсем никаких усилий от пользователей электронной почты.

-             Реализация серых списков почти не использует ресурсов сервера.

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

Недостатки:

-             Могут ошибочно отсеиваться рассылки с новостных сайтов.

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

-             Спамерские программы могут совершенствоваться. Поддержка повторной посылки сообщения реализуется довольно легко и в значительной степени нивелирует данный вид защиты.

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

Технология SPF

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

Сегодня 99% спамовых и вирусных писем используют поддельные адреса. From — чтобы ввести в заблуждение пользователей, Envelope-from — чтобы обмануть почтовые сервера и антиспамовые системы. Для уменьшения возможности подобного обмана была придумана технология идентификации отправителя электронного сообщения SPF (Sender Policy Framework). SPF позволяет владельцу почтового домена сформулировать политику, то есть описать, в какой степени он рекомендует доверять тем или иным серверам, отправляющим почту от имени почтовых адресов в этом домене; а получателю письма проверить, соответствуют ли два параметра — ip-адрес сервера отправителя и адрес, указанный в письме — политике домена, которому этот адрес принадлежит.

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

Но при использовании проверок SPF в качестве характеристического метода отвержения почты возможны ложные срабатывания (при перенаправлении почты).

Для решения проблемы с перенаправлением почты через почтовые сервера была разработана технология SRS (Sender Rewriting Scheme), позволяющая отслеживать цепочку серверов и почтовых адресов, через которые прошло почтовое сообщение.

Хотя сомнения в том, что простое решение позволит полностью избавиться от недостатков протокола SMTP появились уже в 2004 году, в течение этого же года практически все крупнейшие почтовые системы опубликовали свои политики SPF, некоторые начали использовать проверки по SPF в своих программных комплексах по борьбе с нежелательной почтовой корреспонденцией.

В полном согласии с законом Ципфа 10% серверов генерируют 90% трафика. То есть, если даже только крупные игроки начнут применять SPF, это поможет идентифицировать значительную долю почтовых сообщений.

Именно поэтому целесообразно поддерживать технологию SPF наряду с другими методами фильтрации спама на уровне почтового сервера.

Заключение

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

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

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

Ссылки

1.      Paul Graham, A plan for spam, http://paulgraham.com/spam.html.

2.      Paul Graham, Better Bayesian filtering, http://paulgraham.com/better.html.

3.      Журнал Системный Администратор, Greylisting: панацея от спама или «мыльный пузырь»?, http://av5.com/journals-magazines-online/1/15/116.