7월 3일 AzukiDAO가 공격을 받았고 공격자는 약 $69,000의 수익을 냈습니다.
SharkTeam은 이번 사건에 대해 처음으로 기술 분석을 실시하고 보안 예방 조치를 요약하여 후속 프로젝트가 이를 통해 블록체인 산업의 보안 방어선을 공동 구축할 수 있기를 바랍니다.
1. 이벤트 분석
공격자 주소:
0x85D231C204B82915c909A05847CCa8557164c75e
0x8eadc7cc0a77594e3fa999e80e1ccb7f4e1c04e0
공격받은 계약:
0x8189AFBE7b0e81daE735EF027cd31371b3974FeB
공격 트랜잭션:
0x6233c9315dd3b6a6fcc7d653f4dca6c263e684a76b4ad3d93595e3b8e8714d34
공격 과정:
(1) 공격자(0x85D231C2)는 공격받은 컨트랙트(0x8189AFBE)의 클레임 기능을 호출하고, 서명 검증을 통과한 후 31250 Bean Tokens 추출
(2) 이후 공격자(0x85D231C2)는 공격받은 컨트랙트(0x8189AFBE)의 클레임 기능을 계속 호출하여 여전히 31,250개의 Bean Token을 추출했습니다.
(3) 위의 작업을 계속 진행하여 최종적으로 추출된 6,250,000개의 Bean Token을 유니스왑에서 eth로 전환하여 수익을 냅니다.
(4) 위의 작업을 반복하여 최종적으로 36 eth의 수익을 얻습니다.
2. 취약점 분석
이 공격의 근본 원인은 계약에서 서명의 유효성을 올바르게 확인하지 못하여 추출이 반복되는 것입니다. 여러 클레임 기능 트랜잭션 분석을 통해 각 트랜잭션에서 공격자가 전달한 서명이 동일한 것으로 나타났습니다.
공격받은 컨트랙트(0x8189AFBE)의 소스코드를 분석한 결과, 해당 컨트랙트에 추출된 서명이 기록되어 있지만 서명을 검증하지는 않은 것으로 나타났다.
전달된 매개 변수가 변경되지 않는 한 서명 시간 제한이 만료되기 전에 여러 추출을 수행할 수 있으므로 공격자가 하나의 서명을 사용하여 여러 토큰 추출 작업을 수행할 수 있습니다.
3. 보안 권장 사항
이 공격에 대응하기 위해 개발 과정에서 다음 예방 조치를 따라야 합니다.
(1) 시그니쳐를 사용할 때에는 시그니쳐의 재사용 가능성을 엄격히 검증할 필요가 있다.
(2) 프로젝트가 시작되기 전에 제3자 전문 감사 팀의 기술 지원을 받아야 합니다.
회사 소개
SharkTeam의 비전은 Web3 세계의 보안을 포괄적으로 보호하는 것입니다. 이 팀은 전 세계의 숙련된 보안 전문가와 선임 연구원으로 구성되어 있으며 블록체인 및 스마트 계약의 기본 이론에 능숙하고 스마트 계약 감사, 온체인 분석 및 비상 대응을 포함한 서비스를 제공합니다. Polkadot, Moonbeam, 폴리곤, OKC, Huobi Global, imToken, ChainIDE 등과 같은 블록체인 생태계의 다양한 분야의 핵심 플레이어들과 장기적인 협력 관계를 구축했습니다.
공식 홈페이지: https://www.sharkteam.org
공식 홈페이지: https://www.sharkteam.org
트위터: https://twitter.com/sharkteamorg
모든 댓글