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

Знаете это чувство, когда вы открываете статистику, и сердце пропускает удар от радости? «Ого, поперло!».

В начале недели, перед тем как сжечь старый бренд и переехать, я заглянул в базу подписчиков. Там было 30 новых адресов. Для узкоспециализированного технического блога это казалось маленьким чудом. Люди подписываются! Людям интересно!

Я был настолько воодушевлен, что написал в Telegram-канал пост благодарности. Я говорил о «невидимой аудитории», о доверии, о том, как это круто в 2025 году. Я был горд. Я был счастлив.

И я был наивным идиотом.

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

Моя «невидимая, но настоящая аудитория» выглядела так:
security@chevron.com (Нефтяная корпорация США)
admin@rbs.co.uk (Королевский банк Шотландии)
staff@ufl.edu (Университет Флориды)

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

Синдром «Полезного идиота»

Давайте разберем, что произошло. Почему на маленький русский блог про Linux внезапно «подписались» сотрудники глобальных корпораций?

Нет, это не слава. Это атака, которая называется Subscription Bombing (Бомбинг подписками). И мой сайт в ней играл роль «полезного идиота» — оружия в руках хакеров.

Как это работает (Механика зла)

Представьте, что хакер взломал аккаунт условного Джона Смита в Amazon или PayPal и выводит деньги. Сервис тут же отправляет Джону письмо: «Внимание! С вашего счета списано $5000!».

Задача хакера — сделать так, чтобы Джон НЕ УВИДЕЛ это письмо. Удалить его удаленно он не может, но он может его спрятать.

Хакер запускает скрипт. Этот скрипт берет емейл жертвы (john@chevron.com) и начинает бешеную гонку по интернету. Он ищет тысячи сайтов с незащищенной формой подписки (такой, как была у меня) и вбивает туда этот адрес.

В одну секунду на телефон Джона обрушивается цунами:
«Подтвердите подписку на Вязание», «Новости Крипты», «Phoenix Blog Digest», «Порно Хаб Премиум»…

Джон в панике. У него 50 писем в минуту. Он начинает яростно выделять всё и жать «Удалить», «Удалить», «Удалить». И в этом потоке мусора он своими руками удаляет то единственное важное письмо от банка о краже денег.

Я не собирал аудиторию. Я (невольно) помогал хакерам прятать следы преступлений.

Почему они были «Активными»?

Самое смешное (и страшное), что статус этих подписчиков в моей базе был Active. То есть они подтвердили подписку.

Вы спросите: «Зачем сотруднику Chevron подтверждать подписку на спам?».
Он этого не делал. Это сделал его корпоративный антивирус.

  1. Мой сайт отправил письмо с просьбой подтвердить подписку (ссылка с токеном).
  2. Почтовый шлюз корпорации принял письмо.
  3. Система безопасности (FireEye, Proofpoint) увидела ссылку и решила её проверить: «А не вирус ли это?».
  4. Робот перешел по ссылке (сделал GET-запрос), чтобы просканировать страницу.
  5. Мой плагин увидел переход по ссылке и радостно сообщил: «Ура! Человек кликнул! Подписка активирована!».

Так я получил базу «мертвых душ», которые на самом деле меня ненавидели.

О безопасности, доверии и моих обещаниях

В прошлых постах я часто писал: «Здесь безопасно. Я не корпорация, я не торгую данными, я уважаю вашу приватность».

После этой истории у вас может возникнуть вопрос: «Игорь, а чего стоят твои слова, если твой сайт использовали боты?».

Я хочу ответить на это максимально честно.

  1. Ваши данные в безопасности. Ни один емейл реального подписчика (а я знаю вас, ребята, по именам) не утек, не был продан и не попал в спам-базы. Мои обещания в силе.
  2. Я не предавал доверие, но я допустил халатность. Я оставил дверь открытой. Я думал, что «мы маленькие, мы никому не нужны». Это главная ошибка в современном интернете. Ботам плевать, маленький ты или большой. Им нужна твоя форма отправки.

Этот инцидент не делает меня лжецом, но он делает меня более опытным параноиком. И это, в конечном счете, работает на вашу безопасность.

Тайна смерти Loveprod.site

И тут у меня сложился пазл.

Я винил во всех грехах доменную зону .site. Я думал, что письма летят в спам, потому что домен дешевый. Я ошибался.

Я посмотрел на даты подписок этих ботов. 5 декабря, 12 декабря… Это пятницы. Дни выхода моего дайджеста.

Страшная правда: Мой старый домен умер не своей смертью. Я его убил.
5 и 12 декабря мой сервер отправил дайджесты на адреса службы безопасности банков и корпораций. Они нажали «ЭТО СПАМ». Их сервера отправили жалобы (Abuse Report) провайдеру и в черные списки (SpamHaus).

Вот почему Яндекс помечал меня красным. Вот почему Gmail кидал в спам. Не потому что .site плохой. А потому что я две недели подряд бомбил самых защищенных пользователей интернета.

За секунду до катастрофы

Вернемся в сегодня. У меня новый домен phoenix901.ru. Он чист. Репутация идеальная.

Завтра пятница. Если бы я сегодня не залез в базу и не нажал кнопку «Удалить», завтра в 18:00 мой скрипт отправил бы 30 писем на эти «зомби-адреса» уже с нового домена.

Это была бы мгновенная смерть нового проекта. Бан во всех почтовиках за 5 минут. Я стоял на краю пропасти и повезло вовремя посмотреть под ноги.

Решение: Honeypot и TimeTrap

Осознав ужас ситуации, я понял: кнопку «Подписаться» нужно защищать. Но я ненавижу капчи (ReCAPTCHA). Заставлять живых людей искать светофоры — это унижение.

Поэтому я переписал плагин Phoenix Comms (версия 2.9.1), внедрив невидимую защиту.

1. Honeypot («Горшочек с медом»)

Я добавил в форму скрытое поле. Живой человек его не видит. Тупой бот читает код, видит поле и радостно его заполняет. Если поле заполнено — письмо не уходит.

2. TimeTrap (Ловушка времени)

Человеку нужно время, чтобы ввести емейл. Минимум 2-3 секунды. Бот делает это за 10 миллисекунд. Если форма отправлена слишком быстро — сервер блокирует запрос.

Теперь, если бот попытается использовать мой сайт как оружие, он просто упрется в стену.

Итог

Сегодня я удалил из базы 90% подписчиков. Оставил только тех, кого знаю лично (или чьи адреса выглядят как человеческие).

А тот пост в Телеграме про «любовь к невидимой аудитории»… Пусть висит. Как напоминание о том, что цифры могут врать, а за красивой статистикой иногда скрывается бездушный скрипт.

Мой новый домен спасен. База чиста. Иллюзии развеяны.
Если вы читаете это письмо в почте — значит, вы настоящий. Спасибо, что остались.

👁️ 6

Анатомия одной иллюзии: Как я признавался в любви ботам, чуть не убил новый домен и выучил главный урок безопасности: 1 комментарий

  1. Ребята, важное уточнение, чтобы не было паники.
    Я понимаю, что после прочтения может возникнуть вопрос: «А не удалил ли он меня под горячую руку вместе с ботами?»?
    Отвечаю: НЕТ.
    Я проводил чистку не скриптом «удалить всех», а вручную. Я просмотрел каждый адрес.
    — Если у вас почта на Gmail, Yandex, Mail.ru, Proton, iCloud или на личном домене — вы в безопасности. Вы в базе, я вижу вас, и я знаю, что вы настоящие.
    — Под нож пошли только явные корпоративные адреса (банки, нефтянка, университеты США), которые физически не могли быть моей аудиторией.
    Завтра (в пятницу) в 18:00 по расписанию уйдет дайджест. Если вы его получите — значит, мы прошли этот шторм вместе.
    Спасибо, что вы живые. 🤝





Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

четыре − 1 =

root@phoenix901:~# connect
[×]

Получай дайджест раз в неделю.
Без спама.

>>