リプレイ攻撃Replay Attacks

Aリプレイ攻撃攻撃者は、2 つのパーティ間のメッセージのストリームをコピーし、そのストリームを 1 つまたは複数のパーティのときに発生します。A replay attack occurs when an attacker copies a stream of messages between two parties and replays the stream to one or more of the parties. 攻撃が和らげられていない場合、攻撃対象になったコンピューターはストリームを正当なメッセージとして処理するため、項目の順序が重複するなど、望ましくない状況に陥ります。Unless mitigated, the computers subject to the attack process the stream as legitimate messages, resulting in a range of bad consequences, such as redundant orders of an item.

バインディングはリフレクション攻撃にさらされる可能性があるBindings May Be Subject to Reflection Attacks

リフレクション攻撃元の応答として受信者と送信者メッセージのリプレイになります。Reflection attacks are replays of messages back to a sender as if they came from the receiver as the reply. 標準リプレイ検出Windows Communication Foundation (WCF) のメカニズムは自動的に処理しないこれです。The standard replay detection in the Windows Communication Foundation (WCF) mechanism does not automatically handle this.

WCF サービス モデルを要求メッセージに署名されたメッセージ ID を追加し、署名されたために、既定でリフレクション攻撃が軽減されますrelates-toヘッダーを応答メッセージ。Reflection attacks are mitigated by default because the WCF service model adds a signed message ID to request messages and expects a signed relates-to header on response messages. その結果、要求メッセージを応答としてリプレイできません。Consequently, the request message cannot be replayed as a response. セキュリティで保護された信頼できるメッセージ (RM) シナリオでは、リフレクション攻撃は次の理由で軽減されます。In secure reliable message (RM) scenarios, reflection attacks are mitigated because:

  • シーケンス メッセージの作成スキーマとシーケンス応答メッセージの作成スキーマが異なります。The create sequence and create sequence response message schemas are different.

  • 一方向シーケンスの場合、クライアントから送信されたシーケンス メッセージをクライアントに対してリプレイすることはできません。これは、クライアントがこのようなメッセージを認識できないためです。For simplex sequences, sequence messages the client sends cannot be replayed back to it because the client cannot understand such messages.

  • 双方向シーケンスの場合、2 つのシーケンス ID が一意である必要があります。For duplex sequences, the two sequence IDs must be unique. このため、送信シーケンス メッセージを受信シーケンス メッセージとしてリプレイできません (すべてのシーケンス ヘッダーと本文も署名されています)。Thus, an outgoing sequence message cannot be replayed back as an incoming sequence message (all sequence headers and bodies are signed, too).

リフレクション攻撃の影響を受けやすい唯一のバインディングは WS-Addressing を使用しないバインディング (WS-Addressing を無効にして、対称キー ベースのセキュリティを使用するカスタム バインド) です。The only bindings that are susceptible to reflection attacks are those without WS-Addressing: custom bindings that have WS-Addressing disabled and use the symmetric key-based security. BasicHttpBinding は、既定では WS-Addressing を使用しませんが、この攻撃を受けやすい方法で対称キー ベースのセキュリティを使用することはありません。The BasicHttpBinding does not use WS-Addressing by default, but it does not use symmetric key-based security in a way that allows it to be vulnerable to this attack.

カスタム バインドに対する攻撃を軽減するには、セキュリティ コンテキストを確立しないか、WS-Addressing ヘッダーを要求します。The mitigation for custom bindings is to not establish security context or to require WS-Addressing headers.

Web ファーム:複数のノードに攻撃者のリプレイ要求Web Farm: Attacker Replays Request to Multiple Nodes

クライアントは、Web ファームに実装されているサービスを使用します。A client uses a service that is implemented on a Web farm. 攻撃者は、ファーム内の特定のノードに送信された要求を同じファーム内の別のノードに対してリプレイします。An attacker replays a request that was sent to one node in the farm to another node in the farm. また、サービスが再開されると、リプレイ キャッシュがフラッシュされ、攻撃者が要求をリプレイできるようになります In addition, if a service is restarted, the replay cache is flushed, allowing an attacker to replay the request. (このキャッシュには、以前使用されたメッセージ署名の値が格納されています。これにより、メッセージ署名は一度しか使用できないため、リプレイを防止できます。(The cache contains used, previously seen message signature values and prevents replays so those signatures can be used only once. リプレイ キャッシュは Web ファーム内で共有されません)。Replay caches are not shared across a Web farm.)

回避事項を次に示します。Mitigations include:

関連項目See also