Stand on the shoulders of giants

[paper review] Realistic Website Fingerprinting By Augmenting Network Traces 본문

Paper reviews

[paper review] Realistic Website Fingerprinting By Augmenting Network Traces

finallyupper 2024. 1. 15. 19:15

CCS23-SSL-Web-Fingerprint

BACKGROUND

  • low latency이면 대기시간이 적다는거 → 전송속도 빠름 → 일관된 통신!!
  • High bandwidth이면 →더 많은 데이터를 동시에 처리 → 일관된 통신!!

ABSTRACT

  • 일반적인 WF classifier
    • 특정 high-bandwidth network link들에서 수집된 high-bandwidth sample들로 학습되었는데
    • 얘랑 다른 condition의 network connection에 적용시

INTRO

  • Tor = 가장 유명한 익명 대화 시스템
    • client의 traffic을 프록시들의 집합으로 relay함으로써 익명성을 제공함.
  • WF(Website Fingerprinting) =피해자의 network traffic을 감독하는 passive 공격자에 의해 행해짐
    • pre-recorded한 website trace들과 피해자의 관찰한 traffic tracef를 비교해 어떤 웹페이지가 browsed되는지를 확인함.
    • closed-world scenario에서 Deep Fingerprinting이 98퍼 달정!! (← DNN 구조 사용)
      • 기존= KNN, SVM, Random forest,… → DNN-based WF attacks
  • Critiques in WF
    1. concept drift
      • 시간에 따라 특정 웹사이트 구별 property가 바뀜
      • 이전에 쓴게 더이상 reliable한 feature가 아니게될 수 있으니까?
    2. Network condition variations
      • GT데이터 수집시
      • ⇒ 미리 정의한 웹사이트들을 브라우징해서 → 합성 네트워크 trace들을 생성
      • 근데 lower bandwidth처럼 다른 네트워크 condition에서 수집된 trace들을 attack시 접할 수 있음…
    3. inaccurate user imitation
      • GT데이터 수집시이런 크롤러로는 유저가 subpage방문하는 등 browser configs의 다양성을 못잡음
      • ⇒ Selenium과 같은 자동화된 브라우저 크롤러를 쓰는데
    4. 큰 labeled dataset요구
      • 높은 정확도를 얻기위해서는 큰 데이터셋이 요구됨..
      • ex. GANDalF, Triplet Fingerprinting(TF)

핵심

다양한 네트워크 condition에서 network trace들을 모을 수 있다면..?

→ augmentation해서 unobserved network condition/setting들에 대한 샘플을 얻자

→ NetAugment

large dataset에 대한 의존성을 피하기 위해 semi, slef supervised learning을 쓰려는거

(NetAugment는 당연히 쓰고)

  • DATASET
    1. superior traces : consistent network condition들에서 수집된 traces (training)
    2. inferior traces : poor/loor bandwidth network condition들에서 수집된 traces (deployment)
    • 가정
      • 공격자는 consistent network condition에서 수집한 trace들을 이용한다고 가정.
  • 두개로 나누었음.
  • 평가
  • training과 deployment의 setting이 다를때 더 잘됨을 확인함
  • DF, AWF
    • Assumption
    • : train과 test의 traces들의 distribution이 동일
    그런데 실제로는 다른 시점이나 다른 vantage 지점에서 수집될 수 있음GANDaLF
  • Online WF
  • Triplet Fingerprinting(TF)

NetAugment

  • web trace들의 diff variation들을 학습시킴(기존과 다른 distribution환경 by 예상치못)
  • Tor cell direction들의 bursts 씀
    • 왜?? ⇒ incom/outcom 방향으로 구성된 cell들 시퀀스이기 때문에.
    • 그래서 같은 direction일때 연속적인 cell direction들의 시퀀스를 burst로 잡음
    • burst의 size = burst에 속한 cell갯수
    • incoming = website → client
    • outcoming = client → website
    • incoming(-1)/outcoming(+1) bursts추출 → 3가지 조작중 하나 → shift 변형
      • 조작시 처음 20cell은 냅둠 (=for protocol 초기화, handshake// 웹사이트 구별용)
  • burst manipulations
    1. incoming burst sizes 조정
      • website content들이 dynamic해서.. 같은 website에서 incomingcell변동폭이 큼.
      • #tor cells < 1000 : 증가만
      • #tor cells > 4000 : 감소만
      • 1000 < #tor cells < 4000 : 랜덤 (하이퍼파라미터 r_upsample, r_downsample)
    2. outgoting bursts 삽입
      • control cell = flow control을 위해 사용
      • network 조건이 다르면 → circuit bandwidth다름 → control cell수 다름
        • low bandwidth circuit → control cell 많음(일관성 유지해주려고 많이 넣는거겠지뭐)
      • incoming bursts를 랜덤하게 쪼갬 && outgoing burst를 삽입해 증강
        • 아래 분포로부터 랜덤하게 샘플 추출함으로써 삽입할 burst size결정
    3. incoming bursts 합치기 (+ outgoing burst들 몇개 제거하기)
      • incoming burst들을 합치니까 → higher bandwidths → control cell 덜 필요!!
        • 합치기때문에 전체 incoming data갯수는 유지됨.
      • 하이퍼파라미터 r_merge, n_merge
        • r_merge 의 비율로 incoming bursts를 n_merge게 합침
  • shift
    • 마지막 n개 cell 드랍
    • 앞에 n개 zero-sized cell들 삽입
    • → attack deploy할때 trace의 첫 cell을 모르니까 sample의 길이가 짧아지는데 이를 커버치기위함.

 

 

  • NetCLR
    • = SimCLR
    • SelfSL + NetAugment
    • Contrastive learning + network trace augmentation
    • setting1로 traces pretrain, finetune // setting2로 attack on traces
    • Phase
      • Pre-training
        • DF model (512, )+ Projection Head (128, )5000 features→ 512 → 128
      • Fine-Tuning
        • DF model (512, )+ simple FC-layer(각 class에 속할 확률)
      ≒ downstream task in semi-supervised evaluation method
      • Deployment
        • actual WF attack
        • Fine-tuned model에 apply
    • EVAL
    • TRAINING
  • NetFM
    • =FixMatch(= SemiSL) + NetAugment
    • TRAIN
      • augmented traces를 학습(← pseudo labels 사용됨)
      • Backbone = DF nn
      • weak aug = FlipAugment (p_flip=0.1)

 

 

NetFM, NetCLR에서 DF에 대한 파라미터 동일

데이터 수집 및 셋업

  • NCM (=Network condition metric) = superior과 inferior traces 구분용 metric
    = (downstream tor cell의 총 size) / (해당 trace 로딩 시간)
    
                   bandwidth                                  latency
    • 해당 trace 로딩 시간 = (첫번째 cell의 timestamp) - (마지막 cell의 timestamp)
    • sup/inf traces partition을 위한 threshold = 50kBPs (미달시 drop)
  • = (downstream tor cell의 총 size) / (해당 trace 로딩 시간)
  • Model input representation
    • outcoming +1 incoming -1
    • model input size length = 5000고정
      • 길면 자르고 짧으면 zero padding
    • model input으로 사용되기전에 trace들을 filter out (시퀀스 전처리?)
    • 빈 trace들은 버림
    • closed world의 경우 사이즈가 trace사이즈 median값의 20퍼보다 작으면 버림
    • open world의 경우 20cell보다 적게 있으면 해당 traces 버림.
    Since model inputs have a fixed length of 5000, longer sequences are truncated and shorter traces are padded with zeros. For each of the datasets described in Section 6.3, these sequences are processed to filter out some traces before they are used as model inputs. Empty traces are discarded. In the closed world setting, similar to [44], for each trace of a website, if its size is less than 20% of the median trace size of the website, it is discarded. In the open-world setting, all traces with less than 20 cells are discarded
  • 데이터셋 구성
    1. NCM 고려전..
      • awf1 = 100개 랜덤 선별 monitored webs의 traces집합
      • awf2 = 100개 랜덤 선별 monitored webs의 traces집합 (≠ awf1)
    2. NCM 고려후..
      1. closed-world
        • awf-attack : 69개 monitored webs의 traces집합
          • awf-a_sup
          • awf-a_inf
        • awf-pre-training : 100개 monitored webs의 traces집합
          • ≠ awf-attack
          • awf-pt_sup 각 website는 500 traces존재
          • awf-pt_inf 각 website는 500 traces존재
      2. open-world
        • awf-ow : 10,000 sup, 10,000 inf unmonitored webs의 traces집합
    [2] Drift dataset
    • concept drift의 영향력 확인용
    • (=location of guard relays의 영향력)
    • drift90 : 90 monitored webs의 집합
      • 각 web → 적어도 100개 sup, 20개 inf
        • drift90_sup
        • drift90_inf
    • drift-guard : 90 monitored webs의집합을 11 guard relays(유럽)+7guard relays(na)에서 수집한 trace들의 집합으로 쪼갬
    • drift5000 : 5000 unmonitored webs의 집합
    세팅python 3.4.pflip - 0.1awf1 = fine-tuning, evalnetfm에는 pre-training 없음, awf1 labeled, unlabeled둘다 사용
    • u = 19 , 5 labeled samples
      • website당 19 * 5 = 95 unlabeled samples (<2500)
    • test set = awf1에서 417개 샘플들 포함
    NetCLR
    • Train → awf=ptsup
    • fine-tuning → awf-attack sup의 training subset에서 N개 labeled traces를 sample함
    • deployment → awf-attack에 남은 trace,, awf-a_sup과 inf에서 같은수만큼 샘플 추출
    • (website당 50 sup 50 inf0 → valid, test set둘다 각각!!
    configs?
    • DF를 N 레이블/웹사이트 학습
    • 증강 ⇒ 웹사이트당 500 traces 가 되도록! (NetCLR의 AWF-pretraining의 size와 비슷)