著者:Beosin
1月9日未明、Truebit Protocolが5年前に非オープンソースのコントラクトとして展開したものが攻撃を受け、8,535.36 ETH(約2,640万米ドル相当)の損失を生じました。Beosinセキュリティチームは今回のセキュリティインシデントについて、バグの分析および資金の追跡を行い、その結果を以下に共有します。

攻撃手法の分析
今回の出来事において、我々は最も主要な攻撃トランザクションを分析対象としました。トランザクションハッシュは以下の通りです: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. 攻撃者は getPurchasePrice() を呼び出して価格を取得する

2. その後、脆弱性のある関数 0xa0296215() が呼び出され、msg.value の値が非常に小さく設定される

契約がオープンソースになっていないため、逆コンパイルされたコードから推測するに、この関数には算術論理の脆弱性が存在し、整数の切り捨て処理に問題が発生し、攻撃者が大量のTRUトークンを成功裏にマウントしました。
3. 攻击者は、burn 関数を通じて鋳造したトークンを「コントラクトに売却」し、コントラクトのリザーブから大量の ETH を引き出しました。

このプロセスは4回繰り返され、各回でmsg.valueの値が増加し、最終的にコントラクト内のETHをほぼすべて引き出してしまう。
盗難資金の追跡
チェーン上の取引データに基づき、Beosinは自社のブロックチェーン調査および追跡プラットフォーム「BeosinTrace」を通じて資金の詳細な追跡を行い、その結果を以下に共有します。
現在、盗まれた8,535.36 ETHは移動され、その大半がそれぞれアドレス0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60および0x273589ca3713e7becf42069f9fb3f0c164ce850aに保管されています。
そのうち、アドレス0xd12fは4,267.09 ETHを、アドレス0x2735は4,001 ETHを保有しています。攻撃を開始したアドレス(0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50)には267.71 ETHが残っています。この3つのアドレスからは、さらなる資金の移動は確認されていません。

資金の盗難後の流れを分析した図 by Beosin Trace
上記のアドレスはすべてBeosin KYTによって高リスクアドレスとしてマークされています。攻撃者のアドレスを例に挙げると:

Beosin KYT(ビーオシン KYT)は、暗号資産(仮想通貨
結びの言葉
今回の資金盗難は、5年前にソースコードを公開していないスマートコントラクトに関連しています。このようなコントラクトについては、プロジェクト側がアップグレードを行い、緊急停止機能やパラメータの制限、および新しいバージョンのSolidityのセキュリティ機能を導入する必要があります。さらに、セキュリティーアウジットはコントラクトにとって依然として不可欠なプロセスです。セキュリティーアウジットを通じて、Web3企業はスマートコントラクトのコードをできるだけ包括的に検査し、潜在的な脆弱性を発見・修正し、コントラクトの安全性を高めることができます。
Beosinは、今回の資金の流れおよびアドレスのリスクに関する包括的な分析レポートを提供します。公式メールアドレス support@beosin.com までご連絡ください。


