Quishing: QR-коды в фейковых счетах — новая любимая техника фишеров
Классический фишинг — «Кликните на ссылку» — почти всегда ловится корпоративными фильтрами и подозрителен для сотрудника. Quishing (от «QR + phishing») обходит и то и другое: письмо содержит только PDF с QR-кодом, а сканирование происходит на личном смартфоне, вне корпоративной защиты.
TL;DR
- QR-фишинг вырос на 146% в Q1 2026, к марту достиг ~18,7 млн атак в месяц.
- Атака: письмо с PDF «Счёт на оплату», внутри — QR-код «Оплатить по СБП». Сканирование смартфоном ведёт на фейковую банковскую страницу.
- Обходит фильтры, потому что большинство антиспам-движков анализируют текст и ссылки, но НЕ изображения (Rspamd issue #3945 открыт с 2021 без реализации).
- Личный смартфон — вне корпоративной MDM/proxy-фильтрации, там нет URL-reputation-чека.
- Защита: технически — OCR/декодер QR в письмах (мы делаем), процессно — «QR из письма сканирую только если ждал именно от этого отправителя».
Как выглядит quishing-атака
Классический сценарий 2026-го — для российского SMB:
- Приходит письмо. Отправитель — «ФНС» / «Ваш банк» / «СБИС» / «Госуслуги» / «поставщик, с которым вы работали». Тема: «Задолженность по НДС», «Требование ФНС», «Электронный счёт от [реальное имя поставщика]».
- Тело письма минимальное или пустое. Основное — PDF-вложение (иногда JPG/PNG).
- В PDF: типовая шапка (герб/логотип), несколько строк текста «оплатите до такого-то числа», крупный QR-код с подписью «Отсканируйте для перехода к оплате».
- Сотрудник открывает PDF на компьютере, но сканирует QR своим смартфоном — потому что оплата же через мобильный банк.
- QR ведёт на страницу, визуально идентичную СБП/Тинькофф/Сбер. Форма ввода реквизитов карты/логина.
- Дальше — либо прямое списание, либо кража кредов для более сложной схемы.
Почему это обходит стандартные фильтры
Rspamd, SpamAssassin, Barracuda, Proofpoint (частично)
Классические антиспам-движки анализируют:
- Заголовки письма (From, Reply-To, DKIM, SPF)
- Текст тела
- URL в теле (проверка по blocklist-ам)
- Хэши вложений (сравнение с базой malware)
- Изредка — контент офисных документов через OLE-tools
Что не анализируется по умолчанию:
- Изображения (визуально не смотрят вообще)
- Содержимое PDF на уровне «где картинка, где текст, что нарисовано»
- QR-коды в изображениях любого типа
Как результат: письмо с одним PDF без ссылок в теле проходит как «безопасное вложение», а внутри — QR ведущий на фейк.
Эволюция техники — 2025 год
Атакующие видят что вендоры добавляют OCR — и придумывают обходы:
Split QR codes
QR разбит на 2 отдельных изображения. По отдельности каждое — не валидный QR, декодеры пропускают. Верстка HTML-письма или PDF собирает их визуально в один QR прямо на экране. Задокументировано Barracuda в августе 2025 в кампании группы Gabagool (фейковый Microsoft password-reset).
Nested QR codes
Вредоносный QR обёрнут вокруг легитимного. Декодер натыкается на внутренний (например, Google.com), считает URL безопасным. Пользовательский сканер смартфона видит внешний контур (mал-URL).
QR из HTML-таблицы
Кампания декабря 2025. QR-код нарисован не картинкой, а HTML-таблицей из цветных ячеек (чёрные и белые <td>). Image-based детекция не срабатывает — картинки как таковой нет. Визуально в почтовом клиенте — тот же QR.
Наш детектор в 2333.ru
Мы декодируем QR-коды из вложений при обработке письма, до передачи в основной pipeline фильтрации:
- Все image-вложения (PNG, JPEG, GIF, BMP, WebP) — прогоняем через
pyzbar(обёртка надlibzbar) для декодирования. - PDF-вложения — через
pdf2image(poppler-utils) конвертируем первые 3 страницы в PNG (150 dpi), потом каждую страницу — в декодер. - Найденные URL добавляем к телу письма как обычные ссылки.
- Дальше работают все стандартные проверки: reputation-blocklist (Spamhaus DBL, OpenPhish, URLhaus), typosquat-детектор, homoglyph, NRD (домен младше 30 дней), несоответствие URL-домена sender-домену.
Лимиты: 5 МБ на вложение (больше — не декодируем, чтобы не подвесить процесс), 3 страницы PDF (обычно QR на первой-второй странице).
В логах сработка выглядит так:
🔗 QR URL найден в Счёт_247.pdf: https://оплата-фнс.ru/pay?id=X7YZ...
ADV-PHISHING score=5 NRD(оплата-фнс.ru,age=3d) |
url-domain-mismatch(оплата-фнс.ru vs фнс.gov.ru)
Что делать сотрудникам — правила
- QR из письма — только если ждали именно от этого отправителя. Пришло «требование ФНС» неожиданно — не сканируйте, зайдите на nalog.gov.ru через закладку.
- Проверяйте URL перед вводом реквизитов. После сканирования смартфон обычно показывает URL до открытия — прочитайте его.
оплата-фнс.ru≠nalog.gov.ru. - Никогда не вводите пароли/коды из СМС на страницах, куда попали через QR. Легитимные банковские страницы через QR почти всегда — только для оплаты по реквизитам, не для авторизации.
- Проверяйте счета через второй канал. Пришёл QR-счёт от «поставщика» — позвоните ему по телефону из договора (не из письма) и уточните.
- Обучите бухгалтерию: реальные счета от известных контрагентов приходят одинаковым образом (одинаковая шапка, стиль). Новый формат — красный флаг.
Российская специфика 2026
По данным Positive Technologies (октябрь 2025), в третьем квартале 2025 зафиксировано 716 306 уникальных QR-кодов в фишинговых кампаниях против российского бизнеса. Основные приманки:
- Госуслуги — «обновление статуса заявления», «требование подтвердить документы»
- ФНС / nalog.gov.ru — «уведомление о задолженности», «требование по НДС» (Silver Fox campaign, регистрация домена 14.09.2025)
- СБП / банки — «электронный счёт для оплаты», часто под конкретным банком клиента (Т-Банк, ВТБ, Альфа-Банк, Сбер)
- СБИС / Диадок — «новый документ в системе», «подпишите электронный акт»
- Wildberries / Ozon — «требование от службы безопасности маркетплейса»
Защитить бухгалтерию от quishing
В 2333.ru QR-декодер включён в дефолте для всех входящих. URL из QR проходят через тот же URL-фильтр, что и обычные ссылки — Spamhaus DBL, OpenPhish, наш NRD и typosquat-детекторы.
Подключить домен