2010-05-08 10 views
6

Me gustaría preguntarle a los proactivos (o paranoicos) entre nosotros: ¿Qué está buscando y cómo?Detección de comportamiento sospechoso en una aplicación web: ¿qué buscar?

Estoy pensando principalmente en cosas que pueden observarse programáticamente, en lugar de inspeccionar registros manualmente.

Por ejemplo:

  • Manual/automático intentos de hackers.
  • Data skimming.
  • Registros de bot (que han evadido captcha, etc.).
  • Otro comportamiento no deseado.

Solo me pregunto qué es lo que mucha gente consideraría práctico y efectivo.

Las cosas preventivas (como el saneamiento de la entrada del usuario) son por supuesto cruciales, pero en el caso de esta pregunta estoy más interesado en detectar una amenaza potencial. En este caso, estoy interesado en la alarma antirrobo, en lugar de los bloqueos.

Un ejemplo del tipo de cosas de las que hablo existe aquí en SO. Si realiza demasiadas modificaciones a una pregunta en un corto período de tiempo, aparece un captcha para asegurarse de que no es un bot.

Respuesta

3

tres puntos para usted:

  1. Desinfección de entrada del usuario
  2. Esterilizar la entrada del usuario
  3. Esterilizar la entrada del usuario

Recuerde que, y recordar que buena.

+1

Repetición cría refuerzo ... repetición cría refuerzo ... repetición cría refuerzo ... (+1) –

+0

Mire, esa es una de las cosas más comunes, destructivas y fáciles de olvidar. – LukeN

+0

Sí :) +1, pero suponiendo que creemos que hemos hecho todo lo que humanamente podemos con respecto a los comentarios de los usuarios, ¿qué harías para asegurarte de que te avisaron rápidamente de un problema? – UpTheCreek

1

Una aplicación que busca solicitudes HTTP maliciosas antes de llegar a la aplicación web se llama Web Application Firewall. La mayoría de los WAF pueden configurarse para enviar correos electrónicos cuando se detectan ataques, por lo tanto, usted tiene una "Alarma antirrobo". Los WAF son más útiles para prevenir ataques antes de que lleguen a su aplicación web, que es más como una pared de ladrillo que se enoja cuando la toca.

+0

Gracias, pero me refiero más bien a la detección de un comportamiento inusual en la aplicación (que podría considerarse una solicitud perfectamente legítima por parte del firewall). (Por ejemplo, la mayoría de los firewalls normalmente no podrán ayudar a detectar la actividad de bot) – UpTheCreek

+0

@Shh depende de manera diferente del tipo de bot. Un WAF causará serios problemas para los escáneres de vulnerabilidad como este: http://www.acunetix.com/ – rook

2

Puede ver anomalías estadísticas. Por ejemplo, mantenga un promedio continuo del porcentaje de inicios de sesión fallidos por cada hora durante el último día. Si ese porcentaje se vuelve repentinamente, por ejemplo, tres veces más grande, es posible que esté viendo un intento de descifrar la contraseña.

No hay forma de saber de antemano cuáles serían los parámetros correctos para dicho algoritmo. Yo diría que comienzas haciéndolos demasiado sensibles, luego afínalos hasta que la cantidad de falsos positivos sea aceptable.

+0

Buena idea ..... +1 – UpTheCreek

0

La mejor manera de saber si va a ver problemas con su aplicación es ser proactivo para identificar los problemas usted mismo. Primero comience con un modelo de amenaza. Los modelos de amenazas son fundamentales para encontrar los problemas potenciales antes que los atacantes.

Estos son los pasos que haría para conseguir una comprensión del panorama de las amenazas de aplicación: - En primer lugar identificar todos los procesos de la aplicación (es decir, la autenticación, el procesamiento de transacciones, etc.) - En segundo lugar, el flujo de datos el más alto y la mayoría de los procesos críticos.Para mí, los diagramas de flujo de datos son la mayor ayuda para ver visualmente de dónde vendrían los posibles ataques. - En tercer lugar, analiza tus procesos. Para esto, recomiendo una herramienta como la herramienta Threat Modeling de Microsoft. Es bueno forzarlo a mirar todos los posibles vectores de ataque. - Cuarto, armar un plan para arreglar lo que encuentre.

Este proceso es increíblemente útil ya que quienes desarrollan las aplicaciones saben cómo encontrar los defectos mejor que los atacantes.

Cuestiones relacionadas