SafeDollar 공격 이벤트 분석
成都链安
2021-06-29 02:26
本文约2243字,阅读全文需要约9分钟
담보 풀에 추가할 담보 통화에 대해 두 번 생각하십시오.

1. 이벤트 개요

1. 이벤트 개요

베이징 시간 6월 28일, Lianbian-Blockchain Security Situational Awareness Platform(Beosin-Eagle Eye)의 여론 모니터링에서 Polygon 생태 알고리즘 스테이블 코인 프로젝트인 SafeDollar가 해킹당한 것으로 나타났습니다. 공격 후 SafeDollar 프로젝트에서 발행한 스테이블 코인(SDO)의 가격은 $1.07에서 순식간에 0으로 떨어졌습니다.

이 공격의 상징적 의미를 고려하여 Chengdu Lianan Security Team은 즉시 분석에 개입했습니다. 5월 초 BSC(바이낸스 스마트 체인) 체인의 많은 프로젝트가 빈번하게 해킹된 후 6월 말부터 폴리곤 생태계도 해커의 표적이 되기 시작했습니다."판도라의 상자"는 조용히 열렸습니까? Chengdu Lianan은 이 사건을 기회로 Polygon 생태 프로젝트에 공격 프로세스와 공격 방법을 정리하여 보안 경고 및 예방 작업을 강화할 것을 상기시켰습니다.

2. 이벤트 분석

공격 계약:

공격자 주소:

0xFeDC2487Ed4BB740A268c565daCdD39C17Be7eBd

공격 계약:

0xC44e71deBf89D414a262edadc44797eBA093c6B0

0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB

공격 트랜잭션:

0xd78ff27f33576ff7ece3a58943f3e74caaa9321bcc3238e4cf014eca2e89ce3f

0x4dda5f3338457dfb6648e8b959e70ca1513e434299eebfebeb9dc862db3722f3

0x1360315a16aec1c7403d369bd139f0fd55a99578d117cb5637b234a0a0ee5c14

공격 트랜잭션:

0xd78ff27f33576ff7ece3a58943f3e74caaa9321bcc3238e4cf014eca2e89ce3f

0x1360315a16aec1c7403d369bd139f0fd55a99578d117cb5637b234a0a0ee5c14

다음 분석은 다음 두 트랜잭션을 기반으로 합니다.

공격자는 먼저 아래 그림과 같이 PLX 대출을 위해 PolyDex의 WMATIC 및 WETH 풀을 사용합니다.

다음으로 공격자는 주로 SdoRewardPool 계약에서 SDO 모기지 풀의 모기지 토큰 수를 줄이기 위해 계약을 공격하여 모기지 인출을 반복했습니다.

PLX 토큰 컨트랙트가 토큰을 전송할 때 from 주소가 _isExcludedFromFee 목록에 없고 to 주소가 _isExcludedToFee 목록에 없으면 전송된 토큰에 대해 보상 기금이 청구되고 전송된 토큰의 0.05%가 소멸됩니다.

SdoRewardPool 컨트랙트에서 기록된 금액은 이체 과정에서 손실을 차감하지 않고 발신자가 이체한 금액이며, 추출 작업을 수행할 때 기록된 금액은 사용자가 실제로 담보로 설정한 금액을 초과하는 금액입니다. 따라서 모기지 풀의 모기지 토큰이 비정상적으로 감소합니다.

마지막으로 획득한 SDO 토큰을 사용하여 SDO-USDC 및 SDO-USDT 교환 풀의 모든 USDC 및 USDT를 교환합니다.

3. 이벤트 리뷰

3. 이벤트 리뷰

사실 이 공격은 복잡하지 않지만 주목할 만하다. 첫째, 모기지 풀 추가 시 비표준 토큰이 추가되었고, 보상 계산 시 모기지 토큰 개수를 얻기 위해 balanceOf 함수를 사용하여 이번 공격이 발생하였다.

보안 감사의 관점에서 프로젝트 당사자는 모기지 풀을 추가하는 관리자로서 추가할 모기지 풀의 모기지 통화에 대해 두 번 생각해야 합니다. 인플레이션 및 디플레이션 토큰과 이체 수량이 실제 도착 수량과 다른 토큰은 모기지 풀에서 모기지 토큰으로 권장되지 않으며 이러한 유형의 토큰이 비즈니스 요구로 인해 보상 토큰으로 추가되어야 하는 경우 다른 표준과 분리되어야 합니다. 토큰이 처리합니다. 동시에 모기지 풀에서 별도의 변수를 모기지 금액 기록으로 사용하고 보상을 계산할 때 balanceOf 함수를 사용하는 대신 이 변수를 사용하여 모기지 토큰 금액을 얻는 것이 좋습니다.

成都链安
作者文库