Filters that Fight Back
Эссе Пола Грэма (август 2003) предлагает усилить байесовские спам-фильтры, заставляя их переходить по ссылкам в письмах. Ричард Джоуси из death2spam уже делает это в спорных случаях и сообщает об успехе. Грэм предлагает режим «наказания»: фильтр будет n раз обходить каждую ссылку в подозрительном спаме, нагружая серверы спамера — поднимая его расходы и обрушивая продажи. Чтобы избежать злоупотреблений, авто-обход следует сочетать с чёрными списками сайтов, проверенными людьми. Самые крупные спамеры защитят серверы, добавив рабочие ссылки отписки, так что авто-обходящие фильтры превратятся в авто-отписывающие. В итоге спам станет бедствием, поражающим лишь тех, кто не пользуется правильным ПО.
Август 2003
Возможно, нам удастся повысить точность байесовских спам-фильтров, заставив их переходить по ссылкам, чтобы увидеть, что находится на другом конце. Ричард Джоуси из death2spam теперь делает это в спорных случаях и сообщает, что это работает хорошо.
Почему делать это только в спорных случаях? И почему только один раз?
Как я упоминал в Will Filters Kill Spam?, переход по всем url в спаме имел бы забавный побочный эффект. Если бы популярные почтовые клиенты делали это ради фильтрации спама, серверы спамера получали бы серьёзную трёпку. Чем больше я об этом думаю, тем лучше эта идея кажется. Это не просто забавно; трудно представить более точно нацеленную контратаку на спамеров.
Поэтому я хотел бы предложить тем, кто работает над спам-фильтрами, дополнительную возможность: режим «наказания», который, если включён, обходил бы каждый url в подозреваемом спаме n раз, где n мог бы задаваться пользователем. [1]
Как отмечали многие, одна из проблем нынешней системы электронной почты в том, что она слишком пассивна. Она делает всё, что ей велят. Пока что все предложения по решению проблемы, похоже, подразумевают новые протоколы. Это — нет.
При широком использовании автоматически подгружающие спам-фильтры заставили бы почтовую систему отскакивать. Огромный объём спама, который до сих пор работал в пользу спамера, теперь работал бы против него — как ветка, хлестнувшая его по лицу. Автоматически подгружающие спам-фильтры подняли бы расходы спамера и обрушили его продажи: его потребление трафика взлетело бы до небес, а серверы остановились бы под нагрузкой, из-за чего стали бы недоступны для тех, кто откликнулся бы на спам.
Рассылаешь миллион писем в час — получаешь миллион обращений в час на свои серверы.
Нам нужно было бы гарантировать, что это делается только с подозреваемыми спамами. Как правило, любой url, разосланный миллионам людей, скорее всего является спам-url, поэтому отправка каждого http-запроса в каждом письме работала бы прекрасно почти всегда. Но есть несколько случаев, когда это не так: например, url внизу писем, отправленных бесплатными почтовыми сервисами вроде Yahoo Mail и Hotmail.
Чтобы защитить такие сайты и предотвратить злоупотребления, авто-подгрузку следует сочетать с чёрными списками сайтов, рекламируемых в спаме. Обходились бы только сайты из чёрного списка, а сайты попадали бы в чёрный список лишь после проверки людьми. Срок жизни спама — как минимум несколько часов, поэтому такой список должно быть легко обновить вовремя, чтобы помешать спаму, продвигающему новый сайт. [2]
Высокообъёмная авто-подгрузка была бы практична только для пользователей с высокоскоростными соединениями, но таких достаточно, чтобы создать спамерам серьёзные неприятности. Более того, это решение аккуратно зеркалит проблему. Проблема со спамом в том, что ради нескольких доверчивых людей спамер шлёт письма всем. Недоверчивые получатели — лишь сопутствующий ущерб. Но недоверчивое большинство не перестанет получать спам, пока не сможет остановить (или пригрозить остановить) отклик доверчивых на него. Автоматически подгружающие спам-фильтры дают им такую возможность.
Убило бы это спам? Не совсем. Крупнейшие спамеры, вероятно, смогли бы защитить свои серверы от авто-подгружающих фильтров. Однако самым простым и дешёвым способом сделать это было бы включить в письма работающие ссылки отписки. А для мелкой рыбёшки и для «легитимных» сайтов, нанявших спамеров для продвижения, это стало бы необходимостью. Так что если бы авто-подгружающие фильтры получили распространение, они превратились бы в авто-отписывающие фильтры.
В этом сценарии спам, подобно сбоям ОС, вирусам и всплывающим окнам, стал бы одной из тех напастей, что поражают лишь тех, кто не удосуживается использовать правильное ПО.
Примечания
[1] Авто-подгружающие фильтры должны будут следовать за редиректами, а в некоторых случаях (например, страница, которая просто говорит «нажмите здесь») следовать более чем по одному уровню ссылок. Убедитесь также, что http-запросы неотличимы от запросов популярных веб-браузеров, включая порядок и referrer.
Если ответ не приходит в течение x времени, по умолчанию присваивайте довольно высокую вероятность спама.
Вместо того чтобы делать n постоянным, возможно, было бы хорошей идеей сделать его функцией от числа спамов, в которых упоминался этот сайт. Это добавило бы ещё один уровень защиты от злоупотреблений и случайностей.
[2] В исходной версии этой статьи использовался термин «белый список» вместо «чёрный список». Хотя они должны были работать как чёрные списки, я предпочёл называть их белыми списками, потому что это могло сделать их менее уязвимыми для юридических атак. Однако это, похоже, лишь запутало читателей.
Вероятно, должно быть несколько чёрных списков. Единая точка отказа была бы уязвима как для атаки, так и для злоупотребления.
Благодарности Брайану Бёртону, Биллу Еразунису, Дэну Гиффину, Эрику Рэймонду и Ричарду Джоуси за прочтение черновиков.