권한 없는 사용자가 관리자 함수 호출 또는 중요 상태 수정. 2024년 Web3 피해 1위.
대출·보상·거버넌스 설계 결함. 저수준 검사가 올바르더라도 경제적 가치 탈취 가능.
오라클 피드 조작으로 담보 부족 대출·부당 청산 유발. 플래시 론과 결합 시 연쇄 피해.
무담보 대규모 플래시 론으로 소규모 버그를 단일 트랜잭션 내 대규모 피해로 확대.
사용자·관리자·크로스체인 입력 미검증으로 핵심 로직 오염 및 자금 손실 유발.
외부 컨트랙트 호출 실패·revert 미처리로 재진입 또는 불일치 상태 발생.
정수 연산·스케일링·반올림 버그. 지분·이자·AMM 계산 정밀도 손실 및 가치 탈취.
상태 업데이트 전 외부 호출로 악성 컨트랙트 재진입. TheDAO $60M 사건 대표 사례.
고정 크기 정수 범위 초과 시 랩어라운드. Solidity 0.8 미만 또는 unchecked 블록 위험.
잘못된 프록시·초기화·업그레이드 메커니즘으로 구현체 장악 또는 상태 재초기화 가능.
실습 환경 구성 가이드
이 가이드를 순서대로 따라하면 SC01~SC09의 대부분 실습을 로컬에서 진행할 수 있습니다.
STEP 1 — Ganache 설치 및 실행
Ganache 공식 사이트에서 OS에 맞는 설치파일 다운로드 후 설치
Ganache 실행 → QUICKSTART (ETHEREUM) 클릭
상단에 RPC 서버 주소 확인: HTTP://127.0.0.1:7545
Account 탭에서 10개 계정과 각 100 ETH 잔액 확인
열쇠 아이콘 클릭 → 개인키 복사 (MetaMask 계정 가져오기에 사용)
STEP 2 — MetaMask Ganache 네트워크 연결
MetaMask 설치 후 → 네트워크 선택 드롭다운 → 네트워크 추가
아래 정보 입력:
저장 후 → 계정 가져오기 → Ganache에서 복사한 개인키 붙여넣기
STEP 3 — Remix IDE 설정 및 배포
remix.ethereum.org 접속 → 새 파일 생성 (.sol 확장자)
Lab 탭에서 코드 복사 → 붙여넣기 → Solidity Compiler 탭에서 컴파일
배포 탭 → Environment: Injected Provider - MetaMask 선택
취약한 컨트랙트 먼저 배포 → 공격 함수 실행 → Ganache UI에서 잔액 변화 확인
방어 코드 버전으로 교체 후 동일 공격 재시도 → revert 확인
STEP 4 — Slither 정적 분석 (선택)
스마트 컨트랙트 보안 체크리스트
OWASP SC Top 10:2026 기반 배포 전 필수 점검 항목 (20개)