
33
Ты сканируешь QR-код на парковочном автомате, в меню кафе, в письме от “банка” – и за долю секунды доверяешь непонятной последовательности черных пикселей больше, чем незнакомцу на улице. Именно на этой иррациональной доверчивости построена целая индустрия атак, которую индустрия скромно назвала “quishing” (QR + phishing). Разберём, как это работает под капотом и как это ловить форензику.
Почему квадратик обманывает даже опытных
QR-код – это не “ссылка”, это контейнер произвольных данных: URL, deep-link в приложение, vCard, Wi-Fi конфиг или просто текст. Человеческий глаз не может декодировать матрицу, поэтому мы вынуждены слепо доверять сканеру. Это же свойство обожают злоумышленники: вредоносный URL существует только как закодированные пиксели изображения – он невидим для текстовых антифишинговых сканеров, которые ищут паттерны в теле письма.
Масштаб проблемы за последние два-три года вырос кратно:
Арсенал атакующего: не только “ссылка на фишинг”
Классический quishing
Самый примитивный вариант: QR ведёт на клон страницы логина (банк, почта, корпоративный SSO). Жертва сканирует телефоном, попадает на страницу вне защищённого корпоративного браузера – и вот тут кроется главная подлость: сканирование происходит на личном мобильном устройстве, где нет ни EDR, ни корпоративного веб-фильтра. Атака физически “выходит” за периметр защиты компании.
Обход браузерной изоляции (Mandiant)
Исследователи Mandiant показали PoC, где атакующий сервер зашивает команды прямо в QR-код. Пользователь сканирует его с мобильного – и устройство инициирует связь с C2-сервером атакующего, полностью минуя изолированный браузер на рабочей станции. Изоляция браузера защищает десктоп, но не защищает от того, что происходит после сканирования телефоном.
Split и nested QR-коды
В 2025 году Barracuda зафиксировала кампании, где вредоносная нагрузка фрагментируется между несколькими QR-кодами или “накладывается” одна матрица на другую (nested), чтобы обмануть автоматические сканеры безопасности, которые ждут один цельный, легко читаемый паттерн.
QR как вектор SQL-инъекции в offline-системах
Это уже не про фишинг, а про физическую безопасность. Kaspersky обнаружил уязвимости (CVE-2023-3938, CVE-2023-3942) в китайских биометрических системах контроля доступа: злоумышленник кодирует в QR произвольные данные, а терминал вставляет их в SQL-запрос без санитайзинга. Итог – либо несанкционированный доступ (система “думает”, что это последний авторизованный пользователь), либо утечка данных из базы через инъекцию, либо перезагрузка устройства при переполнении payload’а.
Обход детекторов через кодировку
Интересный трюк: 67.6% вредоносных QR в письмах доставляются как обычные изображения, но 32.4% собираются из unicode-символов, имитирующих визуальный паттерн QR – это ломает многие сигнатурные анализаторы, которые ищут именно растровое изображение.
Методология форензик-разбора: как ловить квадратик за руку
Когда к тебе на стол попадает подозрительный QR (из письма, ПДФ, скрина, физической наклейки) – вот пошаговый чек-лист, а не “просканируй телефоном и молись”.
Изоляция и извлечение. Никогда не сканируй подозрительный QR личным телефоном с активным Wi-Fi/мобильными данными. Извлекай изображение программно: pdfimages для PDF-вложений, zbarimg для быстрого декода, CyberChef для более глубокого разбора кодировки данных.
Декодирование без выполнения. Получи raw-содержимое (обычно URL) без захода по ссылке. На этом этапе смотри тип payload: обычный HTTPS URL, deep-link в приложение, JSON или plaintext – это сразу сужает вектор атаки.
Анализ через сэндбокс. Инструменты типа ANY.RUN или Joe Sandbox автоматически детектируют QR внутри файлов, извлекают URL и открывают его в изолированной виртуалке, эмулируя реальный клик – так ты видишь редиректы, фингерпринтинг устройства и итоговый лендинг без риска для боевой машины.
Разбор цепочки редиректов. Атакующие обожают URL-шортенеры и множественные редиректы, чтобы спрятать финальный домен и обойти репутационные фильтры. Трассируй каждый прыжок отдельно, фиксируй все промежуточные домены – это твои будущие индикаторы компрометации (IOC).
Оценка “возраста” инфраструктуры. Quishing-кампании часто разворачиваются на свежезарегистрированной инфраструктуре, из-за чего до 80% таких атак не детектируются классическими антифишинговыми движками при первом контакте, по данным Cyble – даже явно вредоносный PDF с QR может дать ноль детектов на VirusTotal [web:5]. Проверяй WHOIS, дату регистрации домена и SSL-сертификата – молодой домен под “банк с 100-летней историей” – это уже железный маркер.
Контекстный, а не только технический анализ. Современные защитные системы (например, подход Inception Cyber NACE) уже не гоняются за ссылкой внутри QR, а анализируют семантику и тон самого письма-носителя – тему, срочность формулировок, паттерны социальной инженерии – потому что домен назначения легко подменить, а психологический триггер “срочно подтвердите” остаётся неизменным маркером атаки.
Что забирать с собой
QR-код – это не угроза сам по себе, а идеальный слепой угол существующих защитных механизмов: он невидим для текстовых фильтров, выводит атаку на неконтролируемое мобильное устройство и легко маскируется фрагментацией или юникод-имитацией. Форензику здесь нужно смотреть не только на “куда ведёт ссылка”, а на весь контекст доставки – файл-носитель, инфраструктуру домена и социальную инженерию вокруг сканирования.
Практический вывод для тебя как для практика: если работаешь с входящими QR (в рамках инцидент-респонса или пентеста), всегда декодируй программно, никогда – личным устройством с боевой сим-картой. И да, если ты решишь потренироваться генерировать “тестовые” вредоносные QR для клиентской пентест-программы – делай это только в рамках подписанного договора и scope. Не повторяйте это дома, я серьезно.