¡GoConqr estrena diseño! Cuéntanos qué te parece.

Mapa mental

Riesgos en aplicaciones web

Fabian Marmolejo Español

Mapa mental sobre riesgos en aplicaciones web: inyección, pérdida de autenticación, exposición de datos sensibles y XSS

Mapa mental: Riesgos en aplicaciones web

Contenido del mapa

Riesgos en aplicaciones web

  1. 1. Inyección

    • ocurren cuando se envían datos no confiables a un intérprete, como parte de un comando o consulta. Los datos dañinos del atacante pueden engañar al intérprete para que ejecute comandos involuntarios o acceda a los datos sin la debida autorización.
      • • Vector de ataque: cualquier fuente de datos como: variables de entorno, parámetros, servicios web externos e internos
      • • Debilidades de seguridad: son muy comunes, particularmente en código heredado y en consultas SQL, NoSQL, LDAP, XPath
      • • Vulnerabilidad:  Los datos suministrados por el usuario no son validados por la aplicación.  Se invocan consultas dinámicas o no parametrizadas, sin codificar los parámetros de forma acorde al contexto.  Se utilizan datos dañinos dentro de los parámetros de búsqueda en consultas Object-Relational Mapping (ORM)
      • • Impacto: Una inyección puede causar divulgación, pérdida o corrupción de información, pérdida de auditabilidad, o denegación de acceso.
      • • Como se previene:  Realice validaciones de entradas de datos en el servidor  Utilice LIMIT y otros controles SQL dentro de las consultas  utilizar una API segura, que evite el uso de un intérprete
  2. 2. Pérdida de Autenticación

    • Las funciones de la aplicación relacionadas a autenticación y gestión de sesiones son implementadas incorrectamente, permitiendo a los atacantes comprometer usuarios y contraseñas
      • • Vector de ataque: fugas de información
      • • Debilidades de seguridad: en el diseño y la implementación de la mayoría de los controles de acceso.
      • • Vulnerabilidad:  Permite ataques de fuerza bruta y/o ataques automatizados  Permite contraseñas por defecto, débiles o muy conocidas  Posee procesos débiles o inefectivos en el proceso de recuperación de credenciales  Almacena las contraseñas en texto claro o cifradas con métodos de hashing débiles  No posee autenticación multi-factor
      • • Impacto: esto puedo permitir robo de identidad, lavado de dinero y la divulgación de información sensible protegida legalmente.
      • • Como se previene:  Implemente autenticación multi-factor para evitar ataques  No utilice credenciales por defecto  Implemente controles contra contraseñas débiles  Limite o incremente el tiempo de respuesta de cada intento fallido de inicio de sesión  Alinear la política de longitud, complejidad y rotación de contraseñas con las recomendaciones
  3. 3. Exposición de Datos Sensibles

    • Los atacantes pueden robar o modificar datos sensibles protegidos inadecuadamente para llevar a cabo fraudes con tarjetas de crédito, robos de identidad u otros delitos.
      • • Vector de ataque: robo de datos en tránsito
      • • Debilidades de seguridad: no cifrar los datos sensibles
      • • Vulnerabilidad:  Se utilizan algoritmos criptográficos obsoletos o débiles  Se utilizan claves criptográficas predeterminadas  Se transmite datos en texto claro
      • • Como se previene:  No almacene datos sensibles innecesariamente  Cifre todos los datos sensibles cuando sean almacenados  Cifre todos los datos en tránsito utilizando protocolos seguros como TLS  Deshabilite el almacenamiento en cache de datos sensibles  No cree sus propios algoritmos de cifrado
      • • Impacto: comprometen datos que deberían estar protegidos. Típicamente, esta información incluye Información Personal Sensible
  4. 4. Entidades Externas XML (XXE)

    • Las entidades externas pueden utilizarse para revelar archivos internos mediante la URI o archivos internos en servidores no actualizados, escanear puertos de la LAN, ejecutar código de forma remota y realizar ataques de denegación de servicio (DoS).
      • • Vector de ataque: explotar procesadores XML vulnerables
      • • Debilidades de seguridad: procesadores XML mal configurados y falta de uso de herramientas como SAST
      • • Vulnerabilidad:  La aplicación acepta XML directamente  La aplicación utiliza SOAP en una versión previa a la 1.2  La aplicación utiliza SAML para el procesamiento de identidades, SAML utiliza XML para garantizar la identidad de los usuarios y puede ser vulnerable.
      • • Como se previene:  De ser posible, utilice formatos de datos menos complejos como JSON  Actualice los procesadores y bibliotecas XML que utilice la aplicación o el sistema subyacente  Deshabilite las entidades externas de XML y procesamiento DTD  Implemente validación de entrada positiva en el servidor • Impacto: pueden extraer datos, ejecutar una solicitud remota desde el servidor, escanear sistemas internos, realizar un ataque de denegación de servicio y ejecutar otro tipo de ataques.
  5. 5. Pérdida de Control de Acceso

    • Las restricciones sobre lo que los usuarios autenticados pueden hacer no se aplican correctamente. Los atacantes pueden explotar estos defectos para acceder, de forma no autorizada, a funcionalidades y/o datos
      • • Vector de ataque: La explotación del control de acceso
      • • Debilidades de seguridad: debilidades del control de debido a la falta de detección automática y a la falta de pruebas funcionales efectivas
      • • Vulnerabilidad:  Pasar por alto las comprobaciones de control de acceso modificando la URL  Permitir que la clave primaria se cambie a la de otro usuario, pudiendo ver o editar la cuenta de otra persona  Elevación de privilegios  Forzar la navegación a páginas autenticadas como un usuario no autenticado  La configuración incorrecta de CORS
      • • Como se previene:  Implemente los mecanismos de control de acceso una vez y reutilícelo en toda la aplicación  Registre errores de control de acceso y alerte a los administradores  Con la excepción de los recursos públicos, la política debe ser denegar de forma predeterminada
      • • Impacto: atacantes anónimos actuando como usuarios o administradores; usuarios que utilizan funciones privilegiadas o crean, acceden, actualizan o eliminan cualquier registro.
  6. 6. Configuración de Seguridad Incorrecta

    • configuración de seguridad incorrecta como: S3 buckets abiertos, cabeceras HTTP mal configuradas, mensajes de error con contenido sensible, falta de parches y actualizaciones, frameworks, dependencias y componentes desactualizados, etc.
      • • Vector de ataque: vulnerabilidades sin parchear y directorios desprotegidos
      • • Debilidades de seguridad: Configuraciones incorrectas de seguridad pueden ocurrir en los servicios de red, la plataforma, el servidor web, el servidor de aplicaciones, la base de datos, frameworks, el código personalizado
      • • Vulnerabilidad:  Se encuentran instaladas o habilitadas características innecesarias  Las configuraciones de seguridad en el servidor de aplicaciones no se encuentran especificados con valores seguros  El software se encuentra desactualizado  permisos mal configurados en los servicios de la nube.  El manejo de errores revela a los usuarios trazas de la aplicación u otros mensajes demasiado informativos.
      • • Como se previene:  Use una plataforma minimalista sin funcionalidades  La aplicación debe tener una arquitectura segmentada  Siga un proceso para revisar y actualizar las configuraciones apropiadas de acuerdo a las advertencias de seguridad
      • • Impacto: dan a los atacantes acceso no autorizado a algunos datos o funciones del sistema. Ocasionalmente, estos errores resultan en un completo compromiso del sistema.
  7. 7. Cross-Site Scripting (XSS)

    • Permiten ejecutar comandos en el navegador de la víctima y el atacante puede secuestrar una sesión, modificar (defacement) los sitios web, o redireccionar al usuario hacia un sitio malicioso.
      • • Vector de ataque: herramientas automatizadas que permiten detectar y explotar formas de XSS
      • • Debilidades de seguridad: Las herramientas automatizadas pueden detectar algunos problemas XSS en forma automática, particularmente en tecnologías maduras como PHP, J2EE / JSP, y ASP.NET.
      • • Vulnerabilidad:  la aplicación o API utiliza datos sin validar  la aplicación o API almacena datos proporcionados por el usuario sin validar ni sanear  frameworks en JavaScript, aplicaciones de página única o APIs incluyen datos dinámicamente, controlables por un atacante
      • • Vulnerabilidad:  la aplicación o API utiliza datos sin validar  la aplicación o API almacena datos proporcionados por el usuario sin validar ni sanear  frameworks en JavaScript, aplicaciones de página única o APIs incluyen datos dinámicamente, controlables por un atacante
      • • Impacto: permite ejecutar secuencias de comandos en el navegador de la víctima, para robar credenciales, secuestrar sesiones, o la instalación de software malicioso en el equipo de la víctima.
  8. 8. Deserialización Insegura

    • Estos defectos ocurren cuando una aplicación recibe objetos serializados dañinos y estos objetos pueden ser manipulados o borrados por el atacante para realizar ataques de repetición, inyecciones o elevar sus privilegios de ejecución.
      • • Vector de ataque: explotación de deserialización
      • • Debilidades de seguridad: herramientas pueden descubrir defectos de deserialización, pero con frecuencia se necesita ayuda humana para validarlo
      • • Vulnerabilidad:  Ataques relacionados con la estructura de datos y objetos; donde el atacante modifica la lógica de la aplicación o logra una ejecución remota de código  ataques relacionados con el control de acceso, en los que se utilizan estructuras de datos existentes, pero se modifica su contenido
      • • Como se previene:  Implemente verificaciones de integridad tales como firmas digitales en cualquier objeto serializado  Durante la deserialización y antes de la creación del objeto, exija el cumplimiento estricto de verificaciones de tipo de dato  Aísle el código que realiza la deserialización, de modo que se ejecute en un entorno con los mínimos privilegios posibles  Registre las excepciones y fallas en la deserialización
      • • Impacto: Pueden llevar a la ejecución remota de código, uno de los ataques más serios posibles
  9. 9. Uso de Componentes con Vulnerabilidades Conocidas

    • Las aplicaciones y API que utilizan componentes con vulnerabilidades conocidas pueden debilitar las defensas de las aplicaciones y permitir diversos ataques e impactos.
      • • Vector de ataque: exploits para vulnerabilidades ya conocidas
      • • Debilidades de seguridad: componentes de terceros, puede llevar a que los desarrolladores no entiendan qué componentes se utilizan en la aplicación o API y, mucho menos, mantenerlos actualizados
      • • Vulnerabilidad:  No conoce las versiones de todos los componentes que utiliza  El software es vulnerable, no posee soporte o se encuentra desactualizado  No se parchea o actualiza la plataforma subyacente
      • • Como se previene:  Remover dependencias, funcionalidades, componentes, archivos y documentación innecesaria y no utilizada  Obtener componentes únicamente de orígenes oficiales  Supervisar bibliotecas y componentes que no poseen mantenimiento o no liberan parches de seguridad para sus versiones obsoletas o sin soporte.  Utilizar una herramienta para mantener un inventario de versiones de componentes
      • • Impacto: conllevan impactos menores, algunas de las mayores brechas registradas han sido realizadas explotando vulnerabilidades conocidas en componentes comunes.
  10. 10. Registro y Monitoreo Insuficientes

    • falta de respuesta ante incidentes permiten a los atacantes mantener el ataque en el tiempo, pivotear a otros sistemas y manipular, extraer o destruir datos.
      • • Impacto: conllevan impactos menores, algunas de las mayores brechas registradas han sido realizadas explotando vulnerabilidades conocidas en componentes comunes.
      • • Debilidades de seguridad: no posee suficiente monitoreo
      • • Vulnerabilidad:  Eventos auditables, tales como los inicios de sesión, fallos en el inicio de sesión, y transacciones de alto valor no son registrados.  Advertencias y errores generan registros poco claros, inadecuados o ninguno en absoluto.  Registros en aplicaciones o APIs no son monitoreados para detectar actividades sospechosas.  Los registros son almacenados únicamente de forma local  La aplicación no logra detectar, escalar o alertar sobre ataques en tiempo real
      • • Como se previene:  Asegúrese de que todos los errores de inicio de sesión, de control de acceso y de validación de entradas de datos del lado del servidor se pueden registrar  Asegúrese de que las transacciones de alto impacto tengan una pista de auditoría con controles de integridad  Asegúrese que todas las transacciones de alto valor poseen una traza de auditoría con controles de integridad que permitan detectar su modificación o borrado  Establezca una monitorización y alerta efectivos de tal manera que las actividades sospechosas sean detectadas
      • • Impacto: puede aumentar la probabilidad de una explotación exitosa.

Información

Descripción
Mapa Mental sobre Riesgos en aplicaciones web, creado por Fabian Marmolejo el 25/03/2020.
Visitas
0
Valoración

Más sobre OWASP Top 10

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?