Спам и защита от спама. Средства защиты от спама

Какие существуют методы борьбы со спамом?

Существуют два основных метода защиты почтового сервера от спама: защита от поступления спама на этапе получения почтовым сервером и «отделение спама» от остальной почты уже после получения почтовым сервером.

Среди первого метода наиболее популярны такие способы как использование DNS Black List (DNSBL), Greylisting и различные задержки при отправке почты; использование различных технических средств, таких как проверка существования пользователя на отправляющей стороне (callback), проверка «правильности» отправляющего сервера такими методами как наличие записи в реверсной зоне DNS, легальности имени при установке SMTP-сессии (helo), проверка SPF записи (для работы этого в DNS записи о хосте используется соответствующая запись о легальных серверах отправителей).

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

Итак, рассмотрим более подробно данные методы фильтрации электронной почты.

Черные списки или DNSBL (DNS Black Lists)

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

Серые списки или грейлистинг (Greylisting)

Принцип действия серых списков (Greylisting) основан на тактике рассылки спама. Как правило, спам рассылается в очень короткое время в большом количестве с какого-либо сервера. Работа серого списка заключается в намеренной задержке получения писем на некоторое время. При этом адрес и время пересылки заносится в базу данных серого списка. Если удалённый компьютер является настоящим почтовым сервером, то он должен сохранить письмо в очереди и повторять пересылку в течение пяти дней. Спам-боты, как правило, писем в очереди не сохраняют, поэтому спустя непродолжительное время, прекращают попытки переслать письмо. Экспериментальным путём установлено, что в среднем время рассылки спама составляет чуть больше часа. При повторной пересылке письма с этого же адреса, если с момента первой попытки прошло необходимое количество времени письмо принимается и адрес заносится в локальный белый список на достаточно длительный срок.

Анализ эффективности

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

Заключение

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

Подключить и настроить GreyListing вы можете через панель ISPmanager в разделе "Возможности"

Более подробно о настройке методов борьбы со спамом через панель управления Вы можете узнать здесь DNSBL и здесь Greylisting.

Современная спам-рассылка распространяется в сотнях тысяч экземпляров всего за несколько десятков минут. Чаще всего спам идет через зараженные вредоносными программами пользовательские компьютеры - зомби-сети. Что можно противопоставить этому натиску? Современная индустрия IT-безопасности предлагает множество решений, и в арсенале антиспамеров есть различные технологии. Однако ни одна из существующих технологий не является магической «серебряной пулей» против спама. Универсального решения просто не существует. Большинство современных продуктов используют несколько технологий, иначе эффективность продукта будет не высока.

Ниже перечислены наиболее известные и распространенные технологии.

Черные списки

Они же DNSBL (DNS-based Blackhole Lists). Это одна из наиболее старых антиспам-технологий. Блокируют почту, идущую с IP-серверов, перечисленных в списке.

  • Плюсы: Черный список на 100% отсекает почту из подозрительного источника.
  • Минусы: Дают высокий уровень ложных срабатываний, поэтому применять следует с осторожностью.

Контроль массовости (DCC, Razor, Pyzor)

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

  • Плюсы: Если технология сработала, то она гарантировано определила массовую рассылку.
  • Минусы: Во-первых, «большая» рассылка может оказаться не спамом, а вполне легитимной почтой (например, Ozon.ru, Subscribe.ru тысячами расылают практически одинаковые сообщения, но это не спам). Во-вторых, спамеры умеют «пробивать» такую защиту с помощью интеллектуальных технологий. Они используют ПО, генерирующее разный контент - текст, графику и т.п. - в каждом спамерском письме. В итоге контроль массовости не срабатывает.

Проверка интернет-заголовков сообщения

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

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

Контентная фильтрация

Также одна из старых, проверенных технологий. Спамерское сообщение проверяется на наличие специфических для спама слов, фрагментов текста, картинок и других характерных спамерских черт. Контентная фильтрация начиналась с анализа темы сообщения и тех его частей, которые содержали текст (plain text, HTML), но сейчас спам-фильтры проверяют все части, включая графические вложения.

В результате анализа может быть построена текстовая сигнатура или произведен подсчет «спамерского веса» сообщения.

  • Плюсы: Гибкость, возможность быстрой «тонкой» настройки. Системы, работающие на такой технологии, легко подстраиваются под новые виды спама и редко ошибаются с разграничением спама и нормальной почты.
  • Минусы: Обычно требуются обновления. Настройкой фильтра занимаются специально обученные люди, иногда - целые антиспам-лаборатории. Такая поддержка дорого стоит, что сказывается на стоимости спам-фильтра. Спамеры изобретают специальные трюки для обхода этой технологии: вносят в спам случайный «шум», затрудняющий поиск спамерских характеристик сообщения и их оценку. Например, используют в словах небуквенные символы (вот так, например, может выглядеть при использования этого приема слово viagra: vi_a_gra или vi@gr@), генерируют вариативный цветной фон в изображениях и т.п.

Контентная фильтрация: байес

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

  • Плюсы: Индивидуальная настройка.
  • Минусы: Лучше всего работает на индивидуальном потоке почты. Настроить «байес» на корпоративном сервере с разнородной почтой - сложная и неблагодарная задача. Главное, что конечный результат будет намного хуже, чем для индивидуальных ящиков. Если пользователь ленится и не обучает фильтр, то технология не будет эффективной. Спамеры специально работают над обходом байесовских фильтров, и это у них получается.

Грейлистинг

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

  • Плюсы: Да, это тоже решение.
  • Минусы: Задержка в доставке почты. Для многих пользователей такое решение неприемлемо.

Введение в проблему

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

Ранее испытанные способы защиты

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

]+href=)([""]?)mailto:(+)()@".
"()(+.{2,4})2([ >])~i", "1"mailto:[email protected]"
onMouseover="this.href="mai" + "lto:3" + "4" + "%40" + "5" + "6";"7", $text); ?>

К сожалению, она не сработает, если у вас большой сайт. Скажем, spectator.ru, автор которого одним из первых стал использовать этот метод. Будь я спамером, я бы залез в персональные настройки, поставил галочки "не показывать ушки", 1000 отзывов на странице, и отловил куки Proxomitron’ом. Потом качалкой или php-скриптом выкачал бы страницы с комментариями (подставив куки с настройками) и при помощи регулярного выражения выловил адреса. Получил бы небольшую базу для рекламной рассылки.

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

Знакомьтесь: ежовые рукавицы

Очевидно, сложно придумать другой способ защиты кроме уже испытанного - предоставления формы на сайте для отправки сообщения. Займёмся её проектированием. Достоинства способа очевидны: никто уже не сможет достать из вашего сайта адреса для своей спамерской базы данных. Отсылать сообщения, спрятав свой адрес, как это делают спамеры, не получится - веб-сервер зафиксирует его IP-адрес. Списки публичных анонимных прокси-серверов регулярно обновляются, и заблокировать доступ с них легко.

Формоотправитель

Начнём именно с него, потому что это самая сложная часть.

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

Во-первых, защитимся от глупых двойных нажатий и отправки множества одинаковых запросов. Идея такова: сообщение не будет отправлено, если перед этим пользователь не открыл страницу с формой, а, открыв страницу с формой, можно отправить сообщение только один раз. Сделать это можно при помощи встроенных в PHP сессий. При открытии страницы с формой мы запустим сессию, в которую сохраним переменную, скажем $flag. Идентификатор сессии выведем как спрятанный элемент в самом конце формы. Пользователь вводит сообщение и отправляет форму. Получая форму, скрипт запускает сессию и проверяет наличие и значение переменной $flag. Если переменная не существует, значит это повторное нажатие, письмо не отсылается и выдаётся сообщение об ошибке. Если переменная есть, и данные формы нас устроили (заполнены нужные поля), скрипт отсылает письмо и удаляет сессию.

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

* отправлять сообщения по одному и тому же адресу чаще определенного периода
* отправлять один и тот же текст по разным адресам
* и просто слишком часто пользоваться формоотправителем - скажем, не более 10 сообщений в сутки на одного пользователя

ID сессии выводим в самом конце формы, чтобы хакеру требовалось скачивать всю форму и разбирать её, что сложнее, чем просто отправлять HTTP-запросы. Естественно, формоотправитель будет выдавать сообщения об ошибках в написании сообщения, требование указать обратный адрес и т.п.

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

Замена адресов в тексте

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

…Минусы: большее время на расстановку ссылок (компенсирующееся каталогом ссылок), пользователь, наводя курсор на ссылку, не видит, по какому адресу он попадет. (Дмитрий Смирнов, "Идеальный авторский проект, гипертекстуальность")

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

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

Итак, что делает заменитель адресов. Он ищет в тексте ссылки "mailto:", выбирает из них адреса, отправляет запрос в базу, чтобы подсчитать (count(*)), сколько адресов из тех, что на странице, есть в специальной таблице. Если на странице новые адреса, то их число будет больше, чем результат запроса. В таком случае делается запрос, в котором выбираются значения адресов, и уже существующие в таблице исключаются из списка. Оставшийся список отправляется в таблицу INSERT-запросом.

Что касается ID адресов, то, на мой взгляд, лучше использовать что-то, что посетитель сайта не мог бы подобрать. Представляете, на формоотправитель ведёт ссылка /email.php?id=10 ? Какой соблазн подставить туда 11, 12 и т.д. и попробовать отправить им всем сообщение. Поэтому в качестве идентификаторов я решил использовать md5-хэш от адресов. Подбирать хэш вряд ли кто возьмётся. В случае с каталогом ссылок можно обойтись и ID, но тогда придётся выбирать из базы все значения, а для замены адресов на их хэши всё гораздо проще.

Выполняется команда вида

]+href=)". "([""]?)mailto:(+@+". ".{2,4})2(.*?>)~ie", ""12"/email.php?email=". urlencode(md5("3")). ""4"", $text); ?>

…которая заменяет адреса на их хэши. Остальные адреса, находящиеся в тексте, я не решился заменять на ссылки, а сделал простую замену на адреса типа vasya_at_pupkin_dot_ru. Код автозаменителя так же есть в архиве.

Итог

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

- €55-250 млн. ежегодно. 60% мирового почтового трафика.
50-75% от всего российского почтового трафика. Современные антиспамовые средства фильтруют 85-98% спама. Объем мирового рынка продаж антиспам-фильтров и сервисов в 2004 году составил примерно $500 миллионов (по оценке IDC).
Большинство поставщиков антивирусов включили антиспам-компоненты в свои продукты. В течение года было совершено несколько покупок производителей антиспамерского ПО антивирусными компаниями (в частности, покупка компании BrightMail компанией Symantec за $340 миллионов). В России антиспам-фильтры установили большинство держателей публичных почтовых сервисов и большинство провайдеров, что позволило снять остроту проблемы спама для их клиентов. Несомненным лидером в России по объему продаж и количеству защищаемых почтовых ящиков является технология Спамтест.
1. ПРОФИЛАКТИКА №1 средство борьбы против спама - защитить свой адрес. Не будут спаммеры знать ваш адрес - не будет спама. Засветите свой адрес в сети, придется его выбрасывать и заводить новый, это будет лишь делом времени. И, как результат, сообщать снова всем вашим друзьям и партнерам новый адрес, при этом возможна потеря ряда контактов. Чтобы этого не произошло Заведите два email адреса. Один адрес для долговременных контактов (его не светите в сети).
Другой адрес для завязывания контактов, использования в сети (чаты, доски объявлений и т.д.).
Тогда на первом адресе никакого спама быть не должно, ведь он не известен в сети.
Когда же пойдет спам на второй адрес, просто выбросьте его и заведите новый.
2. ВЫБОР ИМЕНИ Люди стремятся получить наиболее лаконичный адрес. Скажем, sergey @mail.ru - это круто и как жаль, что все простые адреса уже заняты. Будьте уверенны, что на [email protected] спам сыпется без остановки. Это круто иметь лаконичное имя сайта, а адрес почты всё равно придется сообщать каждому лично, пусть он будет из цифр или оригинальным, не избитое слово. Кстати, для этой цели ведущая почта gmail.com регистрирует имена не короче 6 символов. Все короткие имена давно уже занесены в спам списки.
3. СПЕЦСИМВОЛЫ HTML Самый простой и наиболее часто использующийся способ защиты от "пауков" - кодирование адреса электронной почты с помощью спецсимволов HTML. Вместо собачки - @ . Но сегодня этот способ безнадежно устарел.
Роботы без труда находят такие адреса.
4. JAVASCRIPT На страничке генератор кода против спама вы сможете сгенерировать свой скрипт. Так, как эти скрипты для скрытия адреса создаются кустарно, то они очень разношерстные и нет программ, которые бы умели выуживать email из JavaScript. Сегодня это самая надежная защита адреса в сети.
5. АНТИСПАММЕРЫ Но, что если вы засветились, или вы настолько известны, что вам невозможно не засветиться, тут без антиспаммера не обойтись. Есть много программ антиспаммеров, вы можете их скачать в сети.
Чего делать не советую.
Я пришел к выводу, что все эти антиспамы - маленькие и слабенькие, а толковый антиспам человеку не потянуть, это по силам только солидной компании, скажем такой, как Gmail.com . У них спам остается на сервере, всегда можно зайти и подкорректировать. Так что мой настоятельный совет: заведите себе почту на Гуглях.
Лучшего спамфильтра я не встречал, весь спам остается на сервере, который при желании всегда можно посмотреть и подкорректировать. Антиспаммеры не решают полностью проблему, а облегчают жизнь в проблеме.
6. КАРМАННЫЕ PC И WAP Спам достиг и этого уровня, но сегодня есть достаточно надежные средства защиты. Потому развитие этого вопроса не актуально.