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

[블록체인 보안] 스마트컨트랙트 취약성 unsafe delegatecall

by Danny_Kim 2023. 8. 24.

🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑

  1. 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
  2. 아무도 알려주지 않은 비트코인, 이더리움의 리스크
  3. 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
  4. 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
  5. 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!
안전하지 않은 Delegate Call 취약성
Proxy 계약 소유자 조작 취약점은 스마트계약 설계에서 발행하는 결함으로, 공격자가 Proxy 계약의 소유자를 조작할 수 있는 문제임.
이 취약점은 Proxy 계약의 fallback 함수에서 delegatecall을 사용함으로써 발생 함.
delegatecall은 공격자가 proxy 계약의 컨텐스트 내에서 delegate 계약의 pwn()함수를 호출할 수 있게 해주므로,
Proxy 계약의 소유자 상태 변수값을 변강할 수 있음.
이로써 스마트계약은 런타임시 다른 주소에서 코드를 동적으로 로드할 수 있게 됨.

시나리오
Proxy 계약은 사용자가 로직 계약을 호출하는데 도움을 주기 위해 설계 됨.
Proxy 계약의 소유자는 0xdeadbeef로 하드코딩되어 있음
 
개선방법
Proxy 계약 소유자 조작 취약점을 완하하려면 delegatecall이 명시적으로 필요하지 않은 경우에는 사용을 피하고, delegatecall을
안전하게 사용하는 것을 보장해야 함.
만약 delegatecall이 계약의 기능에 필요하다면, 예상치 못한 동작을 피하기 위해 입력값을 검증하고 정리하는 것이 중요함.

 

 

테스트 소스파일

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

 

 

테스트 결과

 

참고자료

https://web3sec.notion.site/Unsafe-Delegatecall-91fd2b6058114740999661dc817d627c

 

🔑 100배 수익 경험자의 노하우가 담긴 치트키 공개 🔑

  1. 네이버, 카카오 임직원들이 듣고 있는 비트코인 강의
  2. 아무도 알려주지 않은 비트코인, 이더리움의 리스크
  3. 블록체인 전문가들도 놓치기 쉬운 비트코인, 이더리움의 핵심 가치
  4. 천배 수익이 가능한 디파이(DeFi), 코인 생태계 지도
  5. 토큰 제작, 1억 연봉의 블록체인 개발자로 거듭나자!

댓글