
Web 3.0 ブロックチェーン セキュリティ インサイト:
サイドチャネル攻撃とトランザクションパターン分析
Web 3.0 ブロックチェーン セキュリティ インサイト
サイドチャネル攻撃とトランザクションパターン分析の探求
Web 3.0 ブロックチェーン セキュリティに関する包括的なガイドへようこそ。このセクションでは、ブロックチェーン技術における重要な側面を深く掘り下げ、新たに出現する脅威や脆弱性に焦点を当てます。
今日の主な焦点は、攻撃者が高度な手法を使って機密情報を抽出するサイドチャネル攻撃と、トランザクションの流れや構造を分析して潜在的なリスクや異常を検出するトランザクションパターン分析です。
これらの重要なトピックを探求し、ブロックチェーンシステムのセキュリティと回復力を強化するための洞察と戦略を提供します。
1. 鍵の特性と使用方法の違いを深く理解しましょう。
この論文では、ブロックチェーン技術におけるサイドチャネル攻撃に対する脆弱性の構造的側面について詳しく説明しています。
まず、ブロックチェーンにスクリプトの復号に必要な情報を含める必要性に焦点を当てます。この必要性は、他のノードによる検証には不可欠であり、無視することはできません。
言い換えれば、ブロックチェーンは設計上、ネットワーク内のすべてのノードがアクセスできるトランザクション情報(スクリプトを含む)を含む必要があり、第三者に公開されています。この情報が公開されているため、特定の攻撃者がこの公開情報を利用してサイドチャネル攻撃を実行する可能性があります。この論文では、これらの特性がどのように潜在的な攻撃リスクにつながるかを理論的に分析しています。
さて、公開鍵の一般的な使用法を見てみましょう。LinuxやUNIXシステムでの認証に使用される公開鍵暗号では、公開鍵はサーバー内部に保存されます。このコンテキストでは、公開鍵は認証時に公開鍵に対応する秘密鍵を保持していることを確認するためだけに使用されます。したがって、公開鍵情報を外部に公開する必要はありません。
つまり、特定のサーバーの公開鍵を第三者が知る必要はありません。認証プロセスでは、秘密鍵によって生成された署名をサーバーに提供し、その署名が有効かどうかを確認するだけです。したがって、この目的のために公開鍵自体を公にする必要はありません。
このように、ブロックチェーンには公開鍵をチェーンに記録して公開し、常に第三者がアクセスできるようにする必要性があります。


2. 実際のトランザクションを見てみましょう。
現在、ビットコインのメインネット上で実際に調査を行っています。これは、相手方の動作を慎重に検証する必要があり、テストネットでは十分に行うことができないためです。以下のURLで表示されるブロックエクスプローラーに示されているように、現在、残高がゼロになったいくつかのトランザクションがあります。これらの残高は、通常のトランザクションによってゼロになったわけではありません。
実際には、秘密鍵を必要とせずにコインが移動されました。 これらのトランザクションの一部は、コインが移動されるまでに数分の遅れがありました。
2023年に検証されたトランザクションを振り返ってみましょう。
https://live.blockcypher.com/btc/address/1C6x9PqHbYg5AdhqTSKSZBv9jPZqoL5fB8/
https://live.blockcypher.com/btc/address/1EoQBcoki6NjowfrGUzSkQCVft25t66XrH/
まず、これら2つを見てみましょう。ブロックチェーンの「ある機能」をオン(上)またはオフ(下)にしてテストしました。機能がオンの場合、コインは即座に盗まれました。 そのトランザクションが見えますね? それに対して、機能がオフのときは、1年以上が経過してもコインは無事に残っています(下)。
https://live.blockcypher.com/btc/address/1HtZeYQtzbNdVdHRGZK7NgL3XzWqwdsxpt/
https://live.blockcypher.com/btc/address/1De6AKwwDZmrPx3HKDjh8F6XYSRBGQQWRx/
さて、次のポイントに進みましょう。上記の2つのトランザクションはどちらも盗まれました。最初のトランザクションは約10分で、2つ目は即座に盗まれました。
ここで重要なポイントは、先ほど述べたように、ブロックチェーンの特定の機能がオフになっていた場合、トランザクションは盗まれなかったということです。しかし、これら2つのトランザクションは、盗まれなかったものよりも盗むのが難しかったはずです。したがって、最初のトランザクションは即座に盗まれるのではなく、約10分かかったということです。それでも盗まれてしまいました。
このテストでは、0.0001BTCの残高を使用しました。このような小額でも盗まれました。ちなみに、トランザクション自体の計算負荷(トランザクションサイズ)は、BTCの量が増加してもあまり変わりません。それは、解錠できるスクリプトPubKeyの数によって決まるためです。
言い換えれば、1BTC、100BTC、4500BTC、さらには210,000BTCであっても、このタイプのトランザクションでは同様の盗難が一度に発生します。

3. 特定の条件を満たすブロックチェーントランザクションを調べましょう。


トランザクションを開発している過程で、上記の画像に示されているように、トランザクションの特性が同じ状態になる状況を作り出すことができることに気づきました。結局、ブロックチェーントランザクションは入力と出力のハッシュなので、これらの側面に具体的に影響を与えるパラメータを詳しく調べました。
さて、上記の右側の図をよく見てください。慎重に考えれば、同じ状態になるということがどういう意味を持つのか想像できるはずです。タイムラインに沿って綺麗に整列している要素が見えますよね?
この場合、同じ状態は同じハッシュ値を生成し、それが同じtxidを生成するため、二重支払い防止機構はそれを拒否するはずです。我々も同じように考えました。しかし、いくつかのパラメータを変更することができます。これらのパラメータはtxidを制御するハッシュに影響を与えるため、txidが変更され、事実上二重支払い防止機構が無効化されます。
そして、この偶然が起こる可能性が出てきます。天文学的に小さい確率であれば問題ありませんが、大量のトランザクションがある環境では、無視できない確率(航空機事故に遭う確率に近いと推定しています)になり得ます。 したがって、取引所や他の大規模なトランザクションを扱う機関で、厳密な管理(コールドウォレットなど)が実施されていたにもかかわらず、コインが突然動いて消える事件の背後にこの現象がある可能性があると疑っています。

4. 特定のハッキングアドレスを見てみましょう。
以下のアドレスは、この種の問題を利用してビットコインを集めていると考えられています。つまり、この問題に気づいたハッカーが、秘密鍵を必要とせずにビットコインのメインネット上でトランザクションを発行し、収集されたビットコインがこれらのアドレスに記録されています。この仮説の根拠は、検証目的で配置した0.0001BTCがこれらのアドレスに含まれていることです。
https://live.blockcypher.com/btc/address/bc1q9kwy7g79vcf09nfl3dzs2wqv9fecme6rn7s7jm/
ただし、検証目的で配置した0.0001BTCはすべて同じではありません。ハッカーの状況や計算能力を理解するために調整しました。正直なところ、この場合の0.0001BTCが盗まれるとは思っていませんでした。この少額ですら盗まれたという事実は、このハッカーが問題を完全に把握しており、おそらく高性能なコンピュータを所有していることを示しています。 証拠として、約0.34BTCが集められ、それが別の場所に移動されました。
最終的に、この問題に関連するハッキング事件は、取引所が影響を受ける場合など、金額が大きい場合にCointelegraphのようなメディアで報告されます。しかし、このような少額の盗難はメディアで報じられることはありません。このハッカーだけでも48回のトランザクションを行っており、おそらく他にも多くのアドレスを持っているため、被害の全貌はまだ明らかではないと考えられています。

5. 特定の「パターン」が存在します。
では、最近のトランザクションの詳細を見てみましょう。以前の分析に基づいて、複数のトランザクションとその計算の複雑さを確認し、状況を評価しました。 結果は以下のURLに示されています。調査の結果、1つのトランザクションのみが移動し、他は元の位置に留まっていることが確認されました。
https://live.blockcypher.com/btc/address/1CKxHkcpb1jivsgtL8BdwbEVWc95RVLfN2/
これにより、予測どおり、特定の「パターン」が存在することが推測できます。仮説として、「秘密鍵を必要としないトランザクションが発生するパターン」が存在する可能性があると考えています。以下のURLに示されているように、この仮説は3つのケースのうち1つにのみ当てはまります。
したがって、このようなパターンが存在する場合にのみ、トランザクションが特定のパターンに従って移動すると結論付けることができます。
一方で、中央のscriptPubKeyには非常によく似たパターンが見られます。このscriptPubKeyは移動されたトランザクションと似ているにもかかわらず、元の位置に残っています。この違いに基づいて、別の仮説を立てることが可能です。

6. 小さな確率で発生する可能性のあるものと、発生しないものの技術的考察
セキュリティを考慮する際には、小さな確率で「発生する」場合と「発生しない」場合の両方を評価することが重要です。一般的に、可能な組み合わせの数が2^128を超える場合、特定のイベントが実際に発生する確率は極めて低く、「起こりそうにない」と見なされます。しかし、これが2^64程度に減少すると、確率は依然として非常に低いものの、「発生する可能性がある」と解釈されます。そのため、このような場合には、それに応じたセキュリティ対策が設計される必要があります。

7. 類似点に基づいて仮説を立てましょう。

この別の仮説を検討してみましょう。また、下部のscriptPubKeyは未使用であるため、この段階ではまだ未消費の状態にあります。したがって、中央のscriptPubKeyと下部のscriptPubKeyの類似点を調べ、中央のscriptPubKeyが残っている理由について新しい仮説を構築します。
ここで、上部のscriptPubKeyをα、中央のscriptPubKeyをβ、下部のscriptPubKeyをΓと定義します。βとΓはどちらも未使用のscriptPubKeyであり、秘密鍵を使わずにハッカーによって移動されたαと似ていますが、未消費のまま残っています。βとΓの類似点、αとβ、αとΓの類似点を調べます。これらはすべて同じ構造に由来しているため、類似点は非常に重要です。 しかし、αのみが秘密鍵を使わずに移動されたという点が最も重要なポイントです。
これに基づいて、βとΓが似た構造を持っていながら残っている理由を説明する仮説を立てることができます。
「特定の形式が達成されると、ある計算複雑度で操作が可能になり、それがハッカーのターゲットになる。」
この仮説に基づいて、さらに分析を進めることができます。
8. 頻繁に変化するトランザクションの監視

このプロセスは、ブロックチェーンネットワーク内でリアルタイムで更新および生成されるトランザクションの動的な状態を監視することを含みます。各トランザクションは定期的に新しいデータブロックに整理され、ネットワーク全体に伝播されるため、トランザクションの詳細やステータスが頻繁に変化します。その結果、高スループット環境では特に迅速な処理と分析が不可欠であり、トランザクション状態の変遷を継続的に監視する必要があります。
頻繁に変化するトランザクションが発生する場所の考察
頻繁に変化するトランザクションが発生する可能性が高い場所を検討する必要があります。これらのトランザクションは、個人のウォレットや小規模なサービスではあまり発生しません。一方で、仮想通貨取引所やステーキングプールなど、取引が頻繁に行われる環境では、トランザクションが頻繁に生成され、更新されるため、トランザクションの詳細やステータスが急速に変化します。
コイン盗難が発生しやすい場所の分析
次に、コイン盗難が発生しやすい場所を検討します。最も信頼性のある方法は、実際に発生した事件を参照することです。一般的に、コイン盗難が最も発生しやすい場所は、仮想通貨取引所、ステーキングプール、および大規模な仮想通貨ウォレットサービスです。これらの場所は大量の資産を管理しているため、攻撃の対象となりやすく、そのためにコイン盗難が頻繁に発生するという広く受け入れられた見解があります。
しかし、この見解が完全に正確かどうかは、セクション7で提示した仮説に基づいてさらに観察する必要があります。この仮説の観点から、コイン盗難が発生する背景や条件を再評価することで、これまでの理解を再構築できるかもしれません。
攻撃対象となる要因の再考
ここでは視点を変えて、「大量の資産を管理することで攻撃の対象となり、コイン盗難が頻発する」という従来の見解を再評価します。代わりに、「処理されるトランザクションの膨大な量が、攻撃を受けやすくし、ハッカーの目を引く要因である」と提案します。
つまり、仮想通貨取引所、ステーキングプール、および大規模な仮想通貨ウォレットサービスは、管理している資産の量ではなく、トランザクションの頻度が高いために攻撃の対象となります。この見解に基づけば、資産の量ではなく、トランザクションの頻度がリスク要因として考慮されるべきです。
大量のトランザクションが発生する結果に関する洞察
セクション1から7の考察に基づいて、大量のトランザクションが発生した場合に何が起こるかについて詳細な分析を行います。その結果、2つの新しい発見が得られました。
まず、特定の事象の理論的な確率は非常に低いものの、母集団の平均値がゼロに近い場合でも、膨大な試行(つまり、トランザクションの数)を行うと、通常では無視できる「ゼロ」の発生が観察される可能性があります。つまり、通常のトランザクションではあり得ないと考えられていた現象が、大量のトランザクションを処理する場合には現実的なリスクとなるのです。