“Año del Diálogo y Reconciliación Nacional”
CURSO
: Ingeniería Web
ALUMNOS
: Arana Rodríguez Fredy Martín Caldas Domínguez Elson Barraza Canchán Ingelshin Miguel Agüero Billy
ESCUELA
: Ingeniería de Sistemas
2018
Vulnerabilidad Web De acuerdo al informe anual presentado por Acunetix, pionero en software de automatización de seguridad de aplicaciones web, nos muestra que el 55% de los sitios web presenta problemas de vulnerabilidades graves y con tendencia al aumento, Acunetix anuncia en su informe anual (Web App Seguridad 2016). Las vulnerabilidades web están en aumento y se presentan en la mayoría de páginas web en todo el mundo. Las vulnerabilidades han aumentado en un 9% en el último año debido principalmente a que las empresas exigen ciclos de lanzamiento de aplicaciones de manera más rápida. Principales Vulnerabilidades Web Inyección Las fallas de inyección se dan cuando datos no fiables del usuario son enviados hacia la aplicación web como parte de un comando o consulta. Los datos hostiles del atacante pueden engañar a la aplicación web, para ejecutar comandos indeseables o acceder de manera no autorizada hacia los datos. La inyección ocurre cuando un atacante alimenta entradas maliciosas dentro de la aplicación web, para luego actuar de una manera insegura. Este es uno de los ataques más antiguos contra las aplicaciones web, pero sigue siendo el rey de las vulnerabilidades porque es ampliamente difundida y muy dañina. Las vulnerabilidades de inyección pueden surgir en todo tipo de lugares dentro de una aplicación web, los cuales permitan al usuario proporcionan entradas maliciosas. Algunos de los tipos más comunes para ataques de inyección, tienen como objetivo las siguientes funcionalidades. Consultas SQL (Structured Query Language) Consultas LDAP (Lightweight Directory Access Protocol) Consultas de lenguaje de ruta XML (XPATH) Comandos OS (Sistema Operativo) Cuando la entrada del usuario es aceptada por la aplicación web, y procesada sin la limpieza apropiada ocurrirá la inyección. Esto significa el atacante puede influir en como las consultas y comandos de la aplicación web son construidas, y los datos a ser incluidos en los resultados. Este es un tipo de explotación muy poderoso.
Cross Site Scripting (XSS) Cross Site Scripting (XSS) ocurre cuando la entrada del usuario es aceptada por la aplicación como parte de una petición, y luego es utilizada en la salida de una respuesta sin la codificación de salida implementada para validación y limpieza. XSS permite a los atacantes ejecutar scripts en el navegador de la víctima, lo cual puede secuestrar sesiones, actuar como un capturador de teclado, redireccionar al usuario hacia sitios maliciosos, o cualquier cosa requerida por el atacante. Un atacante puede inyectar un script malicioso; frecuentemente JavaScript, pero también podría ser VBScript; el cual es interpretado en el navegador de la víctima. Debido al script es parte de la respuesta desde la aplicación web, el navegador de la víctima confía en esta y permite su ejecución. Cross Site Scriping tiene dos categorías principales; reflejado y almacenado. Un XSS reflejado es más difundido en las aplicaciones web y es considerado menos dañino. La razón por la cual es considerado así no es por su capacidad de acción, sino por ser un ataque de un instante o momento, donde el payload enviado en un ataque XSS reflejado es únicamente válido en una petición. Cuando el usuario hace clic, el enlace conteniendo el script malicioso será abierto únicamente por la persona afectada por este ataque. Es generalmente una proporción de 1:1 entre el atacante y la víctima. El atacante puede enviar la misma URL maliciosa hacia millones de víctimas potenciales, pero únicamente aquellos haciendo clic en el enlace serán afectados, no existe una conexión entre los usuarios comprometidos. Gestión Inadecuada de la Autenticación y Sesión Las sesiones son los únicos identificadores asignados a los usuarios después de autenticarse, y tienen muchas vulnerabilidades o ataques asociados con estos como identificadores son utilizados por la aplicación web. Las sesiones son también un componente clave del hacking al usuario web. Las funciones de la aplicación web relacionadas a la gestión de la autenticación y sesión, no son frecuentemente implementadas de manera correcta, permitiendo a los atacantes comprometer contraseñas, claves, tokes de sesión, o explotar otras fallas en la implementación para asumir la identidad de otros usuarios. Funcionalidades de la aplicación web los cuales también abarca la autenticación es el reajuste de la contraseña, cambio de contraseña, y recuperación de la cuenta, por nombrar algunas. Cross Site Request Forgery Un CSRF ocurre cuando un atacante es capaz de enviar una petición maliciosa bien creada hacia un usuario autenticado, el cual incluye los parámetros (variables) necesarios para completar una petición válida a la aplicación web, sin el conocimiento de la víctima (usuario).
Esto es similar a un XSS reflejado, en la cual un atacante debe inducir a la víctima a realizar alguna acción en la aplicación web. Un script malicioso podría ser ejecutado en el navegador de la víctima, pero un CSRF puede también realizar una petición válida hacia la aplicación web. Algunos resultados de CSRF son cambiar una contraseña, crear un nuevo usuario, crear contenido en la aplicación web mediante un CMS. El atacante conoce exactamente cuales parámetros son necesarios para completar una petición, y la victima está autenticada en la aplicación, la petición se ejecutará como si el usuario lo hubiese hecho conscientemente. ¿Por qué puede ser peligrosa? Los riesgos que plantea la explotación de CSRF incluyen distintos tipos de actividades ilícitas e indeseadas. Desde el acceso a cuentas privadas de usuarios, pasando por acusar a alguien de acceder a sitios de contenido pedófilo e inclusive, hasta habilitar algún tipo de filtro o regla en el correo electrónico para que todos los correos se reenvíen a otra cuenta. Como vemos la explotación de esto puede conllevar a graves consecuencias.
Inadecuada Configuración de Seguridad Esta categoría de vulnerabilidad específicamente trata con la seguridad (o ausencia de ella) de la pila completa para la aplicación web. Para aquellos no familiarizados con el término “pila”, esto se refiere al sistema operativo, servidor web, y sistemas gestores de bases de datos, los cuales ejecutan y son accedidas por el código de la aplicación web. Este riesgo es incluso más problemático cuando las prácticas para el fortalecimiento de la seguridad no son seguidas de la mejor manera para proteger el servidor web desde un acceso no autorizado. Entre las vulnerabilidades plagando un servidor web se incluyen: Software innecesario o desactualizado Servicios habilitados innecesarios Políticas inseguras de cuentas Mensajes de error con verbosidad Una seguridad efectiva requiere tener definida una configuración segura, y desplegarla para la aplicación, frameworks, servidor de aplicación, servidor web, servidor de base de datos, y sistema operativo. Todas estas configuraciones deben ser definidas, implementadas, y mantenidas, pues muchas no son entregadas por defecto con seguridad. Esto incluye mantener todo el software actualizado, incluyendo librerías de código utilizados por la aplicación.