OWASP Top 10 2017 Riesgos en Seguridad de
Aplicaciones
-
Las fallas de inyección, como SQL, NoSQL, OS o LDAP 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.
-
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, token de sesiones, o
explotar otras fallas de implementación para asumir la identidad de
otros usuarios (temporal o permanentemente).
-
Muchas aplicaciones web y APIs no protegen adecuadamente datos
sensibles, tales como información financiera, de salud o Información
Personalmente Identificable (PII). Los atacantes pueden robar o
modificar estos datos protegidos inadecuadamente para llevar a cabo
fraudes con tarjetas de crédito, robos de identidad u otros delitos.
Los datos sensibles requieren métodos de protección adicionales,
como el cifrado en almacenamiento y tránsito
-
Muchos procesadores XML antiguos o mal configurados evalúan
referencias a entidades externas en documentos XML. 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).
-
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, cuentas de otros usuarios, ver archivos sensibles,
modificar datos, cambiar derechos de acceso y permisos, etc.
-
La configuración de seguridad incorrecta es un problema muy
común y se debe en parte a establecer la configuración de forma manual,
ad hoc o por omisión (o directamente por la falta de configuración).
Son ejemplos: S3 buckets abiertos, cabeceras HTTP mal configuradas,
mensajes de error con contenido sensible, falta de parches y
actualizaciones, marcos de trabajo, dependencias y componentes
desactualizados, etc.
-
Los XSS ocurren cuando una aplicación toma datos no
confiables y los envía al navegador web sin una validación y codificación
apropiada; o actualiza una página web existente con datos
suministrados por el usuario utilizando una API que ejecuta JavaScript
en el navegador. Permiten ejecutar comandos en el navegador de la víctima
y el atacante puede secuestrar una sesión, modificar los
sitios web, o redireccionar al usuario hacia un sitio malicioso.
-
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. En el peor de los casos, la
deserialización insegura puede conducir a la ejecución remota de
código en el servidor.
-
Los componentes como bibliotecas, marcos de trabajo y otros
módulos se ejecutan con los mismos privilegios que la aplicación.
Si se explota un componente vulnerable, el ataque puede provocar
una pérdida de datos o tomar el control del servidor. Las aplicaciones
y API que utilizan componentes con vulnerabilidades conocidas pueden
debilitar las defensas de las aplicaciones y permitir diversos
ataques e impactos.
-
El registro y monitoreo insuficiente, junto a la 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. Los estudios muestran que el tiempo de detección de una
brecha de seguridad es mayor a 200 días, siendo típicamente detectado
por terceros en lugar de por procesos internos
|