httpoxy: TLS / SSL attenua la vulnerabilità dell'intestazione del proxy HTTP?

12

Esiste una nuova vulnerabilità con marchio di fantasia chiamata HTTPOXY .

La mia domanda qui: anche i siti serviti tramite TLS sono interessati? Oppure si tratta di un problema solo per i siti HTTP (canale di comunicazione non criptato)?

MODIFICA: aggiunta immagine per chiarire la minaccia e lo scenario di attacco:

    
posta boleslaw.smialy 19.07.2016 - 09:53
fonte

2 risposte

9

Non lo sapevo fino a quando non ho letto il link che hai postato, quindi non visualizzare questa risposta come autorevole. Ti consiglio di prendere le precauzioni elencate sotto "Mitigazione immediata" ora, finché non sei completamente sicuro di non essere interessati.

Innanzitutto, come funziona questa vulnerabilità? Questa è una breve forma dell'esempio PHP spiegato sotto "Come funziona" :

  1. L'attaccante invia una richiesta con l'intestazione Proxy impostata su un IP malvagio controllato dall'hacker.
  2. Se il server esegue CGI, i valori di tutte le intestazioni finiscono in getenv("HTTP_NAME_OF_HEADER") , o in questo caso getenv("HTTP_PROXY") .
  3. Se lo script in esecuzione sul server utilizza anche un client HTTP (come Guzzle) per inviare richieste proprie, potrebbe anche leggere getenv("HTTP_PROXY") , ma non per ottenere l'intestazione ma per sapere se deve utilizzare un proxy per il traffico in uscita. L'IP inviato dall'hacker verrà quindi utilizzato come proxy.
  4. L'attaccante può ora MITM tutte le richieste in uscita effettuate dal server.

La cosa importante da notare è che qui ci sono due richieste:

  • A. Uno al passaggio n. 1, in cui l'utente malintenzionato inoltra una richiesta al server vulnerabile.
  • B. Uno al passaggio n. 3, in cui il server vulnerabile funge da client e inoltra una richiesta da qualche altra parte.

Se utilizzi HTTPS per A non importa (suppongo che sia ciò che significherebbe "siti serviti tramite TLS"). Viene comunque crittografato al semplice vecchio HTTP. Quindi sei vulnerabile.

Tuttavia, se si utilizza HTTPS per B può essere importante, poiché (come hectorct evidenziato nei commenti) l'attaccante non sarà comunque in grado di soddisfare la richiesta MITM, assumendo che il cliente controlli il certificato e che il TLS sia valido e così via. È la seconda richiesta di cui stanno parlando in questi passaggi (il mio punto strong):

A few things are necessary to be vulnerable:

  • Code running under a CGI-like context, where HTTP_PROXY becomes a real or emulated environment variable
  • An HTTP client that trusts HTTP_PROXY, and configures it as the proxy
  • That client, used within a request handler, making an HTTP (as opposed to HTTPS) request

And, of course, another defense-in-depth strategy that works is to use HTTPS for internal requests, not just for securing your site’s connections to the outside world. Those aren’t affected by HTTP_PROXY.

    
risposta data 19.07.2016 - 10:24
fonte
1

TLS è una crittografia end-to-end che significa che il traffico tra il client e il server è crittografato e non può essere accessibile da qualcuno che esegue un attacco MitM, ad esempio. Questo non protegge il tuo server in alcun modo protegge solo i dati che vengono trasmessi. Quindi sì può essere sfruttato tramite http aswell as https .

    
risposta data 19.07.2016 - 09:57
fonte

Leggi altre domande sui tag