¿Qué códigos de estado HTTP son interesantes desde el punto de vista de la seguridad?

23

Estoy buscando extraer información interesante de los registros del servidor web y me pregunto qué códigos de estado HTTP debo filtrar.

Por ejemplo, se puede considerar que 200 visitas son un "comportamiento regular", mientras que muchas de las 404 visitas de una determinada IP probablemente significa que alguien no está bien (escaneo automático) ...

Entonces, ¿cuál de estos que veo principalmente en los registros:

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?

¿Debo filtrarme y cuáles de ellos suelen dar información detallada? ¿Cuáles se sabe que los malos usan para recopilar información? Probablemente el más "interesante" sea el 404, pero me gustaría obtener más opiniones al respecto si alguien más lo haya tratado en el pasado. Gracias ..

    
pregunta pootzko 14.07.2011 - 10:35
fuente

2 respuestas

21

Los HTTP 200 pueden ser impresionantes para un atacante cuando solicita URI que deben estar protegidos por autorización ( enlace ).

Los atacantes prestan atención a HTTP 500 - a menudo conducen a un éxito ofensivo. Observar muchos HTTP 500 puede ser interesante. Si a la aplicación le gusta redirigir (HTTP 302) ante errores, entonces muchos HTTP 302 pueden ser interesantes.

Para capturar actividades nefastas, puede ser mejor observar cambios numéricos (mín., máx., mediana, media, desviación estándar) de algunos o todos los códigos de estado HTTP. Observar 50,000 HTTP 200 en un corto período de tiempo desde un bloqueo de IP puede significar que sus bases de datos están en camino a la fama pública. Un montón de HTTP 200 inusuales también puede significar que un atacante ha encontrado una manera de enviar solicitudes maliciosas con éxito que se responden con HTTP 200s.

Si tiene mucho tiempo para jugar, podría modelar la actividad de los usuarios "normales" (es decir, cuántos de los códigos de estado HTTP genera un usuario normal durante una sesión, por ejemplo) y luego buscar variaciones que se crucen. Umbrales de tolerancia. Busque algoritmos de anomalía y pruebe los que cree que pueden funcionar para identificar actividades inusuales analizando solo los códigos de estado HTTP. Podría ser divertido investigar en realidad.

En una nota al margen, si está buscando en los registros de Apache en busca de ataques, consulte enlace

  

Cuero cabelludo! es un analizador de registros para el servidor web Apache que tiene como objetivo buscar problemas de seguridad. La idea principal es mirar a través de enormes archivos de registro y extraer los posibles ataques que se han enviado a través de HTTP / GET (de forma predeterminada, Apache no registra la variable HTTP / POST).

    
respondido por el Tate Hansen 14.07.2011 - 11:53
fuente
8

Es peligroso descartar una solicitud por no ser interesante en función de algo con una resolución tan baja como un código de respuesta. Una respuesta 200 en / admin / desde una dirección IP desconocida es interesante .

Además de los códigos que figuran como interesantes, 400 respuestas pueden ser interesantes (están causadas por Slowloris , por ejemplo) y también son causados por los atacantes que elaboran manualmente las solicitudes HTTP y hacen que el protocolo sea incorrecto.)

Las respuestas

401 pueden ser interesantes ya que se generan mediante la autenticación HTTP (a menudo llamada autenticación htaccess). Muchos de estos pueden indicar un ataque de fuerza bruta.

De hecho, diría que todo en el rango 400 es interesante. Aquí puede encontrar una lista completa de códigos de respuesta.

Pero lo que preguntaste sobre cuáles son no interesantes. Para esto, sugeriría tentativamente el rango completo de 300 con la advertencia de que cualquier cosa inusual es interesante. En la práctica, esto significa que 301, 302 y 304 probablemente no sean interesantes. Las respuestas a 302 son a menudo el resultado de los envíos de formularios y serán provocadas en gran medida por los spammers de comentarios, por lo que considerarlo interesante o no es una decisión individual.

La palabra clave inusual es probablemente más útil aquí que cualquier lista de códigos de respuesta en particular. Esto se aplica a cada campo en los registros. Los métodos de solicitud inusuales como PUT o CONNECT son muy interesantes, incluso si devuelven uno de los códigos de respuesta no interesantes.

Una vez que haya encontrado una solicitud inusual que justifique una investigación adicional, lo siguiente que debe hacer es tomar todas las solicitudes que realizó la misma dirección IP, incluso si normalmente las ignoraría por no ser interesantes debido a sus códigos de respuesta.

Una serie de 401 seguidos por 200 podría indicar que el atacante finalmente adivinó la contraseña correctamente y obtuvo la página de administración. Si ignora las 200 respuestas, podría suponer que fue un ataque de fuerza bruta sin éxito.

Después de ver un ataque exitoso como el anterior, te interesarían las URL de cada solicitud, la misma dirección IP en lugar de los códigos de respuesta.

    
respondido por el Ladadadada 16.07.2011 - 12:06
fuente

Lea otras preguntas en las etiquetas