[제136회 정보관리기술사 1교시 13번] 스마트 컨트랙트 보안 취약점 — 재진입 공격·정수 오버플로우·오라클 조작

📋 정보관리기술사 기출문제 해설

제136회  ·  1교시  ·  13번

배점: 10점  |  유형: 단답형

📌 원문 문제

스마트 컨트랙트(Smart Contract)의 주요 보안 취약점을 설명하시오.

1. 개념

스마트 컨트랙트(Smart Contract)란 블록체인 위에 배포되어 특정 조건이 충족되면 자동으로 실행되는 자기 실행(Self-executing) 계약 코드입니다. 이더리움의 Solidity로 구현되며, 한 번 배포하면 수정이 불가하기 때문에 취약점이 있을 경우 수억 달러 피해로 직결됩니다.

2. 주요 취약점

취약점 원리 사례·예방
재진입 공격 (Reentrancy) 외부 호출 시 공격자 컨트랙트가 재귀 호출하여 잔액 업데이트 전 반복 출금 The DAO 해킹(2016, 360억 원) | Checks-Effects-Interactions 패턴 적용
정수 오버플로우·언더플로우 uint256 최대값+1 = 0으로 오버플로우, 잔액 음수가 되는 언더플로우 SafeMath 라이브러리 또는 Solidity 0.8+ 자동 검사 사용
오라클 조작 (Oracle Manipulation) 외부 가격 정보(오라클)를 플래시 론으로 조작하여 DeFi 프로토콜 악용 TWAP(시간 가중 평균 가격) 오라클·복수 오라클 소스 사용
접근 제어 누락 중요 함수에 onlyOwner 등 접근 제어 미적용으로 임의 호출 가능 OpenZeppelin Ownable·Access Control 라이브러리 사용
타임스탬프 의존 블록 타임스탬프를 난수나 조건에 사용 → 채굴자가 ±30초 조작 가능 블록 해시 + Chainlink VRF 기반 안전한 난수 사용

3. 보안 감사(Audit)와 예방

  • 정적 분석 도구: Slither, Mythril로 배포 전 자동 취약점 스캔
  • 전문 감사: ConsenSys Diligence, Trail of Bits 등 블록체인 보안 전문 업체 감사 의무화
  • 버그 바운티: 배포 후에도 지속적인 화이트햇 해커 보상 프로그램 운영
  • 업그레이드 가능 패턴: 프록시 패턴(Proxy Pattern)으로 버그 발생 시 로직 컨트랙트 교체 가능하도록 설계
✅ 핵심 암기: 재진입 공격 = The DAO 해킹 원인, CEI 패턴으로 방어 | 오라클 조작 = TWAP으로 방어 | 배포 전 Slither·Mythril 정적 분석 필수

Leave a Comment