Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PacketPatch — 暗号化トラフィック分類に対する実用的なブラックボックス敵対的パケット生成。最小限のオーバーヘッドと完全なパケット復元可能性を備えています。 | Kitploit
ツール/GitHubGitHub/xuyw-seu/packetpatch
パケットスニッフィングと分析暗号化/復号化ツールネットワークセキュリティプライバシー機械学習論文と研究学習と教育AIセキュリティ敵対的攻撃
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 所属: 东南大学, 紫金山实验室, 天津工业大学, クイーンズ大学, 厦门大学 状態: 採録/審査中 (Elsevier)

概要

PacketPatchは、バイト特徴に基づく暗号化トラフィック分類(Byte-feature-based Encrypted Traffic Classification, B-ETC) モデルに対する敵対的ネットワークパケットを生成する実用的な手法であり、ユーザープライバシーの保護を目的としています。非現実的なホワイトボックス仮定に依存したり過剰なオーバーヘッドを導入する既存手法とは異なり、PacketPatchは厳格なブラックボックス条件下で動作し、リアルタイム性能とパケットの実用性を維持します。

主な特徴

  • ブラックボックス動作: 対象モデルの勾配、パラメータ、学習データへのアクセスは不要
  • ユーザー非依存: 摂動生成は現在のパケット特徴のみに依存し、ユーザー行動履歴は不要
  • リアルタイム効率: 単一フォワードパス生成、パケットあたり平均レイテンシ約10 ms
  • 制御可能な帯域オーバーヘッド: 摂動長は元のパケットサイズの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                        # CLI引数定義
│
├── 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(6GB以上のVRAM、推奨: RTX 3080以上)
  • 32GB以上のシステムメモリ

2. 事前学習モデルとデータセットの準備

PacketPatchはET-BERTをベースとしています。ET-BERTリポジトリから以下をダウンロードしてください。

  • pretrained_model.bin — ET-BERT事前学習重み
  • encryptd_vocab.txt — バイトペアエンコーディング用語彙ファイル

データセット: 3つの公開データセットで評価しています。ダウンロードリンクと前処理手順についてはdataset/README.mdを参照してください。

データセットクラス数シナリオ
ISCX-TOR16Tor匿名トラフィック
ISCX-VPN11VPN暗号化トンネル
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ランダムパディングベースライン

学習タスク

PacketPatchのPatchGeneratorは、2つの自己教師ありタスクで学習されます。

SCP(Same Category Prediction)

2つの入力パケットが同じトラフィックカテゴリに属するかどうかを判定します。これにより、モデルに識別的特徴抽出能力が備わります。

損失: バイナリクロスエントロピー

Span-MBM(Span Masked Byte Modeling)

双方向コンテキストを使用して、連続するマスクされたバイトスパンを再構築します。これにより、モデルにコンテキスト認識型のバイトシーケンス生成能力が備わります。

損失: 負の対数尤度 合計損失: Loss = Loss_SCP + Loss_Span-MBM

結果概要

防御効果(DSR: Defense Success Rate)

防御効果

時間オーバーヘッド

段階時間(ms/パケット)
パケット前処理0.054
摂動生成9.626
パケット再構築0.398
合計10.078

PacketPatchは、厳格なブラックボックス仮定の下で、以下のホワイトボックスベースライン手法を上回ります。

ベースライン手法との比較

引用

研究で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ファイルを参照してください。

連絡先

質問やお問い合わせは、対応著者まで連絡するか、GitHubでIssueを開いてください。

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

謝辞

このプロジェクトはET-BERTフレームワークを基盤としており、事前学習モデルとUER(Universal Encoder Representations)学習フレームワークを提供しています。ET-BERTの著者の貴重な貢献に感謝します。

ツールをダウンロード