솔라나 스마트 계약을 위한 실용적 심볼릭 실행 도구 SseRex
SseRex는 솔라나 프로그램의 고유한 계정 모델을 고려한 최초의 심볼릭 실행 기반 취약점 탐지 프레임워크이다. 바이트코드만으로 8 714개의 배포 계약을 분석해 소유자·서명·키 검증 누락 및 임의 교차 프로그램 호출(Arbitrary CPI) 등 솔라나 특화 버그를 효과적으로 찾아냈으며, 467개의 계약에서 실제 취약점을 발견했다. 또한 120개의 오픈소스 프로젝트와 4개의 사례 연구를 통해 도구의 실용성을 입증하고, 높은 정확도와 낮은 오탐…
저자: Tobias Cloosters, Pascal Winkler, Jens-Rene Giesen
본 논문은 솔라나 블록체인에서 스마트 계약(프로그램)의 보안 취약점을 자동으로 탐지하기 위한 최초의 심볼릭 실행 프레임워크인 SseRex를 제안한다. 솔라나의 특수한 계정 기반 모델은 각 트랜잭션이 여러 계정을 메타데이터와 함께 전달받으며, 프로그램 로직은 이 메타데이터를 직접 검증해야 한다는 점에서 기존 이더리움 기반 분석 기법이 적용되기 어렵다. 특히, 계정 소유자(owner), 서명자(signer), 프로그램 파생 주소(PDA) 등은 명시적으로 검증되지 않을 경우 심각한 보안 결함을 초래한다.
SseRex는 네 단계로 구성된다. ① **리프팅(Lifting)** 단계에서는 배포된 ELF 파일에 포함된 eBPF 바이트코드를 Binary Ninja를 이용해 중간 표현(IL)으로 변환하고, 주소 재배치를 수행한다. ② **심볼릭 준비(Symbolic Preparations)** 단계에서는 변환된 IL을 심볼릭 실행 엔진에 로드하고, 솔라나 특유의 계정 구조와 메타데이터를 심볼릭 상태에 주입한다. 여기서 중요한 최적화는 계정 역직렬화 과정에서 발생하는 2³ = 8가지 불린 조합을 하나의 심볼릭 상태로 병합해 상태 폭발을 억제하고, 문자열 포맷과 고정 길이 버퍼를 ‘하이브리드 심볼릭 길이’ 기법으로 처리해 포인터 연산을 최소화하는 것이다.
③ **심볼릭 탐색(Symbolic Exploration)** 단계에서는 다양한 탐색 전략을 혼합한다. 무작위 탐색, 목표 지향 탐색, 그리고 ‘핵심 액션 우선’ 탐색을 통해 계정 쓰기, CPI 호출 등 보안에 중요한 액션에 도달하도록 경로를 유도한다. 탐색 중에 계정 데이터와 인스트럭션 바이트를 심볼릭 입력으로 두고, 제약 해결기에 의해 가능한 값들을 구체화(concretize)하면서 탐색 효율을 높인다.
④ **취약점 분석(Vulnerability Analysis)** 단계에서는 도달한 경로에 대해 네 가지 특수 오라클을 적용한다. *소유자 검증 누락(MOC)*, *서명 검증 누락(MSC)*, *키 검증 누락(MKC)*, 그리고 *임의 교차 프로그램 호출(Arbitrary CPI)*이다. 예를 들어, 프로그램이 계정 데이터를 읽은 뒤 `owner == program_id` 검증을 수행하지 않으면 MOC로 판단하고, CPI 호출 시 대상 프로그램 주소가 검증되지 않으면 Arbitrary CPI로 판단한다. 이러한 오라클은 심볼릭 제약과 결합돼 실제 공격 가능한 상황만을 보고한다.
SseRex는 취약점이 발견되면 자동으로 PoC 트랜잭션을 생성한다. 이 트랜잭션은 현재 심볼릭 상태의 제약을 만족하는 입력값을 사용해 구성되며, 실제 블록체인에서 해당 전제 조건이 충족될 경우 즉시 공격 가능성을 검증할 수 있다.
실험에서는 8 714개의 배포 바이트코드 계약을 대상으로 대규모 평가를 수행했다. SseRex는 467개의 계약(≈6.7%)에서 결함을 발견했으며, 30개의 샘플을 수동 검증한 결과 26개(87%)가 실제 버그로 확인되었다. 이는 기존 VRust(높은 오탐률)와 FuzzDelSol(입력 구조 제한)보다 현저히 높은 정확도와 재현성을 보인다. 특히, Anchor 프레임워크 기반 계약(전체의 43%)을 완전 분석했으며, 120개의 오픈소스 프로젝트에서도 다수의 숨겨진 결함을 찾아냈다.
논문은 또한 네 가지 주요 기여를 강조한다. 첫째, 솔라나 특유의 계정 메타데이터와 PDA를 포함한 전체 실행 컨텍스트를 심볼릭하게 모델링함으로써 기존 도구가 놓친 검증 누락을 포착한다. 둘째, 사전 정적 분석과 하이브리드 길이 기법을 도입해 대규모 바이트코드에서도 상태 폭발을 방지하고 확장성을 확보한다. 셋째, 자동 PoC 생성 기능을 통해 발견된 취약점의 실제 위험성을 즉시 평가할 수 있다. 넷째, 도구와 데이터셋을 모두 공개함으로써 솔라나 스마트 계약 보안 연구의 기반을 마련한다.
결론적으로, SseRex는 솔라나 스마트 계약 보안 분야에서 중요한 전환점을 제공한다. 복잡한 계정 모델과 무상태 실행 특성을 정확히 반영한 심볼릭 실행은 높은 정확도와 낮은 오탐률을 가능하게 하며, 자동 PoC 생성은 실무에서 취약점 대응을 신속히 할 수 있게 한다. 향후 연구에서는 다중 계약 간 상호작용을 포함한 전역적인 블록체인 상태 모델링과, 보다 정교한 제약 해결기를 통한 탐색 효율 향상이 기대된다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기