ФИЛЬТРАЦИЯ КОНТЕНТА
Электронная почта превратилась в основную среду доставки вирусов и спама. Ее применение в бизнесе добавляет две новые проблемы: неделовую переписку и утечки информации. Конечно, избежать неделовой переписки на рабочем месте невозможно и в разумных пределах она не вредит компании, однако при определенных условиях может превратиться в серьезную проблему. Существуют еще неумышленные утечки, вызванные тривиальными ошибками в использовании адресных книг, прикреплении файлов и т. п. Кроме того, умышленная передача конфиденциальной информации через электронную почту тоже случается.
Все не так плохо
Несмотря на упомянутые выше проблемы, все не так плохо. Новые версии антивирусных баз данных лишь немного запаздывают относительно появления новых вирусов, а средства борьбы со спамом развиваются такими же темпами, как и хитрость спамеров. Налицо ситуация динамического равновесия.
Для борьбы с утечками и неделовой почтой имеются средства, позволяющие контролировать, что и куда посылают пользователи. Достигается это, как правило, блокировкой доставки писем с вложениями определенных форматов и ключевыми словами и фразами.
Таким образом, если не закрывать глаза на угрозы и заранее обзавестись подходящими средствами борьбы с ними, то можно считать, что большой беды с вашей почтой не случится.
Начнем со спама
Бумажный спам имеет много общего с электронным: это реклама, она маскируется под нужные вещи, ее разбор занимает время, и, наконец, из-за нее вместе с мусором можно выкинуть что-нибудь действительно важное.
Хотя электронный спам похож на бумажный, есть и существенные отличия, на которые указывает разработчик электронного магазина Yahoo! Store Пол Грэхэм в статье “Spam is Different (www.paulgraham.com/spamdiff.html):
- создание электронного спама обходится спамеру дешевле, поэтому его объемы гораздо больше;
- бумажный спам разбирается раз в день, электронный приходит в случайные моменты времени и постоянно прерывает работу;
- бумажная реклама держится в рамках приличий, в то время как электронный спам приносит информацию не только о вещах, вам ненужных, но и о таких, о существовании которых и знать не хочется.
Бороться со спамом можно с помощью соответствующих программных фильтров. Современные методы борьбы с ним основаны на нескольких принципах.
Во-первых, спам можно выявить по ряду признаков:
- наличие в письме определенных слов или их комбинаций;
- характерное написание тем письма (например, все заглавные буквы и много восклицательных знаков);
- специфическая адресная информация и др.
Во-вторых, спам как массовую рассылку можно определять по идентичному содержанию крупной серии писем, направленных в разные адреса, и по малым промежуткам времени между их посылкой (они, как правило, рассылаются роботами). Такой метод применим только там, где имеется доступ к большой выборке писем (например, у провайдера).
В-третьих, косвенно со спамом можно бороться с помощью так называемых “черных списков” почтовых серверов. В эти списки заносятся серверы, замеченные в массовых рассылках спама, и идея состоит в том, чтобы не принимать и не транслировать почту с этих серверов.
Все три технологии используются для построения фильтров, разделяющих почту на полезную и спам. Если отвлечься от деталей реализации и критериев отбора, то как узнать, хорош фильтр или плох? Очевидно, по ошибочным срабатываниям, т. е. по числу случаев, когда спам не определяется (так называемые ошибки первого рода) или когда полезное письмо квалифицируется как спам (ошибки второго рода). Если фильтр допускает много ошибок первого рода, то он малоэффективен, поскольку до пользователя доходит слишком много спама. Но в этом случае ситуация по крайней мере не ухудшается. Если много ошибок второго рода, то можно вообще не получить важную информацию. Поэтому ошибки второго рода гораздо опаснее.
С этой точки зрения фильтры, основанные на “черных списках”, оказываются неэффективными. По данным Giga Information Group, один из наиболее популярных “черных списков” - MAPS RBL (Mail Abuse Prevention System Realtime Blackhole List) дает 24% ошибок первого рода и 34% - второго.
Это не означает, что от “черных списков” надо отказываться вообще. Списки так называемых “открытых почтовых ретрансляторов” (open relay) использовать необходимо, и причина этого проста: такие списки осуществляют фильтрацию по совсем другому признаку - способности сервера ретранслировать электронную почту, приходящую с других серверов. Само по себе это напрямую не связано со спамом, однако такие серверы предоставляют спамерам технические возможности анонимной рассылки. Главное, что при составлении этих списков исключен элемент субъективизма - есть четкий критерий, по которому сервер может быть отнесен к данной категории, и поэтому тут не может идти речь об ошибках.
Фильтры, основанные на косвенных признаках (специфика написания заголовков, временные корреляции между сообщениями и т. п.), также страдают от ошибок. Спамеры реагируют на появление новых фильтров, и если раньше в темах писем можно было увидеть фразы типа “free sex pictures”, то позже они преобразовались в “f.r.e.e s.e.x p.i.c.t.u.r.e.s” и т. д. Фильтр, основанный на ключевых словах, также можно обойти с помощью синонимов, неправильных написаний и т. п.
Если вдуматься, то все проблемы с качеством фильтров имеют один источник - мы пытаемся определить спам по косвенным признакам. А раз эти признаки косвенные, то их можно спрятать, замаскировать. А есть ли у спама прямые признаки?
Пол Грэхэм в статье “A Plan for Spam” (www.paulgraham.com/spam.html) пишет: “Я думаю, что есть средство остановить спам, и это средство - контентные фильтры. Ахиллесова пята спамеров - их сообщение. Они могут обойти любые барьеры, которые вы ставите на их пути, по крайней мере они это делали до сих пор. Но они не могут не донести до получателя своего сообщения, в чем бы оно ни заключалось. Если бы у нас была система, распознающая эти сообщения, она была бы непреодолима для спамеров”.
Как понять содержание?
Существенная часть утверждения Грэхэма заключается в том, что ключом к распознаванию спама является смысл написанного. Самые обычные фильтры, основанные на ключевых словах, - это нулевое приближение к смыслу. Конечно, недостатки такого наивного подхода очевидны:
- как правило, проверяется одна форма слова, что для русского языка с его склонениями и спряжениями не подходит;
- небольшое количество ключевых слов в фильтре дает ошибки первого рода, большое количество - ошибки второго рода, баланс соблюсти очень трудно;
- спамеры коверкают слова: человек легко поймет, а фильтр - нет.
Чтобы фильтр был работоспособным, его нужно тщательно проектировать и постоянно совершенствовать. Отчасти эти проблемы можно решить, если изготавливать фильтры централизованно, так, как это делается с антивирусными базами. Для того чтобы такое решение было практически применимым, нужен определенный уровень унификации фильтрующего ПО.
Одной из попыток достичь такой унификации является создание стандарта специального языка sieve для фильтрации электронной почты. Это декларативный (sieve-программы описывают что, а не как делать) платформно-независимый язык. Простейшая программа на sieve дает наглядное представление о структуре языка:
if header [“From”] contains [“coyote”] {
forward “acm@frobnitzm.edu”;
} else if header “Subject” contains “$$$” {
forward “postmaster@frobnitzm.edu”;
} else {
forward “field@frobnitzm.edu”;
}
Стандартизованные возможности языка sieve ненамного шире представленных в этом фрагменте кода, однако в стандарте описан механизм расширений языка, позволяющий реализовать настоящие фильтры.
Читатели, знакомые с UNIX, могут сказать, что sieve не отличается по своим возможностям от программы procmail, однако сила sieve в его стандартизации, что позволяет уже сейчас предлагать услуги по созданию антиспамных фильтров и распространению их по подписке.
Однако такие “прямолинейные” фильтры, как мы уже видели, обладают существенными недостатками.
В последний год появилась еще одна технология антиспамных фильтров, которая сразу завоевала много адептов и была встроена в различные программные средства. Речь идет о “статистическом фильтре”, предложенном Полом Грэхэмом в статье “A Plan for Spam”.
В основе этой технологии лежат следующие идеи. Во-первых, критерии спама надо вырабатывать автоматически на основе анализа большого массива спама. Во-вторых, эти критерии должны быть “сбалансированными”, т. е. при их выработке следует учитывать и слова, используемые в нормальной, деловой почте.
Реализованы эти идеи следующим образом. Обрабатываются два массива писем - спам и обычная переписка. На основании результатов обработки строится таблица, позволяющая определить, с какой вероятностью письмо, содержащее данное слово, является спамом. Далее при фильтрации письмо разбирается на отдельные слова и из них выбирается некоторое фиксированное количество “наиболее интересных” слов. Под ними понимаются те, для которых вероятность письма, их содержащего, оказаться спамом наиболее далека от 0,5. После этого с помощью так называемой формулы Байеса вычисляется вероятность того, что обрабатываемое письмо является спамом. Полученное число используется как критерий фильтрации. Порог в 0,9 дает прекрасные результаты с точки зрения ошибок как первого, так и второго рода.
Подход Грэхэма к определению спама можно развивать по крайней мере в двух направлениях. Во-первых, можно совершенствовать метод вычисления условных вероятностей, рассматривая, например, не отдельные слова, а их пары и т. д. По-видимому, последовательное движение в этом направлении приведет к использованию чего-то вроде технологии text mining. Во-вторых, можно использовать эту технологию не только для обнаружения спама, но и для более общей задачи - автоматического отнесения письма к той или иной смысловой категории.
Что дальше?
Вернемся к электронной почте в бизнесе. Как сделать так, чтобы проблемы, привносимые электронной почтой, не перевесили выгоды от ее использования? Нужно упорядочить применение электронной почты, ввести политику ее использования. Тривиальность решения только кажущаяся. Во-первых, необходимо создать эту политику в виде набора правил для пользователей. Во-вторых, нужно обеспечить выполнение этих правил. В-третьих, добиться того, чтобы и правила, и средства контроля за их исполнением соответствовали реальной ситуации.
Для реализации политики использования электронной почты на рынке имеется довольно много систем. Можно задействовать набор специализированных инструментов (антивирус, фильтр спама, контентный фильтр и т. д.). Однако применение интегрированного инструмента более оправданно, поскольку задача реализации политики по своей сути комплексна. В качестве примера, когда неинтегрированное решение не работает, назовем правила обращения с зараженными письмами. Вообще говоря, зараженные письма, которые не удалось “вылечить”, доставлять адресатам не следует, однако если письмо содержит важную информацию, адресату надо все-таки с ним ознакомиться. В рамках одной антивирусной программы невозможно понять важность письма.
Этот пример иллюстрирует еще одно важное свойство систем контроля электронной почты: они должны предпринимать различные действия на основе нескольких факторов, а не на основе жесткой категоризации писем и привязывания к этим категориям сценариев обработки.
Еще один существенный момент - поддержание политики в актуальном состоянии. Эта задача не может быть решена автоматически, требуется система реализации политики, которая должна предоставлять возможность анализировать, что происходило с электронной почтой, скажем, за последний месяц.
Управление электронной почтой - это постоянный процесс, его можно и нужно автоматизировать. Автоматизированная система реализации правил пользования электронной почтой позволит с уверенностью говорить о том, от каких угроз, насколько и как именно вы защитились, даст понимание того, какие риски остались. А это, наверное, самое большее, на что можно надеяться в опасном и изменчивом мире электронных коммуникаций.
С автором можно связаться по адресу: tay@jet.msk.su.