Wiederholungsangriffe
Ein Replay-Angriff tritt auf, wenn ein Angreifer einen Nachrichtenstrom zwischen zwei Parteien kopiert und den Strom für eine oder mehrere Parteien wiedergibt. Wenn der Angriff nicht abgeschwächt wird, verarbeiten die angegriffenen Computer den Stream wie zulässige Nachrichten, was eine Reihe negativer Konsequenzen wie redundante Bestellungen eines Artikels zur Folge hat.
Bindungen sind möglicherweise Reflektionsangriffen ausgesetzt
Bei einem Reflektionsangriff werden Nachrichten wiederholt an den Absender zurückgeschickt, als würden sie eine Antwort vom Empfänger darstellen. Die standardmäßige Replay-Erkennung im WCF-Mechanismus (Windows Communication Foundation) behandelt dies nicht automatisch.
Reflektionsangriffe werden standardmäßig abgeschwächt, da das WCF-Dienstmodell Anforderungsnachrichten eine signierte Nachrichtenkennung hinzufügt und in Antwortnachrichten einen signierten relates-to
-Header erwartet. Infolgedessen kann die Anforderungsnachricht nicht als Antwort wiederholt werden. In sicheren Szenarien mit zuverlässigem Messaging werden Reflektionsangriffe aus folgenden Gründen abgemildert:
Die Sequenzerstellung und die Sequenzerstellungsantwort verwenden unterschiedliche Nachrichtenschemas.
Bei Simplexsequenzen können die vom Client gesendeten Nachrichten nicht wiedergegeben werden, da diese vom Client nicht interpretiert werden können.
Bei Duplexsequenzen müssen die beiden Sequenzkennungen eindeutig sein. Ausgehende Nachrichten können daher nicht als eingehende Nachrichten wiederholt werden (alle Header und Texte werden ebenfalls signiert).
Aus diesem Grund sind nur Bindungen ohne WS-Adressierung anfällig für Reflektionsangriffe: benutzerdefinierte Bindungen, deren WS-Adressierung deaktiviert ist und die mit symmetrischen Schlüsseln gesichert sind. Die BasicHttpBinding verwendet standardmäßig keine WS-Adressierung; die Absicherung durch symmetrische Schlüssel erfolgt jedoch auf eine Art und Weise, die sie anfällig gegenüber dieser Art von Angriffen macht.
Zur Entschärfung für benutzerdefinierte Bindungen sollte auf einen Sicherheitskontext verzichtet werden, oder es sollten Header für die WS-Adressierung verwendet werden.
Webfarm: Angriff durch Wiederholen von Anforderungen an mehrere Knoten
Ein Client verwendet einen Dienst, der in einer Webfarm implementiert ist. Ein Angreifer wiederholt eine Anforderung, die an einen Knoten in der Farm gesendet wurde, für einen anderen Knoten in der Farm. Zusätzlich wird beim Neustart eines Diensts der Wiederholungscache geleert, sodass der Angriff wiederholt werden kann. (Der Cache enthält verwendete, zuvor gesehene Nachrichtensignaturwerte und verhindert Replays, sodass diese Signaturen nur einmal verwendet werden können. Replay-Caches werden nicht in einer Webfarm freigegeben).
Mögliche Entschärfungen:
Verwenden Sie die Nachrichtenmodussicherheit mit zustandsbehafteten Token für den Sicherheitskontext (mit oder ohne sichere Konversation). Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines Tokens für den Sicherheitskontext einer sicheren Sitzung.
Konfigurieren Sie den Dienst für die Sicherheit auf Transportebene.