일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- ssda-yolo
- focal detection network
- diffpir
- fourmer
- hqs-algorithm
- linear inverse problem
- deepfake detection
- object detection
- unconditional generative models
- facenet
- conditional diffusion
- face forgery detection
- ddim
- semi-supervied learning
- ccdf
- stochastic contraction theory
- IR
- ilvr
- ddrm
- daod
- ddpm
- diffusion
- unconditional ddpm
- pedestrian detection
- f2dnet
- neighboring pixel relationships
- Triplet
- Ai
- ML
- image restoration
Archives
- Today
- Total
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:15BACKGROUND
- 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
- concept drift
- 시간에 따라 특정 웹사이트 구별 property가 바뀜
- 이전에 쓴게 더이상 reliable한 feature가 아니게될 수 있으니까?
- Network condition variations
- GT데이터 수집시
- ⇒ 미리 정의한 웹사이트들을 브라우징해서 → 합성 네트워크 trace들을 생성
- 근데 lower bandwidth처럼 다른 네트워크 condition에서 수집된 trace들을 attack시 접할 수 있음…
- inaccurate user imitation
- GT데이터 수집시이런 크롤러로는 유저가 subpage방문하는 등 browser configs의 다양성을 못잡음
- ⇒ Selenium과 같은 자동화된 브라우저 크롤러를 쓰는데
- 큰 labeled dataset요구
- 높은 정확도를 얻기위해서는 큰 데이터셋이 요구됨..
- ex. GANDalF, Triplet Fingerprinting(TF)
- concept drift
핵심
다양한 네트워크 condition에서 network trace들을 모을 수 있다면..?
→ augmentation해서 unobserved network condition/setting들에 대한 샘플을 얻자
→ NetAugment
large dataset에 대한 의존성을 피하기 위해 semi, slef supervised learning을 쓰려는거
(NetAugment는 당연히 쓰고)
- DATASET
- superior traces : consistent network condition들에서 수집된 traces (training)
- inferior traces : poor/loor bandwidth network condition들에서 수집된 traces (deployment)
- 가정
- 공격자는 consistent network condition에서 수집한 trace들을 이용한다고 가정.
- 두개로 나누었음.
- 평가
- training과 deployment의 setting이 다를때 더 잘됨을 확인함
- DF, AWF
- Assumption
- : train과 test의 traces들의 distribution이 동일
- 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
- incoming burst sizes 조정
- website content들이 dynamic해서.. 같은 website에서 incomingcell변동폭이 큼.
- #tor cells < 1000 : 증가만
- #tor cells > 4000 : 감소만
- 1000 < #tor cells < 4000 : 랜덤 (하이퍼파라미터 r_upsample, r_downsample)
- outgoting bursts 삽입
- control cell = flow control을 위해 사용
- network 조건이 다르면 → circuit bandwidth다름 → control cell수 다름
- low bandwidth circuit → control cell 많음(일관성 유지해주려고 많이 넣는거겠지뭐)
- incoming bursts를 랜덤하게 쪼갬 && outgoing burst를 삽입해 증강
- 아래 분포로부터 랜덤하게 샘플 추출함으로써 삽입할 burst size결정
- 아래 분포로부터 랜덤하게 샘플 추출함으로써 삽입할 burst size결정
- incoming bursts 합치기 (+ outgoing burst들 몇개 제거하기)
- incoming burst들을 합치니까 → higher bandwidths → control cell 덜 필요!!
- 합치기때문에 전체 incoming data갯수는 유지됨.
- 하이퍼파라미터 r_merge, n_merge
- r_merge 의 비율로 incoming bursts를 n_merge게 합침
- incoming burst들을 합치니까 → higher bandwidths → control cell 덜 필요!!
- incoming burst sizes 조정
- 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
- DF model (512, )+ Projection Head (128, )5000 features→ 512 → 128
- Fine-Tuning
- DF model (512, )+ simple FC-layer(각 class에 속할 확률)
- Deployment
- actual WF attack
- Fine-tuned model에 apply
- Pre-training
- 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 버림.
- 데이터셋 구성
- NCM 고려전..
- awf1 = 100개 랜덤 선별 monitored webs의 traces집합
- awf2 = 100개 랜덤 선별 monitored webs의 traces집합 (≠ awf1)
- NCM 고려후..
- 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존재
- awf-attack : 69개 monitored webs의 traces집합
- open-world
- awf-ow : 10,000 sup, 10,000 inf unmonitored webs의 traces집합
- closed-world
- concept drift의 영향력 확인용
- (=location of guard relays의 영향력)
- drift90 : 90 monitored webs의 집합
- 각 web → 적어도 100개 sup, 20개 inf
- drift90_sup
- drift90_inf
- 각 web → 적어도 100개 sup, 20개 inf
- drift-guard : 90 monitored webs의집합을 11 guard relays(유럽)+7guard relays(na)에서 수집한 trace들의 집합으로 쪼갬
- drift5000 : 5000 unmonitored webs의 집합
- u = 19 , 5 labeled samples
- website당 19 * 5 = 95 unlabeled samples (<2500)
- test set = awf1에서 417개 샘플들 포함
- 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둘다 각각!!
- DF를 N 레이블/웹사이트 학습
- 증강 ⇒ 웹사이트당 500 traces 가 되도록! (NetCLR의 AWF-pretraining의 size와 비슷)
- NCM 고려전..