當攻擊者複製兩方之間的訊息流,並將流重播至一方或多方當事方時,就會發生重播攻擊。 除非降低風險,否則受攻擊的電腦會將資料流處理為合法訊息,進而產生一系列不良後果,例如項目的重複訂單。
系結可能會受到反射攻擊
反射攻擊 是將訊息重播給傳送者,就像這些訊息是來自接收者的回覆一樣。 Windows Communication Foundation (WCF) 機制中的標準 重新執行偵測 不會自動處理此動作。
根據預設,會減輕反射攻擊,因為 WCF 服務模型會在請求訊息中新增已簽署的訊息 ID,並預期回應訊息上包含已簽署的 relates-to 標頭。 因此,要求訊息無法被轉換為回應再重複使用。 在安全的可靠訊息 (RM)的案例中,反射攻擊被降低,因為:
建立序列和建立序列回應訊息架構不同。
針對simplex序列,用戶端傳送的序列訊息無法重新執行給它,因為客戶端無法瞭解這類訊息。
針對雙序列,這兩個序列 ID 必須是唯一的。 因此,序列訊息無法重播為傳入序列訊息(所有序列標頭和主體也均已簽署)。
唯一容易受到反射攻擊的繫結是那些沒有使用 WS-Addressing 的繫結:停用了 WS-Addressing 的自訂繫結,並使用對稱密鑰型安全性。 BasicHttpBinding預設不會使用 WS-Addressing,但不會使用對稱密鑰型安全性,使其容易受到此攻擊。
自定義系結的緩和措施是不要建立安全性內容,或要求 WS-Addressing 標頭。
Web 伺服器陣列:攻擊者對多個節點重新執行要求
用戶端會使用在 Web 伺服器陣列上實作的服務。 攻擊者將已傳送至伺服器陣列中某個節點的請求重播至伺服器陣列中的另一個節點。 此外,如果重新啟動服務,會清除重播快取,可能讓攻擊者重複其請求。 (快取包含已使用且先前看到的訊息簽章值,並防止重新執行,因此這些簽章只能使用一次。重播快取不會在 Web 伺服器陣列之間共用。)
風險降低措施包括:
使用具有狀態安全上下文的安全性內容令牌的訊息模式安全性(可以啟用或不啟用安全對話)。 如需詳細資訊,請參閱 如何:建立安全會話的安全性內容令牌。
設定服務以使用傳輸層級安全性。