リプレイ攻撃は、プレイバック攻撃とも呼ばれ、悪意のあるエンティティがネットワークを通過する有効なデータ送信を傍受して繰り返すサイバー攻撃です。元のデータ (通常は許可されたユーザーから送信) の有効性により、ネットワークのセキュリティ プロトコルは攻撃を通常のデータ送信のように扱います。元のメッセージは傍受されてそのまま再送信されるため、リプレイ攻撃を行うハッカーは必ずしもメッセージを解読する必要はありません。
ハッカーはリプレイ攻撃で何ができるでしょうか?
リプレイ攻撃は、一見有効な認証情報を渡すことで、保護されているネットワークに保存されている情報にアクセスするために使用できます。また、金融機関を騙して取引を複製させ、攻撃者が被害者の口座から直接金銭を引き出すためにも使用できます。場合によっては、ハッカーは暗号化されたさまざまなメッセージの一部を組み合わせて、その結果得られた暗号文をカットアンドペースト攻撃と呼ばれる方法でネットワークに渡します。この種の攻撃に対するネットワークの反応は、多くの場合、システムをさらに悪用するために使用できる貴重な情報をハッカーに提供します。
リプレイ攻撃には明らかな危険が伴いますが、ハッカーが単独で達成できる成果には限界があります。攻撃者はネットワークが拒否しなければ送信中のデータを変更できないため、攻撃の効果は過去の行動を繰り返すことに限られます。また、こうした攻撃は比較的簡単に防御できます。データ送信にタイムスタンプを追加するといった基本的な防御策で、単純なリプレイ攻撃を防ぐことができます。サーバーは繰り返しメッセージをキャッシュし、一定回数繰り返した後にメッセージを切断することで、攻撃者がメッセージを素早く連続してリプレイする試行回数を制限することもできます。
暗号通貨の世界でリプレイ攻撃が重要な理由
こうした攻撃は暗号通貨取引やブロックチェーン台帳の環境に特に関連していますが、ブロックチェーン台帳はハードフォークと呼ばれるプロトコルの変更やアップグレードを経ることがあるからです。ハードフォークが発生すると、既存の台帳が 2 つに分かれ、1 つはソフトウェアの旧バージョンを実行し、もう 1 つは新しい更新バージョンを実行します。ハードフォークの中には、台帳をアップグレードするだけのものもありますが、分岐して実質的にまったく新しい暗号通貨を形成するものもあります。後者のハードフォークの最もよく知られた例の 1 つは、2017 年 8 月 1 日に Bitcoin Cash がメインの Bitcoin ブロックチェーンから分岐した例です。
こうしたハードフォークが発生すると、理論的には、攻撃者がブロックチェーン台帳に対してリプレイ攻撃を仕掛けることが可能になる。ハードフォーク前にウォレットが有効だった人が 1 つの台帳で処理した取引は、もう 1 つの台帳でも有効になる。その結果、ある台帳を通じて他の人から一定数の暗号通貨を受け取った人は、もう 1 つの台帳に切り替えて取引を複製し、同じ数の通貨を不正に自分のアカウントに 2 度目に送金することができる。ウォレットは台帳の共有履歴の一部ではないため、ハードフォーク後にブロックチェーンにアクセスするユーザーはこうした攻撃に対して脆弱ではない。
ブロックチェーンはこれらの攻撃からどのように保護できるでしょうか?
フォークされたブロックチェーン台帳がリプレイ攻撃に対して脆弱であることは正当な懸念事項ですが、ほとんどのハードフォークには、これらの攻撃が成功しないように特別に設計されたセキュリティ プロトコルが含まれています。ブロックチェーン リプレイ攻撃に対する効果的な対策は、強力なリプレイ保護とオプトイン リプレイ保護という 2 つのカテゴリに分類されます。強力なリプレイ保護では、ハードフォークから出現する新しい台帳に特別なマーカーが追加され、その台帳で実行されるトランザクションがレガシー台帳で有効にならないようにします (その逆も同様)。これは、ビットコイン キャッシュがビットコインからフォークしたときに実装されたタイプの保護です。
実装されると、ハードフォークが発生するとすぐに、強力なリプレイ保護が自動的に実行されます。ただし、オプトイン リプレイ保護では、トランザクションがリプレイされないように、ユーザーがトランザクションを手動で変更する必要があります。オプトイン保護は、ハードフォークが暗号通貨のメイン元帳からの完全な分離ではなく、メイン元帳のアップグレードを目的としている場合に役立ちます。
こうした台帳全体のソリューションに加えて、個々のユーザーもリプレイ攻撃の被害者にならないように対策を講じることができます。これを行う方法の 1 つは、台帳が特定のブロック数に達するまでコインの転送をロックし、それらのコイン ユニットに関連するリプレイ攻撃がネットワークによって検証されるのを防ぐことです。ただし、すべてのウォレットや台帳がこの機能を備えているわけではないことに注意してください。
終わりに
リプレイ攻撃は、成功するとネットワーク セキュリティにとって真の脅威となります。他の多くの種類の攻撃とは異なり、リプレイ攻撃はデータの復号化に依存しないため、安全な暗号化プロトコルに直面する悪意のある攻撃者にとって効果的な回避策となります。ブロックチェーン台帳は、アップグレードまたは分割に使用されるハード フォークのため、この種のサイバー攻撃に対して特に脆弱です。ただし、ブロックチェーン システムをサイバー攻撃から保護するのにかなり効果的な堅牢なソリューションが存在します。特に、強力なリプレイ保護を採用することで、ハード フォークが発生した後に攻撃者がトランザクションを複製できないようにすることができます。