Ataques mas comunes a sitios o aplicaciones web

Tu sitio web no está libre de ser vulnerable a ataques malintencionados. En el mundo todos los días hay incidentes ya sea por que eres el objetivo o por que caíste en un ataque aleatorio automatizado para buscar fallas de seguridad, sin importar que tengas un sitio de e-commerce o un sitio web para una pequeña o mediana empresa, existe el riesgo de un posible ataque.

Según el reporte de violación de datos de verizon el 85% de las fugas están relacionadas con un elemento humano, ya sea por una mala configuración o por que hay un phishing de por medio. Por eso es importante saber a que te enfrentas y cuáles son los ataques más comunes.

Aunque estos en su mayoría son específicos a la tecnología puedes proteger tu sitio para mitigar el riesgo.

DBIR Patterns.png

Patrones para categorizar los incidentes de seguridad y las violaciones de datos que comparten características similares – Verizon

Muchos de los ciberataques presentados el año en el 2020 y 2021 están relacionados con las aplicaciones web de empresas de diferentes sectores y tamaños, dejando perdidas económicas y daños en la reputación, imagen y confianza con sus clientes, además de las sanciones legales.

Ahora vamos a revisar los 5 ataques web más comunes (Basic web application attacks) según las categorías del proyecto OWASP Top 10 (The Open Web Application Security Project) y como puedes mitigar el riesgo.

Probablemente ya haya oído hablar de OWASP y del OWASP Top 10 . Si no es así, he aquí un resumen rápido: OWASP Top 10, lanzado en 2003, enumera los riesgos más críticos en las aplicaciones web. Después de cuatro años desde la última versión (2017), se lanzó una nueva versión en septiembre de 2021. En otro artículo, repasaremos los cambios y actualizaciones del nuevo OWASP Top 10 – 2021 y hablaremos sobre las categorías de riesgos adicionales. También cubriremos cómo las vulnerabilidades de aplicaciones web más explotadas se relacionan con esta nueva lista y qué tipo de protecciones están disponibles para implementar en sus aplicaciones web.

Mapeo de los cambios

Resumen: OWASP Top 10 2021 Draft Edition
Figura 1 – Cambios entre el OWASP Top 10 2017 y 2021

Las empresas deben adoptar este marco y comenzar el proceso de garantizar que sus aplicaciones web minimicen estos riesgos. Usar OWASP Top 10 es quizás el primer paso más efectivo para cambiar la cultura de desarrollo de software dentro de su organización a una que produzca código más seguro.

1. Cross-Site Scripting (XSS)

Es un tipo de vulnerabilidad de los sitios o aplicaciones web que permite que los atacantes inyecten secuencias de comandos maliciosos por medio de comandos en sitios cruzados. Este tipo de ataque aprovecha fallas de seguridad en sitios web y permite a los atacantes implantar scripts maliciosos en un sitio web legítimo para ejecutar un script (payload) en el navegador de un usuario desprevenido que visita dicho sitio y afectarlo, ya sea robando credenciales, redirigiendo al usuario a otro sitio malicioso, o para realizar defacement (cambia la apariencia) en un sitio web. Los atacantes pueden redirigir a otro sitio a los usuarios para robar información mediante phishing o hacer que se descargue algún malware que se ejecute en el sistema del usuario o visitante.

Existen tres tipos de XSS qué permiten que se lleve a cabo este ataque:

1- Reflected Cross-Site Scripting

En un ataque de XSS reflejado el payload suele ser inyectado en un parámetro de la solicitud HTTP, para luego ser procesado por la aplicación web y finalmente desplegado en un punto determinado, sin algún tipo de validación o codificación de los caracteres. Se trata de la variedad de XSS más simple y el script malicioso que busca afectar el navegador de la víctima es fácilmente modificable, probablemente sin que el usuario note el ataque.

Como se puede observar en el siguiente ejemplo, se crea un enlace de apariencia normal sin un parámetro marcado y se observa un vector de ataque delimitado por el control del número de página del sitio.

El punto vulnerable en este caso es un parámetro que no es detectable a simple vista, pero alguna aplicación podría estar utilizando el valor proveniente de la URL para poder utilizarlo en el sitio, y así dar origen a la vulnerabilidad Reflected Cross-Site Scripting.

Imagen 1. Ejemplo de una aplicación web vulnerable a XSS reflejado.

2- Stored Cross-Site Scripting

Esta variante tiene como característica que la aplicación web guarda el valor de entrada en un medio de almacenamiento y persiste el script inofensivo, hasta que el valor es recuperado por la aplicación y utilizado para conformar parte del documento HTML.

Los puntos de entrada más conocidos en los cuales se suele observar esta vulnerabilidad están en los comentarios de sitios web, entradas de blog, nombres de usuario, chats, formularios de contacto, detalle de alguna orden, etc. Y así como existen diversos valores de entrada, un XSS persistente podría llegar de distintos medios. La respuesta del protocolo HTTP es el más común, así como mensajes mediante SMTP, servicios de mensajería instantánea, notificaciones vía socket, por mencionar algunos.

Imagen 2. Ejemplo de XSS almacenado.

3- DOM-based Cross-Site Scripting

El Document Object Model (DOM) es una interfaz de programación para representar la estructura de un documento web y conectarlo con un lenguaje de scripting. En este sentido, el DOM facilita la estructura de documentos como HTML o XML y permite a los programas modificar la estructura, estilo y contenido del documento. En el caso de un ataque de XSS basado en DOM el payload malicioso es ejecutado como resultado de la modificación del entorno DOM en el navegador de la víctima. Esto lleva a que el usuario ejecute código desde el lado del cliente sin saber que lo está haciendo.

A partir de la evolución de muchas librerías de JavaScript es cada vez más común que se implemente el proceso de los datos desde fuentes no confiables (insegura o sin la adecuada codificación de los datos) desde el lado del cliente, usualmente escribiendo estos datos en el DOM del sitio web.

Imagen 3. Ejemplo DOM XSS.
https://www.welivesecurity.com/la-es/2021/09/28/que-es-ataque-xss-cross-site-scripting/

Como protegerse de un ataque XSS:

La prevención de XSS requiere la separación de los datos que no son de confianza del contenido activo del navegador. Esto se puede lograr mediante:

  • El uso de marcos que escapan automáticamente de XSS por diseño. Conozca las limitaciones de la protección XSS de cada marco y maneje adecuadamente los casos de uso que no están cubiertos.
  • Escapar los datos de solicitud HTTP que no son de confianza según el contexto en la salida HTML (cuerpo, atributo, JavaScript, CSS o URL) ayudara a resolver las vulnerabilidades de XSS reflejadas y almacenadas.
  • Habilitar una política de seguridad de contenido (CSP) como un control de mitigación de defensa en profundidad contra XSS. Es efectivo si no existen otras vulnerabilidades que permitirían colocar código malicioso a través de archivos locales incluidos (por ejemplo, sobrescrituras de recorrido de ruta o bibliotecas vulnerables de redes de entrega de contenido permitidas).
    • Evitar la ejecución de scripts insertados en HTML
    • Prevenir la carga de scripts de una fuente desconocida
    • Evitar el uso de funciones inseguras como Eval
    • Restringir el uso del tag HTML object
    • Establecer el atributo de seguridad HttpOnly para reducir el impacto del ataque XSS
    • Validar cualquier dato de entrada bajo una lista blanca de caracteres permitidos
    • Codificar la salida de los datos, al menos para los caracteres especiales (&, <, >, “, ‘), en su respectivo código HTML según el contexto, ya sea JavaScript, CSS, HTML
  • Configura un WAF (web application firewall) que actúa como un filtro que identifica y bloquea cualquier solicitud maliciosa a tu sitio web puede ayudar a mitigar esta vulnerabilidad pero no es 100% que garanticen todos los ataques. Hay muchas opciones el mercado pero toca validar su funcionalidad y si no son fácilmente bypaseables. De igual forma se requiere hacer pruebas de seguridad para validar si los controles o políticas aplicadas son efectivas y de esa manera ir afinándolo, de lo contrario, confiar a ciegas es un error que puede ser aprovechado por un ciber atacante.

Cómo te proteges como usuario:

  • Contar con una solución de seguridad actualizada en tu Pc para que te proteja ante la ejecución de alguna aplicación maliciosa sin tu consentimiento, también puedes instalar un complemento en el navegador para que que bloquee los scripts.
  • Usar navegadores que cuenten con filtros de seguridad para que reaccionen ante alguna redirección sospechosa.

Definición OWASP

PTaaS: es un servicio moderno para encontrar vulnerabilidades y hacer pruebas de penetración (Pentest) y Hacking ético aprovechando la potencia de la nube con la capacidad de realizar pruebas de seguridad bajo demanda, de forma ágil, automatizada y continua. PTaaS reduce la cantidad de especialistas, costos asociados y flexibiliza los horarios para realizar el trabajo, permitiendo programar las pruebas con software basado en la nube que se puede personalizar para adaptarse a las necesidades de cada cliente, monitorear los test programados, generar informes que se pueden ver en tiempo real y programar retest después de realizar los ajustes o remediaciones respectivas. Todo esto con el soporte, acompañamiento, revisión y verificación de nuestro Red Team.

Recibe un Diagnóstico Sin Costo del estado de seguridad de tu aplicación o sitio web dando clic en el siguiente enlace:

<<Quiero el Diagnóstico Gratis>>