DNS Rebinding Mempertahankan Origin Web Sambil Mengubah Tujuan Jaringan
Browser dapat memuat konten aktif dari server publik, mempertahankan konten tersebut dalam web origin yang sama, lalu mengirim request berikutnya dengan hostname yang sama ke alamat privat. Tuple origin tidak berubah. Tujuan jaringannya yang berubah.
Ketidakselarasan inilah inti DNS rebinding. Web origin pada dasarnya diidentifikasi oleh scheme, host, dan port, sedangkan DNS memetakan hostname ke alamat jaringan yang berada di luar tuple tersebut. Ketika nama yang dikendalikan penyerang menghasilkan resolusi berbeda dari waktu ke waktu, pemeriksaan origin dan pemeriksaan lokasi jaringan dapat menggambarkan dua batas keamanan yang berbeda.
Dampaknya paling penting ketika layanan pada alamat loopback, privat, atau alamat lain yang dapat dijangkau secara lokal menganggap konten web remote tidak dapat berinteraksi dengannya. DNS rebinding menyerang asumsi itu dengan mempertahankan hostname milik penyerang sebagai authority yang terlihat oleh browser sambil mengarahkan koneksi berikutnya ke layanan lokal.
Identitas origin tidak memuat alamat IP
Untuk URL HTTP dan HTTPS biasa, model web origin menggunakan tuple scheme, host, dan port. Karena itu, halaman di http://relay.example:8080/ mempertahankan origin tersebut selama hostname-nya tetap relay.example dan scheme serta effective port tidak berubah.
Resolusi DNS adalah operasi terpisah. Browser atau networking stack di bawahnya me-resolve host menjadi alamat ketika membangun koneksi. Koneksi berikutnya dapat melakukan resolusi lagi setelah state DNS yang di-cache kedaluwarsa atau tidak lagi dapat digunakan. Jika alamat yang dihasilkan berbeda, tuple origin tetap memuat hostname, bukan alamat IP yang dipilih.
Pemisahan ini disengaja. Nama DNS adalah identifier aplikasi yang stabil di tengah perubahan alamat, load balancing, failover, dan deployment multi-address. Mengikat identitas web origin langsung ke satu alamat hasil resolusi akan bertentangan dengan sifat deployment normal tersebut.
Konsekuensi keamanannya sama jelas: same-origin policy tidak membuktikan bahwa dua koneksi mencapai mesin atau zona jaringan yang sama. Kebijakan itu menetapkan security principal browser berdasarkan komponen URL.
Rebinding mengubah routing di balik hostname yang tetap
Setup rebinding memerlukan kendali atas jawaban DNS untuk sebuah hostname. Resolusi awal dapat mengarahkan hostname itu ke server publik yang dikendalikan penyerang. Server tersebut mengembalikan konten aktif yang terkait dengan origin hostname itu.
Resolusi berikutnya untuk hostname yang sama dapat mengembalikan alamat yang dapat dijangkau dari posisi jaringan browser, seperti alamat loopback atau privat. Jika browser membuat koneksi baru menggunakan jawaban tersebut, request dapat mencapai server berbeda sementara URL tetap memakai hostname semula.
Serangan ini bukan sekadar trik DNS cache. Eksploitasi efektif bergantung pada perilaku resolver, caching DNS dan koneksi browser, pemilihan alamat, penggunaan ulang transport, perilaku layanan, serta kontrol browser atau jaringan yang membatasi perpindahan menuju address space lokal. Koneksi berumur panjang dapat menunda atau mencegah resolusi baru. Cache DNS perantara juga dapat mempertahankan jawaban sebelumnya lebih lama daripada yang dimaksud authoritative server.
Kondisi tersebut membuat timing rebinding spesifik pada deployment, tetapi tidak mengubah ketidakselarasan arsitekturalnya: URL authority dan tujuan jaringan hasil resolusi adalah properti yang berbeda.
Validasi Host dapat mencegah layanan lokal menerima authority pinjaman
Ketika request HTTP mencapai layanan lokal, request authority-nya biasanya masih menyebut hostname milik penyerang. Layanan yang hanya mengharapkan hostname lokal tertentu dapat menolak request sebelum aksi aplikasi terekspos.
Karena itu, validasi host atau authority yang ketat merupakan batas yang berguna. Development daemon yang ditujukan untuk localhost, misalnya, tidak memiliki alasan operasional untuk menerima nama DNS publik arbitrer hanya karena nama tersebut saat ini me-resolve ke alamat loopback.
Default virtual host yang permisif melemahkan batas ini. Server yang menerima setiap nilai Host dan mengarahkan semua nama ke aplikasi berprivilege yang sama memungkinkan kepemilikan DNS memengaruhi browser origin mana yang dapat mengakses aplikasi tersebut.
Validasi host bukan pengganti autentikasi. Proses berbahaya pada mesin lokal mungkin dapat mengirim hostname yang diterima secara langsung, dan client non-browser tidak dibatasi browser origin policy. Pemeriksaan ini menangani jalur rebinding dengan menolak authority yang memang tidak dimaksudkan untuk dilayani.
Lokasi jaringan adalah autentikasi yang lemah
Banyak interface administrasi lokal dan layanan development bind ke loopback karena hal itu membatasi jangkauan langsung dari jaringan. Ini berguna untuk mengurangi eksposur, tetapi tidak menetapkan identitas software yang membuat request.
Browser sendiri adalah proses lokal dengan akses jaringan. Konten remote dapat membuat proses tersebut menghasilkan traffic jaringan sesuai aturan browser. Jika layanan lokal menganggap source address, keterjangkauan loopback, atau penempatan di jaringan privat sebagai otorisasi yang cukup, layanan itu dapat memberikan privilege kepada request tanpa application principal yang kuat.
DNS rebinding mengubah perbedaan ini menjadi masalah aplikasi. Penyerang tidak memerlukan keterjangkauan paket langsung dari Internet publik ke interface lokal. Browser menyediakan keterjangkauan lokal tersebut.
Karena itu, layanan lokal sensitif tetap diuntungkan oleh autentikasi dan otorisasi eksplisit meskipun listener sengaja dibatasi ke alamat lokal. Endpoint acak yang membawa capability, authenticated session, akses yang dimediasi operating system, atau kontrol lain yang sesuai dengan layanan dapat membuat kepemilikan network reachability saja tidak cukup.
HTTPS mengubah batasan sertifikat
HTTPS menambahkan kondisi penting karena server yang dicapai setelah rebinding harus menyelesaikan TLS untuk hostname di URL. Sertifikat yang valid untuk hostname milik penyerang tidak otomatis membuat layanan HTTPS lokal yang tidak terkait dapat mengautentikasi diri sebagai hostname tersebut.
Hal ini membatasi rebinding langsung terhadap layanan HTTPS yang menyajikan sertifikat untuk nama yang memang diharapkannya dan tidak memiliki credential yang valid untuk hostname yang dikendalikan penyerang. Kegagalan TLS terjadi sebelum pemrosesan aplikasi HTTP biasa dapat berlangsung.
Perbedaan ini tidak menjadikan HTTPS sebagai pertahanan universal terhadap rebinding. Target dapat menggunakan HTTP biasa, deployment dapat memiliki pengaturan sertifikat yang tidak lazim, atau mekanisme yang berhadapan dengan browser mungkin tidak bergantung pada setup HTTPS konvensional. Konfigurasi transport dan sertifikat yang tepat tetap menjadi bagian dari threat model.
Untuk layanan HTTP, tidak ada pemeriksaan sertifikat setara yang mengikat hostname DNS ke identitas server secara kriptografis. Hostname dapat tetap sama pada layer browser sementara resolusi memilih endpoint yang berbeda.
CORS bukan batas utama ketika origin tetap sama
Cross-Origin Resource Sharing mengontrol jenis pembacaan cross-origin tertentu. DNS rebinding penting karena origin yang terlihat oleh browser dapat tetap sama ketika tujuan berubah.
Jika script dimuat dari http://relay.example dan request berikutnya tetap menargetkan http://relay.example pada port yang sama, request dapat tetap same-origin meskipun DNS kini mengarahkan koneksi ke tempat lain. Mengandalkan konfigurasi CORS sebagai mitigasi utama karena itu dapat melewatkan mekanisme serangannya.
Layanan lokal yang tidak mengeluarkan header CORS permisif tetap terekspos pada masalah inti jika browser menganggap request tersebut same-origin dengan halaman penyerang. Kontrol yang relevan berada di tempat lain: pembatasan browser terhadap akses jaringan lokal, autentikasi transport, validasi authority, dan otorisasi aplikasi.
Hal ini juga membedakan rebinding dari serangan cross-origin konvensional terhadap URL IP privat literal. Request dari origin publik ke http://192.168.1.10 secara jelas melintasi origin. Rebinding justru mempertahankan hostname yang dikendalikan penyerang di URL dan mengubah tujuan yang dicapai hostname tersebut.
Kontrol jaringan browser menambahkan batas address space lain
Perkembangan keamanan browser modern telah menambahkan kontrol terhadap request dari address space yang kurang privat menuju tujuan yang lebih privat. Kontrol semacam ini dapat membatasi kelas request jaringan lokal yang sebelumnya tidak dibedakan oleh pemrosesan same-origin tradisional hanya berdasarkan URL origin.
Mekanisme tersebut menambahkan dimensi network address space, bukan mengubah tuple origin dasarnya. Enforcement, status rollout, kategori request, dan perilaku kompatibilitasnya berbeda antar-browser, sehingga layanan lokal tidak seharusnya menjadikan kebijakan browser sebagai satu-satunya layer otorisasi.
Perangkat jaringan juga dapat memengaruhi eksposur. DNS filtering, perlindungan rebinding pada resolver, kebijakan split-horizon, dan endpoint control dapat menolak pemetaan mencurigakan dari nama publik ke alamat privat. Pertahanan ini dapat mengurangi attack path yang dapat dijangkau, tetapi bekerja di luar aplikasi dan dapat berbeda antarjaringan client.
Layanan yang digunakan pada banyak mesin developer atau jaringan konsumen tidak dapat dengan aman mengasumsikan kebijakan resolver yang seragam.
Trust boundary mencakup penamaan dan keterjangkauan
DNS rebinding adalah kegagalan komposisi boundary, bukan kegagalan satu pemeriksaan browser yang berdiri sendiri. Model web origin menjawab principal URL mana yang memiliki konten aktif. DNS menjawab ke mana hostname saat ini diarahkan. Alamat lokal membatasi posisi jaringan mana yang dapat membuat koneksi. Otorisasi aplikasi menentukan request mana yang boleh melakukan aksi sensitif.
Risiko muncul ketika layer-layer tersebut dianggap dapat saling menggantikan. Origin yang stabil tidak berarti endpoint yang stabil. Peer loopback tidak berarti konten remote tepercaya tidak terlibat dalam jalur request. DNS lookup yang berhasil tidak membuktikan bahwa server hasil resolusi adalah server yang sebelumnya menyediakan halaman.
Layanan lokal yang tangguh memisahkan klaim-klaim tersebut. Layanan membatasi eksposur listener jika praktis, menolak request authority yang tidak dimaksudkan, mewajibkan otorisasi pada level aplikasi untuk operasi sensitif, serta memperlakukan pertahanan rebinding pada browser atau resolver sebagai containment tambahan, bukan satu-satunya gerbang. Dengan demikian DNS dapat terus menjalankan perannya dalam routing tanpa diam-diam berubah menjadi mekanisme autentikasi.