저자: 베오신
1월 9일 새벽, Truebit Protocol이 5년 전에 배포한 비공개 소스 계약이 공격을 받아 8,535.36 ETH(약 2,640만 달러 상당)의 손실이 발생했습니다. Beosin 보안팀은 이 보안 사고에 대한 취약점 및 자금 추적 분석을 수행했으며, 그 결과를 아래에 공유합니다.

공격 방법 분석
이번 사건에서 가장 중요한 공격 거래를 분석할 예정이며, 해당 거래 해시는 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014입니다.
1. 공격자는 getPurchasePrice()를 호출하여 가격을 얻습니다.

2. 그 후, 결함이 있는 함수 0xa0296215()가 호출되고 msg.value는 매우 작은 값으로 설정됩니다.

해당 계약은 오픈 소스가 아니므로, 역컴파일된 코드를 통해 해당 함수에 정수 절삭 문제와 같은 산술 논리 취약점이 있음을 추론할 수 있으며, 이로 인해 공격자는 대량의 TRU 토큰을 성공적으로 발행할 수 있었습니다.
3. 공격자는 소각 기능을 이용하여 발행된 토큰을 계약에 "되팔아" 계약의 준비금에서 대량의 ETH를 빼돌렸습니다.

이 과정은 msg.value가 매번 증가하면서 네 번 더 반복되며, 결국 계약에 있는 거의 모든 ETH가 추출됩니다.
도난 자금 추적
베오신은 온체인 거래 데이터를 기반으로 자체 블록체인 온체인 조사 및 추적 플랫폼인 베오신트레이스를 통해 상세한 자금 추적을 진행했으며, 그 결과를 다음과 같이 공유했습니다.
현재 도난당한 8,535.36 ETH는 대부분 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 및 0x273589ca3713e7becf42069f9fb3f0c164ce850a 주소로 전송되었습니다.
주소 0xd12f에는 4,267.09 ETH가, 주소 0x2735에는 4,001 ETH가 있습니다. 공격자가 공격을 시작한 주소(0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50)에는 여전히 267.71 ETH가 남아 있습니다. 이 세 주소에서 추가적인 자금 이체는 발생하지 않았습니다.

Beosin Trace의 도난 자금 흐름 분석 차트
위에 나열된 모든 주소는 Beosin KYT에서 고위험 주소로 분류되었습니다. 예를 들어 공격자의 주소를 살펴보십시오.

베오신 KYT
결론
도난당한 자금은 5년 전에는 오픈소스가 아니었던 스마트 계약과 관련이 있습니다. 이러한 계약의 경우, 프로젝트 팀은 비상 일시 중지, 매개변수 제한, 최신 솔리디티 버전의 보안 기능 등을 도입하여 계약을 업그레이드해야 합니다. 또한, 보안 감사는 계약 관리의 필수적인 부분입니다. 웹3 기업은 보안 감사를 통해 스마트 계약 코드를 종합적으로 검토하고, 잠재적인 취약점을 식별 및 수정하여 계약 보안을 강화할 수 있습니다.
*Beosin은 모든 자금 흐름에 대한 종합 분석 보고서를 제공하고 위험 요소를 검토합니다. 공식 이메일 주소 support@beosin.com을 통해 요청하실 수 있습니다.
