MACHINE LEARNINGCompleted

암호화 네트워크 트래픽 분류 시스템 (캡스톤)

플로우 행동 기반 신규 특징 6개를 정의하고 ML 분류 파이프라인과 인터랙티브 웹 데모를 구현한 캡스톤 디자인 프로젝트. 기존 연구 대비 특징 수 59% 감소, F1 +9.4%p 향상.

📅 December 10, 2025
Pythonscikit-learnXGBoostMachine LearningNetwork SecurityFeature EngineeringStreamlit

프로젝트 개요

암호화 트래픽은 페이로드를 직접 분석할 수 없기 때문에, 패킷 메타데이터(길이, 방향, 타이밍 등)를 기반으로 분류해야 합니다. 기존 연구들이 많은 수의 특징을 사용하는 문제에서 출발해, 플로우 행동 관점의 신규 특징 6개를 설계하고 기존 연구들과 성능을 비교했습니다.

연구 결과는 전자파학회 동계 학술대회 학부생 발표 세션에서 발표되었습니다.

핵심 성과: 기존 연구(32개 특징, F1 71.5%) 대비 13개 특징으로 F1 80.9% 달성 (+9.4%p)

$

기술 스택

Pythonscikit-learnXGBoostPandasMatplotlibStreamlitWireshark / pcap

구현 내용

1. 신규 특징 6개 설계

기존 연구(Anderson & McGrew 2016, Draper-Gil et al. 2016)의 특징셋을 분석한 뒤, 단순 통계가 아닌 플로우 행동 특성을 반영한 신규 특징을 정의했습니다.

특징명수식의미
Burstiness Index (BI)σ(IAT) / μ(IAT)패킷 도착 간격의 변동성
Flow Direction Ratio (FDR)N_fwd / (N_bwd + ε)송수신 비대칭성
Active/Idle Time Ratio (AIR)T_active / (T_idle + ε)통신 지속성
Burstiness Ratio (BR)max(T_active) / μ(T_active)순간 트래픽 집중도
Handshake Symmetry (HS)log(W_fwd / (W_bwd + ε))TCP 초기 윈도우 비대칭성
Payload Shape Score (PSS)σ_len / μ_len패킷 길이 분산 패턴

최종 커스텀 특징셋: Baseline 7개 + 신규 6개 = 총 13개

2. ML 분류 파이프라인

$

실험 파이프라인

데이터 레이어
[CIC-IDS 2017][ISCX VPN-nonVPN 2016][pcap → Flow 변환]
특징 추출
[Baseline 7개][신규 특징 6개][기존 연구 특징셋 (비교용)]
ML 모델
[Random Forest][XGBoost][Decision Tree][KNN][L1 Logistic Regression]
결과 분석
[F1 / Accuracy 비교][Feature Importance][시각화]
↓ ↓ ↓

데이터셋 수집 → 특징 추출 → 모델 학습 → 성능 비교 → 특징 중요도 분석

3. 인터랙티브 웹 데모

분류 파이프라인을 직접 조작해볼 수 있는 웹 데모를 구현했습니다.

주요 기능:

  • 데이터셋 선택 또는 pkl 파일 직접 업로드
  • 특징셋 선택 (기존 특징셋 vs 커스텀 특징셋)
  • ML 모델 선택 및 학습 실행
  • Accuracy, Precision, Recall, F1 시각화
  • Feature Importance 차트

실험 결과

데이터셋특징셋특징 수최고 F1
CIC-IDS 2017Anderson & McGrew (기존)3280.1%
CIC-IDS 2017커스텀1383.1%
VPN-nonVPNDraper-Gil (기존)1771.8%
VPN-nonVPN커스텀870.6%

CIC-IDS 2017에서 XGBoost + 커스텀 특징셋 조합이 F1 83.1%로 최고 성능을 기록했습니다. 특징 수는 32개 → 13개로 59% 줄이면서 성능은 향상시켰습니다.

VPN-nonVPN 데이터셋은 특징 추출 제약으로 13개 중 8개만 사용했으며, 일부 모델에서는 기존 연구와 유사하거나 소폭 낮은 성능을 보였습니다.

배운 점

Feature Importance 분석에서 새롭게 정의한 Handshake Symmetry가 모든 특징 중 중요도 1위(0.87)를 기록했습니다. 단순 통계 특징이 아닌 플로우 행동 관점으로 특징을 설계하는 것이 효과적임을 실험으로 확인했습니다.

데이터셋마다 추출 가능한 특징이 달라 동일한 특징셋을 일관되게 적용하기 어렵다는 점도 배웠습니다. 특징 설계 단계에서 데이터셋 호환성을 함께 고려해야 한다는 것이 실질적인 교훈이었습니다.

관련 연구

이 프로젝트의 연구 결과는 전자파학회 논문으로 발표되었습니다.