誰もが ByBit 攻撃について話しているのは知っています。これはおそらくこのトピックについて読んだ 100 番目の記事ですが、それでもこの件についていくつかの考えを共有する価値があると思います。 どうしたの? つまり、北朝鮮のラザルスグループは、ByBit のコールドウォレットから 15 億ドルを盗み出すことに成功したのです。コールドウォレットは で、トランザクションはすべての承認された当事者によって署名されており、ユーザーインターフェースからは完全に有効なトランザクションのように見えました。 安全なマルチシグウォレット その後、Safe UI が侵害されていたことが判明しました。攻撃者は開発者のマシンから AWS S3 認証情報を入手し、UI を変更しました。 簡単に言えば、これが話の要点です。誰かを非難したり、責任を追及したりするのは、あまり意味がないと思います。それよりも、重要なポイントと、このテクノロジーをさらに安全にする方法に焦点を当てる方がはるかに理にかなっています。 後から考えれば、すべてが明らかになるということは理解していますし、私がもっとうまくやれたと主張しているわけではありません。Safe チームは素晴らしい仕事をしており、ここで説明する内容はすべて Safe 自体 (スマート コントラクト ベースのマルチシグ ウォレット) 以外のコンポーネントに関するものです。 事件後、私は自分の考えをツイートした。この記事では、そのことについてさらに詳しく述べたいと思う。 https://x.com/TheBojda/status/1893578693232021613?embedable=true モジュールとガード Safe ウォレットの最も優れた機能の 1 つは、 と を使用して機能を拡張できることです。モジュールはウォレットに新しい機能を追加し、ガードはトランザクションが実行される前にチェックを実行します。これらの機能により、ウォレットは高度にカスタマイズ可能になり、セキュリティが大幅に強化されます。 モジュール ガード たとえば、ウォレットを ERC-20 トランザクションのみを許可するように制限することができます (この場合、悪意のあるトランザクションは を介して実行されました)。また、銀行がユーザーに高額トランザクションの制限を設定できるようにするのと同様に、特定のしきい値を超えるトランザクションに追加の署名を要求するルールを実装することも簡単です。 delegatecall この 1 つの機能を適切に使用するだけでも、多くの攻撃を防いだり、少なくとも潜在的な損失を最小限に抑えることができます。 不変のUI すべてのシステムの強さは、最も弱いコンポーネントの強さに左右されます。この場合、最も弱いリンクは、S3 認証情報が盗まれた開発者ではなく、もっと深いところにあります。Web3 テクノロジー (ブロックチェーンとスマート コントラクト) がいかに安全であっても、Web2 ベースの UI が脆弱であれば、システム全体が危険にさらされます。 明らかな解決策は、不変の Web3 UI を使用することです。IPFS、Ethereum Swarm、その他の Web3 ストレージ ソリューションなどのテクノロジがこれを実現します。最も簡単な実装は、UI コンテンツ ハッシュを定数変数としてスマート コントラクトに保存し、UI を変更するとスマート コントラクト自体の変更が必要になるようにすることです。 このアプローチは、UI をスマート コントラクトに完全にバインドし、最初にコントラクト自体をハッキングしない限り、インターフェイスを変更することを不可能にします。このシンプルなソリューションにより、UI ベースの攻撃を効果的に防ぐことができます。 別のデバイス スマート コントラクトが安全で UI が不変であっても、署名者のデバイスが侵害された場合、システムは脆弱なままです。攻撃者が署名者のデバイスにアクセスした場合、クライアント側の UI を置き換えることができます。 このため、コールド ウォレットに多額の金額を保有している人は、トランザクションの署名専用のデバイス (iPad など) を使用する必要があります。このデバイスは、他のアプリケーションをインストールせず、電子メールや Web ブラウジングも行わず、トランザクションの署名に必要な環境のみで機能する必要があります。 数十億ドルを管理している場合、専用の署名デバイスに数百ドルを費やすことは、それほど大きな出費にはなりません。 外部トランザクション監査 Oracle 外部監査人をウォレットに追加の署名者、モジュール、またはガードとして追加し、トランザクションを確認して疑わしい場合はブロックすることができます。このような疑わしいトランザクションの検出は、比較的単純なパターン、たとえば異常に多額の資金の移動やデリゲートコールの実行などを使用して行うことができます。 疑わしい取引があった場合、外部監査システムは署名者に通知し、手動で取引を確認するよう促します。それでも正当であると判断された場合は、確認として再度署名し、セキュリティをさらに強化できます。 結論 破られないシステムなど存在しませんが、上記で概説した簡単な解決策で、攻撃をかなり困難にすることができます。何十億ドルものお金を管理しているのであれば、これらの簡単なセキュリティ対策を実装するために時間と労力を費やす価値は十分にあります。 これらすべてのソリューションが Safe の優れたアーキテクチャと、モジュールやガードなどの機能に基づいて構築されていることを強調しなければなりません。 諺にあるように、 そして今日、 死ななければ強くなる。 Safe はこれまで以上に強くなりました!