Il Recaptcha di Google ha la convalida hostname
"baked-in". Quando un utente invia una risposta Recpatcha, il dominio da cui è stata acquisita la risposta viene convalidato rispetto alla whitelist dei domini che hai fornito quando hai configurato il Recaptcha.
Tuttavia, se utilizzi Recaptcha con più domini hai la possibilità di disattivare la convalida di hostname
di Google e gestirla autonomamente ( link ).
Google lo accompagna con un avvertimento importante che non convalida il hostname
per ogni risposta data ti apre a una vulnerabilità di sicurezza. Ma considerando quanto sia facile spoofare hostname
, non vedo come questo mai abbia fornito alcun livello di miglioramento della sicurezza.
Un semplice test mi ha dimostrato quanto sia facile falsificare il valore di hostname
che Google utilizza per convalidare l'origine della risposta Recaptcha:
$ sudo nano /etc/hosts
127.0.0.1 spoofedhostname.com
E poi quando ho inviato una risposta Recaptcha test il risultato che ho ottenuto è stato il seguente:
{
"success": true,
"challenge_ts": "2016-12-24T14:15:22Z",
"hostname": "spoofedhostname.com"
}
Allora, perché preoccuparsi con la convalida del nome host?
- La convalida del nome host è ampiamente nota per essere inutile considerando quanto sia facile spoofare.
- Questo sembra avere a che fare con la prevenzione che un utente malintenzionato rubi la tua chiave pubblica Recaptcha e poi genera un gruppo di risposte Recaptcha valide, che potrebbero memorizzare e quindi utilizzare quando automatizza un attacco su endpoint sensibili (
/login
,% codice%). Teoricamente, questo potrebbe essere usato in qualche tipo di attacco di forza bruta, ma non ha senso considerando che i token di risposta scadono dopo 1 minuto. E avresti ancora bisogno di risolvere manualmente tutti i Recaptchas, che potresti semplicemente fare nel dominio attuale. E, ancora una volta, potrebbero facilmente rovinare il tuo dominio anche se stai facendo la convalida di/reset-password
.
Non ha alcun senso per me, ma considerando che si tratta di un prodotto Google, devo pensare che i loro ingegneri della sicurezza sappiano qualcosa che non conosco.
Cosa mi manca?