SecuFiby TechFi
OWASP
SMART CONTRACT TOP 10
블록체인 보안 실습 교육 · 2026 Edition · Ganache + Remix + MetaMask

스마트 컨트랙트
보안 취약점 Top 10

OWASP Smart Contract Top 10 (2026) 기반 실습 교육 교재입니다.
각 취약점별 실습 가능 여부, 환경 제약, Solidity 코드, 시뮬레이션을 모두 포함합니다.

🔗 OWASP 공식 페이지
📄 스마트컨트랙트 취약점 분석 보고서 양식 — TechFi 내부 자산 · 대외 유출 금지 📝 빈 양식 열기 📖 SC01 샘플 보기
$1.42B
2024년 Web3 피해액
149
2024년 사고 건수
6개
Ganache 직접 실습
2개
부분 실습 (제약있음)
2개
로컬 불가 (이유설명)
SC01
접근 제어 취약점
Access Control Vulnerabilities
CRITICAL

권한 없는 사용자가 관리자 함수 호출 또는 중요 상태 수정. 2024년 Web3 피해 1위.

💸 $953.2M (2024)
✓ 직접실습
SC02
비즈니스 로직 취약점
Business Logic Vulnerabilities
CRITICAL

대출·보상·거버넌스 설계 결함. 저수준 검사가 올바르더라도 경제적 가치 탈취 가능.

💸 $63.8M (2024)
⚠ 제약있음
SC03
가격 오라클 조작
Price Oracle Manipulation
CRITICAL

오라클 피드 조작으로 담보 부족 대출·부당 청산 유발. 플래시 론과 결합 시 연쇄 피해.

💸 $8.8M (2024)
⚠ 제약있음
SC04
플래시 론 공격
Flash Loan–Facilitated Attacks
HIGH

무담보 대규모 플래시 론으로 소규모 버그를 단일 트랜잭션 내 대규모 피해로 확대.

💸 $33.8M (2024)
✗ 로컬불가
SC05
입력값 검증 부재
Lack of Input Validation
HIGH

사용자·관리자·크로스체인 입력 미검증으로 핵심 로직 오염 및 자금 손실 유발.

💸 $14.6M (2024)
✓ 직접실습
SC06
외부 호출 미검사
Unchecked External Calls
HIGH

외부 컨트랙트 호출 실패·revert 미처리로 재진입 또는 불일치 상태 발생.

💸 $550.7K (2024)
✓ 직접실습
SC07
산술 오류
Arithmetic Errors
MEDIUM

정수 연산·스케일링·반올림 버그. 지분·이자·AMM 계산 정밀도 손실 및 가치 탈취.

⚠️ 복합 공격 시 수백만 달러 피해
✓ 직접실습
SC08
재진입 공격
Reentrancy Attacks
CRITICAL

상태 업데이트 전 외부 호출로 악성 컨트랙트 재진입. TheDAO $60M 사건 대표 사례.

💸 $35.7M (2024)
✓ 직접실습
SC09
정수 오버플로/언더플로
Integer Overflow and Underflow
HIGH

고정 크기 정수 범위 초과 시 랩어라운드. Solidity 0.8 미만 또는 unchecked 블록 위험.

⚠️ 구버전 컨트랙트 다수 취약
✓ 직접실습
SC10
프록시 & 업그레이더빌리티
Proxy & Upgradeability
HIGH

잘못된 프록시·초기화·업그레이드 메커니즘으로 구현체 장악 또는 상태 재초기화 가능.

⚠️ DeFi 프로토콜 전체 장악 위험
✗ 로컬불가
✓ 직접실습 Ganache+Remix 로컬 환경에서 바로 실습 가능
⚠ 제약있음 Mock 컨트랙트 필요 / 일부 기능만 재현 가능
✗ 로컬불가 실제 DeFi 프로토콜/외부 인프라 필수 → 이유 설명 제공
실습 진행률0 / 10 완료
실습 시나리오 10종
SC01접근 제어
SC02비즈니스 로직
SC03오라클 조작
SC04플래시 론
SC05입력값 검증
SC06외부 호출
SC07산술 오류
SC08재진입 공격
SC09정수 오버플로
SC10프록시 취약점
직접실습 (6)
부분실습 (2)
로컬불가 (2)

실습 환경 구성 가이드

이 가이드를 순서대로 따라하면 SC01~SC09의 대부분 실습을 로컬에서 진행할 수 있습니다.

1. Ganache

로컬 이더리움 블록체인 에뮬레이터. 테스트 계정 10개 자동 생성(각 100 ETH). 트랜잭션·잔액을 GUI로 실시간 확인.

→ 다운로드 (무료)

2. Remix IDE

브라우저 기반 Solidity 개발 통합환경. 설치 불필요. 컴파일·배포·함수 호출·디버거 내장.

→ 열기 (브라우저)

3. MetaMask

브라우저 지갑 확장 프로그램. Ganache 네트워크 연결 후 공격자/피해자 계정을 전환하며 실습.

→ Chrome 확장 설치

4. Slither (선택)

Trail of Bits 개발 정적 분석 도구. 80+ 취약점 자동 탐지. Python 환경 필요.

→ GitHub

5. Hardhat (고급)

SC04 플래시 론 실습: Hardhat + mainnet fork 환경 필요. Alchemy API 키 필요.

→ Hardhat 공식

6. OpenZeppelin

감사된 스마트 컨트랙트 라이브러리. ReentrancyGuard, Ownable, SafeMath 등 방어 패턴.

→ 문서

STEP 1 — Ganache 설치 및 실행

1

Ganache 공식 사이트에서 OS에 맞는 설치파일 다운로드 후 설치

2

Ganache 실행 → QUICKSTART (ETHEREUM) 클릭

3

상단에 RPC 서버 주소 확인: HTTP://127.0.0.1:7545

4

Account 탭에서 10개 계정과 각 100 ETH 잔액 확인

5

열쇠 아이콘 클릭 → 개인키 복사 (MetaMask 계정 가져오기에 사용)

STEP 2 — MetaMask Ganache 네트워크 연결

1

MetaMask 설치 후 → 네트워크 선택 드롭다운 → 네트워크 추가

2

아래 정보 입력:

네트워크 이름: Ganache Local RPC URL: http://127.0.0.1:7545 체인 ID: 1337 통화 기호: ETH
3

저장 후 → 계정 가져오기 → Ganache에서 복사한 개인키 붙여넣기

STEP 3 — Remix IDE 설정 및 배포

1

remix.ethereum.org 접속 → 새 파일 생성 (.sol 확장자)

2

Lab 탭에서 코드 복사 → 붙여넣기 → Solidity Compiler 탭에서 컴파일

3

배포 탭 → Environment: Injected Provider - MetaMask 선택

4

취약한 컨트랙트 먼저 배포 → 공격 함수 실행 → Ganache UI에서 잔액 변화 확인

5

방어 코드 버전으로 교체 후 동일 공격 재시도 → revert 확인

STEP 4 — Slither 정적 분석 (선택)

pip3 install slither-analyzer slither VulnerableBank.sol slither VulnerableBank.sol --detect reentrancy-eth slither VulnerableVault.sol --detect unprotected-upgrade slither target.sol --json report.json

스마트 컨트랙트 보안 체크리스트

OWASP SC Top 10:2026 기반 배포 전 필수 점검 항목 (20개)

SC01 — 접근 제어
SC02 — 비즈니스 로직
SC03 — 오라클 조작
SC04 — 플래시 론
SC05 — 입력값 검증
SC06 — 외부 호출
SC07 — 산술 오류
SC08 — 재진입
SC09 — 정수 오버플로
SC10 — 프록시 & 업그레이드
0 / 20 항목 완료