Целью данного тестирования было оценить эффективность работы разных антиспам систем. Для тестирования были выбраны следующие продукты:
• 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
Отзывы и комментарии
< Предыдущая | Следующая > |
---|