[논문 리뷰] Machine Learning Guided Cross-Contract Fuzzing
이 논문은 단어 벡터와 저수준 인스트럭션과 같은 학습된 특징을 활용하여 유해하지 않은 실행 경로를 걸러내는 기계학습 기반의 퍼즈링 프레임워크인 xFuzz를 제안한다. xFuzz는 다른 퍼즈링 도구보다 성능이 뛰어나며, 18개의 공격 가능한 크로스컨트랙트 취약점을 탐지했고, 그 중 15개는 이전에 알려지지 않은 것이었다. 또한 런타임을 다른 도구의 20퍼센트 이하로 줄였고, 취약점 탐지율을 두 배로 높였다.
Smart contract transactions are increasingly interleaved by cross-contract calls. While many tools have been developed to identify a common set of vulnerabilities to guard smart contracts, the cross-contract vulnerability is however overlooked by existing tools. Cross-contract vulnerabilities are exploitable bugs that manifest in the presence of more than two interacting contracts. Existing methods are however limited to analyze a maximum of two contracts at the same time. Detecting cross-contract vulnerabilities is highly non-trivial. With multiple interacting contracts, the search space is much larger than that of a single contract. To address this problem, we present xFuzz, a machine learning guided smart contract fuzzing framework. The machine learning models are trained with novel features (e.g., word vectors and instructions) and are used to filter likely benign program paths. Comparing with existing static tools, machine learning model is proven to be more robust, avoiding directly adopting manually-defined rules in specific tools. We compare xFuzz with three state-of-the-art tools on 7,391 contracts. xFuzz detects 18 exploitable cross-contract vulnerabilities, of which 15 vulnerabilities are exposed for the first time. Furthermore, our approach is shown to be efficient in detecting non-cross-contract vulnerabilities as well-using less than 20% time as that of other fuzzing tools, xFuzz detects twice as many vulnerabilities.
연구 동기 및 목표
- 두 개 이상의 상호작용하는 컨트랙트를 포함하는 크로스컨트랙트 취약점을 탐지하지 못하는 기존 도구의 격차를 보완하기 위해.
- 정적 분석과 규칙 기반 퍼즈링의 한계를 극복하기 위해 기계학습을 활용하여 다수의 컨트랙트 간 복잡한 상호작용 패턴을 모델링하기 위해.
- 코드 의미론과 제어 흐름에서 유래한 학습된 특징을 사용하여 유해하지 않은 실행 경로를 걸러내어 퍼즈링의 탐색 공간을 줄이기 위해.
- 기존 최첨단 퍼즈링 및 정적 분석 도구와 비교해 효율성과 효과성을 모두 향상시키기 위해.
제안 방법
- 프레임워크는 컨트랙트 코드에서 유도된 단어 벡터와 저수준 EVM 인스트럭션을 포함한 새로운 특징에 기반한 기계학습 모델을 학습하여 프로그램 의미를 표현한다.
- 이 모델을 사용해 특정 실행 경로가 유해하지 않을 가능성을 예측함으로써, 퍼즈링 동안 탐색 공간을 줄이고 위험도가 높은 경로에 집중한다.
- 다중 상호작용 컨트랙트 간의 상징적 실행을 수행하여 복잡한 크로스컨트랙트 상호작용을 탐색하는 테스트 입력을 생성한다.
- 기계학습 모델을 퍼즈링 파이프라인 내 필터로 통합하여 위험도 점수가 높은 경로를 더 깊이 분석하도록 우선순위를 정한다.
- 기존 도구에서 사용하는 수작업으로 정의된 히ュ리스틱에 의존하지 않도록 설계되어, 강건성과 일반화 능력이 뛰어나다.
- 검출 커버리지와 효율성을 측정하기 위해 7,391개의 실제 스마트 컨트랙트를 대상으로 프레임워크를 평가한다.
실험 결과
연구 질문
- RQ1의미론적 및 문법적 특징에 기반한 기계학습 모델이 스마트 컨트랙트의 크로스컨트랙트 취약점 탐지에 있어 탐색 공간을 효과적으로 줄일 수 있는가?
- RQ2기계학습 기반 퍼즈링의 성능은 기존의 정적 분석 및 규칙 기반 퍼즈링과 비교해 크로스컨트랙트 취약점을 탐지하는 데서 어떻게 다른가?
- RQ3수작업으로 정의된 규칙에 의존하지 않고, 다양한 스마트 컨트랙트 상호작용에 대해 학습된 모델이 얼마나 일반화될 수 있는가?
- RQ4기계학습 기반 필터링 통합이 크로스컨트랙트 환경에서 실행 속도와 탐지된 취약점 수의 향상에 기여하는가?
주요 결과
- xFuzz는 7,391개의 스마트 컨트랙트에서 18개의 악용 가능한 크로스컨트랙트 취약점을 탐지했으며, 그 중 15개는 이전에 알려지지 않은 것이었다.
- 프레임워크는 다른 퍼즈링 도구가 요구하는 런타임의 20퍼센트 미만으로 줄였고, 동시에 탐지한 취약점 수를 두 배로 늘렸다.
- 기계학습 모델은 수작업으로 정의된 히ュ리스틱에 의존하는 규칙 기반 접근보다 우수한 강건성을 보였다.
- xFuzz는 크로스컨트랙트 취약점 외에도 비크로스컨트랙트 취약점을 더 효율적으로 탐지하여, 주로 크로스컨트랙트 문제에 초점을 맞추었음에도 불구하고 그 일반적 유용성을 추가로 입증했다.
- 단어 벡터와 EVM 인스트럭션 시퀀스를 모델의 특징으로 사용함으로써, 유해하지 않은 실행 경로와 악성 실행 경로를 구분하는 데 모델의 능력이 크게 향상되었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.