Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PacketPatch — 암호화된 트래픽 분류에 대한 실용적인 블랙박스 적대적 패킷 생성: 최소 오버헤드 및 완전한 패킷 복구 가능. | Kitploit
도구/GitHubGitHub/xuyw-seu/packetpatch
Packet Sniffing & AnalysisEncryption/Decryption ToolsNetwork SecurityPrivacyMachine LearningPapers & ResearchLearning & EducationAI SecurityAdversarial Attack
GitHubxuyw-seu/packetpatch

PacketPatch

암호화된 트래픽 분류에 대한 실용적인 블랙박스 적대적 패킷 생성: 최소 오버헤드 및 완전한 패킷 복구 가능.

712개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

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) 모델에 대한 적대적 네트워크 패킷을 생성하는 실용적인 기법입니다. 비현실적인 화이트박스 가정에 의존하거나 과도한 오버헤드를 유발하는 기존 방법과 달리, PacketPatch는 실시간 성능과 패킷 사용성을 유지하면서 엄격한 블랙박스 조건에서 작동합니다.

주요 특징

  • 블랙박스 작동: 대상 모델의 그래디언트, 파라미터 또는 학습 데이터에 접근할 필요 없음
  • 사용자 무관: 교란 생성은 현재 패킷 특징에만 의존하며, 사용자 행동 기록 불필요
  • 실시간 효율성: 단일 순방향 전파 생성, 패킷당 평균 지연 시간 ~10ms
  • 제어 가능한 대역폭 오버헤드: 교란 길이가 원본 패킷 크기의 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                          # Project overview (this file)
├── LICENSE                            # MIT License
├── requirements.txt                   # Python dependencies
├── bert_base_config.json              # BERT model configuration (12 layers, 768-dim, 12 heads)
│
├── packet_adv/                        # ★ Core experimental code
│   ├── README.md                      # Usage guide for core modules
│   ├── adv_fine_tuning_cls.py         # Step 1: Train PatchGenerator (SpanBERT)
│   ├── generate.py                    # Step 2: Generate adversarial packets
│   └── gen_onnx.py                    # Step 3 (optional): ONNX/TensorRT acceleration
│
├── uer/                               # UER (Universal Encoder Representations) framework
│   ├── README.md                      # Framework documentation
│   ├── encoders/                      # Encoder implementations (Transformer, RNN, CNN)
│   ├── layers/                        # Network layers (Embedding, Attention, FFN)
│   ├── targets/                       # Training targets (MLM, NSP, Span-MBM, etc.)
│   ├── models/                        # Model definition
│   ├── utils/                         # Utilities (tokenizers, optimizers, data loading)
│   ├── model_builder.py               # Model construction
│   ├── model_loader.py                # Pretrained weight loading
│   ├── model_saver.py                 # Model checkpoint saving
│   ├── trainer.py                     # Training loop implementation
│   └── opts.py                        # CLI argument definitions
│
├── dataset/                           # Dataset documentation
│   └── README.md                      # Dataset descriptions, download links, preprocessing
│
├── image/                             # Architecture and result figures
│   └── README.md                      # Figure descriptions
│
└── tools/                             # Utility tools
    └── README.md                      # Tool descriptions and usage

빠른 시작

1. 환경 설정

root@kitploit:~
# Clone this repository
git clone https://github.com/your-org/PacketPatch.git
cd PacketPatch

# Install dependencies
pip install -r requirements.txt

요구 사항:

  • Python 3.7+
  • NVIDIA GPU with ≥6GB VRAM (권장: RTX 3080 이상)
  • 32GB 이상의 시스템 메모리

2. 사전 학습 모델 및 데이터셋 준비

PacketPatch는 ET-BERT를 기반으로 구축되었습니다. ET-BERT 저장소에서 다음을 다운로드하세요:

  • pretrained_model.bin — ET-BERT 사전 학습 가중치
  • encryptd_vocab.txt — 바이트 쌍 인코딩을 위한 어휘 파일

데이터셋: 세 가지 공개 데이터셋으로 평가합니다. 다운로드 링크와 전처리 지침은 dataset/README.md를 참조하세요.

데이터셋클래스시나리오
ISCX-TOR16Tor 익명 트래픽
ISCX-VPN11VPN 암호화 터널
USTC20악성코드 + 정상 트래픽

3. PatchGenerator 학습

root@kitploit:~
cd packet_adv

# Edit adv_fine_tuning_cls.py first:
#   - Update dataset paths (lines 47-50)
#   - Update pretrained model path (lines 73-75)
#   - Set correct num_classes (line 56)
#   - Set correct training set size (line 878)

python adv_fine_tuning_cls.py

학습된 체크포인트는 지정된 로그 디렉터리(예: span_2seg_cls_log/)에 저장됩니다.

4. 적대적 패킷 생성

root@kitploit:~
cd packet_adv

# Edit generate.py first:
#   - Update test data paths (lines 42-44)
#   - Update --load_model_path to your trained checkpoint (line 68-69)
#   - Set BWO (bandwidth overhead ratio, line 60, default 0.1)
#   - Choose generation strategy via 'fun' parameter (line 50)

python generate.py

5. (선택 사항) TensorRT를 이용한 모델 가속화

root@kitploit:~
cd packet_adv

# Edit gen_onnx.py first:
#   - Update model checkpoint path (line 132)
#   - Update output paths (lines 145, 207)
#   - Select precision mode: 'fp16' or 'int8' (line 21)

python gen_onnx.py

주요 구성 매개변수

생성 전략 (fun 매개변수)

학습 과제

PacketPatch의 PatchGenerator는 두 가지 자기 지도 학습 과제로 학습됩니다:

SCP (동일 카테고리 예측, Same Category Prediction)

두 입력 패킷이 동일한 트래픽 카테고리에 속하는지 판단합니다. 이를 통해 모델은 구별적 특징 추출 능력을 갖추게 됩니다.

손실: 이진 교차 엔트로피

Span-MBM (스팬 마스크 바이트 모델링, Span Masked Byte Modeling)

양방향 컨텍스트를 사용하여 연속적인 마스킹된 바이트 스팬을 재구성합니다. 이를 통해 모델은 컨텍스트 인식 바이트 시퀀스 생성 능력을 갖추게 됩니다.

손실: 음의 로그 우도 전체 손실: Loss = Loss_SCP + Loss_Span-MBM

결과 요약

방어 효과 (DSR: 방어 성공률)

방어 효과

시간 오버헤드

단계시간 (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에 이슈를 열어 주세요.

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

감사의 말

이 프로젝트는 사전 학습 모델과 UER(Universal Encoder Representations) 학습 프레임워크를 제공하는 ET-BERT 프레임워크를 기반으로 구축되었습니다. ET-BERT 저자분들의 소중한 기여에 감사드립니다.

도구 다운로드
매개변수파일라인설명기본값
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
전략설명
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랜덤 패딩 기준선