Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Häufig erfordert das Programmiermodell einen Serverrückruf an einen Client über einen Remoteprozeduraufruf (REMOTE Procedure Call, RPC) oder Clientaufrufe an einen nicht vertrauenswürdigen Server. Dies führt zu vielen potenziellen Fallstricken.
Erstens muss der Rückruf an den Client mit einer ausreichend niedrigen Identitätswechselstufe erfolgen. Wenn der Server ein Systemdienst mit hoher Berechtigung ist, kann der Aufruf eines lokalen Clients mit einer Identitätswechselstufe oder höher dem Client berechtigungen bereitstellen, die für die Übernahme des Systems ausreichen. Das Zurückrufen eines Remoteclients mit höherer Identitätswechselstufe als erforderlich kann auch zu unerwünschten Folgen führen.
Zweitens: Wenn ein Angreifer Ihren Dienst dazu veranlasst, einen Rückruf auszuführen, kann er einen sogenannten schwarzen Lochstarten – Denial-of-Service-Angriff. Solche Angriffe sind nicht spezifisch für RPC; in diesen Angriffen führt ein Computer dazu, Datenverkehr an sie zu senden, reagiert aber nicht auf Ihre Anforderungen. Sie senken immer mehr Ressourcen, um das schwarze Loch zu nennen, aber sie kommen nie wieder zurück. Ein allgemeines Beispiel für einen solchen Angriff ist ein ANGRIFF auf TCP-Ebene, der als TCP/IP SYN-Flutangriff bezeichnet wird.
Auf RPC-Ebene tritt ein einfacher Black-Hole-Angriff auf, wenn ein Angreifer eine Schnittstelle aufruft, und fordert den Server auf, die Schnittstelle zurückzurufen. Die Schnittstelle entspricht, aber der Angreifer gibt nie den Aufruf zurück: Ein Thread auf dem Server ist gebunden. Der Angreifer führt dies 100 Mal durch, wobei 100 Threads auf dem Server gebunden werden. Schließlich ist der Server nicht mehr genügend Arbeitsspeicher vorhanden. Das Debuggen des Servers kann möglicherweise die Identität des Black-Hole-Anrufers anzeigen, aber häufig wird der Server neu gestartet, ohne dass ein foules Spiel vermutet wird, oder es ist möglicherweise nicht genügend Fachwissen verfügbar, um den Angreifer zu ermitteln.
Der dritte Fall liegt auf dem Client. Häufig ruft ein Client den Server auf, der den Server darüber informiert, wie er zurückruft (in der Regel eine Zeichenfolgenbindung), und wartet dann auf einen Anruf vom Server, um einen Anruf vom Server einzunehmen, blind alle Aufrufe an diesem Endpunkt zu akzeptieren, die ansprüche vom Server stammen. Das Rückrufprotokoll vom Server an den Client sollte einen Überprüfungsmechanismus enthalten, um sicherzustellen, dass der Rückruf beim Aufrufen des Clients tatsächlich auf dem Server stammt.