2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
WebsocketProtokoll-Proxy-Tunnel-verschlüsselter DatenverkehrEinführung
In Angriffs- und Verteidigungsszenarien wird das Websocket-Protokoll häufig zum Aufbau von Proxy-Tunneln verwendet. Angreifer versuchen, mithilfe des Websocket-Protokolls Netzwerkbeschränkungen zu umgehen und einen bidirektionalen Echtzeit-Datenübertragungstunnel mit geringer Latenz aufzubauen.Zu den gängigen Tools, die Websocket-Kommunikationsagenten unterstützen, gehören derzeit: FRP, wsp, wstunnel, TurboTunnel usw.
Nehmen Sie als Beispiel das wstunnel-Tool. Wenn wstunnel das Websocket-Protokoll verwendet, um einen Tunnel für Proxy-bezogenen Datenverkehr aufzubauen, verwendet der Client den HTTP-Upgrade-Mechanismus, um die Handshake-Phase des Protokolls abzuschließen. Wenn der Handshake abgeschlossen ist, verwenden Client und Server das Datenformat des Websocket-Protokolls für die Vollduplex-Kommunikation. Sowohl der Server als auch der Client können aktiv Nachrichten senden, ohne darauf warten zu müssen, dass die andere Partei zuerst Nachrichten sendet. Auf diese Weise kann Wstunnel einen leistungsstarken Websocket-Tunnel mit geringer Latenz aufbauen.
Websocket Nach Abschluss des Handshakes werden die Daten in Einheiten von Datenrahmen übertragen. Der Websocket-Tunnelverkehr von wstunnel ist in der folgenden Abbildung dargestellt:
Im Websocket-Protokoll gibt es ein Flag: Mask, das angibt, ob die Maskenverschlüsselung für die Daten aktiviert ist. Wenn dieses Bit 1 ist, bedeutet dies, dass Maskenverschlüsselung verwendet wird und die letzten 4 Bytes der Nutzlastlänge der Entschlüsselungsschlüssel sind. Die Maskenverschlüsselung in Websocket verwendet Exklusiv-ODER (xor) für die einfache Verschlüsselung. Wenn das entsprechende Bit des MASK-Felds auf 1 gesetzt ist, bedeutet dies, dass später ein 4-Byte-Maskierungsschlüssel gesetzt wird auf 0 bedeutet nein. Wenn es verschlüsselt ist, wird der Maskierungsschlüssel nicht übertragen. Der aktuelle Standard-Websocket schreibt vor, dass der Client zum Senden von Daten eine Maskenverschlüsselung verwenden muss, während der Server zum Senden von Daten keine Maskenverschlüsselung verwendet.
Das Bild unten zeigt den Datenverkehr eines anderen WSP-Tools nach Aktivierung der MASK-Verschlüsselung:
Darüber hinaus unterstützt Websocket WSS-Attribute, nämlich Websocket Secure, das in der Form „wss://“ übertragen wird. Diese Kommunikation kapselt die Websocket-Daten über das TLS-Verschlüsselungsprotokoll, sodass die auf der äußersten Schicht angezeigten Daten die TLS-Protokollkommunikation sind und die übertragenen Daten stärker verborgen sind, wie in der Abbildung dargestellt:
Neben wstunnel und wsp gibt es weitere Tools, die ebenfalls Websocket-Tunneling unterstützen:
Die oben genannten vier Tools verschlüsseln die Nutzlast wie folgt:
Das Obige stellt die Eigenschaften des Websocket-Kommunikationsverkehrs mehrerer häufig verwendeter Tools vor. Das Guanchengkanyun-Encrypted Threat Intelligent Detection System kann den Datenverkehr dieser Tools mithilfe der Websocket-verschlüsselten Kommunikation effektiv erkennen:
In Szenarien wie Angriffs- und Verteidigungsübungen zeichnen sich Websocket-Protokolltunnel durch geringe Latenz, hohe Zwei-Wege-Echtzeitleistung und starke Verschlüsselungsfunktionen aus, sodass Verkehrsgeräteprüfungen leicht vermieden werden können. Daher hat sich diese Art von Tool nach und nach entwickelt beliebt. Das Sicherheitsteam von Guancheng Technology untersuchte die Strukturmerkmale des Websocket-Protokolls selbst und kombinierte sie mit dem entsprechenden Tool-Verkehr, um wirksame Erkennungsmethoden vorzuschlagen und diese auf das Produkt anzuwenden. Es kann Anomalien im Websocket-Verkehr genau erkennen und den Ursprung der zugehörigen Tunnel ermitteln. Erstellen und nutzen Sie Traces, um die Sicherheit von Kundennetzwerken zu gewährleisten. Wir werden diese Art von Tunnelwerkzeugen weiterhin verfolgen und untersuchen und die Erkennungsfähigkeiten unserer Produkte kontinuierlich verbessern.