Информатизация и образование

Высшее образование - Информационная поддержка: новости ГИА и ЕГЭ, электронное обучение, библиотеки, программное обеспечение и борьба с плагиатом

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Антиспам системы, их тестирование

Целью данного тестирования было оценить эффективность работы разных антиспам систем. Для тестирования были выбраны следующие продукты:
• Apache Spamassassin - SA(свободный)
• Yandex Spamooborona 2.3 - SO(коммерческий)
• Kaspersky Antispam 3.0 - KAS(коммерческий)
• FASTBL 0.7.0 (свободный)
• dnsbl :
bl.spamcop.net
cbl.abuseat.org
dnsbl.sorbs.net
dul.nsbl.sorbs.net
dul.ru
sbl-xbl.spamhaus.org
zen.spamhaus.org


DNSBL перечни были выбраны по известности эксплуатации.
Для любого продукта был выделен отдельный сервер (P4 3.0GHZ HT/1GB RAM/FREEBSD 7.2-PRERELEASE), на коем осуществлялось тестирование почтовой корреспонденции. В качестве MTA использовался sendmail, скомпилированный с поддержкой milter для подключения cервисов SA,SO,KAS. Для тестирования коммерческих продуктов были использованы временные лицензии, полученные с сайта девелоперов.

Почтовый трафик использовался поступающий для 2-х доменных имен, зарегистрированных в 2002 и 2003 г.. Суммарный ежесуточный трафик на эти домены составляет от 5 до 12 тыс.писем, что является весьма достаточным количеством почты для тестирования. Эти домены применяются в основном для личной переписки, подписки на листы рассылки и имеют в наличии возле 10 настоящих почтовых получателей. Личный трафик на таких доменах составляет от 10 до 40 писем в сутки, что дает возможность оценить эффективность работы тестируемых продуктов, и коэффициент False Negative для любой из систем. К несчастью, из-за небольшого личного трафика не получилось оценить коэффициент False Positive,однако это не - проблема, так как тестируемые системы применяют шаблонные методы оценки спама и вероятность попадания нормальных писем в спам весьма невелика.

Основной релей принимал все входящие соединения и совершал их начальный разбор путём запросов к DNSBL-спискам, проверке соответствия сессии RFC(FASTBL), после перенаправлял послания дальше на сервера с тестируемыми продуктами. Сразу скажу, что запросы в DNSBL зоны были лишь для приобретения информации о IP-адресе,однако блокировка адреса не производилась. Тестирование осуществлялось без дополнительного "тюнинга" продуктов в виде завышения оценочных коэффициентов, т.е. "as is".

В связи с тем, что тестируемые системы имеют разные методы тестирования писем, обновление продуктов происходило по следующей схеме:
"Apache Spamassassin" - sa-update раз в сутки
"Kaspersky Antispam" - каждые 3 минутки
"Yandex Spamooborona" - каждые 20 мин.

Указанные временные промежутки обусловлены возможной частотой выхода новых обновлений и рекомендациями девелоперов.

Любой из продуктов имеет свои особенности тестирования почтового наполнения:
"Касперский Антиспам" использует offline-тестирование, регулярно обновляя свои локальные базы, плюс возможность подключения dnsbl листов.
"Яндекс Спамооборона" использует online-технологии тестирования, всегда работая сособственным центральным сервером, и обновляя свои локальные базы по мерепотребности, к тому же имея возможность подключения dnsbl листов.
"Apache Spamassassin" использует offline обработку данных, и online-сервисы списков DNSBL, Razor, Pyzor, DKIM, SPF.

SA и KAS применяют fork() для обработки любого послания, а SO, в собственную очередь, использует Threads, что гораздо экономичнее с позиции расхода памяти. При этом SA использует preforked процессы, ограничивая вероятность перерасхода памяти, а KAS форкается по мере потребности, не превышая ур. фильтрующих процессов выше лимита, указанного в конфигурационном файле.
Примерный расход памяти на любой процесс:
SA ~ 40 MB
KAS ~ 30 MB
SO ~ 90 MB

Ниже приведены таблицы результатов с комментариями.
Сокращения, применяемые в таблицах:
PS - Passed(число пропущенных писем)
BL - Blocked(число заблокированных писем, конкретных как SPAM)
FN - FALSENEGATIVE(Число писем конкретных как неплохие, однако являющихся спамом)
FP - FALSEPOSITIVE(Число писем конкретных как SPAM, однако таковыми не являющиеся).

Date: 02.04.2009. Count: 10291 PS BL FN FP
Spamooborona 56 10235 42 0
SPAMASSASSIN 887 9406 873 0
Kaspersky Antispam 277 10014 264 1
bl.spamcop.net 5107 5184 5093 0
cbl.abuseat.org 2353 7938 2339 0
dnsbl.sorbs.net 5732 4559 5718 0
dul.nsbl.sorbs.net 7773 2518 7759 0
dul.ru 10255 36 10241 0
FASTBL 89 10202 75 0
sbl-xbl.spamhaus.org 2336 7955 2322 0
zen.spamhaus.org 395 9896 381 0


I день тестирования начался со странного пробоя антиспам защиты продукта "Kaspersky Antispam", в связи с этим KAS пропустил писем более, чем предполагалось. Этот же день продемонстрировал слабость раздельной работы dnsbl-списков и SPAMASSASSIN противрусского спама. При тестировании я специально отправил 4 послания с квотингом одного из спам писем с перемешиванием слов на тестовый сервер. Касперский в связи с контекстным анализом содержимого отослал валидное послание, подписанное DKIM с gmail.com в SPAM. С одной стороны, контент послания на самом деле был спамом, однако, в собственную очередь, письму была поставлена оценка [SPAM] вместо [Possible Spam]. Принимая во внимание, что данное послание могло быть переслано системному администратору для анализа содержимого заголовков, KAS заполучил 1 FP.

Date: 03.04.2009. Count: 6357 PS BL FN FP
Spamooborona 61 6296 31 0
SPAMASSASSIN 780 5579 750 0
Kaspersky Antispam 65 6292 35 0
bl.spamcop.net 3455 2902 3425 0
cbl.abuseat.org 1571 4786 1541 0
dnsbl.sorbs.net 3759 2598 3729 0
dul.nsbl.sorbs.net 4801 1556 4771 0
dul.ru 6331 26 6301 0
FASTBL 77 6280 47 0
sbl-xbl.spamhaus.org 1557 4800 1527 0
zen.spamhaus.org 325 6032 295 0


Во II-й день тестирования Spamooborona и Kaspersky Antispam сравняли свои позиции.

Date: 05.04.2009. Count: 7025 PS BL FN FP
Spamooborona 59 6966 39 0
SPAMASSASSIN 1291 5739 1271 0
Kaspersky Antispam 29 6996 9 0
bl.spamcop.net 4170 2855 4150 0
cbl.abuseat.org 2031 4994 2011 0
dnsbl.sorbs.net 4424 2601 4404 0
dul.nsbl.sorbs.net 5180 1845 5160 0
dul.ru 6986 39 6966 0
FASTBL 42 6983 22 0
sbl-xbl.spamhaus.org 2018 5007 1998 0
zen.spamhaus.org 368 6657 348 0


В 3-й и 4-й день тестирования (выходные дни) слегка прохудилась защита у Spamooborona в связи с резким всплеском одиночных сообщений. Так как данные о составляющих компонентах писем у Yandex Spamooborona обрабатываются в online-режиме, то весьма вероятны пропуски сообщений, которые не имели частых повторений. Kaspersky Antispam в собственную очередь продемонстрировал преимущества собственной оффлайновой системы оценки.

 

 

Date: 06.04.2009. Count: 9963 PS BL FN FP
Spamooborona 53 9906 33 0
SpamAssassin 1506 8459 1486 0
Kaspersky Antispam 125 9837 105 0
bl.spamcop.net 7042 2921 7022 0
cbl.abuseat.org 2562 7401 2542 0
dnsbl.sorbs.net 6420 3543 6400 0
dul.nsbl.sorbs.net 7561 2402 7541 0
dul.ru 9907 56 9887 0
FastBL 68 9895 48 0
sbl-xbl.spamhaus.org 2549 7414 2529 0
zen.spamhaus.org 308 9655 288 0


На пятый день особых сюрпризов не произошло, кроме увеличения количества пробоев у Kaspersky Antispam.

Date: 07.04.2009. Count: 10923 PS BL FN FP
Spamooborona 88 10832 48 1
SpamAssassin 1418 9503 1377 0
Kaspersky Antispam 190 10727 149 0
bl.spamcop.net 6405 4518 6364 0
cbl.abuseat.org 2651 8272 2610 0
dnsbl.sorbs.net 6478 4445 6437 0
dul.nsbl.sorbs.net 8237 2686 8196 0
dul.ru 10877 46 10836 0
FastBL 103 10820 62 0
sbl-xbl.spamhaus.org 2633 8290 2592 0
zen.spamhaus.org 293 10630 252 0


На шестой день Spamooborona схватила FP, заблокировав валидную рассылку с subscribe.newsland.ru. Во все дни тестирования приходило достаточно большое количество NDR с репортами о недоставке спам сообщений, но все NDR были отфильтрованы продуктами как SPAM, разбираться с этим не стал. Хотя это неверно.

Total. Count: 44552 PS BL FN FP
Spamooborona 317 44235 193 1
SpamAssassin 5882 38686 5757 0
Kaspersky Antispam 686 43866 562 1
bl.spamcop.net 26178 18374 26053 0
cbl.abuseat.org 11168 33384 11043 0
dnsbl.sorbs.net 26812 17740 26687 0
dul.nsbl.sorbs.net 33551 11001 33426 0
dul.ru 44353 199 44228 0
FastBL 379 44173 254 0
sbl-xbl.spamhaus.org 11093 33459 10968 0
zen.spamhaus.org 1689 42863 1564 0


По окончании всех тестов из всего объёма писем (43554 письма) было выделено 127 абсолютно валидных писем, на основании которых были рассчитаны параметры FalseNegative и FalsePositive. Если исключить первый день тестирования, то видно, как коммерческие продукты идут нога в ногу при анализе спама. Spamassassin всё-таки рассчитан на анализ зарубежного спама и часто пропускает письма из-за отсутствия нормализации контента. Коммерческие продукты приводят письма к определенному виду. Например, часто используемый спамерами метод вставки лишних знаков в слова типа: «Р-А-С-С.Ы, Л=К-И», а также замена русских букв сходными по написанию английскими буквами, абсолютно неэффективны против нормализации, при которой искаженное слово всё равно превратится в «рассылки» и попадёт под контекстный анализ, добавляющий за каждое такое слово определённое количество баллов всему письму. В свою очередь, SpamAssassin довольно хорошо различает зарубежный спам типа «Medical, Viagra, Cialis, Enlargement», а также хорошо фильтрует «bayes poisoning» контекстных анализаторов.

По поводу dnsbl-списков мнение сложилось неоднозначное. С одной стороны, популярность публичных dnsbl очень высока, и они могут обеспечить защиту от спама до определённой степени. Но, с другой стороны, использовать dnsbl-списки в качестве панацеи нельзя, так как всё-таки бывают FP при работе с валидными доменами. Что же касается проверки входящих соединений по RFC (FastBL), то за время тестирования не случилось ни одного FP и уровень фильтрации сопоставим с коммерческими продуктами. Но это уже другая история. :)

Ну, и напоследок, я решил свести в таблицу варианты событий в том случае, если бы контекстные анализаторы работали в паре с DNSBL-листами. Как и ожидалось, я получил 100% эффективность фильтрации спама даже при использовании зарубежного продукта Apache SpamAssassin.

Total Count:45667 PS BL FN FP
bl.spamcop.net+so 124 44243 184 1
bl.spamcop.net+sa 125 38702 5725 0
bl.spamcop.net+kas 124 44050 377 1
cbl.abuseat.org+so 124 44266 161 1
cbl.abuseat.org+sa 125 40541 3886 0
cbl.abuseat.org+kas 124 44264 163 1
dnsbl.sorbs.net+so 124 44258 169 1
dnsbl.sorbs.net+sa 125 39832 4595 0
dnsbl.sorbs.net+kas 124 44068 359 1
dul.nsbl.sorbs.net+so 124 44247 180 1
dul.nsbl.sorbs.net+sa 125 39398 5029 0
dul.nsbl.sorbs.net+kas 124 44013 414 1
dul.ru+so 124 44236 191 1
dul.ru+sa 125 38714 5713 0
dul.ru+kas 124 43872 555 1
FastBL+so 124 44413 14 1
FastBL+sa 125 44374 53 0
FastBL+kas 124 44412 15 1
sbl-xbl.spamhaus.org+so 124 44268 159 1
sbl-xbl.spamhaus.org+sa 125 40519 3908 0
sbl-xbl.spamhaus.org+kas 124 44265 162 1
zen.spamhaus.org+so 124 44309 118 1
zen.spamhaus.org+sa 125 43747 680 0
zen.spamhaus.org+kas 124 44387 40 1



Теперь о самом грустном в этой познавательной истории об антиспаме — о настройке и лицензировании коммерческих продуктов.
Несмотря на практически безупречное ядро продуктов, внешняя обёртка очень неудачна и неудобна. Лично я ждал большего профессионализма от разработчиков продуктов такого плана.
Итак, несколько «ложек дёгтя в бочку с мёдом».
Оба продукта ориентированы на установку в систему FreeBSD 6.2, которая уже давно устарела с точки зрения безопасности, а также версий продуктов, используемых в релизе(пришлось шаманить с compat6x).
Kaspersky antispam содержит в своём дистрибутиве perl 5.6.2, а также часть специфических perl модулей. Администраторская консоль KAS использует thttpd и обвязку системы в виде перловых CGI-скриптов. Она конечно, выглядит красиво, но, по-моему, не сильно информативно, хотя имеет графики работы фильтра. Имеется возможность создания групп пользователей с различными методами фильтрации, есть белые/черные списки — как пользователей, так и ip адресов. Возможности использовать внешние базы пользователей и групп я, к сожалению, в администраторской web консоли не нашёл (возможно, закопано где-то в консольных утилитах). С лицензированием тоже не совсем ясно, формально я нигде не нашёл количественной единицы, по которой оценивается лицензирование per-user. Во временной лицензии указанный порог обработки в 250 мегабайт на самом деле составляет от 250 до 499 мегабайт. Лицензирование продукта основывается на файле лицензии, получаемом при покупке. Система поддерживает добавление и установку нескольких лицензий. Ну и самое моё большое «фи» в сторону разработчиков KAS — это метод установки milter-фильтра в конфигурационный файл sendmail.cf
Ребята!!! Зачем же Вы правите РАБОЧИЙ СКОМПИЛИРОВАННЫЙ КОНФИГ, который при ПЕРВОМ же обновлении отменит все внесенные изменения ?
Скрипт добавления фильтра в конфиг при ближайшем рассмотрении таки-имеет hidden flag, позволяющий указать sendmail.mc для инъекции строк, вызывающих фильтр, но данный flag не вызывается из конфигурирующего скрипта MTA-config.pl
Все процессы KAS выполняются под пользователем mailflt3, которому отведен свой каталог для работы /usr/local/ap-mailfilter3. Скрипты запуска используют старый механизм запуска сервисов, который не контролируется из /etc/rc.conf.

Yandex Spamooborona тоже меня удивила. Конфигуратор написан на DIALOG, при установке я этого несколько не ожидал. Ветки конфигуратора очень «разлапистые» и очень просто там заблудиться. Большая часть настроек уже предустановлена, но лучше пройтись по всем пунктам в меню и выставить нужные Вам параметры. SO имеет возможность работы с plaintext файлами, LDAP и судя по кускам SQL кода в конфиге, умеет еще и MySQL. После того как я настроил работу SO, меня один человек спросил: «я просто слышал отзывы некоторых продавцов антиспамов, что якобы spamооборона жутко сложна в настройке и никто, кто не купил прямую поддержку у Яндекса, «завести» ее не смог. Или ты уникум редкий, или кто-то где-то врёт».
Реально настройка с plaintext файлами не так уж сложна, и, в принципе, полностью прозрачна. Но мне кажется, что основные проблемы настройки всё-таки связаны с LDAP и MySQL. Политика лицензирования тоже необычна. Для защиты от спама необходимо прописать либо вручную, либо автоматически все почтовые адреса, которые будет защищать система. Т.к. это реально неудобно в динамически растущей сети, то заставляет сильно задуматься. Лицензирование per-user основано именно на этом списке пользователей. Что произойдёт в том случае, если список пользователей привысит максимальный уровень, указанный в лицензии, я сказать не могу, но, как мне кажется, это не совсем правильно. В моей организации около 30 доменов, 600 юзеров и около 50 групп. При том, что каждый пользователь может иметь адреса из двух доменов (например, alias), мне придётся купить практически безлимитную лицензию для нормальной работы моей компании. Отдельная статья — ключ лицензирования. Ключ генерируется из двух файлов: spam.ini(основной конфиг фильтра) и domains(список защищаемых доменов). Эти два файла отсылаются на web сервер SO ”вручную” и, после заполнения необходимой информации в web форме, сервер генерит ключ. Ключ сохраняется в файлик so.key и кладётся в каталог где находятся остальные настройки SO. И не дай бог Вам исправить хотя бы один бит в файлах spam.ini и domains — всю процедуру регистрации придётся проходить заново, иначе фильтр работать не будет. Хорошим плюсом для начинающих администраторов будет русификация интерфейса настройки SO. 

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

«Лаборатория Касперского» написала чудесный документ:www.spamtest.ru/document.html?context=15948&pubid=16638, в котором Вы сможете найти все рекомендации к тестам. 

habrhаbr

Отзывы и комментарии

blog comments powered by Disqus

Добавить комментарий

Защитный код
Обновить

You are here: Антивирусные программы Антиспам системы, их тестирование