Skip to content

oxqnd/Who-Touched-My-Cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Who Touched My Cache?

📌 프로젝트 개요

이 프로젝트는 Prime+Probe 계열의 캐시 사이드채널 공격을 식별하기 위해, 그래프 신경망(GNN) 을 활용한 딥러닝 기반 탐지 기법을 제안합니다. 시간에 따라 수집된 하드웨어 이벤트를 100ms 간격의 슬라이딩 윈도우로 분할하고, 각 구간을 하나의 노드로 표현한 뒤, 인접한 시간 구간들 간에 간선을 연결하여 단일 그래프를 구성합니다. 이렇게 모델링된 그래프를 기반으로, 각 노드에 대해 정상 또는 공격 여부를 분류합니다.


📂 데이터셋 정보

📋 데이터 수집 도구 및 방식

  • 도구: perf stat -I 100
  • 이벤트 종류: cache-references, cache-misses, branches, branch-misses
  • 샘플링 주기: 100 ms
  • 수집 시간: 각 상황(NORMAL/ATTACK)마다 약 30 초
  • 형식: time, event, count

🧪 수집 환경

  • 공격 종류: Prime+Probe
  • 공격 시뮬레이션 코드:
for i in range(100000000):
    x = i * i % 10000

📈 데이터 특징

🔥 공격 상황 (ATTACK)

  • 반복적·규칙적인 메모리 접근으로 cache-misses가 빈번하게 발생
  • 캐시 미스 비율이 일정하게 높게 유지(약 7 % – 17 %)

🌿 정상 상황 (NORMAL)

  • 불규칙한 메모리 접근 패턴으로 cache-misses 비율이 상대적으로 낮고 가변적
  • 캐시 미스 비율이 낮고 불규칙하게 변동(약 6 % – 17 %)

📊 데이터 전처리 방법

  1. 수집 데이터를 100 ms 단위로 그룹화하여 각 구간을 노드로 생성
  2. 각 노드는 네 가지 이벤트(cache-references, cache-misses, branches, branch-misses)의 카운트를 피처로 보유
  3. StandardScaler로 모든 피처를 표준화
  4. 인접 시간 구간을 연결해 단일 그래프 구성
  5. 각 노드에 정상/공격 레이블 부여

🛠 데이터 전처리 파이프라인

단계 함수 주요 역할
1 parse_perf_file 원본 파일에서 유효 데이터 파싱
2 group_by_time 100 ms 단위로 데이터 그룹화
3 build_graph_from_perf 노드 피처 생성·표준화 및 간선 구성

🤔 왜 GNN인가?

모델 한계
CNN 시간적 인접성·장기 의존성 표현이 제한적
RNN 순차 정보는 잘 처리하지만 노드 간 관계 표현이 부족
GNN 노드 간 구조적·시간적 상호작용을 명시적으로 모델링 가능

시간 흐름 및 노드 간 유사성을 동시에 고려할 수 있어, 하드웨어 이벤트 기반 공격 탐지에 GNN이 가장 적합합니다.


🛠 모델 아키텍처

🔸 GCN

  • GCNConv
  • 첫 레이어 후 ReLU & Dropout

🔸 GAT

  • GATConv (Multi‑head Attention)
  • 첫 레이어 후 ELU & Dropout

🔸 GraphSAGE

  • SAGEConv
  • 첫 레이어 후 ReLU & Dropout

🔸 MLP (Baseline)

  • 2× Fully Connected
  • 첫 레이어 후 ReLU & Dropout

🧪 실험 결과 (F1‑score)

모델 최고 F1‑score
GCN 0.9231
GAT 0.9615
GraphSAGE 0.9020
MLP (baseline) 0.7143

GAT가 가장 높은 F1‑score를 기록했으며, 모든 GNN 계열 모델이 MLP 베이스라인을 크게 상회했습니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages