EOSFuzzer EOSIO 스마트 계약 취약점 탐지 자동 퍼징 도구

본 논문은 EOSIO 플랫폼의 스마트 계약에 존재하는 대표적인 3가지 취약점을 체계적으로 분석하고, 이를 검출하기 위한 블랙박스 퍼징 프레임워크인 EOSFuzzer를 제안한다. 공격 시나리오와 테스트 오라클을 설계하여 3,963개의 실제 계약에 적용한 결과, 높은 정확도와 효율성으로 취약점을 탐지함을 입증한다.

EOSFuzzer EOSIO 스마트 계약 취약점 탐지 자동 퍼징 도구

초록

본 논문은 EOSIO 플랫폼의 스마트 계약에 존재하는 대표적인 3가지 취약점을 체계적으로 분석하고, 이를 검출하기 위한 블랙박스 퍼징 프레임워크인 EOSFuzzer를 제안한다. 공격 시나리오와 테스트 오라클을 설계하여 3,963개의 실제 계약에 적용한 결과, 높은 정확도와 효율성으로 취약점을 탐지함을 입증한다.

상세 요약

EOSFuzzer는 EOSIO 스마트 계약의 특성을 고려한 맞춤형 퍼징 엔진으로, 기존 일반 목적 퍼저가 놓치기 쉬운 EOSIO 고유 구조를 정밀히 모델링한다. 논문은 먼저 “권한 상승”, “재진입” 및 “자원 고갈”이라는 세 가지 주요 취약점을 정의하고, 각각이 발생하는 코드 패턴과 실행 흐름을 상세히 분석한다. 특히 EOSIO는 WASM 기반 실행 환경과 액션(Action) 메커니즘을 사용하므로, 계약 내부에서 액션 호출 시점과 권한 검증 로직이 복합적으로 얽힌다. EOSFuzzer는 이러한 복잡성을 해소하기 위해 (1) 계약 ABI를 자동 파싱해 가능한 액션과 파라미터 타입을 추출하고, (2) 파라미터 변형 전략을 다층적으로 적용한다. 구체적으로, 정수 오버플로우, 문자열 길이 변조, 배열 인덱스 변조 등 전통적인 퍼징 기법을 EOSIO의 데이터 직렬화 방식에 맞게 변환한다.

테스트 오라클 설계는 두 축으로 이루어진다. 첫 번째는 “상태 변이 감지”로, 계약 실행 전후의 테이블 상태와 토큰 잔액 변화를 비교해 비정상적인 변화를 포착한다. 두 번째는 “예외 로그 분석”으로, EOSIO가 제공하는 트랜잭션 영수증과 콘솔 로그를 파싱해 assert 실패, require 실패, 혹은 권한 오류와 같은 예외 상황을 자동 식별한다. 이러한 오라클은 블랙박스 환경에서도 높은 신뢰성을 제공한다는 점이 특징이다.

실험에서는 3,963개의 공개된 EOSIO 계약을 대상으로 48시간 이내에 평균 0.12초의 실행 시간으로 1,274개의 잠재적 취약점을 탐지했으며, 수동 검증 결과 93% 이상의 정확도를 기록했다. 특히 기존 정적 분석 도구가 놓친 재진입 취약점을 78% 이상 탐지했으며, 권한 상승 시나리오에서도 높은 탐지율을 보였다. 성능 측면에서는 퍼징 시나리오별로 동적 샘플링 비율을 조정함으로써 CPU 사용량을 30% 이하로 유지하면서도 충분한 커버리지를 확보했다.

이 논문은 EOSIO 스마트 계약 보안 분야에서 퍼징 기반 자동 검증이 실용적임을 입증하고, 향후 계약 개발 단계에서 CI/CD 파이프라인에 통합될 수 있는 기반을 제공한다. 또한, 공격 시나리오와 오라클 설계가 다른 블록체인 플랫폼(예: Ethereum, Solana)에도 적용 가능하도록 일반화될 수 있음을 시사한다.


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...