DNSBL – DNS banlist, или blocklist– это списки, состоящие из DNS записей хостов, которые зарекомендовали себя как источники спам-рассылок. Схема работы DNSBL такова:
- Почтовый сервер, получающий подозрительное письмо, запрашивает DNSBL-базу на предмет наличия адреса источника сообщения в черном списке.
- Если IP в DNSBL присутствует, сообщение расценивается как спам и не принимается, а SMTP серверу отправителя шлется ответ с кодом 5хх (ошибка сервера).
- В ответ почтовый сервер, обслуживающий отправителя спам-сообщений, шлет ему уведомление о том, что почтовое отправление не доставлено.
Прежнее название DNSBL – RBL (Real-time Blackhole List), но теперь Blackhole заменили на blacklist или blocklist, т. к. старое название превратилось в торговую марку Тренд Микро.
Краткая история проверки IP в DNSBL
Впервые черные списки спам-хостов появились в 1997 г. Создатель Пол Викси называл их тогда RBL (черные списки в реальном времени – realtime BL). Затем Eric Ziegast расширил концепцию, сделав проверку IP в DNSBL частью Системы Предупреждения Злоупотребления почтой – Mail Abuse Prevention System (MAPS).
Термин «Блэкхол» – черная дыра – описывает узел, который блокирует входящий трафик вместо того, чтобы пересылать его, как положено. Смысл блэкхолов был в отклонении всего трафика (не только почтового) с узлов, которые тем или иным образом рассылали спам. Перед тем как занести хост в RBL, волонтеры и персонал MAPS пытались связаться с лицами, ответственными за подозрительный сервер, чтобы попытаться исправить ситуацию. Все эти переговоры длились порой очень долго, что позволяло спамерам активно использовать сервер какое-то время.
Вскоре RBL трансформировался и дал возможность проверять наличие IP в DNSBL, блокируя только почтовый трафик на уровне mail-сервера.
Летом 2001 г. из-за многочисленных атак на сервер MAPS закрыло публичную службу DNSBL, что привело к новому витку технологии – вместо хранения черных списков на одиночном узле, был внедрен метод распределяемого формирования антиспам-баз. Он получил название DRBL (Distributed Realtime Blocking List). Подозрительный IP в DNSBL такого типа не только блокируется на почтовом сервере, но и публикуется в т.н. DRBL-зоне DNS провайдера. Таким образом неблагонадежная почтовая корреспонденция не пропускается на сервере, который опознал сообщения как спам, и дает возможность другим почтовым узлам, работающим с этой DRBL-зоной, сразу же отвергать «плохую» почту, не принимая и не обрабатывая ее, что существенно экономит ресурсы сервера. Интернет провайдеры обычно публикуют скомпрометированные IP в DNSBL на короткое время, в то время как частные держатели DRBL-узлов порой более жестоки – они блокируют целые подсетки, в бан попадают пулы адресов по географическому расположению (китайские, японские хосты), а блок-списки обновляются очень редко. В силу этих причин проверка IP в DNSBL отдельных лиц – хозяев DRBL-node – не распространена.
Каждая распределенная DRBL-зона имеет свой «вес», позволяющий оценивать степень доверия к информации, полученной от нее. Этот вес и эффективность конкретного DNSBL оценивается по скорости обновления списков подозрительных источников.
Варианты DNSBL списков
- Открытые почтовые узлы (релеи). Список почтовых серверов, конфигурация которых (намеренная или по некомпетентности) позволяет использовать себя без авторизации. По сути это открытый сервер передачи сообщений, доступный кому угодно и, следовательно, прекрасно подходящий для рассылки спама. Находятся они при помощи сканирования и после проверки роботом их IP сразу же заносятся в DNSBL.
- Спам-сервера. Список узлов, с которых достоверно приходит спам. Составляются на основе жалоб клиентов, т.е. достаточно субъективно.
- Адреса DialUp. Списки IP, выделяемых провайдером для организации удаленного доступа своих клиентов (внешние IP). Эти узлы, как правило, не являются почтовыми серверами и поэтому диалап-списки неопасны для «законопослушной» почты.
- Открытые анонимные прокси (HTTP или Socks). Занесение этих IP в DNSBL обусловлено тем, что они позволяют выполнять любые действия без авторизации, причем нежелательное поведение не ограничивается рассылкой спама – с открытых прокси-серверов можно проводить любую атаку, требующую скрытия реального адреса злоумышленника.
Как происходит проверка IP в DNSBL
Чтобы проверить подозрительный IP на предмет наличия в антиспам-списках, нужно отыскать его запись в виде обратной нотации (PTR – октет задом наперед), добавляя в конец доменное имя запрашиваемого DNSBL-сервера:
$ host -tA 240.203.61.211.list.dsbl.org
240.203.61.211.list.dsbl.org has address 127.0.0.3
Если совпадение найдено (команда host или nslookup получила ответ), значит, данный адрес находится в списке конкретного DNSBL. Заметим, что полученный IP может быть любым, значение имеет лишь сам факт наличия запрашиваемого хоста в черном списке. Поэтому эти адреса (которые соответствуют запрашиваемым IP в DNSBL), можно использовать для кодирования типа «нехорошего» ресурса: например, возвращенный октет 127.0.0.1 обычно говорит, что запрашивался открытый релей, 127.0.0.2 вернет хост, сканирующий порты и т.д. С целью получения описания также можно использовать команду host с ключом –t any, в этом случае host, возможно, отдаст и комментарий:
$ host -t any 165.16.47.100.dul.ru
165.16.47.100.dul.ru descriptive text "070815:Spam in progress"
165.16.47.100.dul.ru has address 127.0.0.4
А вот примерно такой ответ получит host, если данного IP в DNSBL нет:
$ host -tA 191.249.206.71.bl.spam.net
Host 191.249.206.71.bl.spam.net not found: 3(NXDOMAIN)
Применение технологии DNSBL
После того, как почтовый сервер послал запрос к узлу DNSBL и получил положительный ответ, ситуация может развиваться по двум вариантам:
- Жесткий подход к фильтрации предполагаемого спама: безоговорочная блокировка почтового трафика, пришедшего с адресов, занесенных в списки DNSBL. В этом случае при положительном результате проверки IP в DNSBL (наличии хоста в черном списке) весь входящий трафик однозначно блокируется. При этом высок риск того, что узел попадет в бан по ошибке.
- Дифференцированный подход. При этой методике, которую, к примеру, использует серверный почтовый фильтр spamassassin, отсев производится по множеству разных критериев. Таким образом, одно лишь наличие IP в DNSBL не является однозначным «приговором» хосту, и почтовые сообщения, приходящие с такого узла, расцениваются как спам только при взвешенном анализе многих факторов. Гибкий подход позволяет существенно снизить процент ошибочных фильтраций, однако, не пропуская при этом откровенный спам.
В настоящее время предлагается еще одна классификация источников почтового трафика по степени подозрительности:
- Белый список. В него заносятся ресурсы, которым можно безоговорочно доверять (спам-ссобщения они однозначно не рассылают);
- Черный список. Абсолютно недоверительные узлы – при проверке нахождение IP в таком списке DNSBL говорит о необходимости фильтрации трафика.
- Серый список (greylist или greylisting). Хосты из этого списка напрямую не относятся к DNSBL, но могут вызывать подозрение. Корреспонденция с таких узлов может временно задерживаться, пока источник не будет проверен или не заработает публичную репутацию. К примеру, в серый список могут попадать новые и незнакомые почтовые сервера.
- Желтый список. Перечисляет ресурсы, которые производят спам и не-спам вперемешку. Это очень сложная категория, так как проверка подобных IP в DNSBL практически бессмысленна и бесполезна.
- NOBL список. Содержит ресурсы, которые, скорее всего, благонадежны и не заслуживают банлиста (NO black List), но, тем не менее, не настолько доверительны, что их можно без оглядки занести в белый список.
Хорошая статья, емкая.
Но при практическом использовании сервисов DNSBL обычно столь подробная классификация ненадежных отправителей ненужна. Неважно, кто он, DialUp Pool, Free-RELAY или Proxy. Достаточно однозначного ответа ДА или НЕТ. Сам использую сервис rbldns.ru, вполне удовлетворен качеством фильтрации и практически полном отсутствии ложных срабатываний, которые достаточно быстро устраняются.