Branch Landing: Bloom Filter-Based Source Authorization for Forward-Edge CFI on RISC-V
이 논문은 RISC-V 아키텍처에서 Bloom 필터를 활용해 소스 도메인 인증을 수행함으로써, 기존 CFI(제어 흐름 무결성)의 한계를 극복하고 매우 낮은 오버헤드로 정밀한 포워드 엣지(forward-edge) 보호를 제공하는 'Branch Landing(BRL)' 프레임워크를 제안합니다.
기존의 컴퓨터 보안 시스템(CFI)은 마치 건물의 **'출입문'**을 지키는 보안 요원과 같습니다.
기존 방식 A (타입 기반): "이 문은 '직원용'입니다. 직원 유니폼만 입고 있으면 누구나 들어올 수 있어요."
문제점: 해커가 직원 유니폼(데이터 타입)만 훔쳐 입으면, 원래 그 문으로 들어오면 안 되는 사람(해커)도 아무 제지 없이 들어옵니다.
기존 방식 B (태그 기반): "이 문은 'A팀, B팀, C팀'만 들어올 수 있습니다. 하지만 보안 요원의 수첩에는 이름 적을 칸이 딱 4개뿐이에요."
문제점: 팀원이 5명만 되어도 수첩에 자리가 없어서, 나머지 한 팀원은 보안을 포기하고 그냥 들여보내줘야 합니다.
결국, **"누가(출처) 이 문을 통해 들어오려고 하는가?"**를 아주 정밀하고 유연하게 검사하는 방법이 없었습니다.
2. 해결책: "브랜치 랜딩(BRL) - 마법의 출입 명부"
이 논문에서 제안하는 BRL은 보안 요원에게 **'블룸 필터(Bloom Filter)'**라는 아주 똑똑하고 효율적인 **'마법의 출입 명부'**를 쥐여주는 것입니다.
이 시스템은 두 가지 단계로 작동합니다.
1단계: 출발할 때 "나 출발한다!"라고 외치기 (bld 명령어) 건물을 떠나는 사람이 출발 직전에 "나는 '영업팀 1번'이야!"라고 적힌 **신분증(SID)**을 가슴에 딱 붙입니다. 이 신분증은 특수한 장치(BRState)에 기록되어 절대 조작할 수 없습니다.
2단계: 도착했을 때 "너, 여기 들어와도 돼?"라고 확인하기 (brl 명령어) 도착지 문 앞에 서면, 보안 요원이 마법의 명부를 꺼냅니다. 이 명부는 아주 특별해서, 명부에 적힌 이름이 아무리 많아도(수만 명이라도) 확인하는 데 걸리는 시간이 똑같이 아주 짧습니다.
명부를 슥 훑어보고, "어? 너 영업팀 1번 맞네? 통과!"라고 하거나,
"너는 우리 명부에 없는 사람이야! 멈춰!"라며 즉시 경보를 울립니다.
3. 이 기술이 왜 대단한가요? (핵심 장점)
무한한 확장성 (Scalability): 기존 방식처럼 "자리가 모자라서 보안을 못 해요"라는 말이 안 나옵니다. 명부(블룸 필터)의 크기만 조절하면 수천 명의 출처를 다 기록할 수 있습니다.
엄청난 속도 (Efficiency): 보안 검사가 너무 까다로우면 컴퓨터가 느려지겠죠? 이 기술은 검사 시간이 매우 일정하고 빨라서, 컴퓨터 성능을 거의 깎아먹지 않습니다(성능 저하가 1% 미만!).
맞춤형 보안 (Policy-agnostic): "직원 유니폼만 확인할지", 아니면 "정확히 어떤 방에서 온 사람인지까지 확인할지" 보안 규칙을 마음대로 바꿀 수 있습니다. 규칙을 깐깐하게 할수록 해커가 쓸 수 있는 길은 더 좁아집니다.
요약하자면!
**브랜치 랜딩(BRL)**은 컴퓨터의 이동 경로를 감시할 때, **"어디로 가느냐"**만 보는 게 아니라 **"어디서 왔느냐"**를 매우 빠르고, 정확하며, 용량 제한 없이 확인하는 스마트한 보안 시스템입니다. 덕분에 해커가 정상적인 경로인 척 위장해서 침입하는 것을 아주 효과적으로 막아낼 수 있습니다.
[기술 요약] Branch Landing: RISC-V를 위한 블룸 필터 기반 소스 인증 포워드 엣지 CFI
1. 문제 정의 (Problem Statement)
현대 시스템 보안에서 메모리 오염 취약점은 코드 재사용 공격(Code-reuse attacks)을 가능하게 합니다. 특히, 리턴 주소를 보호하는 백워드 엣지(Backward-edge) 방어 기술이 발전함에 따라, 공격자들은 jalr이나 jr과 같은 간접 제어 흐름을 이용하는 JOP(Jump-Oriented Programming) 공격으로 전환하고 있습니다.
기존의 포워드 엣지(Forward-edge) CFI(제어 흐름 무결성) 메커니즘은 다음과 같은 한계가 있습니다:
Type-based CFI (예: FineIBT): 동일한 함수 시그니처를 가진 모든 호출자를 허용하므로, 공격자가 동일한 타입의 다른 함수를 호출하는 것을 막지 못하는 '소스 도메인 인증 공백'이 존재합니다.
Tag-based Hardware CFI (예: Bratter): 각 소스에 태그를 부여하여 정밀한 인증을 시도하지만, 하드웨어 레지스터(BTR)의 저장 용량이 고정되어 있어, 한 타겟에 허용된 호출자 수가 레지스터 슬롯 수를 초과하면 보호 정책을 적용할 수 없는 구조적 한계가 있습니다.
2. 제안 방법론 (Methodology: Branch Landing)
본 논문은 고정된 용량의 태그 비교 방식에서 벗어나, 블룸 필터(Bloom Filter)를 이용한 집합 멤버십 쿼리(Set-based membership query) 방식으로 패러다임을 전환한 Branch Landing (BRL) 프레임워크를 제안합니다.
핵심 설계 요소:
두 개의 새로운 ISA 확장 명령어:
bld (Branch Landing Descriptor): 간접 분기 직전에 실행되며, 소스 식별자(SID, Section Identifier)를 전용 하드웨어 레지스터인 BRState에 기록하고 유효성 비트를 설정합니다.
brl (Branch Landing Verification): 분기 대상(Landing site)의 입구에서 실행됩니다. BRState에 저장된 SID_src가 해당 타겟의 허용된 소스 집합(AllowedSources)에 포함되는지 블룸 필터를 통해 확인합니다.
BRState 레지스터:SID와 valid 비트를 포함하는 전용 CSR(Control and Status Register)로, 한 번의 인증이 끝나면 valid 비트가 자동으로 초기화되어 인증 상태의 재사용(Replay)을 방지합니다.
정책 불가지론적(Policy-agnostic) 설계: 하드웨어 구조는 고정하되, 컴파일 타임에 블룸 필터를 어떻게 구성하느냐에 따라 다양한 보안 정책을 구현할 수 있습니다.
BRL-Func: 함수 레벨의 타입 기반 인증.
BRL-CFG: 제어 흐름 그래프(CFG) 분석을 통한 기본 블록(Basic-block) 레벨의 정밀한 인증.
3. 주요 기여 (Key Contributions)
확장 가능한 소스 인증: 블룸 필터를 사용하여 고정된 레지스터 크기에 구애받지 않고, 타겟당 무수히 많은 허용된 호출자 집합을 효율적으로 인코딩할 수 있습니다.
고정된 검증 지연 시간: 블룸 필터의 특성을 활용하여, 허용된 소스의 개수와 상관없이 일정한 횟수의 해시 프로브(Hash probe)만으로 인증을 완료하므로 하드웨어 구현이 효율적입니다.
유연한 보안 정책: 동일한 하드웨어 인프라 위에서 타입 기반부터 CFG 기반까지 다양한 수준의 보안 강도를 선택할 수 있는 구성 가능성(Configurability)을 제공합니다.
4. 실험 결과 (Results)
81개의 BEEBS 벤치마크를 사용하여 LLVM RISC-V 백엔드 및 Spike 시뮬레이터로 평가한 결과는 다음과 같습니다:
런타임 오버헤드 (Runtime Overhead): 매우 낮음.
brl 명령어가 3사이클인 낙관적 모델(brl3) 기준, **BRL-Func는 0.210%, BRL-CFG는 0.421%**의 평균 오버헤드만 기록했습니다. 이는 기존 태그 기반 방식(Bratter, 약 5.99%)보다 훨씬 뛰어난 성능입니다.
코드 크기 증가 (Code Size): 평균 0.46% ~ 0.52% 수준으로 매우 미미합니다.
보안 정밀도 (Equivalence Class Size):
BRL-CFG 정책은 BRL-Func 대비 동등 클래스(EC) 크기를 32.5% 감소시켰습니다. 이는 공격자가 탈취할 수 있는 가젯(Gadget)의 범위를 훨씬 더 좁게 제한함을 의미합니다.
정확성: 모든 테스트 실행에서 오탐(False Positive)으로 인한 실행 실패가 발생하지 않았습니다.
5. 의의 (Significance)
Branch Landing은 기존 CFI 기술이 가진 '정밀도(Precision)'와 '확장성(Scalability)' 사이의 트레이드오프 문제를 효과적으로 해결했습니다. 특히 하드웨어 자원이 제한적인 RISC-V 환경에서, 블룸 필터라는 확률적 자료구조를 활용하여 매우 적은 성능 저하만으로도 강력하고 정밀한 포워드 엣지 보호를 제공할 수 있음을 입증했습니다. 이는 향후 보안이 중요한 임베디드 시스템 및 고성능 프로세서 설계에 중요한 설계 지침을 제공합니다.