Cointime

Download App
iOS & Android

SharkTeam: Vyper 취약점으로 인해 Curve 및 JPEG와 같은 프로젝트가 공격을 받음 원칙 분석

7월 30일 Vyper 일부 버전의 취약점으로 인해 Curve 및 JPEG'd와 같은 프로젝트가 연속적으로 공격을 받아 총 5,200만 달러 이상의 손실을 입었습니다.

SharkTeam은 이번 사건에 대해 처음으로 기술 분석을 실시하고 보안 예방 조치를 요약하여 후속 프로젝트가 이를 통해 블록체인 산업의 보안 방어선을 공동 구축할 수 있기를 바랍니다.

1. 이벤트 분석

공격을 받는 JPEG'd를 예로 들어 보겠습니다.

공격자 주소: 0x6ec21d1868743a44318c3c259a6d4953f9978538

공격자 계약: 0x9420F8821aB4609Ad9FA514f8D2F5344C3c0A6Ab

공격 트랜잭션: 0xa84aa065ce61dbb1eb50ab6ae67fc31a9da50dd2c74eefd561661bfce2f1620c

(1) 공격자(0x6ec21d18)는 0x466B85B4의 컨트랙트를 생성하고 플래시론을 통해 [Balancer: Vault]에서 80,000 WETH를 빌렸습니다.

(2) 공격자(0x6ec21d18)는 40,000 WETH를 pETH-ETH-f(0x9848482d) 유동성 풀에 추가하여 32,431 pETH를 획득했습니다.

(3) 그런 다음 공격자(0x6ec21d18)는 반복적으로 pETH-ETH-f(0x9848482d) 유동성 풀에서 유동성을 제거했습니다.

(4) 결국 공격자(0x6ec21d18)는 86,106 WETH를 얻었고, 플래시론을 상환한 후 6,106 WETH의 이익을 남기고 떠났다.

2. 취약점 분석

(1) 이 공격은 전형적인 재진입 공격이다. 공격을 받고 있는 프로젝트 컨트랙트의 바이트 코드를 디컴파일하면 아래 그림에서 알 수 있습니다. add_liquidity 및 remove_liquidity 두 함수가 스토리지 슬롯의 값을 확인할 때 검증할 스토리지 슬롯이 다릅니다. 다른 스토리지 슬롯을 사용하면 재진입 잠금이 무효화될 수 있습니다. 이 시점에서 Vyper 기본 설계 허점으로 의심됩니다.

(2) 커브 공식 트윗과 합산. 궁극적으로 위치는 Vyper 버전 취약점입니다. 이 취약점은 버전 0.2.15, 0.2.16 및 0.3.0에 존재하며 재진입 잠금 설계에 결함이 있습니다. 0.2.15 이전의 0.2.14와 0.3.0 이후의 0.3.1 버전을 비교한 결과 이 ​​부분의 코드가 지속적으로 업데이트되고 있으며 이전 0.2.14 및 0.3.1 버전에는 이러한 문제가 없음을 확인했습니다. .

(3) Vyper에 해당하는 재진입 잠금 관련 설정 파일 data_positions.py에서 storage_slot의 값을 덮어씁니다. ret에서 처음 획득한 lock의 슬롯은 0이고 함수를 다시 호출하면 lock의 슬롯은 1씩 증가하게 되며 이때의 reentrant lock은 무효가 된다.

취약성 요약: 이 공격의 근본 원인은 Vyper 버전 0.2.15, 0.2.16 및 0.3.0이 재진입 잠금의 불합리한 설계와 불충분한 포괄적인 기능 테스트를 가지고 있다는 것입니다. 결과적으로 이러한 버전을 사용한 프로젝트의 재진입 잠금이 나중에 무효화되어 결국 해킹당했습니다.

3. 보안 권장 사항

이 공격에 대해 개발자는 일상적인 개발에서 다음과 같은 보안 조치를 취해야 합니다.

(1) 프로젝트 당사자는 기능 설계가 합리적인지 확인하고 특정 기능 테스트의 누락을 방지하기 위해 코드에 대한 포괄적인 테스트를 수행해야 합니다.

(2) 프로젝트를 공개하기 전에 제3자 전문 감사팀의 기술 지원을 받아야 합니다.

회사 소개

SharkTeam의 비전은 Web3 세계의 보안을 포괄적으로 보호하는 것입니다. 이 팀은 전 세계의 숙련된 보안 전문가와 선임 연구원으로 구성되어 있으며 블록체인 및 스마트 계약의 기본 이론에 능숙하고 스마트 계약 감사, 온체인 분석 및 비상 대응을 포함한 서비스를 제공합니다. Polkadot, Moonbeam, 폴리곤, OKC, Huobi Global, imToken, ChainIDE 등과 같은 블록체인 생태계의 다양한 분야의 핵심 플레이어들과 장기적인 협력 관계를 구축했습니다.

공식 홈페이지: https://www.sharkteam.org

트위터: https://twitter.com/sharkteamorg

디스코드: https://discord.gg/jGH9xXCjDZ

텔레그램: https://t.me/sharkteamorg

댓글

모든 댓글

Recommended for you