headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

Передовые антиспам технологии

Спамерский бизнес – очень прибыльное дело. На рассылке писем можно заработать столько, сколько простой смертный не потратит за всю жизнь. Поэтому спамеры постоянно изобретают новые методы доставки своих писем пользователям Сети. Бороться со столь неприятной вещью нужно комплексно. Противодействие должно быть многоуровневым: образовательным, организационным, законодательным и технологическим. Я подробно расскажу лишь о последнем.

Технологические инструменты борьбы со спамом

В настоящее время состояние индустрии производства программного обеспечения по борьбе со спамом можно определить как незрелое. Постоянно выходит новое ПО, призванное фильтровать нежелательную рекламу, приходящую на e-mail. В каждом продукте используются свои методы определения «нежелательных сообщений», но в целом их можно разделить на две большие группы: процедурные и распределенные методы борьбы со спамом.

Процедурные методы

Все процедурные методы борьбы со спамом основываются на проверке подлинности (аутентификации) отправителя. Существует ряд методов, определяющих, реален ли отправитель письма или это просто бот. Такая технология называется системой с запросом к отправителю (challenge response systems) и используется для повышения издержек при рассылке спама. Все запросы подразделяются на три общие категории: запросы для человеческого интеллекта, вычислительные запросы и денежные запросы. При этом адресат сможет получить письмо только после того, как отправитель ответит на запрос.

Запросы для человеческого интеллекта (human challenges) могут представлять собой картинку с плохо читаемой надписью (по типу тех, что предлагается ввести при регистрации на форумах). Отправитель должен ввести буквы, изображенные в виде графического образа. Подобную задачу может решить практически любой человек, а если запрос составлен достаточно хорошо, то компьютеру это будет не под силу.

В случае с вычислительными запросами (computational challenges) компьютерная система должна решить некоторую головоломку. Если провести аналогию, получатель предлагает отправителю пазл, кусочки которого находятся в случайном порядке. Отправитель должен составить эти кусочки и выслать ответ получателю. Причем сами головоломки должны легко и быстро составляться, и также легко проверятся, а вот решение должно быть достаточно долгим. При наличии стандартов на вычислительные запросы, весь процесс можно автоматизировать. То есть система на стороне адресата при получении письма формирует вычислительный запрос и отсылает его отправителю. На стороне отправителя, в свою очередь, производятся соответствующие вычисления, которые занимают достаточное время (несколько минут), после чего ответ уходит обратно адресату, на стороне которого осуществляется его проверка. Большой объем вычислений для проведения массовых рассылок будет слишком дорог.

Суть метода с микроплатежами состоит в следующем: при получении письма адресат просит прислать отправителя некоторую несущественную сумму денег, причем, если письмо является спамом, деньги остаются у получателя. Данный метод можно автоматизировать, заведя для каждого переписчика некий счет, на котором будет храниться определенная сумма. При получении подобного запроса со счета будет сниматься несколько центов.

У этого метода существует множество недостатков, и он наиболее сложен в реализации, как с технической, так и с экономико-юридической стороны. Но его можно использовать совместно с белыми списками, в результате чего пользователь, единожды выполнив запрос, попадает в белый список, и более не проверяется на «существование».

Еще один способ борьбы со спамом — это создание кратковременных (ephemeral) или отключаемых (disposable) адресов электронной почты. В этом случае пользователь дает каждому человеку, с которым он переписывается, свой отдельный адрес. Если же на какой-либо из этих адресов начнет поступать спам, то его можно просто уничтожить одним нажатием кнопки. В результате все письма, адресованные на него, будут возвращаться с отказом. Примерно по такому механизму действует большинство пользователей. Регистрируется e-mail на каком-либо из бесплатных серверов и указывается во всех сервисах Сети, которые требуют адрес почтового ящика.

Также существует идея снабдить каждое письмо электронной подписью. Кажется, что все просто и достаточно эффективно, но подобное решение потребует в корне пересмотреть подход к электронной почте и к протоколам, реализующим данный сервис. Потребуется создавать новые глобальные стандарты и пересаживать на них весь интернет.

Распределенные методы

Технически спам можно фильтровать двумя основными способами: по формальным признакам сообщения (по обратному адресу, способу отправки и оформлению) и по его содержанию (то есть по его смыслу, семантически). Оба способа имеют свои особенности реализации, а также свои достоинства и недостатки.

Формальные методы

Самыми распространенными методами формальной фильтрации являются черные и белые списки. Спамеры должны посылать свои письма откуда-то. Оказывается, что строку «Откуда» (From), как и большинство других элементов электронного письма, крайне легко фальсифицировать. Однако IP-адрес, с которого приходит сообщение, то есть его интернет-адрес, подделать почти невозможно. Черные списки включают перечни адресов отправителей спама; они составляются примерно таким же образом, как работают системы с поиском совпадений, — либо на основе жалоб пользователей, либо с помощью «ловушек».

Но у блэклистов есть много своих недостатков. Часто в черные списки попадают открытые прокси-серверы и открытые почтовые пересылки. Также возможны ситуации попадания в эти списки абсолютно невинных пользователей. Так, некоторые IP-адреса являются источниками как спама, так и нормальных писем — например, динамические IP-адреса, выделяемые провайдером абонентам коммутируемого доступа, однако черные списки этого не различают. Бывали случаи, что за спам наказывали целые подсети. Также существует проблема с обновлением блэклистов. Тем, кто уже попал в черные списки (а это могут быть невинные жертвы спамеров, использующих дыры в системе безопасности), порой непросто добиться удаления оттуда.

Белые списки или Safe Lists — одна из самых распространенных технологий, которая работает в сочетании с обучаемыми фильтрами, системами с поиском совпадений и системами с запросом к отправителю. В белые списки включают тех людей, которые зарекомендовали себя как добропорядочные отправители. Как правило, это индивидуальные пользователи, хотя в некоторых системах могут быть указаны целые домены. Если обучаемая система помечает сообщение как спам, но отправитель записан у пользователя в белом списке, то сообщение все же доходит до адресата. Таким образом, этот метод блокирования спама помогает уменьшить вред от ложных срабатываний.

Некоторые пользователи предпочитают крайний вариант использования белых списков – это так называемый «эксклюзивный режим». В этом случае пропускаются только письма, чьи отправители находятся в белом списке, а остальные складываются в папку «Спам». Адресат может сам просматривать время от времени папку с спамом и выбирать оттуда письма, которые таковым не являются. Этот метод подходит людям, получающим малое количество электронных сообщений или тем, чей круг общения по переписке достаточно хорошо определен. Для бизнес-пользователей этот способ не подходит, так как большинство писем приходит от новых клиентов.

В целом, белые списки не очень надежны. Подделать адрес отправителя очень просто, так как используемый протокол позволяет любому человеку выдать себя за другого. Поэтому мы часто можем получать спам от самих себя, так как многие пользователи вносят в белый список себя или своих друзей.

Еще одним из методов фильтрации спама являются формальные правила. Формальные правила проверяют способ посылки письма и его оформление. К типичным признакам спамерского письма относятся отсутствие адреса отправителя, отсутствие или наличие слишком большого числа получателей, отсутствие IP-адреса в системе DNS, сфальсифицированные или некорректные служебные заголовки и т.п. Часто также производится фильтрация по размеру и формату сообщения. Набор правил антиспамерской программы может содержать сотни и даже тысячи элементов.

Лингвистические методы

Для каждого спамерского письма может быть автоматически создана так называемая сигнатура, позволяющая распознать это письмо даже с небольшими модификациями. Сигнатуры — это своего рода слепки письма, белее короткие, чем само письмо, но идентифицирующие его достаточно точно. Используются самые разнообразные сигнатуры: список наиболее часто встречающихся слов письма, вектор служебных слов, контрольные суммы байт каждых пяти слов, свертки скользящих по тексту окон (шинглы) и так далее.

Одним из таких методов, основанных на сигнатурах, является Distributed Checksum Clearing House (DCC). Суть метода заключается в том, что для каждого входящего письма определяется контрольная сумма, после чего она отсылается на специальный DCC-сервер, где сверяется с базой данных. Если такая контрольная сумма уже неоднократно приходила на сервер, то письмо идентифицируется как спам. Но контрольные суммы разрабатывались для выявления ошибок при передаче данных. Отличие информации хотя бы на один бит приводит к формированию совершенно разных CRC. Таким образом, спамерам достаточно вставить пару случайных байт в письмо, и DCC-сервер ничего не заподозрит.

Специально для идентификации спама были разработаны так называемые «нечеткие контрольные суммы». Они составлены таким образом, что определенные части текстового сообщения не учитываются. Благодаря этому сервер DCC может присваивать сообщениям, содержащим одинаковые высказывания, идентичные регистрационные суммы. Используемые алгоритмы игнорируют интервалы (пробелы), удаляют имена пользователей из URL и пропускают случайные текстовые компоненты.

Некоторые серверы DCC работают и с приманками для спама. Эти системы предназначены для того, чтобы привлекать и собирать спам. Они могут быть сконфигурированы таким образом, чтобы обозначать как спам каждое поступающее к ним сообщение. Это надежный и эффективный метод, с помощью которого другие пользователи DCC могут гарантированно идентифицировать сообщение как спам.

Еще одним лингвистическим методом является Statistical Token Analysis. В случае STA речь идет о статическом методе анализа. Особенностью STA является то, что он учитывает как спам, так и хэм (не очень известное выражение из компьютерного жаргона для обозначения легитимных сообщений). Система идентифицирует спам и легитимные сообщения с помощью анализа слов и знаков соответствующего сообщения (значений частот и статистических сравнений). В базе сохраняются частотные характеристики для слов и знаков препинания, которые встречаются как в спаме, так и в хэме. С помощью этих сведений можно с высокой степенью точности определить легитимность письма.

Одной из разновидностей STA является метод на основе анализа Байеса. Этот анализ представляет собой методику комбинирования вероятности и основан на правиле, которое математик Томас Байес открыл в XVIII веке. Для каждого слова или знака препинания вычисляется вероятность попадания письма в спам или хэм. Затем, при получении нового сообщения его текст анализируется на основе этих вероятностей, то есть вычисляется коэффициент принадлежности письма к спаму по формуле Байеса.

Анализ Байеса, в противоположность обычным методам фильтрации по содержанию, имеет три решающих преимущества. Во-первых, анализ проводится для двух различных видов знаков: те, что свидетельствуют о спаме, и те, которые указывают на легитимные сообщения. Методически это намного точнее и надежнее, чем чистая фильтрационная техника. Во-вторых, правило Байеса работает совершенно независимо от используемого языка оригинала, и, в-третьих, пользователям не нужно постоянно контролировать и корректировать списки фильтрации.

Успешность метода зависит от наличия безошибочно проанализированных примеров идентифицированного спама или хэма. Затем на их основании могут быть созданы надежные базы данных с соответствующими таблицами частотности. Но содержание деловой переписки в значительной степени отличается от содержания личной. Из-за этого базы с частотами будут различны, более того, в зависимости от рода деятельности конкретного человека в письме могут фигурировать достаточно подозрительные слова. Для таких случаев созданы самообучающиеся STA-фильтры. Каждое пришедшее письмо оценивается фильтром, и если он случайно пропустил нежелательное рекламное сообщение, адресат сам должен его пометить как спам, и фильтр добавит его содержание в базу. Так же пользователь должен поступать и с хэмом, то есть помечать его как «не спам». Такой подход создает очень гибкую систему, позволяющую блокировать около 98% спама. Но к сожалению, он не пригоден в условиях массовой почтовой службы, в основном по причине большого разнообразия словарного состава клиентских ящиков.

Для борьбы со спамом существуют так называемые «Обучаемые системы» (Machine Learning Systems). Разработанные подразделением Microsoft Research, обучаемые системы предназначены для блокирования спама с помощью таких методов, как нейронные сети, байесовские фильтры или другие средства.

В обучаемые системы вводится значительное количество реальных данных, — как минимум, тысячи сообщений, но в идеале миллионы, — помеченных как «нормальные» или «спам». В итоге эти системы начинают различать типы сообщений: они запоминают, что такие слова, как «щелкните» или «бесплатно», являются признаками спама, а такие, как «завтра» или «погода», — свойствами нормального письма. Кроме того, они используют и другие характеристики сообщения. Например, письма со ссылками и изображениями с гораздо большей вероятностью являются спамом, чем те, где нет ни того, ни другого.

Провайдеры и почтовые серверы могут противодействовать спаму, исходящему от них самих. Для этого используются детекторы массовых рассылок. Этот метод может применяться там, где есть значительные объемы почты, то есть у провайдеров и на публичных почтах. Если какое-либо письмо направлено сразу сотням тысяч адресов, и при этом адрес отправителя не находится в списке основных серверов подписных рассылок (типа Subscribe.ru), вероятнее всего, что это спам.

Для выявления спама подобным образом необходимо выполнение двух условий: значительный объем почты и действенный способ определения «одинаковости» писем (с помощью различного рода сигнатур).

Однако данный метод не может дать твердое заключение, является ли конкретное письмо спамом или нет, а только констатирует факт массовости рассылки.

Выводы

Итак, после всего прочитанного здесь можно сделать вывод, что идеального способа противодействия спаму нет, а методы незаконной рекламной рассылки постоянно модифицируются :). Но будем надеяться, что комплексное применение антиспамовых технологий позволит максимально эффективно бороться с нежелательными рекламными сообщениями.

Автор:  DEEONI$

Источник : спецвыпуск журнала хакер #074

One Comment

  1. Хорошая статья.

    Скорее бы уже чтонить реальное сделали для борьбы против спама.

    1. EPS on January 27th, 2008 at 1:03 pm