Danneggiamento di un ETag trapelato

1

Ho letto più volte che gli ETG trapelati dai server Web sono considerati una vulnerabilità legata alla perdita di informazioni.

Ad esempio nelle intestazioni di risposta del server:

ETag: X/"1234-56789"

Ma non ho trovato una ragione per cui questo è un problema o come questo possa essere abusato.

Ovviamente qualsiasi informazione aggiuntiva non richiesta per il corretto funzionamento dell'applicazione dovrebbe essere cancellata, ma qual è il danno che un ETag trapelato (quindi inode) può fare?

Modifica: Rapid7 per esempio vedi questo come con una severità di quattro .

    
posta Breakfast Serial 25.05.2018 - 07:28
fonte

1 risposta

6

L'intestazione ETag viene utilizzata per il caching efficace delle risorse lato server da parte del client. Il server invia un'intestazione ETag nella risposta HTTP a una stringa e il client memorizza nella cache il contenuto della risposta e associa la stringa fornita nell'intestazione ETag con essa. Se il cliente desidera accedere nuovamente alla stessa risorsa, invierà la stringa specificata entro un'intestazione If-None-Match nella richiesta HTTP e il server restituirà l'intero contenuto solo se la risorsa è stata modificata e in caso contrario comunica al client che il contenuto della cache è stato modificato può essere utilizzato. Vedi Wikipedia per ulteriori dettagli.

Questo significa che ogni cliente può ottenere un'intestazione ETag dal server, cioè il valore dell'intestazione non è segreto. Pertanto, contrariamente alla tua domanda, la perdita di tale intestazione non è il problema.

Il problema è invece se il valore dell'intestazione (cioè la stringa) fornisce informazioni sul server che dovrebbe rimanere segreto. Spesso il valore dell'intestazione è solo un hash sul contenuto della risorsa che non è affatto un problema. Ad esempio, il server Web Apache può basare ETag sul numero di inode, sull'ultima modifica e / o sulla dimensione del file. Usando queste meta informazioni è possibile creare un ETag unico molto più veloce rispetto al calcolo dell'hash del contenuto. Solo, almeno il numero di inode è considerato informazione interna al server e non deve essere esposto al client. Sebbene non sia utilizzabile negli attacchi, è possibile utilizzare direttamente la conoscenza di molti numeri di inode per ottenere, ad esempio, informazioni sul file system sottostante che potrebbero aiutare in ulteriori attacchi contro il server.

Questo significa che il numero di inode non dovrebbe essere estraibile dall'intestazione ETag perché dovrebbe rimanere segreto. Questo problema è stato risolto con Apache 1.3.27 (molto tempo fa), ovvero il numero di inode è ancora utilizzato per calcolare ETag ma in modo che non possa essere estratto dal valore ETag .

Edit: Rapid7 for example see's this as with a severity of four.

Il punteggio CVSS è calcolato da più parti. I dettagli per questo problema specifico può essere visto qui ma sostanzialmente si riduce a quello che è banale da usare, può essere fatto attraverso la rete, non ha bisogno di autenticazione e fornisce alcune informazioni interne sul server.

    
risposta data 25.05.2018 - 08:01
fonte

Leggi altre domande sui tag