Move 스마트 계약을 위한 타입 인식 퍼징 프레임워크 Belobog

Move 스마트 계약을 위한 타입 인식 퍼징 프레임워크 Belobog
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

Belobog은 Move 언어의 강력한 정적 타입 시스템을 고려해, 타입 그래프 기반으로 올바른 트랜잭션을 자동 생성·변이하고, 컨콜리컬 실행기로 복잡한 검증 로직을 탐색한다. 109개의 실제 프로젝트에 적용해 100% 치명적, 79% 주요 취약점을 발견했으며, Cetus·Nemo 사건을 재현하고 신규 취약도 7건을 발견했다.

상세 분석

본 논문은 Move 언어가 제공하는 정적 타입 안전성과 자원 능력(ability) 메커니즘이 기존 퍼징 도구에 큰 장벽이 된다는 점을 정확히 짚어낸다. 세 가지 핵심 도전 과제—객체 타입 안전성, 함수 타입 파라미터, 객체 능력(드롭·스토어 등)—를 구체적인 예시(loan/repay 구조)와 함께 설명하고, 실제 Sui 블록체인 트랜잭션 2조 건을 분석해 80% 이상 패키지가 최소 하나 이상의 타입 파라미터 혹은 “핫 포테이토”(Hot Potato) 객체를 포함함을 실증한다. 이러한 특성을 해결하기 위해 Belobog은 두 단계의 타입 그래프를 구축한다. 첫 단계는 Move 모듈의 구조체·함수 정의를 파싱해 타입 노드와 의존 관계(생성·소비, 파라미터 바인딩, 능력 제약)를 엣지로 연결한 유향 그래프를 만든다. 두 번째 단계는 그래프 트레이스를 기반으로 트랜잭션을 생성·변이한다. 구체적으로, 함수 호출 노드를 선택하면 그래프 탐색을 통해 필요한 선행 함수와 객체 생산·소비 경로를 자동으로 삽입해 “핫 포테이토” 객체가 반드시 소비되도록 보장한다. 타입 파라미터는 그래프에서 가능한 구체 타입 집합을 추출해 일관된 인스턴스로 매핑한다.

또한, 단순 타입 검증을 넘어 Move 스마트 계약에 내재된 복잡한 조건문·검증 로직을 탐색하기 위해 컨콜리컬(concolic) 실행기를 도입한다. 이 실행기는 실제 VM에서 트랜잭션을 실행하면서 심볼릭 변수와 구체값을 동시에 추적해, 조건 분기마다 새로운 입력값을 도출한다. 결과적으로, 무작위 값 선택에 의존하던 기존 퍼저와 달리, Belobog은 논리적 경로 커버리지를 크게 확대한다.

평가에서는 109개의 실제 Move 프로젝트(감사 회사 제공 데이터와 학술 연구 데이터)를 대상으로 10만 회 이상의 트랜잭션을 생성·실행했다. 인간 전문가가 수동으로 라벨링한 취약점 중 치명적(critical) 100%와 주요(major) 79%를 자동으로 발견했으며, 두 유명 사건(Cetus, Nemo)의 전체 익스플로잇을 사전 지식 없이 재현했다. 추가로 진행한 3건의 진행 중인 감사에서는 2개의 치명적, 2개의 주요, 3개의 중간 수준 취약점을 새롭게 발견해 모두 개발자에게 인정받았다.

한계점으로는 현재 Aptos와 Sui 외의 다른 Move 기반 체인에 대한 적용성 검증이 부족하고, 타입 그래프 구축 시 외부 라이브러리·표준 모듈에 대한 깊은 분석이 필요하다는 점을 언급한다. 또한, 컨콜리컬 실행이 복잡한 루프·재귀 구조에서 성능 저하를 일으킬 수 있어 스케일링 최적화가 요구된다. 전반적으로 Belobog은 Move 언어 특유의 타입·자원 제약을 정밀히 모델링하고, 동적 테스트와 정적 검증을 효과적으로 결합한 최초의 퍼징 프레임워크로 평가된다.


댓글 및 학술 토론

Loading comments...

의견 남기기