본문 바로가기
블록체인교육/블록체인보안

[블록체인 보안] 스마트컨트랙트 취약성(재진입공격)

by Danny_Kim 2023. 8. 24.

🔑 코인 투자 추천 링크 🔑

  1. 비트코인, 알트코인 투자 노하우 모두 공개
  2. OKX 거래소 - 20% 수수료 할인
  3. 플립스터 거래소 - USDT 15% 이자
  4. 해시키 거래소 - HSK 에어드랍
재진입 취약점
EtherStore 재진입 취약점은 스마트계약설계의 결함으로, 공격자가 재진입을 악용하여
EtherStore 계약으로부터 자신이 권한이 있는 금액보다 더 많은 자금을 인출할 수 있는 문제임.
이 취약점은 EtherStore 계약의 withdrawFunds 함수에서 발생함.
여기서 Ether가 공격자 주소로 전송되고 나서 잔액을 업데이트 하기 때문임.
이로 인해 공격자의 계약은 잔액 업데이트 이전에 withdrawfunds 함수로 재진입 호출을 수행할 수 있음.
이로써 여러차례의 인출이 발생하고 EtherSotre 계약에서 모든 Ether가 흡수될 수 있음.

 

시나리오.
EtherStore는 간단한 금고로, 모든 사람의 이더를 관리할 수 있음.
하지만 이는 취약함.

 

보안방법
check-effect-interation을 따르고 openzeppelin reentrancy guard를 사용할것.

 

테스트 소스

https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/Reentrancy.sol

 

재진입 공격 취약코드

 

재진입 공격 테스트

재진입 공격 성공

 

참고

https://web3sec.notion.site/Reentrancy-6eb97f96a3454f6085808c079f922146

🔑 코인 투자 추천 링크 🔑

  1. 비트코인, 알트코인 투자 노하우 모두 공개
  2. OKX 거래소 - 20% 수수료 할인
  3. 플립스터 거래소 - USDT 15% 이자
  4. 해시키 거래소 - HSK 에어드랍

댓글