Iniezione di agente utente Apache

2

Nel mio file di configurazione di Apache, sto attualmente bloccando agenti utente potenzialmente maliziosi usando la seguente configurazione:

SetEnvIfNoCase User-Agent "^\W" badagent
<Location />
    Deny from env=badagent
</Location>

Ciò negherà tutte le richieste con un agente utente che inizia con qualsiasi cosa tranne a-Z o 0-9. Viene visualizzato un errore Proibito 403.

Vorrei cambiare la mia configurazione per poter fornire un 403 ErrorDocument diverso per diversi motivi di blocco.

Sono consapevole che potrebbe non essere sempre una buona idea comunicare a qualcuno l'esatto motivo di sicurezza per il blocco della richiesta, ma è nel caso in cui un utente legittimo abbia bloccato la richiesta. Voglio che sappiano qual è il problema invece di vedere solo uno standard 403. Se qualcuno sta attaccando il mio sito, molto probabilmente sanno perché la loro richiesta viene bloccata.

Ad esempio:

Request blocked due to malformed user agent.
Request blocked due to disallowed request method.
Request blocked due to hotlinking.

Per fare questo, devo usare le istruzioni If nella mia configurazione:

<If "%{HTTP_USER_AGENT} == '^\W'">
    ErrorDocument 403 "403 Forbidden - Request blocked due to malformed user agent."
    Require all denied
</If>

La mia preoccupazione è che la variabile HTTP_USER_AGENT potrebbe essere utilizzata per l'iniezione di comandi. Ho eseguito commix su un server di test offline con questa configurazione e non ha rilevato nulla, ma voglio essere sicuro.

Ho faticato a trovare documentazione conclusiva su se / come Apache disinfetta le variabili da una richiesta HTTP.

Ho un semplice sito HTML / CSS, nessun PHP o qualcosa del genere. Installazione standard di Apache con varie configurazioni di hardening e moduli non necessari disabilitati.

L'istruzione If utilizzata in precedenza potrebbe essere vulnerabile al comando di iniezione e, in tal caso, come proteggerla?

    
posta Encrypt Powerful 28.03.2017 - 14:10
fonte

1 risposta

1

Stai provando a proteggere la tua applicazione web tramite Apache, ma invece, il modo corretto per proteggere il tuo apache / web-application è quello di assicurarti che agli hacker venga negato l'accesso al livello inferiore del modello OSI . Ad esempio, è possibile utilizzare fail2ban che protegge su OSI di livello 3 (rete) tramite iptables, poiché vieta l'intero indirizzo IP.

ApacheèOSIdilivello7(applicazione).

Quindiinvecediavere

<If"%{HTTP_USER_AGENT} == '^\W'">
    ErrorDocument 403 "403 Forbidden - Request blocked due to malformed user agent."
    Require all denied
</If>

nella tua configurazione, dovresti piuttosto creare un file di registro personalizzato aggiungendo

LogFormat "%a %{User-agent}i" ipagent

E

CustomLog /var/log/apache2/useragent.log ipagent

Procedi con la configurazione di fail2ban come spiegato alla risposta fornita qui link

Adizionalmente per rafforzare ulteriormente il tuo server, assicurati di installare la mod_security di apache con le regole OWASP, per farlo, controlla la mia risposta, fornita qui: Alcuni bot continuano a postare questo sul mio server

    
risposta data 01.11.2017 - 15:06
fonte

Leggi altre domande sui tag