Quali codici di stato HTTP sono interessanti dal punto di vista della sicurezza?

23

Sto cercando di estrarre informazioni interessanti dai log del server web e mi chiedo quali codici di stato HTTP devo filtrare?

Ad esempio, 200 hit possono essere considerati come "comportamento normale", mentre un sacco di 404 hit da un certo IP probabilmente significa che qualcuno non ha buone probabilità (scansione automatizzata).

Quindi, quale di questi che vedo maggiormente nei log:

304 - Not Modified
404 - Not found
302 - Found
206 - Partial content
301 - Moved permanently
500 - Internal Server Error
403 - Forbidden
501 - Not implemented
406 - Not acceptable
416 - Requested Range Not Satisfiable
other?

devo filtrare e quali forniscono solitamente informazioni approfondite? Quali sono noti per essere usati dai cattivi per la raccolta di informazioni? Probabilmente il più "interessante" è il 404, ma mi piacerebbe avere più opinioni su questo se qualcun altro ha affrontato questo in passato. Grazie ..

    
posta pootzko 14.07.2011 - 10:35
fonte

2 risposte

21

L'HTTP 200 può essere fantastico per un utente malintenzionato quando richiede gli URI che devono essere protetti tramite autorizzazione ( link ).

Gli attaccanti pagano l'avviso agli HTTP 500: spesso portano a un successo offensivo. L'osservazione di molti HTTP 500 può essere interessante. Se l'app ama reindirizzare (HTTP 302) in caso di errori, allora molti HTTP 302 possono essere interessanti.

Per catturare attività nefande potrebbe essere meglio osservare i cambiamenti numerici (min, max, mediana, media, deviazione standard) di alcuni o tutti i codici di stato HTTP. Osservare 50.000 HTTP 200 in un breve lasso di tempo da un blocco IP può significare che i tuoi database sono sulla strada della fama pubblica. Un sacco di insoliti HTTP 200 può anche significare che un utente malintenzionato ha trovato un modo per inviare con successo richieste malevoli a cui viene risposto con HTTP 200s.

Se hai molto tempo per giocare, puoi modellare l'attività degli utenti "normali" (ad esempio quanti di ciascuno dei codici di stato HTTP vengono generati da un utente normale durante una sessione, ad esempio), quindi cerca le variazioni che attraversano soglie di tolleranza. Cerca gli algoritmi di anomalia e prova quelli che ritieni possano funzionare per identificare attività insolite analizzando solo i codici di stato HTTP. Potrebbe essere divertente ricerca in realtà.

Nota a margine se stai cercando i log di Apache per gli attacchi, controlla il link

Scalp! is a log analyzer for the Apache web server that aims to look for security problems. The main idea is to look through huge log files and extract the possible attacks that have been sent through HTTP/GET (By default, Apache does not log the HTTP/POST variable).

    
risposta data 14.07.2011 - 11:53
fonte
8

È pericoloso respingere una richiesta perché non interessante in base a qualcosa di bassa risoluzione come un codice di risposta. Una risposta di 200 in / admin / da un indirizzo IP sconosciuto è interessante .

Oltre ai codici che hai elencato come interessanti, 400 risposte possono essere interessanti (sono causate da Slowloris per esempio e sono anche causati dagli autori degli attacchi che creano manualmente le richieste HTTP e stanno ottenendo il protocollo sbagliato.)

401 risposte possono essere interessanti in quanto generate dall'autenticazione HTTP (spesso chiamata autenticazione htaccess). Molti di questi possono indicare un attacco di forza bruta.

In effetti, direi che tutto nella gamma 400 è interessante. Un elenco completo dei codici di risposta può essere trovato qui.

Ma ciò che hai chiesto è quali non sono interessanti. Per questo, vorrei suggerire provvisoriamente l'intera gamma 300 con l'avvertenza che qualsiasi cosa insolita è interessante. In pratica, ciò significa che 301, 302 e 304 probabilmente non sono interessanti. 302 risposte sono spesso il risultato di invii di moduli e saranno causati molto dagli spammer di commenti, quindi se consideri questa interessante o meno è una decisione individuale.

La parola chiave insolita è probabilmente più utile qui di qualsiasi elenco di codici di risposta particolari. Questo vale per ogni campo nei log. I metodi di richiesta insoliti come PUT o CONNECT sono molto interessanti, anche se restituiscono uno dei codici di risposta non interessanti.

Una volta trovata una richiesta insolita che merita ulteriori indagini, la prossima cosa che dovresti fare è afferrare ogni richiesta fatta dallo stesso indirizzo IP, anche se normalmente le ignoreresti come non interessanti a causa dei loro codici di risposta.

Una serie di 401 seguiti da un 200 potrebbe indicare che l'hacker ha finalmente indovinato la password e ha ottenuto la pagina di amministrazione. Se ignori le 200 risposte, potresti presumere che si sia trattato di un attacco di forza bruta senza successo.

Dopo aver visto un attacco riuscito come quello precedente, ti interesserebbero gli URL di ogni richiesta con lo stesso indirizzo IP anziché i codici di risposta.

    
risposta data 16.07.2011 - 12:06
fonte

Leggi altre domande sui tag