Концепция "динамический email" представлена в одноимённой статье. Решил поделиться своим опытом использования этого метода защиты от спама.


Как появилась идея "динамический email"


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


Были размышления, наблюдения, эксперименты. Построились они на том, что был приобретён домен, созданы почтовый ящик и несколько десятков почтовых адресов-форвардеров, привязанных к нему. Для каждой новой регистрации в сети всегда использовался свой персональный форвардер, а адрес почтового ящика держался в тайне от всех. Чтобы не запутаться, каждый форвардер получал имя ресурса, где нужно было зарегистрироваться, например, чей-то_сайт@мойсайт.ru. Знание, по чьей вине пошел спам – отличный бонус от такого подхода. Для полноты эксперимента пара адресов- форвардеров периодически "засвечивалась" в Интернет.
Трудно передать, сколько спама мне довелось получать на этом этапе!


Резюмирую результаты:


  • не называя имен скажу, что некоторые даже самые уважаемые ресурсы и сервисы "делятся" данными своих клиентов, возможно это результаты взломов или инсайдерской деятельности, не знаю, один и таких ресурсов, например, 3 раза за 5 лет передал мои данные спамерам;
  • публикация email на сайтах — самый надежный способ привлечь спам;
  • регистрация на сайтах — отличный способ привлечь спам;
  • подписавшись на рассылку можно не получить шанса от нее отписаться, возможен показ рекламы, подгрузка вирусов, но только не отказ от рассылки;
  • поток спама нарастает постепенно, большого потока (20-50 сообщений в день) следует ожидать через 10-30 суток после первого спам-сообщения;
  • спам никогда не прекратится, если адрес "надежно" скомпрометирован, например, представлен в сети в открытом доступе (множество компаний используют такой способ обратной связи на своих сайтах);
  • если удалить форвардер, попытки отправить спам на этот адрес прекращаются через 2-7 суток, спам вернется только после очередной компрометации адреса.

Схема работы с регистрациями в Интернет получилась простейшей: пошёл спам — удалил форвардер, понадобилось восстановить пароль на сайте — восстановил форвардер. Главной задачей оставалось сохранение в тайне адреса почтового ящика. На первый взгляд, это — невыполнимая задача, ведь нужно вести переписку с другими контрагентами. Для начала принял решение создать 4 дополнительных почтовых ящика с похожими именами. Контрагентов разделил на 4 группы и каждую из них привязал к своему ящику. Также были заказаны новые визитные карточки с адресом для элитной группы напечатанного так, чтобы у меня была возможность дописать авторучкой адрес другой группы. Для элитной группы на визитке не нужно ничего дописывать, просто, отдал её, и всё. Пример имен групп от элитной до временной: yuri, yuri1, yuri2, yuri3.


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


Другие проблемы также оставались:


  • с удалением почтового ящика, терялся контакт с группой контрагентов на время его удаления (2-7 суток);
  • хотелось бы работать с одним почтовым ящиком вместо пяти;
  • хотелось бы избавиться от разделения контрагентов на группы.

Стандартными методами проблемы не решались, пришлось из подручных средств сваять нечто, что и назвал "динамическим email".


Как работает система


На специальном почтовом ресурсе создаю почтовый ящик, например, myname@site.ru. Это — мой основной электронный адрес. По мере использования ящика почтовый сервер формирует мой персональный белый список в следующем виде: [адрес контрагента — мой адрес], по принципу: "получил сообщение — запомнил, отправил сообщение — запомнил".
Через какое-то время белый список принимает вид:
[name1@site1.ru — myname]
[info1@bank1.ru — myname]
[name2@site2.ru — myname]
[name3@site3.ru — myname]


Когда на основной адрес начинается первая атака, на почтовом ресурсе создаю динамический адрес, например, 1.myname@site.ru. По сути, создаётся обычный форвардер непосредственно из моего почтового клиента. Все сообщения, полученные на этот адрес, направляю в основной ящик myname@site.ru, т.е. теперь у меня есть два адреса, прикреплённых к одному ящику. Далее основной адрес закрываю на приём. С этого момента все сообщения, отправленные на него, от отправителей не из белого списка будут отвергаться почтовым сервером, и такие отправители будут получать сообщения о попытке отправки на несуществующий адрес.
Результат — атака на основной адрес остановлена, мои старые друзья остаются на связи, а для новых друзей создан дополнительный email.


По мере ведения переписки почтовый сервер манипулирует моими, как отправителя, адресами:


  • пишу тому, кого нет в белом списке — ставится основной адрес и в список добавляется новая строка, например, [name4@site4.ru — myname];
  • пишу тому, кто есть в белом списке — используется адрес из списка;
  • отвечаю на сообщение — используется адрес из сообщения.

При получении сообщения на динамический адрес, почтовым сервером в белый список также добавляется новая строка, например, [name5@site5.ru — 1.myname]. С этого момента эта пара адресов будет использоваться для переписки с name5. Кстати, не только она, например, name5 просит напомнить мой email по телефону или SMS. Смело сообщаю свой основной адрес, если он открыт на приём, если закрыт — текущий динамический адрес. Полученное от name5 сообщение приведёт к появлению в белом списке новой строки [name5@site5.ru — 2.myname], и name5 сможет отправлять мне сообщения на любой из 2-х адресов.


Когда начинается атака на мой текущий динамический адрес, я его изменяю, например, с 2.myname@site.ru на abc.myname@site.ru, и останавливаю атаку! С этого момента все сообщения, отправленные на старый адрес 2.myname@site.ru, от отправителей не из белого списка будут отвергаться моим почтовым сервером, и такие отправители будут получать сообщение о попытке отправки на несуществующий адрес.


Получается, спамер может отправить мне сообщение только тогда, когда он знает:


  • текущий динамический адрес, который легко изменить,
  • основной адрес, который легко закрыть на приём,
  • сочетание отправитель-получатель из белого списка.

Допустим, вирус сумел выкрасть такое сочетание с компьютера кого-то из моих контрагентов. В случае такой атаки мне достаточно нажать на кнопку "это спам" в почтовом клиенте, и соответствующая запись исчезнет из белого списка, и атака будет остановлена. Аналогичным образом, я могу отписаться, точнее закрыться, от любой рассылки надежно и безопасно. Мне прекрасно видно, кто виновник спама, им может оказаться мой проверенный друг; т.к. никто не застрахован от вирусов. Его запись я также удаляю из белого списка и сообщаю ему об этом. После лечения его компьютера мы будем работать, используя новую запись в белом списке.


Динамический email не следует путать с временной электронной почтой. Таких сервисов в сети много и называются они по-разному, например, email на 10 минут, анонимная почта и пр. Название пошло от терминов temporary email и disposable email. Они используются чаще всего для регистрации в сети, чтобы сохранить адрес электронной почты в тайне от спамеров.
Пример: пользователь заинтересовался сайтом, который обещает что-то, но требует регистрации. Легко понять опасения пользователя обмануться в своих ожиданиях, и он использует для регистрации сервис временной электронной почты. Не все ресурсы допускают подобные регистрации, но предположим, что всё прошло удачно, и пользователь получил возможность зайти на желанный сайт.
Далее — два варианта развития событий:


  • сайт не понравился, низкий поклон временному email,
  • сайт понравился, но для полноценной работы с ним, скорее всего, понадобится регистрация через полноценный email.

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


Регистрация с использованием динамического адреса даёт мне уникальные преимущества:


  • сообщение "добро пожаловать" лежит папке "входящие",
  • восстановление пароля — обычная процедура,
  • отписка от рассылки — быстрая и безопасная (не кликаю по ссылкам),
  • знаю виновника спама (проверяю сочетание отправитель-получатель),
  • в один клик избавляюсь от спама.

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


Персонифицированный фишинг?


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


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


Для жертвы атаки это может выглядеть примерно так:


image


Если подобная атака пройдёт в будний день в рабочие часы, когда времени ни на что не хватает, эффект может быть очень сильным. Логично предположить, что после "отписки" атака прекращается; пользователь получает спокойствие, киберпреступник — что-то своё. Спокойствие и бездействие пользователя помогут усилить атаку, может получиться так, что фиктивные инвойсы и письма от сомнительных подружек покажутся детской шалостью.


Идём дальше. Мне оставалось ответить на очень важный вопрос:
Как передавать свой email потенциальному партнёру?


Развитие системы продолжилось, и получился классический вариант с небольшими нюансами:


  • телефон, SMS, лист бумаги, надпись на асфальте и т.д. — нужно вспомнить, открыт ли основной email, если закрыт — вспомнить текущий динамический адрес;
  • визитка, рекламный буклет — здесь печатаю свой основной email, но на всякий случай оставляю место для динамического префикса;
  • средства массовой информации (СМИ) — публикую текущий динамический адрес, новая публикация — новый адрес, что особенно важно, если есть нечестные конкуренты;
  • регистрация на сайтах – только текущий динамический адрес;
  • временная публикация в Интернет — текущий динамический адрес отдаю в открытый доступ (форум, например), через 1-2 недели его придётся изменить, заспамят однозначно;
  • постоянная и временная публикация в Интернет и в СМИ — самый приятный для меня способ, на этом остановлюсь подробнее.

Систему дополнил формой обратной связи:


image


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


Примечание: в статье пару раз повторяется фраза: "а отправитель будет получать сообщение о попытке отправки на несуществующий адрес".
Фразу лучше воспринимать так:


  • автоответ почтового сервера действительно сопровождается стандартным номером ошибки № 550 почтового протокола, что означает "нет такого получателя", но эта информация предназначена для спам-ботов;
  • реальный отправитель в автоответе сервера вместо фразы "нет такого получателя" видит ссылку на мою форму обратной связи и причину отказа в приёме сообщения.

На самом деле, эта функция пока не реализована (как и черный список, кстати), "руки не дошли", да и тема хитрая, легко самому оказаться в списке спамеров. Главное — выполнил поставленную самому себе задачу; избавился и от спама и от фильтров.


Заключение


Иногда задаю себе вопрос: может попробовать вернуться к разделению контрагентов на группы? Пусть будет, например, не один текущий динамический адрес, а два: регистрации и переписка. В этом определённо что-то есть, например, можно отказаться от доработки автоответов сервера; ведь главная угроза идёт от регистраций и публикаций email. Пока себя останавливаю; всё и так отлично работает.


Благодарю за внимание.

Комментарии (17)


  1. Revertis
    26.01.2018 14:36

    Очень сложная система. Нить рассуждения теряется примерно после прочтения одной трети статьи :(


    1. IouriVassiliev Автор
      26.01.2018 20:05

      Система получилась проще, чем любой спам-фильтр, особенно в использовании, практика показала. Что касается потери интереса по мере чтения, очень старался «разложить все по полочкам» и быть последовательным. Я же не роман с захватывающим сюжетом писал, а техническую статью, надеюсь, для кого-то — полезную.


      1. Revertis
        26.01.2018 20:14

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


        1. IouriVassiliev Автор
          26.01.2018 21:28

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


  1. Azan
    26.01.2018 14:47

    Пользуюсь данной техникой уже более 4 лет, и вот думаю вот бы с телефонным номером также было бы!


  1. IonianWind
    26.01.2018 16:55

    В чём преимущество перед простым использованием адресов вида username+1@server.com, username+2@server.com, username+3@server.com и настройкой правил фильтрации на стороне email-сервисов? Не нужно плодить кучу дополнительных ящиков


    1. IouriVassiliev Автор
      26.01.2018 20:21

      «Куча дополнительных ящиков» (5 шт.) была на этапе моих экспериментов. В описываемой финальной версии системы только один ящик. Уверен, отсутствие фильтров, набора правил и корзины — огромное явное преимущество! Из-за неправильной настройки фильтров как раз и теряются важные сообщения. Я даже не говорю про время, затраченное на их настройку, последующий поиск ошибок в этих настройках и проверку корзины. У меня очень богатая фантазия, но я никак не могу себе представить свод правил, который бы смог эффективно защитить от того же персонифицированного фишинга. Пример представлен в статье. Судите сами: разные отправители, обращение к получателю по имени, уникальный текст сообщения. Для меня ответ очевиден: только динамический email.


  1. Loki3000
    26.01.2018 17:52

    А как в рамках текущей системы восстановить пароль от какого-нибудь ресурса? Ресурс же не знает какой адрес у вас актуальный, а в белом списке его может не оказаться.


    1. IouriVassiliev Автор
      26.01.2018 20:38

      Маловероятно, но если регистрация производилась с использованием основного адреса, что не рекомендовано в статье, надо убедиться, что этот адрес открыт на прием и запросить смену пароля. Если использовался динамический адрес — нужно удостовериться, что текущий динамический адрес совпадает с адресом, использованным при регистрации. Не совпадает — его нужно заменить на использованный ранее и запросить смену пароля.


  1. sbh
    27.01.2018 09:04

    Собственно mail.ru давно имеет функцию создания виртуального ящика для регистраций на разного рода сомнительных сайтах. Своего рода алиас на ваш основной ящик.


    1. IouriVassiliev Автор
      27.01.2018 14:36

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


  1. mxms
    27.01.2018 18:38

    Автор вновь пытается изобрести велосипед, вместо того, чтобы воспользоваться нормально настроенной многоуровневой системой защиты от спама.
    К примеру, имея таковую у себя я многие годы открыто публикую свой основной e-mail и не имею (крайне редко) спама. В тех единичных случаях, когда что-то таки прорывается, проблема решается ручной маркировкой письма как спама. Больше я подобных писем не вижу. Разве что заглядывая (но не факт) в папку "спам". Всё автоматически, никаких ручных действий.
    Хочу сказать, что на развёрнутых мною почтовых системах антиспам-защита работает заметно лучше аналогичных на mail.ru или gmail, не пропуская реальный спам и массово не маркируя легитимные рассылки.


  1. IouriVassiliev Автор
    27.01.2018 20:53

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


    1. mxms
      28.01.2018 12:18

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


      Было бы интересно взглянуть, как она будет противостоять потоку персональных сообщений с уникальным текстом от разных отправителей.

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


      Про стоимость и надежность говорить не приходится.

      Весь cофт open source. Надёжность выше (!) чем в известных мне публичных почтовых сервисах. Разумеется, консалтинг стоит денег. Однако, часть использованных методов и приёмов доступна и описана в публичных источниках, в том числе и моём блоге. И ничто не мешает желающим воспользоваться теми же подходами и (попытаться) реализовать надёжную защиту от спама своими силами.


      1. IouriVassiliev Автор
        28.01.2018 23:12

        Уверен, что «есть огромное количество других критериев» борьбы со спамом, но любой из них так или иначе можно обойти. Потому защита и делается многоуровневой. Такой подход лишь уменьшает вероятность спама и делает вас востребованным. У меня нет знакомых, готовых часами настраивать спам-фильтры, а тем более, платить за такую работу.
        Напоминаю, что в статье мы обсуждаем динамический email. Придумайте, как его обойти! DDoS-атаки в расчет не принимаются.
        Говорите, что ваша система работает лучше, чем на mail.ru? Уверяю, в вашей системе все то же самое, что у них, только настроено по-другому, с добрым отношением к своему делу, с особым усердием и под некие свои требования. Если бы к каждому ящику от их сервиса назначить такого же специалиста, не было бы шансов написать, что есть кто-то лучше их. У них стоит один из лучших (возможно лучший) в мире антиспам фильтр, далеко не open source. Скажу больше, у них есть преимущество: огромный поток сообщений, на который наложена обработка реакции пользователей на эти сообщения.
        Я не поклонник mail.ru, так получилось. Они для меня — не критерий, потому объединяю недостатки систем вашей, mail.ru и, гулять — так гулять, гугл по сравнению с динамическим email: стоимость, надежность, сложность настройки, ресурсоемкость, загруженность каналов, потерянные сообщения, папка «спам», предсказуемость. Последнее конкретизирую: какие замки на дверь не поставь — ее откроют.
        У динамического email — всего два органа управления: вкл/выкл основного адреса и редактор префикса динамического адреса. Работает железно!


        1. mxms
          29.01.2018 23:27

          У них стоит один из лучших (возможно лучший) в мире антиспам фильтр, далеко не open source.

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


          Придумайте, как его обойти!

          Я буду выдёргивать сетевой кабель и включать его на 5 минут в сутки. Попробуйте обойти это и отправить мне спам в оставшиеся 23 часа 55 минут. Примерно ваш подход. Только у вас ручной работы на порядок больше.


          1. IouriVassiliev Автор
            30.01.2018 07:28

            У них фильтр один из лучших. Настроен так себе. Берите поправку на огромное количество пользователей. Я уже говорил об этом. Их пользователь — им судья.

            «Выдергивание кабеля» — отличное сравнение!
            Для спамера — да, для клиентов — я даю разные ключи от разных дверей своего «дома». Не поторопился клиент связаться со мной, скажем за 2 недели, значит, не очень я ему и нужен. У меня email может поменяться, а может и нет. Email поменялся — позвони, спроси текущий адрес или обратись ко мне один раз через форму обратной связи. Расхотел я с кем-то общаться — сменил замок на той двери, в которую тот входил. Вот и получается, что мой email открыт для спамеров «5 минут в сутки», а для хороших людей — 24/7.

            Что касается «ручной работы», я лучше один раз в месяц (доказано практикой) потеряю 10 секунд на смену адреса, чем буду пожизненно настраивать правила для входящих сообщений и разбираться в чьих-то ляпах, регулярно проверять папку «спам», задаваясь вопросом: а почему банится легитимная почта?