Возможность подключать к пакету The Bat! внешние антиспамерские фильтры появилась в версии 1.63, но поначалу эти решения были весьма ограниченными функционально. С The Bat! могут работать разные программы фильтрации, например, BayesIt! или SpamPal, рекомендованные на сайте Ritlabs — компании-разработчика почтового клиента. Только с выходом версии 2.00 стало возможным выполнять фильтрацию прямо в The Bat!, не привлекая внешних приложений. В версии 2.12 все стало еще удобнее, особенно с учетом того, что теперь Ritlabs параллельно выпускает полностью русифицированный вариант клиента. До этого приходилось пользоваться специальным международным пакетом, для антиспамового решения — отдельным языковым модулем.
Надо заметить, что подходы, принятые в указанных фильтрах, существенно различаются. А потому мы будем рассматривать их раздельно. В данном случае это будет BayesIt!.
Знакомьтесь: BayesIt!
BayesIt! — весьма обширная программа, имеющая массу нюансов использования, собственные макросы и многое другое.
- BayesIt! — встроенный компонент The Bat!, который работает с полученной почтой.
- Фильтрация спама осуществляется на основе байесовской модели анализа статистических данных.
- Система BayesIt! является самообучающейся: начиная с некоторого количества факторизаций спамовых сообщений, она сама эффективно обращается с последующими явлениями такого рода.
- Предлагаемое первичное, то есть ручное, накопление спамовых сообщений составляет несколько десятков — до сотни.
- Система не ликвидирует спамовые сообщения, а помещает их в отдельную папку. Это позволяет не терять сообщения в случаях ложных срабатываний и при необходимости перенастраивать систему — например, в тех случаях, когда пользователю понадобится некая категория рекламных сообщений.
- По мнению разработчиков, эффективность фильтрации спама может достигать 98-99 процентов.
Этот метод фильтрации (как и всякий иной) является подспорьем для пользователя электронной почты. Содержательная составляющая является основой его интересов, а потому конечное решение о том, какие категории писем относятся к спаму, остается за человеком.
Как включить и настроить антиспамовые функции BayesIt!
Процедура включения и настройки антиспамовых функций BayesIt! выполняется с помощью встроенной в The Bat! подсистемы, разработанной Алексеем Виноградовым и стандартно присутствующей в последних версиях. О том, как все это проделать, очень подробно рассказывается на странице http://www.ritlabs.com/ru/solutions/BayesIt.php. Так что в тонкостях описывать все действия в данной статье необходимости нет.
Использовалась версия The Bat! 2.12. С ней все просто, поскольку нужные файлы входят в состав пакета, а русификация проведена полная для всех компонентов. Для более ранних версий следует обратиться на вышеуказанный сайт и прочитать документ на приведенной ссылке.
Вот пошаговая процедура, которую нужно знать для начала, открыв The Bat!.
- Идем в «Свойства», а там выбираем «Настройка». См.
Экран 1. - В левой части экрана выбираем ветвь «Предупреждения», которая включает опцию «Защита от спама». См. Экран 2.
- В открывшемся окне можно обнаружить BayesIt! среди модулей антиспама (в версии 2.12 это происходит автоматически). Если такого нет, его нужно добавить из подкаталога BayesIt!, который «сидит» в каталоге The Bat!. Имя файла byesit.tbp.См. Экран 3.
- Если теперь выделить этот модуль и нажать «Настроить», то попадем в дополнительные настройки.
Однако, вряд ли есть необходимость сразу же использовать эту опцию: при установке модуля он уже настроен разумным образом, и что-либо менять на первых порах даже не рекомендуется.
Все, дело сделано. Теперь можно классифицировать почту — что относится к категории «спам», а что к «НЕ спам». Делается это очень просто. Выделяем сообщение и идем в основном меню в «Специальное» и находим там функции «Пометить как спам» и «Пометить как НЕ спам». При первом отнесении сообщения к спаму на используемой учетной записи появится новая папка «Спам».
Набирайте побольше спамовой почты и не ленитесь относить ее в эту папку — BayesIt! начинает тренироваться. Как это происходит — чуть ниже.
Несколько слов о том, сколько же спамовых писем надо набрать, чтобы BayesIt! дошел до обещанных и желанных 98-99 процентов эффективности. Создатель инструмента говорит, что сотни сообщений будет в самый раз, но рассказывает он и о случаях, когда процесс самообучения системы начался на тройке вручную введенных спамовых писем. В другом источнике я встретил рекомендацию: хорошо ввести таких писем несколько десятков, еще лучше — до сотни. А вот тысяча — явный перебор, там наблюдается насыщение по показателю результирующей эффективности, притом, что компьютер будет «тренироваться» сутками.
Принципиальной особенностью BayesIt! является то, что формализованных списков разрешенных и запрещенных там нет.
По приходу сообщения его можно отнести к категории «спам» или «НЕ спам». Дальше — думайте сами, решайте сами — сообщения остаются доступными. Что касается практических интересов пользователя в отношении конкретных предметов, например, недвижимости, автомобилей или компьютеров, то коль он не будет выбрасывать в спам сообщения об этих вещах, система перестанет относить их в папку спама. Тут все очень просто — заявите интерес.
Конструктивной особенностью BayesIt! является то, что он вообще не взаимодействует с внешним сервером, а работает с уже полученной почтой — без спама, поступающего на клиентский компьютер, BayesIt! не смог бы обучаться.
Тут, как всегда, свои плюсы и минусы. Плюс — независимость от связи с сервером и с транспортом. Это означает, что фильтру совершенно безразлично, какие почтовые протоколы используются — POP3 или IMAP. А минус в том, что спам все-таки переносится в компьютер, а это потребляет и канальные, и собственно компьютерные ресурсы и к тому же ослабляет общую безопасность.
Кстати, как выяснилось после небольшого эксперимента, весьма нежелательно использовать одновременно несколько антиспамовых программ. Я умышленно пошел на риск (уж очень было интересно, что получится) и поплатился — пришлось лечить систему Windows XP. Хотя, мой опыт может оказаться локальной значимости.
Немного теории
В обсуждаемом предмете фильтрации потока сообщений проверяется общая вероятность того, что сообщение является спамом, на основании ключевых слов в сообщении, включая заголовки и прочие включения.
Вся схема BayesIt! построена на байесовской модели анализа статистических данных. Эта модель была предложена еще в 18 веке Томасом Байесом, вовсе не математиком, а пресвитерианским проповедником. При жизни автора эта его работа не публиковалась, ее случайно нашел приятель покойного в завещанном сундуке.
Модель основана на комбинировании вероятностей. Например: идет «юноша бледный с взором горящим» и безотрывно читает, скажем, Chip. Вероятность того, что это практикующий компьютерщик составляет 60% (a). Но когда мы замечаем у него в пакете коробочку с картой Ethernet, вероятность возрастает до 80% (b).
Согласно правилу комбинации вероятностей по Байесу получаем такую формулу общей вероятности:
s = ab/ [ab + (1 -a)(1 — b)]
Для случая с увлеченным компьютерщиком s будет равно чуть более 98%, то есть, наша догадка для нас становится почти истиной.
Важной особенностью фильтрации на основе подхода Байеса является то, что в учет идут и положительные, и отрицательные индикаторы спама. Отдельные слова, встречающиеся с высокой вероятностью в спаме, повышают вероятность принадлежности к спаму всего сообщения. И наоборот, слова, нетипичные для спама, снижают вероятность принадлежности сообщения к спаму.
У фильтрации на основе принципа Байеса признаются три преимущества по сравнению с традиционными методами фильтрации по содержательным единицам:
- анализ проводится с использованием двух типов разных индикаторов: тех, которые говорят о принадлежности к спаму, и тех, которые говорят о принадлежности к востребованным или санкционированным сообщениям;
- применение принципа Байеса независимо от используемого языка сообщений;
- отсутствие необходимости постоянно корректировать и пополнять списки фильтрации.
Сам по себе метод Байеса является теоретической идеей. Потому для практического применения этой идеи приходится искать решений ряда проблем.
Одной из таких проблем является анализ слов и знаков в сообщениях посредством использования частотности и статистики их употребления. В специальных базах данных хранятся все слова и все буквенные последовательности (знаки или токены — последний термин принят в среде антиспамеров), и с их помощью можно подсчитать и оценить частоту их употребления в спаме или же в легитимных посланиях. Если в каком-нибудь послании обнаруживается 15 токенов, обладающих известной спецификой, то вероятность, что это спам, составит не менее 50%. Это не эвристика и не «ползучий эмпиризм», это анализ текстовых структур.
Комбинируя принципы Байеса с идентификацией токенов, можно вывести вероятность спама или, напротив, легитимности всего сообщения.
Кстати, если посмотреть в настройки модуля BayesIt!, то обнаруживается, что там в опциях фильтрования по умолчанию установлены эти самые 15 токенов.
При всех этих премудростях выбор того, что спам, а что — нет, остается за вами.
The Bat! против спама. Часть 1: BayesIt!