7. Considerazioni sulla sicurezza
- Considerazioni sulla sicurezza
Esistono rischi significativi nel consentire a client arbitrari di stabilire un tunnel verso destinazioni arbitrarie, poiché ciò potrebbe consentire a malintenzionati di inviare traffico e farlo attribuire al proxy UDP. I server HTTP che supportano il proxying UDP dovrebbero limitarne l'uso agli utenti autenticati.
Esistono implementazioni software e di rete che eseguono controlli di accesso basati sull'indirizzo IP di origine delle richieste in arrivo. Ad esempio, alcuni software consentono modifiche alla configurazione non autenticate se provengono da 127.0.0.1. Tale software potrebbe essere in esecuzione sullo stesso host del proxy UDP o nello stesso dominio di trasmissione. Il traffico UDP proxyato verrebbe quindi ricevuto con un indirizzo IP di origine appartenente al proxy UDP. Se questo indirizzo di origine viene utilizzato per il controllo degli accessi, i client di proxying UDP potrebbero utilizzare il proxy UDP per elevare i propri privilegi di accesso oltre quelli che avrebbero altrimenti. Ciò potrebbe portare ad accesso non autorizzato da parte dei client di proxying UDP a meno che il proxy UDP non impedisca le richieste di proxying UDP verso destinazioni vulnerabili, come gli indirizzi propri del proxy UDP e gli indirizzi localhost, link-local, multicast e broadcast. I proxy UDP possono utilizzare il tipo di errore proxy destination_ip_prohibited dalla Sezione 2.3.5 di [PROXY-STATUS] quando rifiutano tali richieste.
I proxy UDP condividono molte somiglianze con i proxy TCP CONNECT quando li si considera come infrastruttura per abusi per consentire attacchi denial-of-service (DoS). Entrambi possono offuscare l'indirizzo di origine dell'attaccante dalla destinazione dell'attacco. Nel caso di un attacco volumetrico stateless (ad esempio, un TCP SYN flood o un UDP flood), entrambi i tipi di proxy passano il traffico all'host di destinazione. Con attacchi volumetrici stateful (ad esempio, HTTP flooding) inviati tramite un proxy TCP CONNECT, il proxy invierà dati solo se la destinazione ha indicato la sua volontà di accettare dati rispondendo con un TCP SYN-ACK. Una volta che il percorso verso la destinazione è inondato, il proxy TCP CONNECT non riceverà più risposte dalla destinazione e smetterà di inviare dati. Poiché UDP non stabilisce uno stato condiviso tra il proxy UDP e la destinazione, il proxy UDP potrebbe continuare a inviare dati alla destinazione in tale situazione. Sebbene un proxy UDP possa potenzialmente limitare il numero di pacchetti UDP che è disposto a inoltrare fino a quando non ha osservato una risposta dalla destinazione, ciò fornisce una protezione limitata contro gli attacchi DoS quando gli attacchi prendono di mira porte UDP aperte in cui il protocollo in esecuzione su UDP risponderebbe e ciò verrebbe interpretato come volontà di accettare UDP dal proxy UDP. Tale limite di pacchetti potrebbe anche causare problemi per il traffico valido.
Le considerazioni sulla sicurezza descritte nella Sezione 4 di [HTTP-DGRAM] si applicano anche qui. Poiché è possibile eseguire il tunneling di pacchetti IP su UDP, la guida in [TUNNEL-SECURITY] può essere applicata.