분석: 해커가 Solana Wormhole 브리지 PlatoBlockchain Data Intelligence에서 80k ETH를 훔친 방법. 수직 검색. 일체 포함.

분석: 해커가 Solana Wormhole 브리지에서 80k ETH를 훔친 방법

최악 중 하나 해킹 Solana 블록체인에 대한 공격은 수요일에 해커가 80,000 이더(ETH)(작성 당시 214억 XNUMX만 달러 이상)를 웜홀 브리지(Wormhole Bridge)를 통해 이더리움 블록체인으로 전송했을 때 발생했습니다. 서로 다른 블록체인 간의 자금.

트윗에서 설명 가명 트위터 프로필로 스마트 계약, 해커는 이더리움의 웜홀 스마트 계약에서 80,000 ETH를 한 번에 전송하여 익스플로잇을 완료했습니다. 거래. 결과적으로 이것은 해커가 자금을 훔칠 수 있도록 한 일련의 해킹 중 마지막 움직임에 불과했습니다. 

“극적이긴 하지만 이번 거래는 흥미로운 일련의 사건의 끝일 뿐입니다. 이것이 어떻게 가능한지 알아내기 위해 거꾸로 작업을 시작해야 했습니다.”라고 smartcontracts는 트윗했습니다.

수호자들이 허위 이적을 승인했습니다.

웜홀은 소위 다리, 똑똑한 계약, 이 경우 이더리움에서는 서로 다른 블록체인 간에 암호화 자산을 이동하는 방법을 제공합니다. 스마트 계약에 따르면 상위 수준의 관점에서 Wormhole에는 블록체인 간의 전송을 승인하는 일련의 소위 보호자가 있습니다.

웜홀 수호자들은 이 80,000 ETH 전송을 마치 100% 합법적인 것처럼 승인했습니다.

"80,000을 뽑은 거래 ETH 실제로 공격자는 솔라나에서 이더리움으로 80,000 ETH를 전송했습니다. 원래 계약서가 이체 시 서명을 잘못 확인했을 수 있다고 생각했는데 서명이 완전히 체크 아웃되었습니다.”

smartcontracts에 따르면, 최초의 혁신적이고 부분적인 설명은 거래 Solana에서 120,000개의 "Wormhole ETH"를 발행했고, 갑자기 Solana에 에테르를 감쌌습니다. 해커는 Solana에서 Wormhole ETH를 발행할 수 있었기 때문에 이를 이더리움으로 올바르게 인출할 수 있었습니다.

“솔라나 좀 이상해”

해커의 거래 내역을 살펴보면 120,000 Wormhole ETH가 발행되기 직전에 발생한 거래가 있습니다. 이에 거래, 해커는 마치 해커가 적은 양으로 기능을 테스트하는 것처럼 0.1 웜홀 ETH만 발행합니다.

해커의 거래 내역을 자세히 조사하면 해커가 예금 이더리움에서 0.1 ETH로 솔라 나. 공격자는 Ethereum의 Wormhole 스마트 계약에 120,000 ETH의 ETH를 입금하지 않았지만 이 입금에 대해 흥미로운 점이 있습니다.

smartcontract가 그의 트윗에서 설명했듯이, Solana에서 Wormhole ETH를 발행한 거래는 Wormhole 스마트 계약을 촉발시켰습니다. 기능 "라고완전한_포장". 이 함수가 취하는 매개변수 중 하나는 기본적으로 "전송 메시지"입니다. 메시지 어떤 토큰을 발행하고 얼마를 발행할 것인지를 나타내는 다리의 수호자가 서명합니다.

"Solana는 좀 이상해서 이 매개변수는 실제로 스마트 계약 자체입니다. 그러나 중요한 것은 이러한 "전송 메시지" 계약이 생성되는 방식입니다. 여기 거래 그것은 0.1 ETH 전송 메시지를 만들었습니다.”라고 smartcontracts는 트윗했습니다.

누가 체커를 확인합니까?

이 "전송 메시지" 계약은 기능 "라고포스트_vaa". 가장 중요한 것은 post_vaa가 보호자의 서명을 확인하여 메시지가 유효한지 확인하는 것입니다. 그 부분은 충분히 합리적으로 보이지만 smartcontracts는 말합니다. 그러나 모든 것을 깨뜨린 것은 이 서명 확인 단계입니다.

"post_vaa" 함수는 실제로 서명을 확인하지 않습니다. 대신 일반적인 Solana 방식으로 "확인_서명" 기능. 입력 "verify_signatures" 기능은 계약에서 사용할 수 있는 다양한 유틸리티를 포함하는 Solana 내장 "시스템" 프로그램입니다.

"verify_signatures" 내에서 Wormhole 프로그램은 이 기능이 트리거되기 직전에 발생한 실행이 다음과 같은지 확인하려고 시도합니다. secp256k1 서명 확인 기능이 실행되었습니다.

“이 확인 기능은 주어진 서명이 올바른지 확인하기 위해 내장된 도구입니다. 따라서 서명 확인은 이 프로그램에 아웃소싱되었습니다. 그러나 여기에 버그가 발생합니다.”라고 smartcontract는 트윗했습니다.

웜홀 계약에서 이 기능을 사용했습니다. load_instruction_at Secp256k1 함수가 먼저 호출되었지만 load_instruction_at 함수가 비교적 최근에 사용되지 않았는지 확인하기 위해 실제 시스템 주소에 대해 실행 중인지 확인하지 않습니다.!

게임 끝

스마트 계약에 따르면 발신자는 다음과 같이 제공해야 합니다. 입력 실행 중인 프로그램의 시스템 주소지만 해커가 다른 시스템 주소를 제공했습니다.

다음은 0.1 ETH의 합법적인 예치에 대한 "verify_signatures"의 입력으로 사용되는 시스템 주소입니다.

올바른 시스템 주소 입력
올바른 시스템 주소 입력

그러나 다음은 120 ETH의 가짜 예금에 대한 "verify_signatures" 거래입니다.

시스템 주소 입력
잘못된 시스템 주소 입력 

시스템 주소가 아닙니다!

"이 "가짜" 시스템 프로그램을 사용하여 공격자는 서명 검사 프로그램이 실행되었다는 사실에 대해 효과적으로 거짓말을 할 수 있습니다. 서명이 전혀 확인되지 않았습니다!”라고 smartcontracts는 트윗했습니다.

“그 시점 이후에는 게임 오버였습니다. 공격자는 보호자가 솔라나의 웜홀에 120 입금에 서명한 것처럼 보이도록 만들었습니다. 이제 공격자가 해야 할 일은 이더리움으로 다시 인출하여 "플레이" 돈을 현실로 만드는 것이었습니다. 그리고 나중에 80 ETH + 10 ETH(이더리움의 브리지에 있는 모든 것)를 한 번 인출하면 모든 것이 사라졌습니다.”

에버돔

크립토슬레이트 뉴스레터

암호화폐, DeFi, NFT 등의 세계에서 가장 중요한 일일 이야기의 요약을 제공합니다.

를 얻을 수 가장자리 cryptoasset 시장에서

유료 회원으로서 모든 기사에서 더 많은 암호화 통찰력과 컨텍스트에 액세스하십시오. 암호화 슬레이트 에지.

온 체인 분석

가격 스냅 샷

더 많은 맥락

$ 19 / 월에 지금 가입하세요 모든 혜택 살펴보기

출처: https://cryptoslate.com/breakdown-how-the-hacker-stole-80k-eth-from-the-solana-wormhole-bridge/

타임 스탬프 :

더보기 CryptoSlate