Введение
Антиспам-техника, включающая намеренную задержку ответа на подключения.
Тарпит — это служба в компьютерной системе (обычно на сервере), которая специально замедляет установление входящих соединений. Эта техника была разработана в качестве защиты от компьютерных червей, и идея заключается в том, что сетевые злоупотребления, такие как рассылка спама или широкомасштабное сканирование, становятся менее эффективными и, следовательно, менее привлекательными, если занимают слишком много времени. Концепция аналогична битумной яме, в которой животные могут застрять и медленно погружаться под поверхность, подобно тому, как это происходит в болоте.
Идея первоначального торпида
Том Листон разработал оригинальную программу для создания ловушек LaBrea. Она способна защитить всю сеть, используя ловушку, работающую на одном компьютере. Компьютер перехватывает запросы протокола разрешения адресов (ARP), на которые нет ответа (что указывает на неиспользуемые адреса), затем отвечает на эти запросы, принимает начальный пакет SYN от сканера и отправляет в ответ пакет SYN/ACK. Он не устанавливает соединение и не подготавливает сокет, фактически, может забыть о соединении сразу после отправки SYN/ACK. Однако удаленная сторона отправляет свой ACK (который игнорируется) и считает трехстороннее рукопожатие завершенным. Затем она начинает отправлять данные, которые никогда не достигают адресата. Соединение в конечном итоге прервется по таймауту, но поскольку система считает, что имеет дело с активным (установленным) соединением, она осторожно относится к таймауту и вместо этого будет пытаться повторно отправить данные, делать откат, повторно отправлять и т.д. в течение длительного времени. В более поздних версиях LaBrea также была добавлена возможность отвечать на входящие данные, используя сырые IP-пакеты без сокетов или других ресурсов сервера ловушки, отправляя фиктивные пакеты с запросом к отправляющей стороне "снизить скорость". Это позволяет поддерживать соединение и тратить еще больше времени сканера.
СМТП-пластыри
Одним из возможных подходов, рассматривавшихся в свое время для борьбы с массовым спамом, было введение небольшой платы за каждое отправленное письмо. Введение таких искусственных затрат, оказывающих пренебрежимо малое влияние на легитимное использование при достаточно низкой плате, мгновенно сделало бы автоматизированную массовую рассылку спама невыгодной. Tarpitting можно рассматривать как аналогичный (но технически гораздо менее сложный) метод, где стоимость для спамера измеряется во времени и эффективности, а не в деньгах. Процедуры аутентификации увеличивают время отклика, когда пользователи вводят неверные пароли. Аутентификация SMTP не является исключением. Однако, SMTP-передачи от сервера к серверу, где и внедряется спам, не требуют аутентификации. Были обсуждены и реализованы различные методы для SMTP tarpits – систем, подключаемых к агенту передачи почты (MTA, то есть программному обеспечению почтового сервера) или расположенных перед ним в качестве прокси. Один из методов увеличивает время передачи всех писем на несколько секунд, задерживая первоначальное приветственное сообщение ("задержка приветствия"). Идея заключается в том, что небольшая задержка в доставке легитимной почты не будет иметь значения, но из-за большого объема она окажет влияние на спамеров. Недостатком этого является то, что списки рассылки и другие легитимные массовые рассылки должны быть явно добавлены в белый список, иначе они также пострадают. Некоторые почтовые системы, такие как sendmail 8.13+, реализуют более строгую форму задержки приветствия. Эта форма приостанавливает работу при первом установлении соединения и прослушивает трафик. Если она обнаруживает какой-либо трафик до отправки собственного приветствия (что является нарушением RFC 2821), соединение закрывается. Поскольку многие спамеры не разрабатывают свои SMTP-реализации в соответствии со спецификацией, это может уменьшить количество входящих спам-сообщений. Другой метод – задерживать только известных спамеров, например, с помощью черного списка (см. Спам, DNSBL). OpenBSD интегрировала этот метод в свою основную систему начиная с OpenBSD 3.3, используя специальный демон (spamd) и функциональность в брандмауэре (pf) для перенаправления известных спамеров в этот tarpit. MS Exchange может задерживать отправителей, отправляющих сообщения на недействительные адреса. Exchange может это делать, поскольку SMTP-коннектор подключен к системе аутентификации. Более тонкий подход – greylisting, который, простыми словами, отклоняет первую попытку подключения с любого ранее неизвестного IP-адреса. Предполагается, что большинство спамеров делают только одну попытку подключения (или несколько попыток за короткий период времени) для отправки каждого сообщения, в то время как легитимные системы доставки почты будут продолжать повторять попытки в течение более длительного периода. После повторных попыток им в конечном итоге будет разрешен доступ без каких-либо дополнительных препятствий. Наконец, более сложный метод пытается объединить tarpits и фильтрующее программное обеспечение, фильтруя электронную почту в режиме реального времени во время ее передачи и добавляя задержки в связь в зависимости от индикатора "вероятности спама" фильтра. Например, спам-фильтр делает "предположение" после каждой строки или после каждого x байт полученных данных о том, насколько вероятно, что это сообщение является спамом. Чем выше вероятность, тем больше MTA задержит передачу.
Трапиты уровня IP
Ядро Linux теперь может быть дополнено возможностью "замораживания" входящих соединений вместо обычной отбраковки пакетов. Это реализовано в iptables посредством добавления цели TARPIT. К целям TARPIT можно применять те же функции инспекции и сопоставления пакетов, что и к другим целям.
Смешанные паранжировки на уровне SMTP-IP
Сервер может определить, что данное почтовое сообщение является спамом, например, потому, что оно было адресовано спам-ловушке, или после отчетов доверенных пользователей. Сервер может решить, что IP-адрес, ответственный за отправку сообщения, заслуживает применения метода tarpitting. Перекрестная проверка с доступными DNSBL может помочь избежать включения невинных пересыльщиков в базу данных tarpit. Демон, использующий Linux libipq, может затем проверять удаленный адрес входящих SMTP-соединений по этой базе данных. SpamCannibal – это программное обеспечение, распространяемое по лицензии GPL и разработанное на основе этой идеи; Stockade – аналогичный проект, реализованный с использованием FreeBSD ipfirewall. Одним из преимуществ tarpitting на уровне IP является то, что обычные TCP-соединения, обрабатываемые MTA, являются stateful (состоятельными). То есть, хотя MTA не использует много ресурсов процессора в режиме ожидания, он все равно использует объем памяти, необходимый для хранения состояния каждого соединения. В отличие от этого, tarpitting в стиле LaBrea является stateless (безгосударственным), что дает преимущество в виде снижения нагрузки на сервер спамера. Однако следует отметить, что, используя ботнеты, спамеры могут переложить большую часть затрат на компьютерные ресурсы на других.
Критика
Известно, что соединение, попавшее в состояние "залипания" (tarpit), может генерировать значительный объем трафика в сторону получателя, поскольку отправитель считает соединение установленным и пытается отправить (а затем повторно отправить) реальные данные. На практике, учитывая текущий средний размер компьютерных ботнетов, более разумным решением будет полное отбрасывание подозрительного трафика, без использования "залипания". Таким образом, будут повторно передаваться только TCP SYN-сегменты, а не целые HTTP или HTTPS-запросы.
Коммерческие реализации дезинфицирующих технологий
Кроме MS Exchange, было две другие успешные коммерческие реализации идеи "тар-пит". Первая была разработана компанией TurnTide, стартапом из Филадельфии, которую Symantec приобрела в 2004 году за 28 миллионов долларов наличными. Маршрутизатор TurnTide Anti Spam Router содержит модифицированное ядро Linux, позволяющее ему применять различные приемы к TCP-трафику, например, изменять размер TCP-окна. Группируя различных отправителей электронной почты по классам трафика и ограничивая пропускную способность для каждого класса, удается снизить объем нежелательного трафика, особенно когда он исходит из отдельных источников, которые легко идентифицируются по высокому объему трафика. После приобретения TurnTide компанией Symantec, канадский стартап MailChannels выпустил программное обеспечение "Traffic Control", использующее несколько иной подход для достижения схожих результатов. Traffic Control – это SMTP-прокси, работающий в режиме, близком к реальному времени. В отличие от устройства TurnTide, которое применяет управление трафиком на сетевом уровне, Traffic Control применяет управление трафиком к отдельным отправителям на уровне приложений. Такой подход обеспечивает более эффективную обработку спам-трафика, исходящего от бот-сетей, поскольку позволяет замедлять трафик от отдельных спам-зомби, а не требовать агрегации трафика от зомби в классы.