«Seed Flooding»: чому PhishDestroy діє відкрито
«Атакуючі» фішингові сайти
Ми цього не приховуємо. Коли PhishDestroy виявляє активний фішинговий сайт, який збирає фрази-посів криптогаманців, ми завалюємо його введеннями фраз-посів у правильному форматі. Ось що саме ми робимо, чому ми це робимо і чому нам за це не соромно.

Проблема: фішинговий сайт зараз працює
Уявіть, що ви виявили фішингову сторінку криптовалютного гаманця, яка розміщується за допомогою платних оголошень у Google Ads. Вона виглядає цілком справжньою. На неї надходить трафік. Кожні кілька хвилин на неї потрапляють справжні користувачі, вводять свої посівні фрази і втрачають усе.
Повідомте про це Google. Повідомте про це реєстратора. Надішліть скаргу про зловживання провайдеру хостингу. А потім ти чекаєш.
Тим часом шахрай знаходить 47-у жертву. Потім — 48-у. Потім — 49-у.
Стандартний механізм повідомлення про зловживання працює в терміни 5–10 робочих днів. Активні фішингові сайти завдають непоправної фінансової шкоди за лічені години. Ця розбіжність не є помилкою системи — це структурна вразливість, якою шахраї навмисно користуються.

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

Чому це працює: анатомія дешевого фішингового набору
Переважна більшість активних фішингових сайтів, пов’язаних із криптовалютами, — це набори для створення сайтів методом «копіювання-вставлення», побудовані на послуги сторонніх розробників у рамках безкоштовного тарифного плану. Це їхня найбільша вразливість. Детальніший аналіз див. наше всебічне розслідування.

| Модуль | Ліміт безкоштовного тарифного плану | Наслідки повені |
|---|---|---|
| EmailJS | ~200 заявок на місяць | Вичерпано за кілька годин, доставка електронної пошти припиняється |
| Formspree | 50 подань на місяць | Вийшов з ладу майже відразу |
| Web3Forms | 250 заявок на місяць | Швидко нейтралізується |
| API бота Telegram | Обмежена швидкість у секунду | Застряг у циклах очікування |
| Безкоштовний тарифний план Firebase | Квоти на читання/запис | Різке зростання витрат на бази даних або втрата доступу |
Ми безпосередньо спостерігали, як фішингова інфраструктура припиняла роботу після того, як потоки початкових даних переповнювали її канал сповіщень. Шахрай не знає, чому вона перестала працювати. Він просто перестає отримувати дані.
Наш технічний підхід: Cloudflare Workers, а не ботнети

Ми використовуємо Cloudflare Workers. Запити надходять із власної периферійної мережі Cloudflare. Жодних зловживань IP-адресами приватних користувачів. Жодних ботнетів. Жодного навантаження на сторонні сервери. Вплив поширюється лише на систему збору даних шахрая.
Повінь
Обмеження швидкості: Суворий 2 submissions per 10 seconds. Це не DDoS. Це повільне, цілеспрямоване зараження, масштаби якого такі, що навіть незначні показники на один сайт стають суттєвими, якщо врахувати десятки цілей, що атакуються одночасно.
Ми не намагаємося вивести сервери з ладу. Ми робимо робочий день шахраїв нестерпним, а їхні бази даних — марними, при цьому не завдаючи жодних побічних збитків законній інфраструктурі.
Практичні приклади: контрольоване забруднення на практиці
Наведені нижче операції дослівно взяті з наших виробничих журналів. Домени та ідентифікатори провайдерів вилучено лише в тих випадках, коли їх оприлюднення могло б сприяти ухиленню від відповідальності; записи мережевого трафіку HTTP не зазнали жодних змін. Обидві цілі були активними на момент втручання, мали підтверджений вхідний трафік із платної реклами та були незалежно класифіковані як фішинг автор: ≥ 2 зовнішніх постачальників на VirusTotal до того, як ми вживемо будь-яких заходів.
Оперативна доктрина
Кожна операція із затоплення насіння здійснюється в рамках одних і тих самих п’яти принципів. Винятків немає: операція, яка не відповідає всім п’яти принципам, не проводиться.
Випадок 1 — Formspark Exfil Endpoint, вичерпано місячну квоту
checkblochn.pages.dev НейтралізованоХарактер загрози: Приманка для відновлення гаманця («Dapp Node Sync»), яка викрадає 12-слівні фрази-насіння за стандартом BIP-39 і передає їх на контрольований зловмисником кінцевий пункт Formspark у рамках безкоштовного тарифного плану. На початку взаємодії було підтверджено трафік з платних рекламних оголошень з двох рекламних платформ.
messageГрафік операції (UTC, з анонімізацією до моменту початку операції T-zero)
submit-form.com/32BrdUqfX витягнуто зі сторінки JS; форма корисного навантаження відтворена шляхом реверс-інжинірингу. аналіз2 req / 10 s, один Cloudflare Worker, ідентифікований рядок UA, підписане джерело.200 OK з formspark-quota: 64. Базові дані зафіксовано.formspark-quota перетинає нуль → кінцева точка без попередження припиняє пересилання. жалюзі з дренажемformspark-quota: −18. Працівника, який займався ліквідацією наслідків повені, звільнено.Подання через мережу (початкове значення є лише символічною приманкою — 12 випадкових слів за стандартом BIP-39, що не мають жодного відношення до будь-якого реального гаманця)
Відповідь — T+01:02 (базовий рівень, квота не вичерпана)
Відповідь — T+06:12 (квота вичерпана, кінцевий вузол продовжує працювати до отримання коду 200, але не буде здійснювати переадресацію)
Помітний ефект. З моменту T+06:08 до остаточного відключення о T+19:30 — а 13 годин і 22 хвилини — кожна справжня жертва, яка звернулася checkblochn.pages.dev та завершивши процедуру відновлення, надіслали свою фразу-насіння на кінцеву точку, яка повернула 200 OK але більше не пересилала корисне навантаження до вхідної скриньки оператора. Фішингова сторінка з'явився щоб операція пройшла успішно в браузері жертви (без помилок, без тривожних сигналів), що є бажаним: миттєва реакція на кшталт «не вийшло» часто змушує користувачів повторно вводити ті самі облікові дані на наступному підробленому сайті, на який вони потрапляють. У цьому випадку взаємодія завершився з оператором «сліпий».
13-годинне «захисне вікно» для кожного наступного відвідувача сайту, на якому все ще активно розміщувалася платна реклама. Це вікно закрилося, коли Cloudflare Pages відреагувало на нашу паралельну скаргу щодо зловживання — саме так, як і передбачалося. Цей потік трафіку не замінив законне видалення контенту; він лише покрив цей проміжок часу доки законний прийом був виконаний.
Приклад 2 — EmailJS Relay, ідентифікатори, опубліковані оператором
allsyncapp.pages.dev Активна експлуатаціяХарактер загрози: приманка під назвою «sync» для гаманця, яка надсилає введений жертвою посівний код на поштову скриньку оператора через EmailJS — легальний SaaS-сервіс для розсилки транзакційних листів. Фішингова сторінка містить дані оператора service_id, template_id та user_id у JavaScript на стороні клієнта, оскільки без цих ідентифікаторів браузер жертви не зможе виконати запит POST, який запускає відправку електронного листа. Отже, ці ідентифікатори є частиною публічної поверхні атаки, яку оператор добровільно відкрив.
Зафіксовані дані — точна копія вмісту запиту POST з самої фішингової сторінки
Вилучення ідентифікаторів (однорядковий регулярний вираз у вихідному коді фішингової сторінки)
Ключовий доктринальний момент. Цей випадок є повчальним саме тому, що ми не виявили жодної кінцевої точки. Оператор публікує три ідентифікатори, необхідні для того, щоб EmailJS надіслав початковий набір слів на поштову скриньку жертви. Вони є у будь-якого браузера, що відображає фішингову сторінку. Наш Worker діє так само, як і браузер жертви, — відправляє форму з точним форматом та ідентифікаторами, які вказує сама сторінка. Різниця полягає у вмісті: випадкові слова за стандартом BIP-39 замість реальних облікових даних гаманця.
Характер результатів. Після досягнення місячного ліміту EmailJS повертає 402 Payment Required або 429 Too Many Requests і шаблон не надсилається. Поштова скринька шахрая залишається без відповідей. Паралельно з цим до відділу «Trust & Safety» сервісу EmailJS надходить офіційна скарга з ідентифікаторами сервісу, шаблону та користувача, а також посиланням на опублікований нами пакет доказів — що, згідно з попереднім досвідом, призводить до того, що обліковий запис оператора в EmailJS припинено, без обмеження частоти. Оператор повинен створити новий обліковий запис EmailJS, перегенерувати ідентифікатори, відредагувати розгорнуту фішингову сторінку та анулювати всі існуючі посилання для розповсюдження — це займає кілька годин для кожної ротації.
Порівняння профілів атак: чим не є «затоплення насінням»
Постійно лунають звинувачення в тому, що ми здійснюємо «атаки» на фішингові сайти. Таке трактування втрачає будь-яку обґрунтованість, щойно порівняти фактичний профіль трафіку з профілем діяльності, з якою його плутають.
| Розмір | Затоплення насіння (наше) | DDoS / L7-флуд | Зловживання шляхом надсилання спаму | Таємна операція LE |
|---|---|---|---|---|
| Мета | Захист жертв — виконати квоту шахрая щодо виведення коштів до появи наступної жертви | Відмова в обслуговуванні інфраструктури | Комерційна вигода / поширення інформації | Збір доказів, контрольоване введення в оману |
| Пропускна здатність | 0,1–0,3 запитів/с — нижче Умови використання постачальника послуг | 103 – 108 req/s — орієнтований на насичення | Пакетна обробка / автоматизована обробка великих обсягів даних | Одиночна взаємодія, як правило, |
| Ціль | Зловмисник, який здійснив витік даних з одного кінцевого пристрою, опублікував | Веб-сервер / мережевий рівень організації-жертви | Контактні форми на надійних сайтах | Підозріла інфраструктура або особа |
| Вплив на інфраструктуру | Немає — лічильники провайдера працюють у межах, передбачених Умовами надання послуг | Перебої в роботі сервісу, перевантаження на вхідному каналі | Переповнення папки «Вхідні», зміна параметрів CAPTCHA, навантаження на модераторів | Залежить від режиму роботи |
| Постраждали законні користувачі | Нуль — фішингові форми не мають законних користувачів | Усі вони | Співробітники — власники форм / модератори | Вбудовані засоби уникнення |
| Початкова ідентичність | Названо PhishDestroy Cloudflare Workers — з можливістю аудиту | Ботнети, підроблені джерела, відбиття | Одноразові проксі-сервери | Інфраструктура, що підлягає засекреченню |
| Модель авторизації | Кінцева точка — це запрошений: у формі прямо запитується це значення, ідентифікатори публічно розміщені на сторінці | Немає — сам обсяг запитів і є причиною шкоди | Обходить передбачене призначення, ігнорує сигнали про зловживання | Нормативно-правові повноваження |
| Паралельні правові дії | Подано повідомлення про зловживання до того, як початок повені, з ідентифікаторами випадків | Немає даних | Немає даних | Інтегрований у робочий процес |
Запит типу «seed-flood» — це одиночний POST-запит через HTTPS розміром приблизно 140 байтів, що надходить від одного Cloudflare Worker із нашим підписаним джерелом, зі швидкістю, яка становить лише частку від тієї, яку сам провайдер вважає прийнятною, і спрямований на кінцеву точку, ідентифікатори якої оператор вирішив розмістити на публічній веб-сторінці. Тобто це весь спостережуваний артефакт. Відсутні всі структурні елементи, які роблять запит «атакою» — несанкціонований доступ, намір вичерпати ресурси, об’ємне перевантаження, залучення третіх сторін, приховане джерело походження. Наведений нижче правовий аналіз не є творчою адвокатською аргументацією; це природний тлумачення закону після того, як фактичні обставини будуть чітко викладені.
Правовий аналіз — чи є це законним? Чи є це етичним?

Введення даних у загальнодоступну веб-форму — навіть вигаданих — у більшості випадків не є незаконним. Ми не отримуємо доступ до приватних систем, не використовуємо вразливості без дозволу та не перехоплюємо повідомлення. Шахрай влаштував пастку. Ми наповнюємо її камінням.
PhishDestroy не надає юридичних консультацій. Це питання знаходиться у справжній «сірій зоні», яка залежить від конкретної юрисдикції. Ми працюємо, повністю усвідомлюючи всю складність цієї ситуації.
Що станеться з базою даних шахрая?
Це стає марним — тисячі записів потребують ручної перевірки, співвідношення сигнал/шум різко погіршується. Або воно ламається — Firebase Spark та спільні екземпляри MongoDB мають жорсткі обмеження. Їхнє перевищення має наслідки.
Обидва результати є позитивними
Чи стане база даних марний або повністю виходить з ладу — Справжні фрази-посів справжніх жертв ніколи не потрапляють до зловмисника у вигляді, придатному для використання. Кожна необроблена фраза-посів — це гаманець, з якого не можна вивести кошти.
Коли слід вмикати систему затоплення насіння?
| Критерій | Перевірити | Чому це важливо |
|---|---|---|
| Підтверджено активний трафік | Обов’язкове | Рекламні платформи або інструменти для аналізу трафіку підтверджують, що на сайт заходять реальні користувачі |
| Аналіз будови фішингової атаки | Обов’язкове | Модулі виведення даних з безкоштовного тарифного плану, виявлені до того, як ми розпочнемо масову розсилку |
| Подано повідомлення про зловживання | Обов’язкове | Ми завжди одночасно дотримуємося законного шляху |
| У межах SLA не передбачено вилучення | Типовий тригер | Відсутність відповіді від реєстратора/хостинг-провайдера протягом прийнятного часу |
| Сайт з великим обсягом реклами / платних оголошень | Негайний тригер | Платна реклама означає, що ми діємо, не чекаючи на завершення бюрократичних процедур |
Ширший погляд
Криптоекосистема зазнає втрат мільярди доларів на рік до фішингу. Історично захист завжди мав реактивний характер. Програма PhishDestroy створена для того, щоб запровадити активне втручання у цей цикл.
Ми не працюємо в таємниці. Ми оприлюднюємо нашу методологію. Ми пояснюємо наші методи. Ми документуємо фішингові набори, які аналізуємо. Спільнота фахівців з безпеки заслуговує на те, щоб самостійно оцінювати методи боротьби з фішингом, а не просто користуватися послугами типу «чорного ящика».

Що ви можете зробити
- Звіт подати до «Безпечний перегляд» від Google, PhishTank, а також реєстратор доменів
- Надішліть це нам — ми надаємо пріоритет активним загрозам із високим рівнем активності
- Перевірити наша база даних з анатомії щоб зрозуміти, на що ви дивитеся
- Поширюйте інформацію — більшість жертв не знають, як виглядає фішингова сторінка, що вимагає введення «сіменної фрази», доки не стає занадто пізно
Якщо ви вважаєте, що наповнювати кишені злочинців за рахунок порожніх гаманців є неетичним — це ваша позиція, і ви маєте повне право її дотримуватися. Ми чітко висловили свою позицію.


