Ejemplo de vulnerabilidades en aplicaciones web

Ejemplo de vulnerabilidades en aplicaciones web


Tu sitio web puede ser blanco fácil de hackers, extorsionadores y otras alimañas de la red que usan las vulnerabilidades de tu página como puntos de entrada.  Entre los daños que puedes sufrir es  el robo de información de usuarios (desacreditando además tu marca u organización), pérdidas financieras, convertir tu sitio en un punto de descarga de programas maliciosos o dejarte fuera de línea. De acuerdo al objetivo de tu web ya sea un portal empresarial o una página de entretenimiento  debes evaluar los riesgos e identificar los puntos vulnerables de tu proyecto.


El Open Web Application Security Project nos muestra los 10 tipos de vulnerabilidades más comunes y te comparto algunas soluciones:


  1. *    Inyección – Ocurre cuando a nuestro sistema entra información no confiable a través de formularios o comandos que son interpretados por queries en nuestra base de datos. Puede resultar en robo o pérdida de nuestra información.Solución: Validar y limpiar todo lo que el usuario ingrese a nuestro sistema antes de realizar cualquier proceso además de usar Prepared statements y stored procedures.
  2. *    Secuencias de comandos en sitios cruzados (Cross-site scripting, XSS). Esta falla permite desplegar en el navegador datos no confiables proporcionados por usuarios, generalmente inyectando código javascript malicioso.  Estos datos pueden secuestrar tu sitio web, permitiendo que tus usuarios sean redireccionados a sitios maliciosos o descarguen malware.Solución: Validar y escapar cualquier dato a ser impreso en tu sitio, trata siempre de usar herramientas de templates los cuales te permitan optimizar este proceso (Freemarker o Smarty).
  3. *    Autenticación rota. Se presenta cuando es posible suplantar la identidad del usuario al obtener acceso a datos como contraseñas o identificadores. Un ejemplo es poder modificar el id de la sesión en la cookie y obtener así acceso como un administrador o cambiar el perfil de acceso.Solución: Verificar los procesos de autenticación, usar mecanismos y librerías ya existentes. No guardar información sobre permisos o identidad en cookies.
  4. *    Solicitudes falsificadas en sitios cruzados. El atacante engaña a la victima a enviar solicitudes HTTP que no desea lo que permite al atacante ejecutar operaciones que el usuario no desea.Solución: Controlar el flujo de los procesos usnados tokens únicos por sesión y por solicitud
  5. *    Referencias directas e inseguras a objetos. Exponer  referencias a objetos de implementación interna como archivos, directorios y base de dato por lo que pueden ser manipulados. Por ejemplo si usamos un script de descarga que recibe como parámetro el nombre del archivo, puede ser usado para enviar al atacante nuestro documento de configuración con la clave de nuestra Base de Datos.Solución: Usar siempre controles de acceso y no ofrecer datos sobre la implementación interna.
  6. *    Configuración errónea de seguridad. Un parámetro mal especificado puede permitir el acceso a nuestras aplicaciones.Solución: Definir todos los elementos de seguridad y no usar atributos por defecto (por ejemplo el usuario y password root), mantener nuestras aplicaciones, servidores y librerías siempre actualizados.
  7. *    Almacenamiento inseguro: Si un atacante tuviera acceso a nuestra información y esta no se encontrará asegurada, podría acceder a contraseñas y datos de tarjeta de crédito de usuarios y clientes entre otra información sensitiva.Solución: Encriptar información sensible en nuestra base de datos.
  8. *    Fallas al restringir acceso URL. Una página en nuestro sitio que no sea no validada puede permitir el acceso áreas restringidas mediante la manipulación de la URL otorgando permisos administrativos a un atacante. Por ejemplo tener una página admin.php como centro de control y no validar su acceso.Solución: Validar todas las páginas o controladores, usar métodos de autenticación incorporados en el servidor.
  9. *    Insuficiente protección en la capa de transporte. Todo el tráfico en internet puede ser escuchado, y al enviar información sensitiva como contraseñas, números de tarjeta o documentos sin su apropiada autenticación y encriptación, alguien puede tener acceso a esa información.Solución: Usar SSL y TSL y evitar enviar información sensitiva que pueda ser accedida por un escuchante.
  10. *    Forwards y Redirects no validados. El permitir que tu aplicación envié a tus visitantes a otra página o sitio sin validar puede dejarlos caer en sitios de phising o malware.Solución: Valida y lleva un control sobre los links y forwards que aparecen en tu página.




Para asegurar nuestro sitio debemos aceptar que nuestras aplicaciones pueden ser vulnerables. Se debe Verifica cada una de esas vulnerabilidades y crea soluciones y medidas de contención en caso de que tu sitio se vea comprometido. Nunca olvides tener un respaldo.






 Estos son los puntos y soluciones generales. Debes recordar que existen otros ataques y diferentes variantes de los mismos. De igual forma los ataques se manifiestan de diferentes formas dependiendo del lenguaje, la plataorma, el servidor, el sistema operativo, etc.





Comentarios