DNS Rebinding Mempertahankan Web Origin sambil Mengubah Tujuan Jaringan
Browser dapat memuat active content dari server publik, mempertahankan content 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.
Ketidaksesuaian inilah inti DNS rebinding. Web origin terutama diidentifikasi oleh scheme, host, dan port, sedangkan DNS memetakan hostname ke alamat jaringan di luar tuple tersebut. Ketika nama yang dikendalikan attacker menghasilkan resolusi berbeda dari waktu ke waktu, origin check dan network-location check dapat menggambarkan dua security boundary yang berbeda.
Dampaknya paling penting ketika service pada loopback, alamat privat, atau alamat lain yang hanya dapat dijangkau secara lokal berasumsi bahwa remote web content tidak dapat berinteraksi dengannya. DNS rebinding menyerang asumsi itu dengan mempertahankan hostname attacker sebagai authority yang terlihat oleh browser sambil mengarahkan koneksi berikutnya ke service lokal.
Identitas origin tidak berisi alamat IP
Untuk URL HTTP dan HTTPS biasa, model web origin menggunakan tuple scheme, host, dan port. Halaman di http://relay.example:8080/ tetap memiliki 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 menyelesaikan hostname menjadi alamat ketika membangun koneksi. Jika alamat hasil resolusi berubah, tuple origin tetap menyimpan hostname, bukan alamat IP yang dipilih.
Pemisahan ini disengaja. Nama DNS adalah identifier aplikasi yang stabil melintasi perubahan alamat, load balancing, failover, dan deployment multi-address. Mengikat identitas web origin langsung ke satu alamat hasil resolusi akan bertentangan dengan properti deployment normal tersebut.
Konsekuensi keamanannya juga langsung: same-origin policy tidak membuktikan bahwa dua koneksi mencapai mesin atau network zone yang sama. Ia membentuk browser security principal dari komponen URL.
Rebinding mengubah routing di bawah hostname yang tetap
Setup rebinding memerlukan kontrol atas jawaban DNS untuk sebuah hostname. Resolusi awal dapat mengarahkan hostname tersebut ke server publik yang dikendalikan attacker. Server itu mengembalikan active content yang terkait dengan origin hostname tersebut.
Resolusi berikutnya untuk hostname yang sama dapat mengembalikan alamat yang dapat dijangkau dari posisi jaringan browser, misalnya loopback atau alamat privat. Jika browser membuat koneksi baru memakai jawaban itu, request dapat mencapai server berbeda sementara URL tetap memakai hostname semula.
Serangan ini bukan sekadar trik DNS cache. Eksploitasi efektif bergantung pada perilaku resolver, DNS cache dan connection cache browser, address selection, transport reuse, perilaku service, serta kontrol browser atau jaringan yang membatasi perpindahan menuju local address space. Koneksi berumur panjang dapat menunda atau mencegah resolusi baru. Intermediary DNS cache juga dapat mempertahankan jawaban lama lebih lama daripada yang dimaksud authoritative server.
Kondisi tersebut membuat timing rebinding berbeda antar-deployment, tetapi tidak mengubah mismatch arsitekturalnya: URL authority dan resolved network destination adalah properti yang berbeda.
Validasi Host dapat mencegah service lokal menerima authority yang dipinjam
Ketika HTTP request mencapai service lokal, request authority biasanya masih menyebut hostname attacker. Service yang hanya mengharapkan hostname lokal tertentu dapat menolak request sebelum application action terekspos.
Karena itu, validasi host atau authority yang ketat merupakan boundary yang berguna. Development daemon yang ditujukan untuk localhost, misalnya, tidak memiliki alasan operasional untuk menerima nama DNS publik arbitrer hanya karena saat ini nama tersebut resolve ke alamat loopback.
Default virtual host yang permisif melemahkan boundary ini. Server yang menerima setiap nilai Host dan merutekan semua nama ke privileged application yang sama membiarkan kepemilikan DNS memengaruhi browser origin mana yang dapat mengalamatkan application tersebut.
Validasi host bukan pengganti authentication. Process berbahaya pada mesin lokal mungkin dapat mengirim accepted hostname secara langsung, dan non-browser client tidak dibatasi browser origin policy. Pemeriksaan ini secara khusus menangani jalur rebinding dengan menolak authority yang memang tidak dimaksudkan untuk dilayani.
Lokasi jaringan adalah authentication yang lemah
Banyak local administration interface dan development service bind ke loopback karena hal itu mengurangi network reachability langsung. Ini merupakan pengurangan exposure yang berguna, tetapi tidak membuktikan identitas software yang membuat request.
Browser sendiri adalah local process dengan akses jaringan. Remote content dapat membuat process tersebut menghasilkan network traffic sesuai aturan browser. Jika service lokal memperlakukan source address, loopback reachability, atau penempatan private-network sebagai authorization yang memadai, ia dapat memberi privilege pada request tanpa application principal yang kuat.
DNS rebinding mengubah perbedaan ini menjadi masalah aplikasi. Attacker tidak membutuhkan direct packet reachability dari Internet publik ke local interface. Browser menyediakan local reachability tersebut.
Karena itu, service lokal yang sensitif tetap mendapat manfaat dari authentication dan authorization eksplisit walaupun listener sengaja dibatasi pada alamat lokal. Capability-bearing random endpoint, authenticated session, akses yang dimediasi operating system, atau kontrol lain yang sesuai dengan service dapat membuat network reachability saja tidak cukup.
HTTPS menambahkan batasan certificate
HTTPS menambahkan syarat penting karena server yang dicapai setelah rebinding harus menyelesaikan TLS untuk hostname di URL. Certificate yang valid untuk hostname attacker tidak otomatis membuat local HTTPS service yang tidak terkait mampu melakukan authentication sebagai hostname tersebut.
Hal ini membatasi rebinding langsung terhadap HTTPS service yang menyajikan certificate untuk nama yang mereka harapkan sendiri dan tidak memiliki credential valid untuk hostname yang dikendalikan attacker. TLS failure terjadi sebelum HTTP application processing biasa berlangsung.
Perbedaan ini tidak membuat HTTPS menjadi pertahanan rebinding universal. Target dapat memakai plain HTTP, deployment dapat memiliki susunan certificate yang tidak biasa, atau mekanisme yang menghadap browser mungkin tidak bergantung pada setup HTTPS konvensional yang persis sama. Konfigurasi transport dan certificate tetap menjadi bagian threat model.
Untuk HTTP service, tidak ada certificate check sebanding yang mengikat DNS hostname ke cryptographic server identity. Hostname dapat tetap sama pada browser layer sementara resolusi memilih endpoint berbeda.
CORS bukan boundary utama ketika origin tetap sama
Cross-Origin Resource Sharing mengendalikan cross-origin read tertentu. DNS rebinding menonjol karena browser-visible origin dapat tetap sama saat destination berubah.
Jika script dimuat dari http://relay.example dan request berikutnya tetap menuju http://relay.example pada port yang sama, request dapat tetap same-origin walaupun DNS kini mengarahkannya ke tempat lain. Menganggap konfigurasi CORS sebagai mitigasi utama dapat melewatkan mekanisme ini.
Service lokal yang tidak mengirim permissive CORS header tetap dapat terpapar pada masalah inti jika browser menganggap request same-origin dengan halaman attacker. Kontrol yang relevan berada di tempat lain: pembatasan browser terhadap local-network access, transport authentication, authority validation, dan application authorization.
Ini juga membedakan rebinding dari conventional cross-origin attack terhadap URL literal private IP. Request dari public origin ke http://192.168.1.10 secara jelas melintasi origin. Rebinding justru mempertahankan hostname yang dikendalikan attacker di URL dan mengubah tujuan hostname tersebut.
Kontrol jaringan browser menambahkan boundary address-space lain
Pekerjaan keamanan browser modern menambahkan kontrol di sekitar request dari address space yang kurang privat menuju destination yang lebih privat. Kontrol semacam ini dapat membatasi kelas local-network request yang tidak dibedakan traditional same-origin processing hanya dari URL origin.
Mekanisme ini menambahkan dimensi network-address-space tanpa mengubah tuple origin dasar. Enforcement, rollout state, kategori request, dan compatibility behavior yang tepat bergantung pada browser, sehingga service lokal tidak seharusnya menjadikan browser policy sebagai satu-satunya authorization layer.
Peralatan jaringan juga dapat memengaruhi exposure. DNS filtering, rebinding protection pada resolver, split-horizon policy, dan endpoint control dapat menolak mapping mencurigakan dari nama publik ke alamat privat. Pertahanan ini dapat mengurangi attack path yang dapat dijangkau, tetapi bekerja di luar aplikasi dan berbeda antar-client network.
Service yang dipasang pada banyak developer machine atau consumer network tidak dapat dengan aman mengasumsikan resolver policy yang seragam.
Trust boundary mencakup penamaan dan reachability
DNS rebinding adalah kegagalan komposisi boundary, bukan kegagalan satu browser check terisolasi. Model web origin menjawab principal URL mana yang memiliki active content. DNS menjawab ke mana hostname saat ini dirutekan. Local addressing membatasi posisi jaringan mana yang dapat membangun koneksi. Application authorization menentukan request mana yang boleh melakukan tindakan sensitif.
Risiko muncul ketika lapisan tersebut dianggap dapat dipertukarkan. Origin yang tetap tidak berarti endpoint yang tetap. Loopback peer tidak membuktikan bahwa trusted remote content tidak terlibat dalam request path. DNS lookup yang berhasil tidak membuktikan server hasil resolusi adalah server yang sebelumnya memasok halaman.
Service lokal yang kuat menjaga klaim-klaim ini tetap terpisah. Batasi listener exposure jika memungkinkan, tolak request authority yang tidak dimaksudkan, wajibkan application-level authorization untuk operasi sensitif, dan perlakukan pertahanan rebinding pada browser atau resolver sebagai containment tambahan, bukan satu-satunya gate. Dengan demikian DNS dapat tetap menjalankan fungsi routing tanpa diam-diam berubah menjadi mekanisme authentication.