СЕРГЕЙ СУПРУНОВ
«Бритва» для спама
Обзор анализатора Razor
За последние десятилетия человечество научилось довольно успешно бороться с компьютерными вирусами. А почему бы не использовать подобные методы и для борьбы со спамом? Один из таких подходов реализован в пакете Vipul’s Razor.
Система Razor является сигнатурным анализатором, принцип действия которого заключается в следующем. Чтобы определить, является ли сообщение спамом, система рассчитывает его сигнатуру (чтобы не реагировать на незначительные модификации, применяются различные алгоритмы получения нечетких сигнатур) и сверяет ее с базой спама, собираемого по всему миру. Если соответствие находится, то анализируемое письмо считается спамом и обрабатывается согласно дальнейшим настройкам. Если же совпадение не обнаружено, сообщение доставляется получателю как обычно. То есть подобные анализаторы действуют аналогично антивирусным пакетам, позволяя отлавливать известные экземпляры спама.
Установка системы…
…никаких сложностей вызвать не должна. На системах FreeBSD наиболее удобный путь инсталляции дополнительных приложений – использование коллекции портов.
После несложной и непродолжительной инсталляции в каталоге /usr/local/bin появятся пять программ, о назначении которых мы поговорим в дальнейшем:
# ls -la razor*
-r-xr-xr-x 1 root wheel 933 30 авг 11:25 razor-admin
-r-xr-xr-x 1 root wheel 935 30 авг 11:25 razor-check
-r-xr-xr-x 1 root wheel 636 30 авг 11:25 razor-client
-r-xr-xr-x 1 root wheel 939 30 авг 11:25 razor-report
-r-xr-xr-x 1 root wheel 939 30 авг 11:25 razor-revoke
|
Более универсальный путь инсталляции, пригодный практически для всех UNIX- и Linux-систем, – установка из исходных кодов. Здесь тоже все банально. Скачиваем последний архив razor-agents с исходниками с сайта проекта (http://razor.sourceforge.net), распаковываем и затем:
# perl Makefile.PL PREFIX=/usr/local
# make
# make test
# make install
Естественно, в качестве префикса вы можете указать любой путь, который лучше соответствует организации вашей системы. Для успешной работы в системе должны быть установлены следующие модули Perl: Time::HiRes, Digest::SHA1, MIME::Base64, Test::Simple, Test::Harness, Getopt::Long, File::Copy и URI::Escape. Чтобы не возиться с их установкой по отдельности, можно скачать и поставить пакет razor-agents-sdk.
Кроме того, в сети можно найти RPM- и прочие пакеты, подготовленные для удобной установки на тот или иной дистрибутив Linux. Правда, на сайте проекта ссылки на такие пакеты отсутствуют.
На этом установку можно считать завершенной, перейдем к первоначальной настройке.
Чтобы все заработало…
…потребуется выполнить несколько несложных действий. Хотя нужно заметить, что и в конфигурации по умолчанию Razor способен работать не хуже. Тем не менее, всегда лучше иметь определенный уровень контроля над работой установленных программ, поэтому приступим к первоначальной настройке.
Прежде всего потребуется создать для Razor рабочий каталог, где он будет хранить свои лог-файлы, кэш и т. п. Если этого не сделать, то при первом запуске Razor домашний каталог будет создан в домашней директории запустившего его пользователя под именем .razor.
Создать же домашний каталог в удобном вам месте позволит команда:
# razor-admin -home=/usr/home/serg/.razor -create
# ls -l .razor
-rw-r--r-- 1 root serg 484 7 сен 10:50 server.joy.cloudmark.com.conf
-rw-r--r-- 1 root serg 20 7 сен 10:50 servers.catalogue.lst
-rw-r--r-- 1 root serg 22 7 сен 10:50 servers.discovery.lst
-rw-r--r-- 1 root serg 38 7 сен 10:50 servers.nomination.lst
|
Как видите, этой командой в указанном каталоге мы создаем необходимые для работы файлы.
Если вы планируете стать активным участником системы Razor и отсылать в центральную базу сообщения, которые вы сочли спамом, но которые не были определены системой, вам необходимо дополнительно зарегистрироваться на сервере, для чего используется команда:
# razor-admin -home=/usr/home/serg/.razor –register
Register successful. Identity stored in /usr/home/serg/.razor/identity-duej3i5wNF |
В итоге вы получите личный идентификатор, и для вас система будет вести статистику по «рапортам» (как их отсылать, рассмотрим немного позже). Если вы часто будете пересылать как спам сообщения, другими участниками в качестве такового не рассматриваемые, то ваш рейтинг доверия упадет. Это позволяет снизить возможность проведения атак, нацеленных на компрометацию системы путем повышения числа ложных срабатываний.
Дополнительно тонкую подстройку поведения системы можно выполнить, указывая необходимые опции в конфигурационном файле /usr/local/etc/razor-agent.conf. В процессе инсталляции он не создается, но вы можете сформировать его принудительно следующей командой:
# razor-admin -create -conf=/usr/home/serg/.razor/razor-agent.conf
При этом указанный файл будет заполнен значениями по умолчанию, которые вы в дальнейшем сможете подкорректировать в соответствии со своими предпочтениями и конкретными условиями.
Подробнее с параметрами конфигурации вы сможете ознакомиться на странице man razor-agent.conf(1) (хотя правильнее было бы поместить эту справку в пятый раздел).
Выполнить проверку почты на спам…
…позволяет команда razor-check. Например, так можно просканировать содержимое вашего почтового ящика:
# razor-check -home=/usr/home/serg/.razor ./serg
Данная команда выводит на экран номера сообщений, которые, по ее мнению, являются спамом. На момент тестирования в ящике serg лежало 10 бережно сохраненных спамовых писем, но Razor распознал лишь четыре – два англоязычных, и два – отечественного производства. На остальные фильтр никак не отреагировал.
В принципе столь низкая точность распознавания объясняется не очень высокой популярностью данного сервиса на просторах российского Интернета, и потому «родной» спам весьма слабо представлен в базах Razor.
Однако сразу оговорюсь, что полученный мною результат отнюдь не претендует на статус официального тестирования. Тем более что на столь небольшом количестве образцов получить достоверные результаты практически невозможно. Это следует рассматривать просто как первое впечатление – что получилось, о том и написал.
Чтобы спам отсеивался автоматически…
…придется прибегнуть к вспомогательным средствам. Наиболее эффективным выглядит взаимодействие с procmail. На страницах справочного руководства приводится три примера подключения Razor:
Чтобы изменить тэг «Subject» в заголовке писем:
:0 Wc
| razor-check
:0 Waf
| formail -i "Subject: Razor Warning: SPAM/UBE/UCE"
Добавляет тэг «X-Razor2-Warning» в заголовок сообщений:
:0 Wc
| razor-check
:0 Waf
| formail -A "X-Razor2-Warning: SPAM."
Помещает спам в отдельный почтовый ящик:
:0 Wc
| razor-check
:0 Waf
/home/foo/Mail/razor-caught
Подробности смотрите в справке по procmail.
Если Razor ошибся…
…вы можете указать ему на его ошибку, переслав пропущенный спам командой razor-report либо «отозвав» из базы нормальное сообщение, ошибочно признанное спамом, с помощью команды razor-revoke. В обоих случаях вы должны быть зарегистрированы в системе (см. выше). Подробности смотрите на man-страницах этих команд.
И в итоге получилось…
…что Razor можно лишь с некоторой с натяжкой считать полезным инструментом для определения спама. В составе других средств, например, Spamassassin, эта система еще позволит увеличить качество детектирования нежелательной почты. Однако его самостоятельное использование, тем более в Рунете, вряд ли можно рассматривать как эффективное решение. Особенно в условиях современного «быстрого» спама, когда рассылка завершается в течение одного-двух часов, чего, как правило, недостаточно для накопления достоверного количества «рапортов». Если к этому добавить еще и все более изощренные способы «индивидуализации» каждого рассылаемого сообщения, с которыми даже нечеткие сигнатуры справляются далеко не всегда, то можно с грустью констатировать, что сигнатурные анализаторы доживают свой век, и вряд ли на них следует делать ставку при построении оборонительных сооружений на своем сервере.
Удачи.
Краткая справка
Система Razor увидела свет в мае 2000 года. Летом 2002 года был выпущен первый релиз второй ветки (Razor v2). В настоящее время актуальной является версия 2.77, вышедшая 19 июля 2005 года. Распространяется под лицензией ARTISTIC. Помимо версии для POSIX-систем, компанией Cloudmark разрабатывается Razor для программ Outlook и Outlook Express под именем SpamNet.