[논문 리뷰] Is My RPC Response Reliable? Detecting RPC Bugs in Ethereum Blockchain Client under Context
EthCRAFT는 컨텍스트 인식 퍼징 도구로, Ethereum 클라이언트 전반의 컨텍스트 의존 RPC 버그를 탐지하기 위해 블록체인 컨텍스트와 RPC 호출을 자동으로 생성하며, 이전 탐지기보다 우수하고 새로운 버그를 발견합니다.
Blockchain clients are fundamental software for running blockchain nodes. They provide users with various RPC (Remote Procedure Call) interfaces to interact with the blockchain. These RPC methods are expected to follow the same specification across different blockchain nodes, providing users with seamless interaction. However, there have been continuous reports on various RPC bugs that can cause unexpected responses or even Denial of Service weakness. Existing studies on blockchain RPC bug detection mainly focus on generating the RPC method calls for testing blockchain clients. However, a wide range of the reported RPC bugs are triggered in various blockchain contexts. To the best of our knowledge, little attention is paid to generating proper contexts that can trigger these context-dependent RPC bugs. In this work, we propose EthCRAFT, a Context-aware RPC Analysis and Fuzzing Tool for client RPC bug detection. EthCRAFT first proposes to explore the state transition program space of blockchain clients and generate various transactions to construct the context. EthCRAFT then designs a context-aware RPC method call generation method to send RPC calls to the blockchain clients. The responses of 5 different client implementations are used as cross-referring oracles to detect the RPC bugs. We evaluate EthCRAFT on real-world RPC bugs collected from the GitHub issues of Ethereum client implementations. Experiment results show that EthCRAFT outperforms existing client RPC detectors by detecting more RPC bugs. Moreover, EthCRAFT has found six new bugs in major Ethereum clients and reported them to the developers. One of the bug fixes has been written into breaking changes in the client's updates. Three of our bug reports have been offered a vulnerability bounty by the Ethereum Foundation.
연구 동기 및 목표
- 이더리움 블록체인 클라이언트에서 컨텍스트 의존 RPC 버그를 탐지해야 할 필요성을 동기 부여한다.
- 트리거링되는 블록체인 컨텍스트를 자동으로 생성하기 위한 컨텍스트 인식 퍼징 프레임워크를 제안한다.
- 효율성과 커버리지를 향상시키기 위해 오프체인 컨텍스트 탐색과 온체인 RPC 테스트를 개발한다.
- 실세계 RPC 버그에 대해 EthCRAFT를 평가하고 개발자에게 새로운 버그를 보고한다.
제안 방법
- 오프체인 컨텍스트 공간 탐색과 온체인 RPC 테스트 워크플로를 분리하여 EthCRAFT를 제안한다.
- EVM 실행 커버리지를 최대화하기 위해 온체인 트랜잭션을 선택하고 변이시켜 컨텍스트를 생성한다.
- 코드 커버리지 피드백에 의해 안내되는 런타임 상태 인식 변이 전략을 사용한다.
- 전체 노드 배포 없이 트랜잭션을 평가하기 위한 오프체인 Go-Ethereum 상태전이 기반 시뮬레이터를 사용한다.
- 유효하고 버그를 드러내는 RPC 입력을 생성하기 위한 컨텍스트 인식 RPC 호출 생성 DSL을 구현한다.
- 다섯 개 Ethereum 클라이언트 간의 RPC 버그를 탐지하기 위한 오라클 신호로 교차 클라이언트 응답을 사용한다.
실험 결과
연구 질문
- RQ1컨텍스트 의존 RPC 버그를 트리거하는 블록체인 컨텍스트를 어떻게 자동으로 생성할 수 있는가?
- RQ2여러 이더리움 클라이언트에서 버그를 드러내기 위해 RPC 매개변수 공간을 어떻게 효율적으로 탐색할 수 있는가?
- RQ3컨텍스트 인식 RPC 테스트가 이전 탐지기보다 더 많은 RPC 버그를 탐지하는가?
- RQ4EthCRAFT를 사용하여 새로운 RPC 버그를 발견하고 개발자에게 보고할 수 있는가?
- RQ5오프체인 컨텍스트 탐색의 분리화가 테스트 효율성에 미치는 영향은 무엇인가?
주요 결과
- EthCRAFT는 실제 보고된 30개의 RPC 버그 데이터셋에서 더 많은 버그를 식별하여 기존 RPC 탐지기보다 우수하다.
- 프레임워크는 주요 이더리움 클라이언트 전반에서 6건의 새로운 RPC 버그를 발견했다.
- 새로운 버그 중 세 건이 이더리움 재단으로부터 취약점 현상금(vulnerability bounty)을 받았다.
- 하나의 버그 수정이 클라이언트 업데이트에서 파급 효과를 가진 변경(breaking change)로 포함되었다.
- 세 건의 버그 보고가 이더리움 재단으로부터 취약점 현상금으로 이어졌다.
- 버그 수정은 클라이언트의 안정성과 보안에 실질적 영향을 보여준다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.