Le richieste senza intestazione UserAgent sono un rischio?

3

Un servizio che uso ha deciso di bloccare le richieste HTTP che non forniscono un agente utente, citando ragioni di sicurezza.

Per quanto ne so, UserAgent è una stringa senza un formato standard utilizzato principalmente per le statistiche, che serve diverse versioni di pagina (es. mobile) e bot di blocco. La RFC dice che DOVREBBE (ma non DEVE) essere inviato.

Perché Shellshock funziona nella stringa useragent? suggerisce che un malintenzionato È possibile creare UserAgent, ma il servizio sta bloccando le richieste senza un UserAgent.

Esiste una vulnerabilità attorno alle intestazioni UserAgent assenti di cui non sono a conoscenza?

    
posta Hwesta 30.07.2016 - 00:59
fonte

1 risposta

6

Non proprio, la tua comprensione sembra essere corretta. Praticamente ogni browser web (e la maggior parte degli altri client HTTP) invierà una stringa user-agent, quindi probabilmente tutte le richieste che arrivano senza di esse sono piuttosto approssimative. D'altra parte, non costa praticamente nulla da inviare (ad esempio, con curl , usa l'argomento -A) e non è garantito che abbia qualcosa a che fare con la verità. La maggior parte dei client, inclusi i browser, ti permettono di spoofare la stringa UA come qualsiasi cosa tu (l'utente) desideri che sia.

Naturalmente, se si dice al server che si è in IE 5 in esecuzione su Windows CE, è possibile che venga restituito un codice HTML / JS veramente schifoso: molti server Web utilizzano stringhe UA per inviare versioni diverse di pagine Web in base al server. le funzionalità previste del browser che effettua la richiesta, ma questo è il tuo problema, non il problema del server. Lo stesso vale per l'invio di nessuna stringa UA a tutti.

Dal punto di vista della sicurezza, potresti mettere un pasticcio in modo aggressivo bloccando le richieste senza UA o con un UA non affidabile, ma tutto ciò che un utente malintenzionato deve fare è solo spoofare l'UA di, per esempio, l'attuale versione di Chrome (che è facile da trovare e facile da usare). Non è altro che un dosso di velocità. Non la chiamerei nemmeno difesa in profondità, dato che è così banale da bypassare.

Penso che il tuo fornitore di servizi non stia davvero sfruttando la sicurezza, e sta cadendo per quello che definisco l'errore "nessun utente legittimo" (da non confondere con "nessun vero scozzese"). Va così: "OK, quindi c'è una minaccia alla sicurezza se l'utente [fa X]? Beh, nessun utente legittimo lo farebbe, quindi siamo al sicuro." In questo caso [sembra che X] sia "falsa la stringa UA del loro cliente". Molte persone semplicemente non capiscono che un utente malintenzionato può, e lo farà, impersonare un utente legittimo abbastanza bene da non poter dire in modo affidabile la differenza finché non è stato sfruttato.

Bene, o semplicemente non si rendono conto che la stringa UA è praticamente inutile e banalmente modificabile.

    
risposta data 30.07.2016 - 01:19
fonte

Leggi altre domande sui tag