QR-LAB Лаборатория ИБ · Red Team

КИБЕРБЕЗОПАСНОСТЬ:
Исследование уязвимости к атакам типа Quishing (QR-фишинг)

Визуально человек не способен определить, куда ведёт матричный QR-код, а спам-фильтры не видят вредоносную ссылку внутри графического изображения. Мы смоделировали полный цикл атаки Red Team в городской и школьной среде, разработали собственный Python-генератор кодов и создали интерактивный инструментарий аудита цифровой гигиены.

Автор исследования Дюдяева Валерия, 10 класс
Научный руководитель Суконникова Т. А., учитель информатики
Образовательный центр ГБОУ СОШ «ОЦ «Южный город», пос. Придорожный
Кибермошенничество — обман в сети с целью кражи данных и средств
Схема перехвата трафика при сканировании QR-кода
Тестовый QR-код учебной ловушки
Наведите камеру смартфона Живой стенд Quishing-перехвата Ведёт на демонстрационную страницу-ловушку qrlab.ksensors.com/poll из полевого эксперимента
Теория и векторы угроз

Почему QR-код стал слепой зоной цифровой безопасности

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

Проблема исследования

Критически низкий уровень осведомлённости граждан и школьников о векторе атаки через подмену QR-кодов в физическом пространстве и электронных письмах.

Рабочая гипотеза (подтверждена)

Использование методов социальной инженерии (визуальное брендирование и контекст социального опроса) притупляет бдительность и обеспечивает конверсию переходов выше 30% даже в недоверенной уличной среде.

Векторы атак и скрытая нагрузка (Payload)

  • QRLjacking (угон сессии авторизации)

    Атака на механизм входа по QR-коду в мессенджерах и госсервисах: жертва сканирует подменённый код злоумышленника и сама передаёт ему активный токен своего аккаунта.

  • Перенаправление на фишинговые шлюзы

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

  • Скрытая загрузка вредоносного ПО (Drive-by Download)

    Прямая ссылка в QR-коде инициирует автоматическое скачивание установочного пакета .apk (Android) или .exe (Windows) с трояном удалённого доступа.

Психология социальной инженерии: на чём ловят жертву

Успех Quishing-атак строится не на программном взломе, а на эксплуатации трёх базовых когнитивных искажений человека:

Триггер №1 · Срочность Искусственный дефицит времени

Формулировки «Акция действует 5 минут» или «Срочно подтвердите аккаунт» вызывают стресс и отключают аналитическую проверку URL-адреса.

Триггер №2 · Жадность (Выгода) Обещание лёгкого вознаграждения

Призывы «Отсканируй и получи приз / бонус / быстрый заработок». В нашем исследовании на этот триггер согласились 80% опрошенных семиклассников.

Триггер №3 · Любопытство Интрига и социальная вовлечённость

Размещение интригующих кодов или «городских опросов» в общественных местах (остановки транспорта). Именно этот вектор принёс 43 реальных перехода в полевом эксперименте.

Техническая лаборатория · Red Team

Автоматизированный генератор QR-ловушек (Python + Live Стенд)

Публичные онлайн-сервисы генерации QR-кодов накладывают рекламные баннеры, ограничивают срок жизни ссылки и редко позволяют тонко управлять избыточностью матрицы Рида — Соломона. Для чистоты полевого эксперимента Валерия разработала собственный скрипт на языке Python с использованием библиотек qrcode и Pillow (PIL).

generate_malicious_qr.py
import qrcode
from PIL import Image

def generate_malicious_qr(target_url, filename="trap_qr.png"):
    """
    Функция для генерации QR-кода, имитирующего безопасную ссылку.
    Эмулирует инструмент создания фишинговых ловушек (Red Team).
    """
    # Настройка параметров QR-кода (Высокая избыточность 30%)
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=10,
        border=4,
    )

    qr.add_data(target_url)
    qr.make(fit=True)

    # Создание изображения матрицы
    img = qr.make_image(fill_color="black", back_color="white").convert('RGB')

    # Добавление логотипа в центр (симуляция брендирования)
    # logo = Image.open('bank_logo.png')
    # pos = ((img.size[0] - logo.size[0]) // 2, (img.size[1] - logo.size[1]) // 2)
    # img.paste(logo, pos)

    img.save(filename)
    print(f"[+] QR-код сгенерирован и сохранен как {filename}")
    print(f"[+] Целевая ссылка (Payload): {target_url}")

# Пример запуска (ссылка на экспериментальную ловушку):
target = "https://qrlab.ksensors.com/poll"
generate_malicious_qr(target)
Уровень коррекции ERROR_CORRECT_H (30%) Позволяет перекрыть центральную часть QR-кода логотипом банка, Госуслуг или школьного портала без потери считываемости камерой смартфона.
Маскировка целевого Payload Человек видит знакомый зелёный или синий логотип в центре, но сканер считывает внешние модули матрицы и ведёт на сторонний логгер.

Интерактивный стенд: проверьте работу алгоритма

Выберите сценарий полезной нагрузки (Payload), уровень коррекции ошибок и брендирование центрального модуля:

Сгенерированный QR-код
ОПРОС
Зашифрованный URL: https://qrlab.ksensors.com/poll
Статус чтения со смартфона: ✓ Чтение 100% стабильно (избыточность 30% покрывает логотип)
Психологический вектор: Любопытство + доверие к зелёной цветовой схеме
Симулировать переход жертвы по этому QR →
Натурный эксперимент

Исследование уязвимости: 43 перехода на остановке и тестирование школьников

Чтобы проверить гипотезу о том, насколько легко люди сканируют непроверенные QR-коды в повседневной жизни, был проведён двухэтапный эксперимент по методологии этичного взлома (Red Teaming) без сбора персональных данных и паролей.

1. Подготовка стенда Python

Генерация приманки и опросника

Создана тестовая страница с нейтральным опросом и сгенерирован кастомный QR-код на Python с высоким уровнем коррекции ошибок (Level H, 30%), ведущий на демонстрационную страницу-ловушку.

2. Размещение на остановке 43 скана

Листовка уличного опроса (3 месяца)

Листовка с призывом «Пройдите наш опрос, нам важно ваше мнение!» была размещена на обычной автобусной остановке. За 3 месяца зафиксировано 43 реальных перехода случайных прохожих.

3. Тестирование школьников 80% риск

Аудит учащихся 7 класса

Проведено анкетирование среди учащихся 7-го класса ГБОУ СОШ «ОЦ «Южный город». Около 80% опрошенных показали результат 30% и ниже — они не знают о рисках Quishing-атак.

Сценарий №1 · Уличная ловушка

Симулятор листовки с автобусной остановки

Отсканируйте QR-код камерой смартфона или нажмите кнопку ниже, чтобы увидеть страницу «Городского экспресс-опроса» глазами тех самых 43 прохожих.

Открыть страницу /poll →
QR-код симулятора опроса на остановке /poll · Level H
Сценарий №2 · Email Quishing

Симулятор «Бонусного сертификата»

Демонстрация корпоративной и школьной атаки через электронную почту: QR-код внутри письма обходит спам-фильтры и ведёт на страницу приза с таймером.

Открыть страницу /bonus →
QR-код симулятора бонусного сертификата /bonus · Level H

Архивные фотоматериалы школьного тестирования (2025–2026)

Результаты первичного компьютерного тестирования учащихся 7 класса до проведения разъяснительной лекции

Результат тестирования 30 процентов - высокая уязвимость
Типичный результат (80% выборки): 30%

Большинство семиклассников доверяют визуальному оформлению плаката и не проверяют доменное имя перед переходом по QR-ссылке.

Результат тестирования 80 процентов - высокий уровень кибергигиены
Продвинутый уровень (20% выборки): 80%

Лишь каждый пятый ученик обращает внимание на наклеенные поверх стендов стикеры и отказывается вводить учётные данные после сканирования.

Интерактивное тестирование · Нативная версия

Проверьте свой индекс QR-бдительности

Пройдите обновлённую версию авторского теста Валерии Дюдяевой без сторонней рекламы и сравните свой результат с показателями школьного эксперимента.

Вопрос 1 из 6 Верных ответов: 0

Загрузка вопроса...

Почтовый тренажёр и защита

Интерактивный симулятор почтовых Quishing-атак

Как этичные исследователи и «белые хакеры» проверяют защищённость пользователей с помощью почтовых рассылок, обходящих спам-фильтры через QR-код, и какие правила цифровой гигиены сохранят ваши данные.

$1 300 000

Кейс: Взлом криптокошелька inputs.io (4 100 BTC)

В 2013 году хакеры использовали социальную инженерию и компрометацию учётных записей электронной почты для обхода двухфакторной аутентификации, похитив 4 100 биткойнов (около 1,3 млн долларов на момент атаки).

$3 200 000

Кейс: Ежедневное списание по $17 000 через уязвимость

Использование скрытых эксплойтов и автоматизированных скриптов позволило злоумышленнику незаметно выводить до $17 000 ежедневно со счетов американского банка, пока сумма ущерба не превысила 3,2 млн долларов.

Иллюстрация киберзащиты из буклета Валерии Дюдяевой

Человеческий фактор остаётся главной мишенью кибератак

Памятка Blue Team: 6 правил защиты от Quishing-атак

01

Проверяйте табличку на физическую подмену Убедитесь, что поверх оригинального QR-кода в кафе, паркомате или на остановке не наклеен сторонний стикер.

02

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

03

Никаких паролей и СМС-кодов по QR Официальные городские опросы, меню ресторанов и бонусные программы никогда не требуют ввода пароля от банка или Госуслуг.

04

Осторожно с QR-кодами в электронных письмах Если письмо требует срочно отсканировать код с экрана компьютера телефоном — проверьте отправителя и позвоните в организацию.

05

Не верьте обещаниям лёгкой выгоды и «бонусов» Обещания мгновенных грантов, выигрышей и скидок в 90% по QR-коду — главный инструмент социальной инженерии мошенников.

06

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

Экстренное предупреждение 102

Что делать, если вы стали жертвой мошенников?

1. Немедленно заблокируйте банковскую карту в мобильном приложении и позвоните на горячую линию вашего банка.
2. Смените пароли и завершите активные сессии в настройках безопасности аккаунта.
3. Обратитесь в полицию по единому номеру 102 (или 112 с мобильного телефона).

📞 Экстренно: 102
Made on
Tilda