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:
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.
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).
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.
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
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.
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.
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.
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.
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.
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.
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
Publicar un comentario