Hacking, Ataques y Seguridad

¿Que seguridad tenemos en una Web?

Nos encargan un trabajo de análisis de vulnerabilidades básico para una web XXX (que puede ser: una tienda virtual, un blog, una pagina oficial publica, privada, web social, …)

¿Que Mecanismos o Técnicas de Hacking puedo utilizar sobre la web para extraer una primera idea de la seguridad del sistema?

Estos son los principales mecanismos de ataque que pueden ejecutar sobre nuestra web.

1) Ataque DoS – consiste en un ataque por denegación de servicio. Un exceso de peticiones y/o carga deja sin servicio a usuarios legítimos de la web. Nuestra labor es crear un pequeño código que abra en un bucle 1000/5000/10000 conexiones socket a la maquina y puerto donde esta activo el servicio web.

Pueden ocurrir 3 cosas: El servidor web o aplicación firewall detecta el ataque identificando un numero elevado de peticiones desde una misma IP publica. A partir de ese momento, estas peticiones son rechazadas temporalmente para evitar colapsar el sistema.

Si el ataque se realizada de forma distribuida (desde muchos puntos de Internet a la vez) este mecanismo de seguridad perdería efectividad ya que no podrían identificarse las peticiones provenientes de una misma IP publica.

Si no existe ninguna detección del ataque y es lo suficientemente fuerte. Colapsar el servicio web, base de datos, recursos de la maquina servidor.

2) Inyección SQL – consiste en insertar código SQL dentro de un campo de formulario con la intención de que el valor llegue dentro a la sentencia SQL sobre la base de datos. Cuando nos validamos en la web se nos solicita un nombre y un password.

La aplicación web una vez recogidos esos datos forma una sentencia SQL que podría ser algo similar a esto:“SELECT * FROM usuarios WHERE usuario = ‘” + Usuario + “‘ and password =’“+ Pass + “;” Pero si introducimos en el campo de entrada este código SQL (” noPass or ‘entrar’=’entrar’ “) generaria la siguiente sentencia SQL: SELECT * FROM usuarios WHERE usuario = Usuario and password = noPass or ‘entrar’=’entrar’ ; Accediendo a la aplicación de forma ilegitima, es necesario validar a nivel de aplicación la entrada de datos y campos a lo largo de toda la aplicación, no solo para la entrada de formulario.

3) Fuerza Bruta – ataques por diccionario, pueden conseguir el revelado de algunas claves de usuarios o acceso. Normalmente usamos claves que podamos recordar.

4) Nivel de Aplicación – ataques a bugs a nivel de aplicación, interesante analizar el pase de parámetros por URL y si esto puede poder realizar operaciones no permitidas a un usuario. De forma ideal, debería existir un control del flujo de operaciones por usuario/sesión en la aplicación, esto en la practica solo se implementa en proyectos web grandes.

Desconozco si proyectos opensource para tiendas online tienen este tipo de control sobre el flujo de operaciones. Analizando estas técnicas podemos hacernos una idea de la seguridad que tenemos en la web tanto a nivel de sistema/servicio como a nivel de aplicación.

 

Deja un comentario