Els noms privats de la VPN fallen? La protecció de rebinding DNS és la sospitosa
Un resolutor que rebutja respostes de l’espai privat trenca els noms interns, no el túnel. Llegeix la resposta, acota l’excepció i mantingues la protecció a la resta.
A la LAN de l’oficina el nom intern respon a l’instant. En el moment en què la VPN s’aixeca deixa de funcionar, l’aplicació informa d’un temps d’espera esgotat i el túnel mateix continua passant trànsit sense queixar-se. El que ha canviat és el resolutor, i aquest resolutor té una opinió sobre les adreces privades.
La protecció de rebinding existeix per aturar un truc concret. Un nom privat publicat expressament s’hi assembla prou i la defensa s’activa.
Llegeix la resposta abans de llegir la política
Consulta el nom al resolutor que la VPN realment subministra, no al que el teu portàtil fa servir a casa. Compara la resposta amb el registre que esperes i fixa’t si la resposta és buida, rebutjada o plena d’adreces públiques que ningú havia previst.
Els símptomes es superposen, de manera que la forma de la resposta decideix el diagnòstic. Un NXDOMAIN és un registre absent, un REFUSED és una regla d’accés, una adreça pública per a un nom intern és un error de política o de DNS dividit, i una adreça privada correcta que el client no pot utilitzar és un problema completament diferent. Una connexió rebutjada o una petició encallada no proven res per si soles, i per això la primera ordre en qualsevol d’aquests tiquets ha de ser una consulta i no un reinici. Anota la resposta abans de canviar res.
Què atura realment la defensa
El rebinding DNS funciona canviant a què resol un nom després que el client ja hi hagi confiat. Una pàgina es carrega des d’un nom controlat per l’atacant, la resposta gira cap a una adreça privada i el navegador és enganyat perquè parli amb alguna cosa de la xarxa local amb què mai no hauria acceptat una connexió directa. La defensa és rebutjar les respostes que apunten a l’espai privat quan mai no s’ha demanat al resolutor que serveixi un espai de noms privat. Tota l’atac és aquesta asimetria.
dnsmasq documenta exactament aquest comportament, juntament amb excepcions per domini. La seva pàgina de manual descriu rebind-domain-ok com la manera de nomenar dominis que poden retornar legítimament aquestes adreces. Llegeix-ho com un senyal que l’arranjament previst és un permís acotat, no un commutador global.
Acota l’excepció a l’espai de noms
Arregla primer l’espai de noms i després l’excepció. Confirma que el nom que falla pertany a un domini que l’organització controla i que el registre es manté deliberadament. Una adreça inesperada que només s’assembla a un rang familiar de la LAN mereix sospita, no una excepció, així que comprova qui posseeix la zona abans d’escriure cap permís.
# ask the resolver the VPN pushed, and show the full answer
dig +noall +answer db.corp.example @10.40.0.1
dig +short db.corp.example @10.40.0.1
# dnsmasq: what does the running configuration already allow?
grep -R 'rebind' /etc/dnsmasq.d /etc/dnsmasq.conf
Afegeix després el permís més estret que cobreixi els noms previstos: un domini, o un subdomini delegat, a la configuració del resolutor que consulten els clients de la VPN. Desactivar la protecció per a tots els noms d’aquell resolutor elimina la defensa per a tots alhora, inclosos els noms que mai no la necessitaven.
El DNS dividit pertany a la mateixa decisió. Si l’espai de noms privat només s’ha de respondre al resolutor intern, publica’l allà i deixa de filtrar-lo cap als resolutors públics, de manera que l’excepció cobreixi un camí en lloc de tots els camins.
Torna a provar el recurs i la defensa
Consulta de nou, després connecta amb el servei i mira què veu el client. Una resposta privada correcta amb una sessió que funciona vol dir que l’excepció ha arribat. Una resposta correcta amb una sessió encallada vol dir que la ruta o la identitat del servei és el següent sospitós.
# the internal name and the public control should behave differently
dig +short db.corp.example @10.40.0.1
dig +short www.example.com @10.40.0.1
# and the service itself, with the certificate it presents
curl -sS -o /dev/null -w '%{http_code}\n' https://db.corp.example/health
Prova també un nom públic a través del mateix resolutor. La protecció hauria de continuar funcionant per als noms fora de l’excepció, i si aquesta comprovació falla, el canvi era més ampli del previst. Mantén la validació del certificat intacta en tot moment, perquè un nom que resol correctament encara ha de coincidir amb el certificat que presenta el servei.
Anota al tiquet la resposta rebutjada, el domini, el resolutor i qui posseeix la política. Aquest registre és el que converteix una interrupció interna misteriosa en un canvi de configuració que algú pot revisar.