2024년 4월 19일, 이더리움, Arbitrum 등 여러 체인에서 Hedgey Token Claim 계약이 공격을 받아 수천만 달러의 손실을 입었습니다. Hedgey 프로젝트 팀은 즉시 보안 경고를 발행하여 토큰 청구 활동을 생성한 사용자에게 공식 채널을 통해 토큰 청구 활동을 취소하도록 상기시켰습니다. (https://twitter.com/hedgeyfinance/status/1781257581488418862)
Hedgey는 DAO와 온체인 조직이 온체인 및 프로그래밍 방식의 토큰 발행을 통해 토큰을 배포할 수 있도록 돕습니다. 팀, 기여자, 투자자 및 커뮤니티에 배포됩니다. 이번에 취약점이 발생한 도구는 토큰 청구(Token Claims) 제품입니다. 이 제품을 사용하면 사용자는 토큰 청구 페이지를 만들고, CSV 파일을 통해 화이트리스트에 100,000명 이상의 수신자를 추가하고, 흐름, 시간 잠금, 청구된 토큰 전달 방법을 제어할 수 있습니다. 재활용이나 기타 방법을 통해 배출될 수 있습니다.
이 공격으로 악용되는 계약 취약점은 토큰 청구 제품의 ClaimCampaigns 계약이 토큰 청구 이벤트를 생성할 때 작성자가 지정한 주소에 해당 토큰을 인증한다는 것입니다. 생성자가 이벤트 청구를 취소하는 경우, 이벤트 생성 단계에서 생성자가 전송한 토큰은 생성자가 지정한 다른 주소로 반환되지만, 토큰 승인은 취소되지 않으므로 이벤트 생성자의 주소는 계속해서 해당 정보를 사용할 수 있습니다. ClaimCampaigns 계약에 의해 승인됩니다.
이 공격에는 여러 트랜잭션이 포함됩니다. 공격 원리를 분석하기 위해 예시로 NOBL 토큰을 훔치는 데 다음 트랜잭션만 사용합니다. Attack Transaction :
https : //etherscan.io/tx/0x017ce959350cba65d506e1a87e52d2c20079fdfa80a89fe6fc875f2d9f9f9aTtack eOA :0 XDED2B1A426E1B7D414 F47181DDA2
0XD818FF3D5CFC938014B270D0C8029BA04629B549ATCATACKER (계약) :
0xbc452fdc8f851d7c5b72e1fe74dfb63bb793d511VULNERABLE CONTARY ( 캠페인 주장):
0x88b9f5c6 63 42ebaf661b3e2836b807c8cb1b3195도난된 토큰(NobleBlocks: NOBL 토큰):
공격 구현공격 과정 분석
1.
공격자는 취약한 컨트랙트의 "createLockedCampaign" 함수를 호출하여 캠페인을 생성하고, 매개변수에 "campaign.manager"와 "claimLockup.tokenLocker"를 모두 공격자에게 설정합니다. "campaign.token"을 NOBL 토큰으로 설정하고 "campaign.amount"를 "680000000000000000000000"으로 설정합니다(NOBL 토큰의 소수점은 18이므로 이는 680,000 NOBL 토큰을 나타냅니다). 0으로 설정됩니다. "createLockedCampaign" 함수 코드에서 공격자가 먼저 취약한 계약에 NOBL 토큰을 전송한 다음 "safeIncreaseAllowance" 함수를 사용하여 취약한 계약에 "claimLockup.tokenLocker"(공격자)에게 보유 자금을 사용하도록 권한을 부여하는 것을 볼 수 있습니다. 취약한 계약으로 인해 NOBL 토큰의 힘으로 인해 공격자에게 너무 많은 "캠페인 금액"이 부여됩니다.
공격자는 1단계에서 생성한 캠페인을 삭제하기 위해 "cancelCampaign" 함수를 호출한다. 함수코드에서 알 수 있듯이 취약한 컨트랙트는 캠페인의 데이터를 삭제하고, "withdrawTokens" 함수를 호출한다. 1단계에서 캠페인을 삭제하기 위한 TransferHelper 라이브러리입니다. 이 단계에서는 공격자가 전송한 NOBL 토큰이 "campaign.manager"(공격자)로 반환됩니다. 이 시점에서는 캠페인이 성공적으로 취소되었지만 1단계에서 공격자에게 취약점 계약을 통해 승인된 NOBL 토큰 사용 할당량이 동시에 삭제되지 않았습니다. 따라서 공격자는 이때 취약한 계약의 NOBL 토큰을 사용할 수 있는 권한도 갖게 됩니다.
공격자는 1단계와 2단계를 25회 반복하여 마침내 취약한 계약에서 사용 할당량 680000 * 25 = 17000000 NOBL 토큰을 획득했습니다.
훔친 돈 모으기 단계에서 공격자는 NOBL 토큰의 "transferFrom" 함수를 직접 호출하여 취약한 계약의 NOBL 토큰을 공격자의 EOA 주소로 전송합니다. 공격 구현 단계에서의 공격으로 인해 공격자는 취약한 컨트랙트가 보유하고 있는 NOBL 토큰에 대한 사용권을 획득하게 되므로, "transferFrom" 기능에서의 한도 검증을 원활하게 통과할 수 있었고, 결국 공격자는 NOBL 탈취에 성공하였다. 취약한 계약의 토큰.
자세한 내용은 거래를 확인하세요. https://etherscan.io/tx/0x47da1ac72d488f746865891c9196c1632ae04f018b285b762b2b564ad1d3a9e5
ZAN KYT 데이터 분석을 통해 공격자는 취약한 사람들로부터 NOBL 토큰을 탈취하기 전에 contract , 계약 취약점을 사용하여 취약한 계약이 공격자에게 다음과 같이 승인 토큰 거래 해시를 제공하도록 허용합니다(Ethereum의 거래만 나열됨):
현재 공격자는 불법 이득의 일부를 다른 주소로 이전했습니다 0xd84f48b7D1AaFA7bd5905c95c5d1ffB2625AdA46, 현재 다른 작업은 없습니다. 클레임 계약 개발자(0x5a4bC2bdA1f6B9929b6efdCef4728246bEc4C635)는 Blockscan 채팅을 통해 공격자에게 연락하고 계약의 취약점을 인정했으며 공격자가 24시간 이내에 연락하기를 바라면서 그들의 행동이 화이트 햇 작전이라고 가정했습니다.
이번 공격 사건을 분석하여 다음과 같은 제안을 했습니다.
프로젝트 내 토큰 승인 작업을 엄격하게 검토합니다. 프로젝트 개발자와 계약 감사자는 공격자가 복구되지 않은 토큰 인증이나 예상치 못한 중복 인증을 사용하는 것을 방지하기 위해 토큰 인증이 필요한 비즈니스 시나리오와 재활용 토큰 인증이 필요한 비즈니스 시나리오를 명확히 해야 합니다.
프로젝트는 긴급 중단 메커니즘을 설정해야 합니다. 자본 순환과 관련된 프로젝트는 공격이 발생할 때 손실이 적시에 중단될 수 있도록 완전한 정지 메커니즘을 구축하는 것이 좋습니다.
이 글은 ZAN팀 카라(X계정 @Cara6289)와 XiG(X계정 @SHXiGi)가 공동으로 작성했습니다.
위 내용은 헤지 공격 사건 분석: 수천만 달러의 토큰 승인 손실의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!