
공격받은 계약
#1 이벤트 관련 정보
공격 트랜잭션
0xcd314668aaa9bbfebaf1a0bd2b6553d01dd58899c508d4729fa7311dc5d33ad7
공격자 주소
0x1c5dcdd006ea78a7e4783f9e6021c32935a10fb4
공격 계약
0x79224bC0bf70EC34F0ef56ed8251619499a59dEf
공격받은 계약
0xc1e088fc1323b20bcbee9bd1b9fc9546db5624c5
#2 공격 프로세스
1. 공격자는 공격 전날부터 제안 트랜잭션을 시작했으며, 제안이 통과되면 Beanstalk: Beanstalk Protocol 계약의 자금이 인출됩니다.
2. 해커는 플래시론을 통해 350,000,000 DAI, 500,000,000 USDC, 150,000,000 USDT, 32,100,950 BEAN, 11,643,065 LUSD를 자본금으로 교환했습니다.
3. 해커는 2단계 DAI, USDC 및 USDT 자금을 Curve.fi DAI/USDC/USDT 거래 풀에 979,691,328 3Crv 유동성 토큰으로 추가하고 15,000,000 3Crv를 15,251,318 LUSD로 교환했습니다.
4. 투표를 위해 964,691,328 3Crv 토큰을 795,425,740 BEAN3CRV-f로 교환하고 32,100,950 BEAN과 26,894,383 LUSD를 추가하여 58,924,887 BEANLUSD-f 유동성 토큰을 얻습니다.
5. 4단계에서 BEAN3CRV-f 및 BEANLUSD-f를 사용하여 제안에 투표하면 제안이 통과됩니다. 따라서 Beanstalk: Beanstalk Protocol 계약은 36,084,584개의 BEAN, 0.54개의 UNI-V2, 874,663,982개의 BEAN3CRV-f 및 60,562,844개의 BEANLUSD-f를 공격 계약으로 이전했습니다.
6. 마지막으로 공격자는 유동성을 제거하고 플래시 론을 반환하고 초과 토큰을 24,830 ETH로 변환하여 공격자의 계정으로 이체했습니다.
#3 취약점 분석
이 공격은 주로 계정에 보유하고 있는 토큰의 양을 기반으로 획득할 투표 계약의 투표 수를 사용합니다.
공격자는 적어도 하루 전에 Beanstalk: Beanstalk Protocol에서 자금을 인출하자는 제안을 시작한 다음 EmergencyCommit을 호출하여 제안을 실행하기 위한 긴급 커밋을 수행했습니다.이 때문에 공격자는 하루 전에 공격 준비를 시작했습니다.
#4 자금 추적
이 사건에 대응하여 Chengdu LianAn 기술 팀은 다음과 같이 제안했습니다.
이 사건에 대응하여 Chengdu LianAn 기술 팀은 다음과 같이 제안했습니다.
1. 투표에 사용되는 자금은 일정 기간 동안 계약에 고정되어야 하며 계정의 현재 자금 잔고를 사용하여 투표 수를 계산하는 것을 피하여 반복 투표를 방지하고 투표를 위해 플래시 론을 사용합니다.
2. 프로젝트 당사자와 커뮤니티는 모든 제안에 주의를 기울여야 하며 제안이 악의적인 제안인 경우 제안 투표 기간 동안 적시에 조치를 취하고 제안을 폐기하고 투표 및 실행을 금지하는 것이 좋습니다.
3. 계약 주소가 투표에 참여하는 것을 금지하는 것을 고려하십시오. 또한 보안 위험을 피하기 위해 프로젝트가 온라인 상태가 되기 전에 포괄적인 보안 감사를 수행하는 것이 가장 좋습니다.