2023년 7월 1일, 공격자는 BSC(Binance Smart Chain)의 Biswap V3Migrator 계약 취약성을 악용하여 순진한 사용자로부터 약 $140,000 상당의 토큰을 훔쳤습니다. 공격자는 가짜 토큰 공격을 사용하여 마이그레이션 기능의 매개 변수를 조작하고 유동성 공급자(LP) 토큰을 V3Migrator 계약에 승인한 사용자의 유동성을 빼돌렸습니다. 이번 공격은 V3Migrator 컨트랙트가 Biswap V2에서 Biswap V3로 마이그레이션할 때 검증 파라미터가 없었기 때문에 가능했습니다. 공격이 제때 중단되지 않았다면 Biswap에 거의 수천만 달러의 자산 손실이 발생했을 것입니다.
거래
공격자는 공격을 수행 하기 위해 세 가지 트랜잭션을 실행했습니다.
https://bscscan.com//tx/0xe5c89e9ac217e4e16c2399f3597f7b5fbb73b45c1d3360788ee51ea2561def3a
https://bscscan.com//tx/0x8693a95f8481ba02ceaabed8e95b4e1eb8ac589c69c027c96b12ac5295714c3f
공격자
공격자의 주소는 [ 0xa1e31b29f94296fc85fac8739511360f279b1976 ]입니다.
공격 계약
공격 컨트랙트는 [ 0x1d448e9661c5abfc732ea81330c6439b0aa449b5 ] 공격자가 공격 하루 전인 2023년 6월 30일에 배포한 컨트랙트입니다. 계약에는 다른 매개변수로 V3Migrator 계약을 호출하는 간단한 논리가 있습니다.
공격받은 계약
공격받은 컨트랙트는 [ 0x839b0afd0a0528ea184448e890cbaaffd99c1dbf ] 2023년 6월 28일 Biswap에서 배포한 V3Migrator 컨트랙트입니다. 이 계약은 사용자가 Biswap V2에서 Biswap V3로 LP 토큰을 마이그레이션할 수 있도록 설계되었습니다.
공격 단계
공격자는 V3Migrator 계약의 결함을 악용하여 마이그레이션 기능의 매개 변수를 조작할 수 있습니다.공격 단계는 다음과 같습니다.
- 피해자는 Biswap V3Migrator 계약에 LP 토큰을 승인했습니다.
- 공격자는 피해자의 V2 LP 토큰을 소각하고 가짜 토큰으로 V3 유동성을 추가했습니다. 이 단계에서 V2 LP의
및token0
여전히 V3Migrator 계약에 있습니다.token1
- 공격자는 가짜 V2 LP 토큰을 소각하고 V2 LP의
및token0
로 V3 유동성을 추가했으며, V3 유동성 추가에 사용되지 않은 초과token1
및token0
공격자에게 다시 이전되었습니다. 동시에 이 단계의 V3 유동성도 공격자에게 귀속됩니다.token1
근본 원인
공격의 근본 원인은 Biswap V2에서 Biswap V3로 마이그레이션할 때 Biswap의 V3Migrator 계약에 검증 매개변수가 없었기 때문입니다. 특히 계약에 중요한 문제가 있습니다.
- 계약은
및token0
매개변수가 V2 LP 토큰의 실제 토큰과 일치하는지 확인하지 않습니다.token1
이러한 문제로 인해 공격자는 마이그레이션 기능에 가짜 토큰과 금액을 전달하고 V3Migrator 계약에 LP 토큰을 승인한 사용자로부터 실제 토큰을 훔칠 수 있습니다.
키 코드
![](https://img.cointime.com/builder/WTh1wyosnfcdOuzBryyyjXKlt6Tl1cBzQZqxtN1s.png)
손상된 자산
공격자[0xa1e31b29f94296fc85fac8739511360f279b1976]가 불법적으로 최대 $140,000의 자산을 획득했습니다.
자본 흐름
공격자는 $BNB와 교환하여 유동성을 인출합니다.
![](https://img.cointime.com/builder/o3iXBhp2TLckdKE02BDn2I9CpnNmIWeq66fXZNGA.png)
결국 공격자는 자금 세탁을 위해 603 $BNB를 Tornadocash로 전송했습니다.
![](https://img.cointime.com/builder/oEwcD2euSkAb2jSOmdT9k9YA45YvJrkWVyy0XbHP.png)
PoC
![](https://img.cointime.com/builder/S73em7Ud2FY5unXbI79LggyM4AaF54ClZPCmiWW0.png)
https://github.com/SunWeb3Sec/DeFiHackLabs/blob/main/src/test/Biswap_exp.sol
안전 조언
사용자가 Biswap V3Migrator의 승인을 취소할 것을 강력히 권장합니다: https://bscscan.com/tokenapprovalchecker
결론적으로
Biswap에 대한 공격이 대표적인 예인데, 가짜 토큰 공격은 BSC의 DEX 취약점을 십분 활용하여 사용자와 프로젝트 당사자로부터 자금을 회수했습니다. 이 공격은 또한 사용자 자금을 처리하는 계약의 매개변수와 잔액을 확인하는 것의 중요성을 강조합니다.사용자는 제3자 계약에 토큰을 승인할 때 주의해야 하며 사용하기 전에 계약의 소스 코드 및 감사 보고서를 확인해야 합니다. 선도적인 Web3 보안 회사인 MetaTrust Labs는 7월 1일 이 공격을 처음 발견하고 Twitter에서 Biswap에 경고를 보냈습니다. Biswap은 또한 MetaTrust Labs에서 제안한 두 가지 대처 전략을 채택했습니다.
- 공격자가 더 이상 LP 토큰에 액세스할 수 없도록 사용자가 가능한 한 빨리 V3Migrator 계약에 대한 권한을 취소하도록 요구합니다.
- V3 마이그레이션을 홍보하고 사용자에게 LP 토큰 마이그레이션의 이점을 알리는 자신의 트윗을 삭제합니다.
![](https://img.cointime.com/builder/tcV2FyxrRPQ6iRSqZl4Y8wV1BX2R9fyEkNOaSou8.png)
이 공격이 제 시간에 중단되지 않으면 공격자가 가짜 토큰을 사용하여 Biswap V2에서 Biswap V3로 모든 유동성을 마이그레이션할 수 있기 때문에 Biswap의 모든 마이그레이션 계약은 수천만 달러의 손실을 입을 것이며 이는 Biswap과 그 사용자에게 해를 끼칩니다. BSC에서 DEX를 개발하는 데 있어 엄청난 타격이자 심각한 차질이 될 것입니다.
팔로우
팔로우
트위터: @ MetaTrustLabs
웹사이트: metatrust.io
모든 댓글