Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/xuyw-seu/packetpatch
Сниффинг и анализ пакетовИнструменты шифрования/дешифрованияСетевая безопасностьКонфиденциальностьМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИСостязательная Атака
GitHubxuyw-seu/packetpatch

PacketPatch

Практическая генерация состязательных пакетов в режиме чёрного ящика для атак на классификацию зашифрованного трафика с минимальными накладными расходами и полной восстанавливаемостью пакетов.

7172 месяцев назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PacketPatch: Практическая генерация и развертывание состязательных пакетов для классификации зашифрованного трафика на основе байтовых признаков

Статья: PacketPatch: Practical Generation and Deployment of Adversarial Packets for Byte-Feature-Based Encrypted Traffic Classification Авторы: Yuwei Xu, Yuanyuan Xu, Yunpeng Bai, Jiahui Chen, Kehui Song, Jie Cao, Qiao Xiang, Guang Cheng Организации: Southeast University, Purple Mountain Laboratories, Tiangong University, Queen's University, Xiamen University Статус: Принято / На рассмотрении (Elsevier)

Обзор

PacketPatch — это практический метод генерации состязательных сетевых пакетов для моделей классификации зашифрованного трафика на основе байтовых признаков (B-ETC), направленный на защиту конфиденциальности пользователей. В отличие от существующих подходов, которые полагаются на нереалистичные предположения white-box или вносят чрезмерные накладные расходы, PacketPatch работает в строгих условиях black-box, сохраняя производительность в реальном времени и пригодность пакетов.

Ключевые особенности

  • Работа в режиме black-box: не требуется доступа к градиентам, параметрам или обучающим данным целевой модели
  • Независимость от пользователя: генерация возмущений основана исключительно на признаках текущего пакета, без истории поведения пользователя
  • Работа в реальном времени: один прямой проход сети, средняя задержка ~10 мс на пакет
  • Контролируемые накладные расходы пропускной способности: длина возмущения ≤ 10% от исходного размера пакета
  • Валидность и восстанавливаемость пакетов: симметричная прокси-архитектура гарантирует прохождение пакетами проверок целостности и их полное восстановление на стороне получателя
  • Архитектура

    Архитектура

    Работа PatchGenerator

    1. Подготовка входных данных: отделение заголовка пакета от полезной нагрузки; подготовка токенов [MASK] (длина = 10% размера пакета)
    2. Построение последовательности: сборка [CLS] + заголовок + Pad1 + [SEP] + random_header(hr) + Pad2 + полезная нагрузка
    3. Генерация возмущения: один прямой проход BERT → распределения вероятностей по словарю
      • Pad1 → arg min (максимально нарушает исходные признаки)
      • Pad2 → arg max (генерирует признаки, согласованные со случайным заголовком)
    4. Сборка вектора: итоговое возмущение v = Pad1 + hr + Pad2

    Структура репозитория

    root@kitploit:~
    PacketPatch/
    ├── README.md                          # Обзор проекта (этот файл)
    ├── LICENSE                            # Лицензия MIT
    ├── requirements.txt                   # Зависимости Python
    ├── bert_base_config.json              # Конфигурация модели BERT (12 слоёв, 768-мерность, 12 голов)
    │
    ├── packet_adv/                        # ★ Основной экспериментальный код
    │   ├── README.md                      # Руководство по использованию основных модулей
    │   ├── adv_fine_tuning_cls.py         # Шаг 1: Обучение PatchGenerator (SpanBERT)
    │   ├── generate.py                    # Шаг 2: Генерация состязательных пакетов
    │   └── gen_onnx.py                    # Шаг 3 (опционально): Ускорение ONNX/TensorRT
    │
    ├── uer/                               # Фреймворк UER (Universal Encoder Representations)
    │   ├── README.md                      # Документация фреймворка
    │   ├── encoders/                      # Реализации кодировщиков (Transformer, RNN, CNN)
    │   ├── layers/                        # Слои сети (Embedding, Attention, FFN)
    │   ├── targets/                       # Цели обучения (MLM, NSP, Span-MBM и др.)
    │   ├── models/                        # Определение модели
    │   ├── utils/                         # Утилиты (токенизаторы, оптимизаторы, загрузка данных)
    │   ├── model_builder.py               # Построение модели
    │   ├── model_loader.py                # Загрузка предобученных весов
    │   ├── model_saver.py                 # Сохранение контрольных точек модели
    │   ├── trainer.py                     # Реализация цикла обучения
    │   └── opts.py                        # Определение аргументов командной строки
    │
    ├── dataset/                           # Документация наборов данных
    │   └── README.md                      # Описания наборов данных, ссылки для скачивания, предобработка
    │
    ├── image/                             # Рисунки архитектуры и результатов
    │   └── README.md                      # Описания рисунков
    │
    └── tools/                             # Вспомогательные инструменты
        └── README.md                      # Описания инструментов и их использование
    

    Быстрый старт

    1. Настройка окружения

    root@kitploit:~
    # Клонировать репозиторий
    git clone https://github.com/your-org/PacketPatch.git
    cd PacketPatch
    
    # Установить зависимости
    pip install -r requirements.txt
    

    Требования:

    • Python 3.7+
    • NVIDIA GPU с видеопамятью ≥6 ГБ (рекомендуется: RTX 3080 или выше)
    • 32+ ГБ системной памяти

    2. Подготовка предобученной модели и наборов данных

    PacketPatch построен поверх ET-BERT. Загрузите следующие файлы из репозитория ET-BERT:

    • pretrained_model.bin — предобученные веса ET-BERT
    • encryptd_vocab.txt — файл словаря для кодирования пар байтов

    Наборы данных: Мы проводим оценку на трёх общедоступных наборах. Ссылки для скачивания и инструкции по предобработке см. в dataset/README.md.

    Набор данныхКлассыСценарий
    ISCX-TOR16Анонимный трафик Tor
    ISCX-VPN11Зашифрованные туннели VPN
    USTC20Вредоносный + легитимный трафик

    3. Обучение PatchGenerator

    root@kitploit:~
    cd packet_adv
    
    # Сначала отредактируйте adv_fine_tuning_cls.py:
    #   - Обновите пути к наборам данных (строки 47-50)
    #   - Обновите путь к предобученной модели (строки 73-75)
    #   - Установите правильное num_classes (строка 56)
    #   - Установите правильный размер обучающего набора (строка 878)
    
    python adv_fine_tuning_cls.py
    

    Обученная контрольная точка будет сохранена в указанной директории логов (например, span_2seg_cls_log/).

    4. Генерация состязательных пакетов

    root@kitploit:~
    cd packet_adv
    
    # Сначала отредактируйте generate.py:
    #   - Обновите пути к тестовым данным (строки 42-44)
    #   - Обновите --load_model_path, указав путь к обученной контрольной точке (строка 68-69)
    #   - Установите BWO (коэффициент накладных расходов пропускной способности, строка 60, по умолчанию 0.1)
    #   - Выберите стратегию генерации через параметр 'fun' (строка 50)
    
    python generate.py
    

    5. (Опционально) Ускорение модели с помощью TensorRT

    root@kitploit:~
    cd packet_adv
    
    # Сначала отредактируйте gen_onnx.py:
    #   - Обновите путь к контрольной точке модели (строка 132)
    #   - Обновите пути вывода (строки 145, 207)
    #   - Выберите режим точности: 'fp16' или 'int8' (строка 21)
    
    python gen_onnx.py
    

    Ключевые параметры конфигурации

    ПараметрФайлСтрокаОписаниеПо умолчанию
    BWOgenerate.py60Коэффициент накладных расходов пропускной способности0.1 (10%)
    fungenerate.py50Стратегия генерации'fun5'
    n_epochsadv_fine_tuning_cls.py53Количество эпох обучения50
    batch_sizeadv_fine_tuning_cls.py54Размер батча32
    num_classesadv_fine_tuning_cls.py56Количество классов трафикаЗависит от набора данных
    learning_rateadv_fine_tuning_cls.py94-95Скорость обучения2e-5
    seq_lengthadv_fine_tuning_cls.py92-93Длина входной последовательности256

    Стратегии генерации (параметр fun)

    СтратегияОписание
    fun1Один сегмент, выбор argmin
    fun2Два сегмента, оба argmax
    fun3Два сегмента, фиксированное деление 50/50, Pad1 argmin + Pad2 argmax
    fun4Два сегмента, случайное деление, Pad1 argmin + Pad2 argmax
    fun5 (по умолчанию)Два сегмента со случайным фиктивным заголовком, Pad1 argmin + Pad2 argmax
    fun6Два сегмента с фиктивным заголовком, стратегия с управлением NSP
    randomСлучайный базовый метод
    random_dummy_headБазовый метод со случайной заменой заголовка
    random_padБазовый метод со случайным дополнением

    Задачи обучения

    PatchGenerator обучается с помощью двух самоконтролируемых задач:

    SCP (Same Category Prediction)

    Определяет, принадлежат ли два входных пакета к одной категории трафика. Это даёт модели способность извлекать дискриминативные признаки.

    Функция потерь: Бинарная кросс-энтропия

    Span-MBM (Span Masked Byte Modeling)

    Реконструирует последовательные маскированные диапазоны байтов, используя двунаправленный контекст. Это даёт модели способность генерировать последовательности байтов с учётом контекста.

    Функция потерь: Отрицательное логарифмическое правдоподобие Общая ошибка: Loss = Loss_SCP + Loss_Span-MBM

    Сводка результатов

    Эффективность защиты (DSR: коэффициент успешной защиты)

    Эффективность защиты

    Временные накладные расходы

    ЭтапВремя (мс/пакет)
    Предобработка пакета0.054
    Генерация возмущения9.626
    Восстановление пакета0.398
    Итого10.078

    PacketPatch превосходит следующие базовые методы white-box в строгих предположениях black-box:

    Сравнение с базовыми методами

    Цитирование

    Если вы используете PacketPatch в своих исследованиях, пожалуйста, процитируйте нашу статью:

    root@kitploit:~
    @article{xu2025packetpatch,
        title = {PacketPatch: Practical Generation and Deployment of Adversarial Packets for Byte-Feature-Based Encrypted Traffic Classification},
        author = {Yuwei Xu and Yuanyuan Xu and Yunpeng Bai and Jiahui Chen and Kehui Song and Jie Cao and Qiao Xiang and Guang Cheng},
        journal = {Elsevier},
        year = {2025},
    }
    

    Лицензия

    Этот проект распространяется под лицензией MIT — подробнее см. в файле LICENSE.

    Контакты

    По вопросам и запросам обращайтесь к соответствующему автору или создайте issue на GitHub.

    • Yuwei Xu — [email protected]
    • Yuanyuan Xu — [email protected]

    Благодарности

    Этот проект построен на фреймворке ET-BERT, который предоставляет предобученную модель и среду обучения UER (Universal Encoder Representations). Мы благодарим авторов ET-BERT за их ценный вклад.

    Скачать инструмент