CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

avatar
CertiK
3년 전
이 글은 약 1424자,전문을 읽는 데 약 2분이 걸린다
2월 3일 이른 시간에 솔라나 크로스 체인 브릿지 프로젝트인 Wormhole이 공격을 받았습니다.

CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

베이징 시간으로 2022년 2월 3일 오전 1시 58분, 솔라나 크로스체인 브리지 프로젝트 Wormhole이 공격자들의 공격을 받았습니다. 해커는 Solana에서 Wormhole Bridge 검증 프로세스를 우회하고 스스로 Wormhole ETH(wETH)를 생성했습니다.

이 사건에서 공격자는 스푸핑된 sysvar 계정을 주입하여 시스템 확인 단계를 우회하고 120,000wETH를 발행해야 한다고 지정하는 악의적인 메시지를 성공적으로 생성했습니다. 마지막으로 공격자는 complete_wrapped 기능을 호출하는 악성 메시지를 사용하여 약 3억 2천만 달러 상당의 120,000 wETH를 성공적으로 발행했습니다.

보조 제목

웜홀 소개

아인슈타인-로젠 브리지라고도 알려진 웜홀(Wormhole)은 웜홀로도 번역됩니다. 서로 다른 두 시간과 공간을 연결하기 위해 우주에 존재할 수 있는 좁은 터널입니다.

사실 솔라나의 크로스체인 브리지 웜홀 프로토콜(Wormhole Protocol)은 과학 및 심지어 공상과학 소설에서 웜홀과 동일한 의미와 위치를 가지고 있습니다.

익스플로잇 트랜잭션

익스플로잇 트랜잭션

민트 120,000 웜홀 ETH:

https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEcD6Es 

보조 제목

https://etherscan.io/address/0x629e7da20197a5429d30da36e77d06cdf796b71a#internaltx 

취약점 공격 프로세스

1단계: 공격자는 가짜 sysvar 계정을 사용하여 verify_signatures 기능을 호출합니다. account를 verify_signatures 함수에 대한 인수로:

CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

반대로 아래 스크린샷은 실제 sysvar 계정을 인수로 사용하여 verify_signatures 함수를 사용합니다.

CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

② “verify_signatures” 함수는 sysvar(L92)에서 현재 명령을 로드합니다.

CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

③ 그러나 load_current_index 함수는 sysvar account가 실제로 system sysvar인지 확인할 수 없습니다. sysvar에서 검색된 현재 명령(L92)은 공격자에 의해 제어되므로 다음 검증 프로세스를 성공적으로 통과할 수 있습니다.

2 단계: 그런 다음 공격자는 이전 단계에서 검증된 서명을 사용하여 post_vaa 함수를 호출하고 120,000 wETH를 발행한다고 주장하는 악성 메시지 계정을 생성합니다. ph5MZ5 xcyn1BCK

CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

① Account2는 verify_signatures 명령으로 생성된 서명 집합입니다. ② Account3은 complete_wrapped 함수에서 사용할 메시지 계정입니다.

3단계: 공격자는 complete_wrapped 함수를 호출하여 악성 메시지 계정의 데이터를 읽고 120,000 wETH를 생성합니다. D 6Es

CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

① Account3은 post_vaa 함수에 의해 생성된 메시지 계정입니다.

② Account6은 발행된 Wormhole ETH를 받는 받는 사람 주소입니다. ③ Account9는 PDA(Program Derived Address)인 Wormhole ETH의 발행기관입니다. 이것이 공격자가 서명 확인을 통과한 직후에 토큰을 발행할 수 있는 이유입니다.

이 취약점의 근본 원인은 프로그램이 서명(verify_signatures)을 확인하는 과정에서 Solana가 1.8.0으로 업데이트되었을 때 더 이상 사용되지 않는 load_current_index 기능을 사용하기 때문입니다. 이 기능은 입력된 sysvar account가 실제로 system sysvar인지 확인하지 않으므로 공격자는 이 중요한 계정을 위조할 기회를 잡을 수 있습니다.

계약 취약성 분석

이 취약점의 근본 원인은 프로그램이 서명(verify_signatures)을 확인하는 과정에서 Solana가 1.8.0으로 업데이트되었을 때 더 이상 사용되지 않는 load_current_index 기능을 사용하기 때문입니다. 이 기능은 입력된 sysvar account가 실제로 system sysvar인지 확인하지 않으므로 공격자는 이 중요한 계정을 위조할 기회를 잡을 수 있습니다.

CertiK: 솔라나 크로스 체인 브리지 웜홀 이벤트 분석

요약하다

요약하다

현재 Wormhole 팀은 취약점을 수정하고 네트워크를 복원했습니다. 여기에서 CertiK는 개발자에게 다음과 같은 제안을 제안합니다.

  • 개발자가 외부 종속 기능을 사용할 때 이 기능에 대한 충분한 이해가 필요합니다.

  • 외부 종속 코드 베이스의 중요한 업데이트를 주시하고 주요 버전 변경이 있을 때 적시에 자신의 코드 베이스를 적절히 조정하십시오.

  • 코드 버전이 업데이트되면 적시에 포괄적인 감사를 수행하고 감사된 코드를 체인에 배포된 코드로 적시에 업데이트해야 합니다.

음력 5일이 다가오고 있는데 모두들 오빈 깨시기를 바랍니다. 동시에 엄격한 감사를 거쳐 각 프로젝트가 온라인으로 배포되어 더 높은 보안을 확보하고 재산 손실 가능성을 줄이기를 희망합니다. 행운은 새해부터 지속적으로 순환되기 시작하고 안전은 엄격한 감사로 시작되며 모든 프로젝트는 더 나은 시작을 갖습니다!

지금까지 CertiK는 2,500개 기업 고객의 인정을 받아 3,110억 달러 이상의 디지털 자산을 손실로부터 보호했습니다. CertiK 공개 계정 하단의 대화 상자를 클릭하신 것을 환영합니다. 무료 상담 및 견적을 받으려면 메시지를 남겨주세요!

창작 글, 작자:CertiK。전재 / 콘텐츠 제휴 / 기사 요청 연락처 report@odaily.email;违규정 전재 법률은 반드시 추궁해야 한다.

ODAILY는 많은 독자들이 정확한 화폐 관념과 투자 이념을 수립하고 블록체인을 이성적으로 바라보며 위험 의식을 확실하게 제고해 달라고 당부했다.발견된 위법 범죄 단서에 대해서는 관련 부서에 적극적으로 고발하여 반영할 수 있다.

추천 독서
편집자의 선택