이 프로젝트는 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- 반복적·규칙적인 메모리 접근으로
cache-misses가 빈번하게 발생 - 캐시 미스 비율이 일정하게 높게 유지(약 7 % – 17 %)
- 불규칙한 메모리 접근 패턴으로
cache-misses비율이 상대적으로 낮고 가변적 - 캐시 미스 비율이 낮고 불규칙하게 변동(약 6 % – 17 %)
- 수집 데이터를 100 ms 단위로 그룹화하여 각 구간을 노드로 생성
- 각 노드는 네 가지 이벤트(
cache-references,cache-misses,branches,branch-misses)의 카운트를 피처로 보유 - StandardScaler로 모든 피처를 표준화
- 인접 시간 구간을 연결해 단일 그래프 구성
- 각 노드에 정상/공격 레이블 부여
| 단계 | 함수 | 주요 역할 |
|---|---|---|
| 1 | parse_perf_file |
원본 파일에서 유효 데이터 파싱 |
| 2 | group_by_time |
100 ms 단위로 데이터 그룹화 |
| 3 | build_graph_from_perf |
노드 피처 생성·표준화 및 간선 구성 |
| 모델 | 한계 |
|---|---|
| CNN | 시간적 인접성·장기 의존성 표현이 제한적 |
| RNN | 순차 정보는 잘 처리하지만 노드 간 관계 표현이 부족 |
| GNN | 노드 간 구조적·시간적 상호작용을 명시적으로 모델링 가능 |
시간 흐름 및 노드 간 유사성을 동시에 고려할 수 있어, 하드웨어 이벤트 기반 공격 탐지에 GNN이 가장 적합합니다.
- 2× GCNConv
- 첫 레이어 후 ReLU & Dropout
- 2× GATConv (Multi‑head Attention)
- 첫 레이어 후 ELU & Dropout
- 2× SAGEConv
- 첫 레이어 후 ReLU & Dropout
- 2× Fully Connected
- 첫 레이어 후 ReLU & Dropout
| 모델 | 최고 F1‑score |
|---|---|
| GCN | 0.9231 |
| GAT | 0.9615 |
| GraphSAGE | 0.9020 |
| MLP (baseline) | 0.7143 |
GAT가 가장 높은 F1‑score를 기록했으며, 모든 GNN 계열 모델이 MLP 베이스라인을 크게 상회했습니다.