Распределенные методы обнаружения спама (часть 2)
© 2003 Алексей Тутубалин
Перечисленные в предыдущем
разделе особенности современных массовых
рассылок приводят к тому, что в рамках
отдельной почтовой системы видна только часть
общей картины - спам приходит со сравнительно
небольшого количества IP-адресов, имеет
относительно небольшое число модификаций,
единичная рассылка продолжается небольшое
время. Более полную картину происходящего имеют
крупные почтовые системы и провайдеры с
миллионами пользователей, однако полной картиной
не обладают и они.
В то же время, единичная рассылка на миллионы адресов
занимает существенное время - от нескольких
часов до нескольких суток. Если обнаружить ее
"на старте" и каким-либо образом блокировать, то
ущерб от спама понесут только те пользователи, чьи
адреса были использованы в начале рассылки.
Другими словами, необходимо собирать данные о
спам-почте из максимально-возможного количества
точек сети, обрабатывать их максимально быстро и
делать доступными данные о происходящей в
настоящее время рассылке для всех участников
системы.
В настоящее время реализованы такие методы быстрого сбора
данных о рассылках (перечислены в порядке убывания
распространенности в мире): - прием
спама в специальные "ловушки" (honeypot) -
E-mail адреса, предназначенные только для приема
спама;
- голосование пользователей -
пользователь, получивший спам, нотифицирует об
этом систему сбора данных, предоставляя образец
спама;
- анализ всей проходящей через
почтовую систему почты с сообщением
контрольных сумм отдельных сообщений на
центральный сервер.
На основании собранных данных, которые выглядят как
"такое-то письмо принято в мире столько-то
раз", либо "на такое-то письмо пожаловались
столько-то раз", строятся списки массовых на
данный момент времени рассылок, которые
становятся доступными участникам системы в
реальном времени. Почтовые системы, приняв
письмо, могут узнать его статус и либо отвергнуть
(уничтожить, перенаправить в архив или карантин)
как спам, либо передать получателю. Сбор
спама с помощью адресов-"ловушек"
Наиболее крупная сеть адресов-ловушек для анализа спама в
реальном времени организована и
поддерживается компанией Brightmail
(www.brightmail.com). Детали реализации известны
только из публикуемых этой компанией документов,
согласно им сеть сбора спама состоит более чем
из миллиона почтовых адресов-ловушек; данные
по спаму пополняются и пользователями самой
системы. На основании полученных
спам-сообщений составляются списки сигнатур
сообщений и списки правил анализа заголовков,
которые доставляются подписчикам системы
практически в реальном времени. Согласно
публикациям компании Brightmail, ею
используются как четкие сигнатуры (hashes),
идентифицирующие в точности данное сообщение,
так и нечеткие, которые приспосабливаются к
меняющимся спамерским письмам.
Решение Brightmail Anti-Spam доступно только на коммерческой
основе в виде plug-in к системам Sendmail и MS
Exchange, online-сервиса и в составе некоторых
сетевых устройств (Network Appliances).
Вследствие коммерческого характера системы получить данные
об ее пригодности для фильтрации российского
спама затруднительно. Доступны лишь данные тестов
PC Magazine, согласно которым уровень
обнаружения спама составил 77.79%, а уровень
ложных срабатываний системы - 0.05% всех
сообщений.
Аналогичная схема сбора образцов спама реализована в системе
SkyScan AS компании MessageLabs. На основе
маркетинговых документов компании, можно
предположить, что используемые методы очень
похожи на систему Brightmail; как и в случае
Brightmail существенная информация о системе
практически нигде не опубликована.
В тестах PC Magazine сервис SkyScan показал уровень обнаружения
спама в 96% при доле ложных срабатываний 0.48%
Поддержание большого числа адресов-ловушек требует больших
человеческих и административных ресурсов - это не
должны быть "пустые" адреса, они должны активно
функционировать - публиковаться на
WWW-сайтах, форумах и конференциях,
регистрироваться в онлайн-сервисах и прочим
образом имитировать поведение обычного
пользователя с точки зрения спамера. По всей
видимости, данная технология применима
только в условиях компании-разработчика
антиспамерского ПО, либо в условиях
крупного почтового сервиса. Создание подобной
системы на базе только усилий волонтеров
представляется маловероятным.
Голосование пользователей
Метод распределенного обнаружения спама методом голосования
пользователей заключается в следующем:
- Почтовая система, принявшая письмо,
рассчитывает его сигнатуру, передает ее на
сервер системы обнаружения и получает ответ -
спам это или нет.
- Если пользователь
получил письмо, которое он считает спамом, то
он может проголосовать "против него" -
переправив в систему сбора данных сообщение о
том, что данное письмо является спамом.
-
Если одно письмо (одна сигнатура) имеет
достаточно много голосов "против", то система
сбора данных считает данное письмо спамом.
Вышеописанная схема реализована в системе Vipul's Razor/Cloudmark
SpamNet. Эта система включает в себя:
- сеть серверов под управлением компании
Cloudmark;
- бесплатное клиентское ПО для
Unix (как для почтовых серверов, так и для
почтовых клиентов) и бесплатное право
использования серверов системы;
- платная
подписка на сервис для клиентов Windows
-
платное серверное ПО для Windows-серверов и
подписка на сервис для корпоративных
пользователей.
Исходно система Vipul's Razor была целиком бесплатной, однако
после выхода Razor Version 2 (Razor v2, июнь
2002 года) установилась описанная выше схема
-бесплатные версии для Unix-систем и платные для
Windows.
В Razor v2 используются как четкие контрольные суммы текста письма
(SHA1) , так и два варианта нечетких:
- Nilsimsa
(lexx.shinn.net/cmeclax/nilsimsa.html)- метод
расчета нечетких сигнатур, которые слабо
меняются при небольшом изменении исходных данных
(в настоящее время этот способ не
используется т.к. метод Nilsimsa давал заметное
число ложных срабатываний)
- Ephemeral
Signatures - короткоживущие сигнатуры,
основанные на случайном выборе кусочков текста
для их построения (сервер сообщает клиенту
необходимые данные для выбора, клиент
осуществляет выбор и расчет сигнатуры).
Считается, что такие сигнатуры спамерам сложно
подделать, так как заранее неизвестно, какие
участки текста сообщения будут использованы для
анализа письма.
Клиентское ПО Razor/SpamNet поддерживает механизмы голосования
"против" текста сообщения (т.е. за признание
его спамом) и голосование "за" (т.е. реакция на
ложные срабатывания системы). Для поддержки
Ephemeral Signatures письмо при голосовании
передается на сервер целиком.
Клиенты регистрируются на сервере, получая уникальный
идентификатор, используемый в дальнейшем при
голосованиях. Поддерживается "Truth Evaluation
System" - система расчета уровня доверия к
отдельным голосующим пользователям, основанная,
по всей видимости, на сравнении похожести
распределения голосований данного пользователя
со средним по системе в целом.
Правила системы запрещают автоматическое голосование "против",
за исключением использования адресов-ловушек.
Статистика и качество работы системы Razor/ SpamNet: В
настоящее время система обрабатывает более 100
млн. сообщений в сутки.
Согласно документам Cloudmark, уровень обнаружения спама данной
системой достигает 95%. С другой стороны,
статистика, публикуемая на сайте Cloudmark.com,
показывает, что доля обнаруженного спама во
всем потоке почты составляет около 25%. Так как
общая доля спама в почте в настоящее время
составляет около половины (по данным Brightmail,
MessageLabs и самой Cloudmark), то получается,
что на самом деле система Razor/SpamNet
обнаруживает порядка 50% спама.
Согласно тестам PC Magazine, уровень обнаружения спама этой
системой составляет 83%, уровень ложных
срабатываний - 6.7%
Для спама, получаемого в России, качество работы Razor существенно
хуже - по тестам автора на выборке из 11600
спам-сообщений, уровень обнаружения спама равен
10%, хотя уровень ложных срабатываний крайне
низок (одно сообщение на 5000). По всей
видимости, распространенность Razor в России
невелика, соответственно и сигнатур русскоязычных
писем в базе практически не имеется.
Проект Pyzor (pyzor.sourceforge.net) был начат, как клиент к
Razor, написанный на языке Python. Однако автора
(Frank Tobin) беспокоил тот факт, что серверная
часть системы Razor не является открытой
(недоступна как в виде исходных текстов, так и
в виде исполняемых модулей), в результате Pyzor в
настоящее время реализует свой алгоритм подсчета
контрольных сумм (дайджест SHA по тексту письма,
очищенному от html-тегов) и имеет отдельный сервер
контрольных сумм. Объединение Pyzor-серверов в
общую сеть и обмен данных между серверами не
предусмотрены.
Судя по всему, проект заброшен автором и никем более не
развивается. В данном обзоре Pyzor упомянут для
полноты картины.
Анализ всей поступающей почты
Анализ всей проходящей через почтовую систему почты
подразумевает, что для каждого почтового
сообщения генерируются контрольные суммы, которые
передаются на сервер сбора статистики. В ответ
сервер сообщает количество зарегистрированных
повторов данного письма. Начиная с некоторого
количества повторов можно считать данное
письмо спамом. Очевидно, что подобная
технология не будет отличать легальные
массовые рассылки от спама, следовательно,
требуются "белые списки" в которые такие
рассылки будут внесены.
Данная технология реализована в проекте DCC - Distributed
Checksum Clearinghouse
(www.rhyolite.com/anti-spam/dcc/). Программное
обеспечение DCC распространяется в исходных
кодах по очень либеральной
лицензии. Пользователям доступен как клиент,
который может быть использован с имеющейся
сетью DCC-серверов, так и свой сервер, который
можно установить либо независимо, либо включить
в общую DCC-сеть. Включенные в DCC-сеть сервера
обмениваются данными о частотных контрольных
суммах практически в реальном времени.
Система DCC поддерживает как анонимных, так и авторизованных
клиентов. DCC-сервер можно сконфигурировать так,
чтобы сообщения о спаме он принимал только от
авторизованных пользователей. В системе
реализован и аналог механизма голосования -
отдельное сообщение (его контрольная сумма) может
быть явно помечено как "спам" или "не спам".
В системе используется сразу несколько типов контрольных сумм -
четкая сумма MD5 по всему тексту сообщения,
отдельные контрольные суммы по адресам
отправителя, получателей и части заголовков
письма и два типа нечетких сумм, рассчитанных на
работу с меняющимся текстом письма.
В настоящее время публичная сеть DCC обрабатывает около 40
млн. "уникальных сообщений" в сутки (публикуемая
статистика не учитывает число отдельных
получателей каждого письма), но не имея
доступа к детальной информации у нас нет
возможности перевести это число в привычные
единицы. Точно так же, публикуемая статистика по
обнаруженному спаму - около 30% в среднем -
приводится в уникальных сообщениях, перевести
это в "обычные проценты" без дополнительных
данных нельзя, так как. Непонятно, как
выяснить долю повторяющихся писем.
Тесты автора данной статьи, проведенные по подборке получаемого в
России спама, показывают уровень обнаружения
спама в 25% (в обычных терминах) при нуле ложных
срабатываний (без учета получаемых легитимных
рассылок с большим числом подписчиков).
Сравнительный анализ методов
Три рассмотренных метода кардинально отличаются по способу сбора
спама, остальные характеристики у них близки
- по полученным образцам спама генерируются
сигнатуры, почтовая система может сравнить
сигнатуру полученного письма с известными
системе, а в случае совпадения - решить, является
ли полученное письмо нежелательным.
Однако различия в способах сбора приводят к существенному
отличию в поведении распределенных систем в целом.
Качество работы: Качество работы (процент
определяемого спама) распределенных систем
зависит от ряда свойств системы: -
От представительности выборки - количества
разнообразного собираемого спама.
- От
соответствия выборки, имеющейся в системе,
потоку спама конкретного пользователя.
-
От методов построения контрольных сумм -
насколько качественно они работают с
персонализированным (со случайными
последовательностями) спамом.
Судя по публикуемым данным, наиболее представительной выборкой
в настоящее время обладают системы с
ловушками почты, в первую очередь Brightmail,
обрабатывающая около 2 млрд. сообщений в сутки. У
основанных на других принципах сбора спама
систем DCC и Razor потоки сообщений имеют
примерно один порядок - около 100 млн. сообщений
в сутки (с учетом разницы методов подсчета),
однако в случае DCC в систему попадает информация
обо всем потоке почты, а в случае Razor -
только по выбору пользователя, соответственно
представительность DCC несколько выше. Принципы
построения нечетких контрольных сумм в DCC и
Razor похожи, качество их должно быть близким.
Соответственно, качество работы у DCC должно
быть выше за счет большей представительности - что
и наблюдается в тестах.
Ложные срабатывания: Ложные срабатывания - это
ошибочное принятие за спам-сообщения того, что
спамом не является. Не имея детальных данных
по системам с ловушками спам-почты, рассматривать
этот аспект их работы невозможно. Рассмотрим
проблему ложных срабатываний для двух оставшихся
классов систем:
1. Системы с голосованием пользователей зависят в определении
спама от выбора пользователей. По опыту автора,
пользователи часто считают спамом вполне
"легальные" сообщения - рассылки, на которые они
подписались и не знают, как отписаться, сообщения
от автоматических почтовых "роботов" и так
далее. Уровень "шума" на потоке жалоб обычно
составляет не более нескольких процентов. С
другой стороны, обычно число жалоб на легальные
сообщения меньше жалоб на массовый спам. С
учетом вышесказанного, системы с голосованием
должны либо повышать "порог срабатывания" (число
жалоб, при котором письмо считается спамом),
либо мириться с ложными срабатываниями, когда за
спам принимаются легитимные рассылки. Судя по
появлению механизма "голосования за" в Razor
v2, данное свойство является определенной
проблемой - полностью от ложных срабатываний
избавиться не удается.
2. Системы с анализом всей почты принципиально подразумевают
возможность ложного срабатывания - для этих
систем легальные рассылки и спам выглядят
одинаково. Другими словами, почтовые системы,
использующие DCC или аналоги должны поддерживать
белые списки для всех легальных рассылок,
которые хочется получать. В существенной
степени, проблема ложных срабатываний переложена
на конечного пользователя. Возможность
компрометации распределенных систем
В последнее время происходят массовые DoS-атаки на системы RBL,
что говорит о накоплении спамерами достаточных
ресурсов для попыток устранения не нравящихся им
антиспамерских систем. С учетом этого факта,
необходимо рассмотреть возможность
компрометации распределенных систем сбора
статистики.
Компрометация подобных систем возможна в двух вариантах: либо
система резко снижает качество работы (долю
распознаваемого спама), либо же резко
увеличивается число ложных срабатываний. В
дальнейшем будем рассматривать возможность
компрометации только с использованием заложенных в
сами системы механизмов работы. -
Системы с ловушками для почты - качество их
работы зависит от почты, поступающей в
ловушки. Снизить качество работы можно в
ситуации, когда спам в эти ловушки
перестал приходить. С учетом количества
ловушек в коммерческих системах это
маловероятно. Количество ложных срабатываний
можно увеличить, "завалив" ловушки легитимной
почтой. В обоих случаях, для компрометации
системы необходимо, чтобы в руки спамеров попала
существенная часть списка ловушек, компрометация
без этого списка малореальна.
- Системы
с голосованием пользователей. Качество работы
таких систем зависит от активности пользователей
- число жалоб на письмо пропорционально
массовости его рассылки и количеству
пользователей системы. Таким образом, снизить
качество распознавания можно путем
уменьшения количества спама приходящего
голосующим участникам, но именно этого они и
так добиваются. Другими словами, ухудшение
качества распознавания за счет внешнего
воздействия представляется нереальным.
Компрометация системы путем увеличения числа
ложных срабатываний представляется возможной -
для этого спамерам нужно стать голосующим
участником и голосовать "против" легитимных
рассылок. Потенциально это возможно, данную
проблему система Razor/SpamNet нейтрализует
путем присваивания рейтинга голосующим
участникам - для компрометации системы
необходимо большое количество голосующих
участников с хорошим рейтингом. Это опять
возможно, но требует уже больших
организационных ресурсов. В то же
время, проблема ненамеренной компрометации
базы данных Razor легальными рассылками есть и
на сегодняшний день.
- Системы анализа
всей проходящей почты. Данные системы
строят объективную статистику проходящей почты,
классифицируя ее по частоте, а не по
содержанию. Занизить частотность какой-либо
рассылки без нарушения целостности системы
представляется невозможным. Компрометация
системы за счет ложных срабатываний
теоретически возможна т.к. нет способа проверить
реальное число получателей сообщения, о котором
рапортует почтовый сервер.
В системе DCC заложена потенциальная возможность принимать отчеты
только от авторизованных клиентов, однако в
настоящее время эта возможность на публичной сети
DCC-серверов не используется.
Необходимо отметить, что компрометация путем увеличения числа
ложных срабатываний существенна только для
легальных массовых рассылок, компрометировать
единичные сообщения затруднительно, ибо для
компрометации необходимо получить образец
компрометируемого письма до того, как оно
получено большинством получателей. Для обычных
писем это малореально.
В то же время, для легко компрометируемой на сегодня системы DCC
проблема пропуска массовых легальных рассылок
имеется и без компрометации, их в любом случае
нужно вносить в белый список. Проблемы
распределенных методов
Наиболее существенной проблемой для вышеописанных методов
детектирования массовых рассылок является
"персонализация" спама - каждое современное
спамерское письмо существует в огромном
количестве вариантов с незначительными
отличиями в тексте. Насколько известно
автору, на сегодняшний день ни одна из
распределенных систем полностью данную проблему не
решила.
В то же время, пути решения достаточно понятны - существует
богатый разработанный математический аппарат,
предназначенный для поиска похожих текстов и
фрагментов текстов (сигнатуры Рабина и т.п.),
который постепенно начинает использоваться в
распределенных системах обнаружения спама.
Вторая существующая проблема связана с ложными определениями
легальных рассылок как спама. Эта проблема
характерна как для методов, анализирующих всю
почту, так и, в меньшей степени, для
систем с голосованием пользователей. Решение
этой проблемы на локальном уровне возможно путем
создания белых списков, включающих все принимаемые
данной почтовой системой рассылки. На глобальном
уровне можно создавать как всеобщие белые списки
(с какой-то политикой), либо вводить методы,
позволяющие уверенно и надежно идентифицировать
источник рассылки.
Таким методом может быть, например, необязательная электронная
подпись содержания легальных рассылок,
позволяющая уверенно идентифицировать
отправителя. Подписанные сообщения могли бы с
гарантией проходить через почтовые фильтры.
Перспективы и пути развития распределенных систем анализа
электронной почты
Дальнейшее усовершенствование распределенных систем анализа
электронной почты можно разделить на два
основных направления: улучшение уже построенных
механизмов и создание принципиально новых методов
анализа.
А. Усовершенствование имеющихся механизмов распределенных
систем, очевидно, будет включать борьбу с
описанными выше проблемами. Будет увеличиваться
защищенность систем от компрометации, качество
обработки писем с добавками случайного текста,
снижаться уровень ложных срабатываний. Очевидно,
что будет увеличиваться и охват
распределенных систем - их эффективность в
борьбе со спамом автоматически будет приводить к
появлению новых клиентов.
Б. Новые возможности распределенных систем анализа. Обладание
большим массивом получаемых в реальном времени
данных о распространении отдельного сообщения
открывает совершенно новые возможности для
надежного обнаружения спама. По всей видимости,
большой эффект должно дать объединение имеющихся
способов фильтрации спама (RBL,
детерминированный контентный анализ,
статистический анализ) с данными, поставляемыми
распределенными системами.
Можно привести такие потенциальные примеры: -
Автоматическое построение короткоживущих
черных списков IP-адресов в реальном времени.
Если какое-либо сообщение,
расклассифицированное как спам, рассылается в
настоящее время с некоего списка IP-адресов, то
весь этот список может быть временно помечен
как "черный" и какой-либо прием почты с этих
машин - запрещен. Такое блокирование может
осуществляться быстро, его можно делать только
на время рассылки.
- Ретроспективный
анализ источников спама и построение черных
списков на его основе. Способ предполагает
анализ источников спама, рассылающих
сообщения, которые не были классифицированы
как спам сразу (например, по причине наличия в
них больших объемов случайного текста). Если
данные рассылают только спам, то они
могут быть помещены в сравнительно
долгоживущие черные списки.
- Анализ
активности отдельных машин при рассылке почты,
выявление "схем поведения" пользовательской
машины, рассылающей спам. По всей видимости,
такая машина должна отличаться по
поведению, как от обычного почтового сервиса,
так и от пользовательского компьютера.
-
Накопление и анализ изменений текста внутри
одной массовой рассылки (один основной текст
с переменными добавками). Можно как выделять
общие части таких сообщений статистическими
методами, так и исследовать алгоритм случайных
изменений с целью предсказания дальнейших
вариаций.
Богатые потенциальные возможности распределенных систем
анализа почты имеют в себе и скрытые
опасности - контроль над такой системой дает
множество потенциальных возможностей контроля
почты, не связанных с фильтрацией спама. Для
предотвращения слишком большого интереса к
подобным системам, они должны накапливать сведения
только о массовых рассылках, а не по электронной
почте в целом.
|