PhishDestroy В прямом эфире
Вернуться к новостям
Методология

«Seed Flooding»: почему PhishDestroy действует открыто
Фишинговые сайты «Attacks»

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

31 марта 2026 года Исследование PhishDestroy Время чтения: 12 минут
«Затопление семенами» — цифровое поле боя против фишинга
Меры по борьбе с фишингом: когда одного сообщения недостаточно, мы принимаем меры напрямую
14,663Работники CF
2/10 сОграничение частоты запросов
5+Каналы вывода данных
$0Стоимость атаки
<4 чЧтобы полностью использовать EmailJS

Проблема: фишинговый сайт работает прямо сейчас

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

Сообщите об этом в Google. Сообщите об этом регистратору. Отправьте заявку о нарушении в хостинг-провайдеру. И потом остаётся только ждать.

Тем временем мошенник набирает 47-ю жертву. Затем 48-ю. Затем 49-ю.

Бюрократический разрыв

Стандартный процесс обработки сообщений о злоупотреблениях занимает 5–10 рабочих дней. Активные фишинговые сайты наносят необратимый финансовый ущерб за считанные часы. Этот разрыв — не ошибка системы, а структурная уязвимость, которой мошенники целенаправленно пользуются.

Бюрократическая система отчетности против активного фишинга, направленного на поиск жертв
Слева: медленный процесс подачи жалоб о мошенничестве. Справа: мошенник наживается, пока вы ждете.

Что такое «затопление семян»?

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

Внести ошибки в базу данных
Настоящие семенные фразы становятся неотличимыми от подделок. Каждая запись требует ручной проверки, что приводит к резкому снижению отношения сигнал/шум.
Ограничения бесплатного тарифа на выбросы
EmailJS, Formspree, Web3Forms — все эти сервисы имеют жесткие ежемесячные лимиты. Мы достигаем этих лимитов за считанные часы, тем самым прерывая поток уведомлений, поступающих от злоумышленника.
Прервать конвейер сбора данных
Когда каналы вывода данных перестают функционировать, данные реальных жертв никуда не попадают — даже если они введут свою семенную фразу.
Генерировать аналитическую информацию
Наводнение позволяет выявить детали инфраструктуры, сообщения об ошибках и пороговые значения ограничений скорости, которые мы используем для совершенствования системы обнаружения.
Фишинговая форма, заваленная поддельными семенными фразами
Фишинговая форма, на которую поступает огромное количество поддельных семенных фраз — качество сбора данных злоумышленником ухудшается в режиме реального времени

Почему это работает: анатомия недорогого фишингового набора

Подавляющее большинство действующих сайтов, используемых для криптовалютного фишинга, представляют собой наборы для «копи-паста», созданные на основе сторонние сервисы с бесплатным тарифом. Это их главная уязвимость. Более подробный анализ см. наше всестороннее расследование.

Структура фишингового набора — зависимости от сервисов бесплатного тарифа
Каждый канал вывода данных представляет собой сервис бесплатного тарифа с жесткими ограничениями на количество отправлений — низкая стоимость этого набора и является его фатальным недостатком
Таблица данных: Модуль
МодульЛимит бесплатного тарифаПоследствия наводнения
EmailJS~200 заявок в месяцИсчерпание лимита по часам приводит к приостановке доставки электронной почты
Formspree50 заявок в месяцВышел из строя практически сразу
Web3Forms250 заявок в месяцБыстро нейтрализовано
API бота TelegramОграничение скорости в секундуЗастряли в циклах ожидания
Бесплатный тариф FirebaseКвоты на чтение и записьРезкий рост затрат на базы данных или лишение доступа
Наблюдаемый результат

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

Наш технический подход: Cloudflare Workers, а не ботнеты

Сеть периферийных серверов Cloudflare, используемая для защиты от фишинга
14 663 сервера Cloudflare Workers, работающих на периферийном сетевом уровне — без использования сторонней инфраструктуры

Мы используем Cloudflare Workers. Запросы поступают из собственной периферийной сети Cloudflare. Не происходит неправомерного использования частных IP-адресов. Нет ботнетов. Не создается нагрузка на сторонние серверы. Пострадала только система сбора данных мошенника.

Потоки наводнения

Сайт обнаруженПодтверждено наличие активного трафика
Анализ анатомииСопоставлены каналы вывода данных
Размещение работниковСеть CF Edge
2 семена / 10 сРегулируемая скорость
Квота исчерпанаНападающий вслепую
Отчет поданПараллельный путь

Ограничение скорости: Строгий 2 submissions per 10 seconds. Это не DDoS-атака. Речь идет о медленном, целенаправленном заражении, масштабы которого таковы, что даже небольшие показатели заражения на каждом отдельном сайте приобретают значимость при одновременном воздействии на десятки целей.

Чем мы не занимаемся

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

Практические примеры: контролируемое загрязнение на практике

Приведенные ниже операции дословно взяты из наших производственных журналов. Домены и идентификаторы провайдеров замазаны только в тех случаях, когда их публикация могла бы способствовать уклонению от мер; записи сетевого трафика HTTP не подвергались изменениям. Обе целевые системы были активны на момент вмешательства, имели подтвержденный входящий трафик из платной рекламы и были независимо классифицированы как фишинг автор: ≥ 2 внешних поставщика на VirusTotal до того, как мы предпримем какие-либо действия.

Оперативная доктрина

Каждая операция по наводнению семян осуществляется в рамках одних и тех же пяти принципов. Исключений нет: операция, которая не соответствует всем пяти принципам, не проводится.

ПРИНЦИП 01
Только общедоступные конечные точки
URL-адрес для передачи данных и его идентификаторы: опубликовано с помощью фишинговой страницы в клиентском JavaScript. Мы никогда не получаем учетные данные, не применяем метод перебора и не повышаем привилегии.
ПРИНЦИП 02
Пропускная способность в рамках сублимита
Максимальный уровень запросов жестко ограничен значением, не превышающим лимит, указанный в опубликованных Условиях предоставления услуг (ToS) провайдера. Наш профиль неотличим от обычного пользовательского трафика (UGC).
ПРИНЦИП 03
Порог доказательности
Target требует наличия ≥ 2 независимых результатов проверки от разных поставщиков на VirusTotal плюс ручное подтверждение процесса сбора учетных данных.
ПРИНЦИП 04
Параллельный легальный канал
Поданы официальные заявления о злоупотреблениях в адрес хостинг-провайдера, регистратора и поставщика формы до как только начнутся наводнения — с указанием номеров дел и полным пакетом доказательств.
ПРИНЦИП 05
Полный аудиторский след
Весь трафик поступает из Cloudflare Workers под подписанным источником PhishDestroy. Каждая отправка регистрируется в журнале с указанием временной метки, цели и идентификатора оператора.

Случай 1 — Formspark Exfil Endpoint, исчерпана месячная квота

checkblochn.pages.dev Нейтрализовано

Характеристики угрозы: Приманка для восстановления кошелька («Dapp Node Sync»), осуществляющая перехват 12-словных семенных фраз BIP-39 и передачу их на контролируемый злоумышленником конечный узел Formspark в рамках бесплатного тарифа. На начальном этапе взаимодействия подтверждено наличие платного рекламного трафика с двух рекламных платформ.

Поверхность атаки
checkblochn.pages.dev (Cloudflare Pages)
Канал вывода данных
submit-form.com — конечная точка формы Formspark
Идентификатор формы
/32BrdUqfX
Поле «Полезная нагрузка»
12-словное семенное слово BIP-39 через message
Лимит бесплатного тарифа провайдера
50 заявок • 1 месяц (скользящий период)
Стоимость сброса настроек мошенником
Новая учетная запись Formspark + редактирование с помощью клиентского JS + повторное развертывание

Хронология операций (UTC, данные анонимизированы до момента начала операции T-zero)

T + 00:00
Ingest — домен, обнаруженный сканером PhishDestroy в образце платной рекламы. автоматизированный
T + 00:12
Анатомия подтверждена — сформировать цель submit-form.com/32BrdUqfX извлечено со страницы JS; форма полезной нагрузки восстановлена методом обратной разработки. анализ
T + 00:28
VirusTotal: 3 / 95 Поставщики пометили это как фишинг. Пороговое значение достигнуто.
T + 00:47
Поданы заявления о злоупотреблениях — Cloudflare Pages (отдел по обеспечению доверия и безопасности), Formspark (злоупотребления), Porkbun (регистратор). Присвоены идентификаторы дел. законный путь
T + 01:02
Направлен сотрудник по ликвидации последствий наводнения — ставка 2 req / 10 s, один Cloudflare Worker, идентифицированная строка UA, подписанный источник.
T + 01:02
Поступили первые заявки на получение помощи в связи с наводнением 200 OK с formspark-quota: 64. Базовые данные зафиксированы.
T + 06:08
formspark-quota пересекает нуль → конечная точка незаметно прекращает пересылку. жалюзи с дренажными отверстиями
T + 06:12
Окончательный зафиксированный ответ: formspark-quota: −18. Работник, занимавшийся ликвидацией последствий наводнения, уволен.
T + 19:30
Cloudflare Pages приостанавливает развертывание в ответ на сообщение о злоупотреблении. снят

Отправка по сети (семя является фиктивным — 12 случайных слов по стандарту BIP-39, не имеющих отношения к какому-либо реальному кошельку)

POST /32BrdUqfX HTTP/1.1 Host: submit-form.com Origin: https://checkblochn.pages.dev Content-Type: application/x-www-form-urlencoded message=Phrase%3A+lecture+sail+coral+swear+fiber+bonus+vanish+layer+observe+rely+orphan+height&source=Unknown+Source&from_name=Dapp+Node+Sync

Ответ — T+01:02 (базовый уровень, квота не исчерпана)

HTTP/1.1 200 OK formspark-quota: 64 formspark-status: ok content-type: application/json; charset=utf-8 { "message": "Фраза: лекция, парус, коралл, клясться, волокно, бонус, исчезать, слой, наблюдать, полагаться, сирота, высота" }

Ответ — T+06:12 (квота исчерпана, конечная точка продолжает выдавать код 200, но не будет перенаправлять запрос)

HTTP/1.1 200 OK formspark-quota: -18 formspark-status: ok
Квота до наводнения
64
Квота после наводнения
−18
82
Фальшивые заявки
~5 ч 06 мин
Продолжительность наводнения
0,27 запросов в секунду
Средняя ставка
~11,5 КБ
Общий объем исходящих данных
100%
В рамках ограничений, предусмотренных Условиями предоставления услуг
0
Затронутые законные запросы

Ощутимое воздействие. С момента T+06:08 до окончательного снятия с эфира в момент T+19:30 — а 13 часов и 22 минуты — каждая реальная жертва, которая обратилась checkblochn.pages.dev и завершив процесс восстановления, отправили свою семенную фразу на конечный узел, который вернул 200 OK но больше не пересылала полезные данные в почтовый ящик оператора. Фишинговая страница появился успешно выполниться в браузере жертвы (без ошибок и предупреждающих сигналов), что является желательным: рефлекторная реакция «не сработало» часто заставляет пользователей вводить те же учетные данные на следующем поддельном сайте, который они найдут. Здесь взаимодействие завершился с использованием оператора «blind».

Что на самом деле дало это вмешательство

13-часовое «защитное окно» для каждого последующего посетителя сайта, на котором по-прежнему активно размещалась платная реклама. Это окно закрылось, когда Cloudflare Pages отреагировала на наш параллельный отчет о злоупотреблении — в точном соответствии с задуманным. Поток трафика не заменил законное удаление контента; он просто покрыл этот промежуток времени пока законный бросок достиг цели.

Пример 2 — EmailJS Relay, идентификаторы, публикуемые оператором

allsyncapp.pages.dev Активная эксплуатация

Характеристики угрозы: приманка под названием «sync» для кошелька, которая отправляет введенный жертвой сед-код на почтовый ящик оператора через EmailJS — легальный SaaS-сервис для рассылки транзакционных писем. На фишинговой странице размещены данные оператора service_id, template_id и user_id в клиентском JavaScript, поскольку без этих идентификаторов браузер жертвы не сможет выполнить запрос POST, запускающий отправку электронного письма. Таким образом, эти идентификаторы являются частью открытой поверхности атаки, которую оператор добровольно раскрыл.

Поверхность атаки
allsyncapp.pages.dev (Cloudflare Pages)
Канал вывода данных
api.emailjs.com — сервер ретрансляции транзакционных писем
Конечная точка
POST /api/v1.0/email/send-form
Идентификаторы, опубликованные оператором
service_id · template_id · user_id (извлечено из JavaScript-кода страницы)
Лимит бесплатного тарифа провайдера
200 электронных писем • текущий месяц
Жесткие ограничения по скорости (Условия предоставления услуг)
1 запрос/с · 50/IP/ч

Зафиксированные данные — точная копия содержимого запроса POST с самой фишинговой страницы

POST /api/v1.0/email/send-form HTTP/1.1 Host: api.emailjs.com Origin: https://allsyncapp.pages.dev Content-Type: multipart/form-data; boundary=----geckoformboundary6a77738bf873975dfc9c8e4a31fa330e _redirect=TECHNICAL.html message=тыква фольга деревня монета город юбка средний час программа сцена бедность одобрить lib_version=3.12.1 service_id=service_t0cgr9v template_id=template_k16demo user_id=furwEG-MZShqSPIGS

Извлечение идентификаторов (однострочное регулярное выражение в исходном коде фишинговой страницы)

$ curl -s https://allsyncapp.pages.dev/ | grep -oE '(service_id|template_id|user_id)["'"'"':]+["'"'"']*[A-Za-z0-9_-]+'service_id: "service_t0cgr9v" template_id: "template_k16demo" user_id: "furwEG-MZShqSPIGS"

Ключевой доктринальный момент. Этот случай поучителен именно потому, что нам не удалось обнаружить ни одной конечной точки. Оператор публикует три идентификатора, необходимые для того, чтобы EmailJS отправил начальный набор слов на почтовый ящик жертвы. Любой браузер, отображающий фишинговую страницу, располагает ими. Наш Worker действует так же, как и браузер жертвы — отправляет форму с точно таким же оформлением и идентификаторами, как указано на самой странице. Разница заключается в полезной нагрузке: случайные слова из BIP-39 вместо реальных учетных данных кошелька.

200
Ежемесячный лимит (приманки)
1 / с
Скорость ToS — у нас 0,1/с
~120 КБ
Максимальная месячная полезная нагрузка
0
Нагрузка на инфраструктуру EmailJS (в разумных пределах)
402 / 429
Реакция провайдера при достижении лимита
Учётная запись закрыта
Типичный исход рассмотрения заявления о насилии

Характер исхода. Как только достигнут месячный лимит, EmailJS возвращает 402 Payment Required или 429 Too Many Requests и шаблон не отправляется. Почтовый ящик мошенника перестает отвечать. Параллельно с этим в отдел EmailJS Trust & Safety поступает официальная жалоба с указанием идентификаторов сервиса, шаблона и пользователя, а также ссылкой на опубликованный нами пакет доказательств — что, судя по предыдущим случаям, приводит к тому, что учетная запись оператора в EmailJS прекращено, без ограничения по скорости. Оператору необходимо зарегистрировать новую учетную запись EmailJS, заново сгенерировать идентификаторы, отредактировать развернутую фишинговую страницу и аннулировать все существующие ссылки для рассылки — этот рабочий процесс занимает несколько часов при каждой ротации.

Сравнение профилей атак: чем не является «затопление семенами»

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

Сравнение метода «затопления семян» с атаками типа «отказ в обслуживании», спамом и спецоперациями правоохранительных органов.
РазмерЗатопление семян (наше)DDoS / L7-флудЗлоупотребление отправкой спамаСпецоперация «LE»
ЦельЗащита жертв — выполнить квоту по выводу средств мошенника до появления следующей жертвыОтказ в обслуживании инфраструктурыКоммерческая выгода / распространение информацииСбор доказательств, контролируемое введение в заблуждение
Пропускная способность0,1–0,3 запросов/с — ниже Условия предоставления услуг103 – 108 req/s — ориентированный на насыщениеСерийная / автоматизированная обработка больших объемовОднократное взаимодействие, как правило,
ЦельЗлоумышленник, взломавший один конечный узел, опубликовалВеб-сервер / сетевой уровень организации-жертвыКонтактные формы на надежных сайтахПодозрительная инфраструктура или личность
Влияние на инфраструктуруНет — счетчики провайдера работают в пределах, предусмотренных Условиями предоставления услугПеребои в работе сервиса, перегрузка на входящем каналеПереполнение почтового ящика, изменение капчи, нагрузка на модераторовЗависит от режима работы
Пострадавшие законные пользователиНоль — у фишинговых форм нет легитимных пользователейВсе ониСотрудники, ответственные за формы / модераторыВстроенная защита от обхода
Исходная идентичностьНазвание: PhishDestroy Cloudflare Workers — с возможностью аудитаБот-сети, поддельные источники, отражениеОдноразовые проксиСекретная инфраструктура
Модель авторизацииКонечная точка — это приглашенный: в форме явно запрашиваются эти данные, идентификаторы открыто размещены на страницеНет — сам объем запросов и является причиной вредаОбходит предусмотренное использование, игнорирует сигналы о предотвращении злоупотребленийНормативно-правовые полномочия
Параллельные законные действияПоступили сообщения о злоупотреблениях до начало наводнения, с идентификаторами делН/ДН/ДВ рамках оперативной деятельности
Это различие не является чисто риторическим. Оно поддается количественной оценке.

Запрос «seed-flood» представляет собой единственный запрос HTTPS POST объемом около 140 байт, исходящий от одного Cloudflare Worker, представляющего наш подписанный исходный сервер, со скоростью, составляющей лишь небольшую долю от той, которую сам провайдер считает допустимой, и направленный на конечную точку, идентификаторы которой оператор решил разместить на общедоступной веб-странице. То есть это весь наблюдаемый артефакт. Отсутствуют все структурные элементы, которые позволяют квалифицировать запрос как «атаку» — несанкционированный доступ, намерение исчерпать ресурсы, объемная перегрузка, затронутые третьи стороны, скрытый источник. Приведенный ниже правовой анализ не является творческой адвокатской аргументацией; это естественный толкование закона после того, как фактическая обстановка будет четко изложена.

Яма для фишинговой ловушки, которую засыпают камнями
Мошенник устроил ловушку. Мы наполняем её камнями.

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

Правовая оговорка

PhishDestroy не предоставляет юридических консультаций. Данный вопрос находится в настоящей «серой зоне», которая варьируется в зависимости от юрисдикции. Мы действуем, полностью осознавая всю сложность этой ситуации.

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

Что происходит с базой данных мошенника?

Оно теряет смысл — тысячи записей требуют ручной проверки, соотношение сигнал/шум резко ухудшается. Или он ломается — У Firebase Spark и общих экземпляров MongoDB установлены жесткие ограничения. Их превышение влечет за собой определенные последствия.

Оба варианта хороши

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

Когда следует включать систему затопления семян?

Таблица данных: Критерий
КритерийПроверитьПочему это важно
Подтверждено наличие активного трафикаОбязательноРекламные платформы или инструменты для анализа трафика подтверждают, что на сайт заходят реальные пользователи
Анализ структуры фишинговых атакОбязательноМодули exfil в бесплатной версии, обнаруженные до того, как мы начнем массовую рассылку
Поступили сообщения о злоупотребленияхОбязательноМы всегда одновременно следуем законному пути
В рамках SLA не предусмотрено удалениеТипичный триггерОтсутствие ответа от регистратора/хостинг-провайдера в приемлемый срок
Сайт с большим объемом / платной рекламойНепосредственный триггерПлатная реклама означает, что мы действуем, не дожидаясь завершения бюрократической процедуры

Более широкий взгляд

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

Прозрачность — основа нашей деятельности

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

PhishDestroy — обнаружение и нейтрализация фишинговой инфраструктуры
Мошенники действуют организованно. Их инструменты стандартизированы. Это означает, что и средства противодействия им также можно стандартизировать.

Что вы можете сделать

Если вы считаете, что пополнять пустые кошельки преступников — это неэтично, — это ваша точка зрения, и вы вправе её придерживаться. Мы чётко изложили свою позицию.