Come prevenire l'attacco dell'header host in Ubuntu Server 14.04?

1

Se inviamo una richiesta da qualsiasi host come example.com il nostro server restituisce uno stato di risposta HTTP 1.1 200 OK .

In condizioni corrette dovrebbe mostrare lo stato del messaggio di errore 302, 400 o 404 (non trovato risposta). Allo stato attuale mostra 200 messaggi di risposta OK, quando inviano tramite il nostro host come xx.xxx.xx.xx.

Ad esempio, se abbiamo inviato questa richiesta:

GET /web/ HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Connection: close
Upgrade-Insecure-Requests: 1

Otteniamo questa risposta:

HTTP/1.1 200 OK
Date: Thu, 02 Mar 2017 15:23:20 GMT
Server: figi_Server
X-Frame-Options: deny
Strict-Transport-Security: 1
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block

Nota:

  1. OS: Ubuntu 14.04.
  2. Server Web: Apache 2.2.
  3. Macchina virtuale che esegue entrambi.

    
posta cruxster 02.03.2017 - 11:02
fonte

1 risposta

4

In primo luogo, questo non è un attacco contro il tuo server perché non viene fatto alcun danno sul server. E, non è specifico per la versione di Ubuntu Server, ma è specifico per il server web e la sua configurazione, cioè nel tuo caso nginx con configurazione sconosciuta.

Di default il server web non ha idea di quali nomi siano validi per il tuo sistema. È necessario configurare in modo esplicito quali nomi sono validi e cosa deve fare il server se non è stata fornita alcuna intestazione host o se non è stata fornita nessuna delle intestazioni host configurate. Con nginx come usato sul tuo sistema questo significa configurare gli host virtuali per tutti i nomi che vuoi accettare, configurare un server predefinito per rifiutare tutte le richieste a nomi sconosciuti e magari configurare un server simile nel caso in cui desideri trattare specificamente con nomi host vuoti .
Per maggiori dettagli vedi la documentazione di nginx , in particolare la parte relativa a "Come impedire l'elaborazione delle richieste con nomi di server non definiti ".

    
risposta data 02.03.2017 - 11:21
fonte

Leggi altre domande sui tag