이더리움 스마트 계약 취약점 분석은(는) 무엇을 하나요?
개요
스마트 계약 취약점으로 인해 DeFi 프로토콜에서 수십억 달러의 손실이 발생했습니다. 기존 소프트웨어와 달리 배포된 스마트 계약은 불변이며 실제 금융 자산을 처리하므로 배포 전 보안 분석이 매우 중요합니다. Slither는 중간 표현(IR)을 사용하여 빠른 정적 분석을 수행하고 90개 이상의 취약점 패턴을 몇 초 만에 감지하는 반면, Mythril은 심볼릭 실행과 SMT 솔버를 사용하여 재진입 및 정수 오버플로우와 같은 복잡한 실행 경로 취약점을 발견합니다. 이 스킬은 두 도구를 Solidity 계약에 대해 실행하고, 결과를 해석하며, 심각도별로 문제를 분류하고, 감사 보고서를 생성하는 방법을 다룹니다.
사용 시기
- 이더리움 스마트 계약 취약점 분석이 필요한 보안 사고를 조사할 때
- 이 도메인에 대한 탐지 규칙 또는 위협 헌팅 쿼리를 구축할 때
- SOC 분석가가 이 분석 유형에 대한 체계적인 절차가 필요할 때
- 관련 공격 기법에 대한 보안 모니터링 범위를 검증할 때
사전 요구 사항
- Python 3.10+ 및 pip
- Slither (
pip install slither-analyzer) 및 solc 컴파일러 - Mythril (
pip install mythril) 및 컴파일러 버전 관리를 위한 solc-select - Solidity 소스 코드 또는 컴파일된 계약 바이트코드
- Foundry 또는 Hardhat 개발 프레임워크 (선택 사항, 프로젝트 수준 분석용)
단계
1단계: Slither 정적 분석 실행
90개 이상의 내장 탐지기를 사용하여 취약점 패턴, 최적화 기회 및 코드 품질 문제를 식별하기 위해 계약 코드베이스에 대해 Slither를 실행합니다.
2단계: Mythril 심볼릭 실행 실행
심볼릭 실행을 통해 실행 경로를 탐색하고 재진입, 확인되지 않은 외부 호출, 경로에 민감한 분석이 필요한 산술 취약점을 발견하기 위해 Mythril 심층 분석을 실행합니다.
3단계: 결과 분류 및 상관 관계 분석
두 도구의 결과를 결합하고, 중복을 제거하며, 악용 가능성과 재정적 영향을 기반으로 심각도를 평가하고, 거짓 양성을 필터링합니다.
4단계: 감사 보고서 생성
취약점 설명, 영향을 받는 코드 위치, 악용 시나리오 및 수정 권장 사항이 포함된 구조화된 감사 보고서를 생성합니다.
예상 출력
SWC(스마트 계약 취약점 분류) 식별자, 심각도 등급, 영향을 받는 함수 및 제안된 수정 사항이 포함된 취약점 목록을 JSON 보고서로 출력합니다.