リプレイ攻撃とは?仕組みと防止策
リプレイ攻撃は、サイバー犯罪における「映画の再放送」のようなものだと考えると分かりやすいでしょう。ただし、この再放送は銀行口座を空にしたり、厳重に守られたシステムのロックを解除したりする危険性があります。
リプレイ攻撃では、サイバー犯罪者が秘密情報を解読する必要はありません。ログインや取引といった正当な操作を待って記録し、絶妙なタイミングで再送信することで、システムをだまして突破させます。力任せの攻撃も、巧妙な計画も不要で、必要なのは「再生」のタイミングだけです。これは、サイバー攻撃の中でも特に単純な手口の一つです。
では、リプレイ攻撃は実際にどのように行われるのでしょうか。また、第三者があなたのデータを勝手に「再生」できないようにしているのは何なのでしょうか。詳しく見ていきましょう。
リプレイ攻撃の仕組み
リプレイ攻撃では、攻撃者が新しいデータを作成したり、暗号を解読したりする必要はありません。実際に送受信された暗号化メッセージを傍受し、それを保存して後から再送信するだけです。
たとえ内容を復号できなくても、システム側がそれを正当なリクエストと判断してしまえば、支払い処理やアクセス許可といった同じ操作が再び実行されてしまいます。
このような攻撃を防ぐために重要なのが、「nonce(ノンス)」と呼ばれる一度限りの値を使う仕組みです。これにより、攻撃者が内容を読んだり改ざんしたりできなくても、過去のメッセージが再利用されるのを防げます。
リプレイの仕組みを理解する
一般的な流れは次のとおりです。
- 取得:攻撃者は、パケットスニファなどのツールを使ったり、典型的な中間者攻撃(MITM)の形で通信の途中に割り込んだりして、ログイントークンや支払い承認といった機密データを取得します。
- 保存:取得したデータは、ハードドライブやUSBメモリ、クラウドストレージなどに安全に保存され、使うべきタイミングを待たれます。
- 再送:適切なタイミングで元のデータが再送信されます。システムがリクエストの新しさを確認しない場合、そのメッセージは新規のものとして受け入れられ、アクセスの許可や操作の承認が行われてしまいます。

なぜデジタルシステムは脆弱なのか?
多くのデジタルシステムは、「正しいと認識したものを信頼する」前提で設計されています。有効なトークンやリクエストを受信した際に、それが新規のものか、一意か、すでに使われたものかを確認しないと、攻撃者は同じデータを再利用して送り込み、システムを新しいリクエストだと誤認させることができます。
脆弱性が生じる理由:
- タイムスタンプやノンスの欠如:タイムスタンプやノンスといった一意の目印がない場合、システムは新しいメッセージと過去のメッセージの再送を区別できません。これは、リプレイ攻撃に対して脆弱になる代表的な原因です。
- 不十分なセッション管理:有効期限が長いトークンを使っていたり、セッションの失効処理が適切に行われていなかったりすると、傍受された認証情報を再利用できる時間的余裕を攻撃者に与えてしまいます。これは、トークンの更新や無効化が十分でないAPI、Webアプリ、認証システムにも当てはまります。
リプレイ攻撃のリスクとは?
リプレイ攻撃は、特に機密情報や金融取引を扱うシステムを狙った場合、深刻な被害をもたらします。攻撃者が正当なリクエストをそのまま送信するため、システムは不正に気付かず、被害が表面化しにくい点が特徴です。
データ侵害と個人情報の盗難
トークンやセッションクッキー、さらには生体認証の応答データなど、取得した認証情報を再利用することで、攻撃者はユーザーになりすまし、不正にアカウントへアクセスできます。侵入後は、ユーザー名やパスワード、個人識別番号、金融情報といった機密データが盗まれる可能性があります。これらの情報は、個人情報詐取に悪用されたり、ダークウェブで売買されたりします。
リプレイ攻撃が厄介なのは、パスワードの解析や暗号の解読を必要としない点です。システムがリクエストの新しさを検証しない場合、二要素認証(2FA)であっても回避されることがあります。特に、2FAトークンが短時間のみ有効で、セッションと厳密に結び付けられていないケースではリスクが高まります。
金融詐欺とオンライン取引
決済システムでは、取引リクエストを再送されることで、不正な送金や返金、購入が実行されるおそれがあります。たとえば、正当な支払い承認が再利用されると、同じ取引が何度も処理され、資金が失われたり、意図しない商品配送が発生したりします。
一意の取引IDやタイムスタンプ、暗号学的な検証といった対策がない場合、システムは同じリクエストを新規のものと誤認します。その結果、特に自動化やAPIを中心とした金融システムでは、重大な不正行為につながる可能性があります。
銀行・Eコマースにおけるサイバーセキュリティ上の脅威
銀行アプリやデジタルウォレット、Eコマースプラットフォームは、高価値のデータや取引を扱うため、リプレイ攻撃の標的になりやすい分野です。セッショントークンや取引リクエストが再利用されると、ユーザーセッションの乗っ取りやアカウント変更の不正承認、不正購入が行われる可能性があります。
金銭的被害だけでなく、リプレイ攻撃は顧客の信頼を損ない、企業に法的リスクをもたらします。攻撃が成功すれば、情報漏えいや規制違反、そして企業ブランドの信用失墜といった長期的な影響を招きかねません。
リプレイ攻撃の種類
リプレイ攻撃は、データの取得方法や再利用の仕方によって、さまざまな形で発生します。ここでは、特に代表的なリプレイ攻撃の種類を紹介します。(用語に不慣れな場合は、インターネットセキュリティ用語集が参考になります。)
ネットワークリプレイ攻撃
ネットワークリプレイ攻撃では、ユーザーとサーバー間をやり取りするログイン要求やセッション開始といった正当なデータが傍受され、後からそのまま再送信されます。
システムがノンスやタイムスタンプ、セッション検証などによってリクエストの新規性を確認しない場合、再送されたデータを正規のものとして受け入れてしまいます。この攻撃は、セキュリティ対策が不十分なネットワークでのパケットスニッフィングを利用するケースが多く見られます。
ワイヤレスリプレイ攻撃
無線通信は電波を傍受しやすいため、リプレイ攻撃の影響を特に受けやすい分野です。ワイヤレスリプレイ攻撃では、Wi-Fiのハンドシェイクや認証処理の一部となる有効な無線フレームが取得され、それを再送することでシステムをだまします。
セッションリプレイ攻撃
セッションリプレイ攻撃では、クッキーやURLに保存された有効なセッションIDが盗まれ、それを再利用してユーザーのセッションが乗っ取られます。その結果、パスワードを知らなくてもアカウントに不正アクセスできてしまいます。
この攻撃は、セッションをIPアドレスやユーザーエージェントに結び付けていない、またはセッションの有効期限管理が不十分といった、セッション管理の甘さが原因で発生することが少なくありません。

JWTリプレイ攻撃
JSON Web Token(JWT)は、認証情報をやり取りするために広く使われている形式です。JWTリプレイ攻撃では、攻撃者が安全でない通信やクロスサイトスクリプティング(XSS)攻撃などを通じて有効なJWTを傍受し、それを再送信することでユーザーになりすまします。
JWTはステートレスかつ自己完結型で、ユーザーIDや権限といった認証に必要な情報をトークン自体にすべて含んでいます。そのため処理は効率的ですが、一方でリスクも伴います。JWTは一度発行されると有効期限が切れるまで有効であり、サーバー側では通常、トークンの使用履歴や再利用の有無を管理しません。
サーバーがJWTの不正な再利用を検知・検証しない場合、トークンが有効である限り、攻撃者はユーザーになりすまし続けることが可能になります。
Kerberosリプレイ攻撃
Kerberosは、時間制限付きのチケットを用いることで、安全でないネットワーク上でも安全な認証を実現するために設計されたネットワーク認証プロトコルで、企業環境で広く利用されています。
Kerberosリプレイ攻撃では、有効なチケット認証チケット(TGT)やサービチケットが盗まれ、それを再利用することで不正アクセスが行われます。(参考:セキュリティ分野では、盗難または偽造されたTGTは「ゴールデンチケット」、偽造されたサービチケットは「シルバーチケット」と呼ばれることがあり、誤った手に渡ると極めて危険な認証情報であることを示しています。)
Kerberosにはタイムスタンプや相互認証といった保護機構が組み込まれていますが、システム間の時刻が同期されていなかったり、追加の検証が省略されたりすると、これらの対策が十分に機能しない場合があります。
リプレイ攻撃の実例
リプレイ攻撃がどれほど深刻な脅威であるかを理解するには、実際に被害が発生した現実の事例を見るのが効果的です。
2022年、Slackの従業員からセッショントークンが盗まれ、そのトークンを使ってSlackの内部コードを含む非公開のGitHubリポジトリに不正アクセスされる事件がありました。攻撃者はパスワードを盗んでいませんでしたが、問題はありませんでした。盗んだセッショントークンを再利用するだけで、認証を完全に回避できたからです。これは、正当な認証トークンを取得して再送することでサーバーをだます、リプレイ攻撃の典型例です。このケースは「セッションハイジャック」と分類されることもありますが、実際の本質は、過去に有効だったトークンを再送して正規ユーザーになりすますリプレイの仕組みにあります。
別の有名な事例では、負荷分散や安全なリモートアクセス、アプリケーション配信に使われる企業向け製品であるCitrix NetScaler ADCおよびGatewayの脆弱性が悪用され、認証セッションデータが取得・再利用されました。この欠陥は医療、小売、製造業など数千の組織に影響を与えました。侵入後は、認証情報を入力する必要すらなく、再送されたセッショントークンによって内部システムや機密データに即座にアクセスできました。Citrixは、広範な悪用が確認されたことを受け、2023年10月に緊急パッチを提供しています。
リプレイ攻撃はデジタルの世界に限りません。研究者は、HackRF Oneという低価格の無線デバイスを使い、クリスマスツリーの照明やガレージドア、自動車など、日常的に使われるリモコンの無線信号を取得・再送できることを示しました。
これらの実例が示すとおり、セッショントークンであれ無線コマンドであれ、過去に有効だったデータを再送するだけで、セキュリティを完全に突破できてしまう場合があります。リクエストが一意であるか、新しいものであるか、特定のユーザーやデバイスに結び付いているかを確認しないシステムは、この種の攻撃に対して極めて脆弱です。
リプレイ攻撃を防ぐ方法
リプレイ攻撃の仕組みを理解することは重要ですが、それだけでは不十分です。本当のセキュリティは、適切な防止策を実装することで初めて実現します。ここでは、特に効果的な対策を紹介します。
ノンスとタイムスタンプの活用
ノンス(「一度だけ使われる数値」)とは、リクエストごとに付与されるランダムまたは疑似ランダムな値です。システムはノンス付きのメッセージを受信すると、そのノンスが過去に使用されたかどうかを確認し、使用済みであれば即座にリクエストを拒否します。これにより、古いリクエストの再送は無効化されます。
タイムスタンプは、リクエストに有効期限を設ける役割を果たします。想定された時間外に届いたリクエストは、不正の可能性があるとして破棄されます。ノンスとタイムスタンプを併用することで、すべてのメッセージが一意かつ適切なタイミングのものであることが保証され、リプレイ攻撃の成功率は大幅に低下します。
多要素認証(MFA)の導入
MFAは、リプレイ攻撃を成立させにくくする強力な追加対策です。
パスワードだけでなく、スマートフォンや認証アプリが生成するコードなど、2つ目の要素を要求することで、セキュリティが強化されます。たとえ盗まれたパスワードやセッショントークンが再利用されても、追加の要素がなければ攻撃は成功しません。
MFAが有効なのは、攻撃者が通常は入手できない要素とアクセスを結び付けるためです。これがなければ、再送されたリクエストは簡単に遮断されます。
安全な通信プロトコル(TLS、HTTPS)
HTTPSで利用されるTLSは、クライアントとサーバー間の通信データを暗号化します。これにより、中間者攻撃(MITM)によるメッセージの傍受や改ざんが困難になります。仮に通信が傍受されたとしても、正しい暗号鍵がなければ内容を読み取ったり再送したりすることはできません。
暗号化されていないHTTP通信で送信されるセッショントークンやログイン情報は、リプレイ攻撃に対して非常に脆弱です。TLSは通信中のトークンを保護し、傍受リスクを大幅に低減します。
VPNは、特に公共Wi-Fiなどの安全でないネットワーク上で、通信全体を暗号化する追加レイヤーとして機能します。リプレイ攻撃に対する直接的な防御策ではありませんが、攻撃の初期段階となりやすいトラフィックの盗聴リスクを減らす効果があります。VPNがハッカーからあなたを守る仕組みについて詳しく確認してみてください。
リプレイ攻撃と中間者攻撃(MITM)の違い
リプレイ攻撃とMITM攻撃はいずれも通信中のデータを狙いますが、攻撃の性質や目的、手法には明確な違いがあります。
リプレイ攻撃では、ログイン要求や支払い承認、トークンなどの正当なメッセージが取得され、その内容を一切変更せずに後から再送されます。攻撃者は、ノンスやタイムスタンプ、セッション制御といった新規性の検証が行われていない場合、システムが同じメッセージを再び受け入れてしまう点を突きます。取得したデータを再利用するという意味では能動的ですが、通信自体を改変しない点で比較的受動的な攻撃です。
一方、MITM攻撃では、攻撃者が通信する2者の間に割り込み、リアルタイムでメッセージを傍受し、読み取ったり、改ざんしたり、新たなメッセージを挿入したりします。TLSが適切に使われていない場合には復号が行われることもあり、認証情報の窃取やコマンドの改変などが発生します。
要点をまとめると次のとおりです。
- リプレイ攻撃:正当なメッセージを再送して、システムに同じ処理を再度実行させる。
- MITM攻撃:ユーザーやシステム間の通信を積極的に傍受し、読み取り、改ざん、または挿入する。
リプレイ攻撃は、MITM攻撃の一種、またはその派生と考えられることが多い点にも注意が必要です。というのも、後に再送されるメッセージを取得する手段として、ネットワークスニッフィングなどのMITM技術が使われるケースが多いためです。ただし、一度データが取得されてしまえば、リプレイ攻撃は元の通信とは独立して、後からオフラインで実行されることもあります。
FAQ:リプレイ攻撃に関するよくある質問
TLSはどのようにリプレイ攻撃を防ぐのですか?
TLS(トランスポート層セキュリティ)は、各セッションを個別に暗号化することで、取得されたデータの再利用を防ぎます。さらに、ハンドシェイク時にノンスを交換し、すべてのセッションが一意であることを保証します。そのため、仮に攻撃者が通信データを取得しても、暗号鍵やタイムスタンプが一致せず、再利用することはできません。
セッションハイジャック攻撃はリプレイ攻撃と同じですか?
セッションハイジャック攻撃とリプレイ攻撃は同一ではありませんが、重なる部分はあります。
リプレイ攻撃では、ログイン要求や支払い承認などの正当なメッセージを取得し、それを改変せずに後から再送することで、システムに再び受け入れさせます。これは、リクエストの新規性や一意性を検証しないシステムの弱点を突く攻撃です。一方、セッションハイジャックは、クッキーなどの有効なセッショントークンを盗み、長期間にわたってユーザーになりすまし、セッションを乗っ取る行為を指します。
取得したトークンを再送するなど、リプレイの手法がセッションハイジャックに使われることもありますが、リプレイ攻撃は単発的・機会的であるのに対し、セッションハイジャックは被害者のアカウントへの継続的かつ広範なアクセスを可能にする点が大きな違いです。
VPNはリプレイ攻撃の防止に役立ちますか?
VPNは通信を暗号化するため、ログイン情報やセッショントークンといった機密データを傍受されにくくします。ただし、デバイスに感染したマルウェアなど、VPNトンネル外でデータが取得された場合には、VPNだけでリプレイ攻撃を防ぐことはできません。
リプレイ攻撃は合法ですか?
いいえ、リプレイ攻撃は違法です。不正アクセスや私的通信の侵害に該当し、国によってはサイバー犯罪、詐欺、個人情報保護関連の法律に基づいて処罰される可能性があります。
ネット上で身を守るための第一歩を踏み出しましょう。リスクなしでExpressVPNをお試しください。
ExpressVPN を入手