GapFuzz: 분산 SDN 컨트롤러를 위한 교차 평면 발산 퍼징 (Cross-Plane Divergence Fuzzing)
요약
분산 SDN 클러스터의 제어 평면과 데이터 평면 간의 상태 불일치를 탐지하는 새로운 퍼징 기법인 GapFuzz를 제안합니다. 제어된 지연 시간 주입과 2단계 타이밍 탐색을 통해 복제 레이스 상황에서 발생하는 교차 평면 발산 결함을 효과적으로 찾아냅니다.
핵심 포인트
- 분산 SDN의 비동기 복제 과정에서 발생하는 상태 불일치 문제 해결
- 제어된 주입 지연 시간(Δt)을 활용한 상태 기반 동시성 퍼징 수행
- 커널 데이터패스 조사를 통해 기존 퍼저보다 높은 탐지율 확보
- ONOS 2.7 클러스터 실험에서 81.7%의 높은 발산 판결 생성
분산 소프트웨어 정의 네트워킹 (Software-Defined Networking (SDN)) 클러스터는 마스터 노드와 백업 노드 간에 플로우 상태 (flow state)를 비동기적으로 복제하며, 이 과정에서 두 개의 백업 노드가 각각 모순되는 규칙을 커밋하고, 마스터가 이 둘을 데이터 평면 (data plane)에 직렬화하며, 커널 데이터패스 (kernel datapath)가 어떤 노드도 권위 있다고 믿지 않는 동작에 고착될 수 있는 시간적 간극이 발생합니다. 기존의 SDN 퍼저 (fuzzer)들은 이러한 결함을 놓치고 있습니다. 이들은 오라클 (oracle)을 제어 평면 (control plane)으로 한정하거나, 단일 컨트롤러만을 대상으로 하거나, 복제 레이스 (replication races)를 유발하기 위한 동시성 (concurrency) 제어를 수행하지 않습니다. 본 논문에서는 분산 SDN 클러스터를 위한 상태 기반 동시성 퍼저 (stateful concurrency fuzzer)인 GapFuzz를 제안합니다. GapFuzz는 제어된 주입 지연 시간 $Δt$를 사용하여 두 개의 비마스터 노드에 한 쌍의 모순되는 Northbound 요청을 주입하며, 모든 복제본과 ovs-appctl ofproto/trace를 통한 커널 데이터패스 동작을 쿼리함으로써 전역적인 교차 평면 상태 (cross-plane state)를 재구성합니다. 2단계 타이밍 탐색 (two-phase timing search)을 통해 발산 (divergence)의 존재 여부를 감지한 후, $Δt$를 두 배로 늘리거나 이분법적으로 탐색하여 주입 시간 창 (injection-time window)의 범위를 제한합니다. 수명 조사 (lifetime probe)는 각 판결을 일시적 (transient) 또는 지속적 (persistent)으로 분류하고, ONOS 2.7 소스에서 유도된 네 가지 교차 평면 상태 클래스 중 하나에 할당합니다. 3개 노드로 구성된 ONOS 2.7 클러스터에서 GapFuzz는 시도 횟수의 81.7%에서 발산 판결을 생성했습니다 ($N=50$, Wilson 95% CI $[77.3, 85.4]$%). 모든 발산은 클러스터의 권위 있는 상태 (authoritative state)와 커널 데이터패스 사이에 위치합니다. 2단계에서는 하나의 템플릿에 대해 5ms의 레이스 창 (race window)을 분리해냈으며, 나머지 6개에 대해서는 배수 제한 방식 ($Δt_{\max}=10.24$ s)을 적용하였고, 발산의 99.4%가 30초 이상 지속되었습니다. 커널 데이터패스 조사를 이전 퍼저들이 사용하던 OpenFlow 사용자 공간 조사 (user-space probe)로 대체할 경우, 전체 탐지율은 26.6%포인트 하락하며, 정규화 (canonicalization)에 의해 강제된 판결을 제외하면 46.5%포인트 하락합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기