Ataque
Descripción
Amenaza
Mitigaciones
Filtración de Datos
Sensibles
El fallo más común es no encriptar
los datos sensibles o encriptarlos
incorrectamente usando claves
débiles, gestión de claves pobre o
algoritmos débiles.
Compromiso de todos los
datos desprotegidos.
No almacenar datos sensibles
indiscriminadamente. Encriptar todos los
datos sensibles almacenados y enviados.
Utilizar algoritmos estándar y claves
fuertes. Las contraseñas deben
almacenarse utilizando algoritmos
diseñados específicamente para
proteger contraseñas, (bcrypt, PBKDF2,
scrypt). Deshabilitar la opción caché y de
autocomplete, en páginas y formularios
con información sensible
Falta de Protección
contra Ataques
Las aplicaciones y APIs son atacadas
todo el tiempo, generalmente
detectan los inputs inválidos pero
solo los rechazan: permitiendo que
los atacantes prueben una y otra
vez.
La mayoría de los ataques
comienzan con un sondeo
de vulnerabilidades.
Permitir este tipo de
pruebas incrementa las
probabilidades de un
ataque exitoso, ayuda a los
atacantes.
Medidas de detección y respuesta a
ataques. Proceso de aplicación de
parches críticos (o virtuales).
CSRF: Cross Site
Request Forgery
Aprovechando el hecho de que los
navegadores envían las cookies de
sesión automáticamente, un
atacante puede generar un link que
solicite una acción sobre la
aplicación.
Los usuarios pueden ser
engañados para ejecutar
acciones no deseadas en la
aplicación, como cambios
de información,
modificaciones de cuentas
o compras.
Utilizar tokens únicos para confirmar la
validez de una acción. Como medida
adicional se puede usar el flag
“SameSite=strict” sobre todas las
cookies.
Componente con
Vulnerabilidades
Conocidas
Ocurren cuando no hay
aseguramiento de que se usen
componentes y librerías
actualizadas. O cuando hay
dependencias desconocidas entre
componentes.
Puede facilitar todo tipo de
ataques: de inyección, XSS,
controles de acceso rotos,
etc. Puede resultar en
compromiso total del host y
robo de datos.
Inventariar continuamente las versiones
de los componentes utilizados.
Monitorear bases de datos de
vulnerabilidades en busca de los
componentes utilizados. Analizar
componentes instalados y evaluar si son
necesarios. Aplicar actualizaciones y
parches de seguridad provistos por el
fabricante del componente.
API Desprotegida
Muchas aplicaciones modernas se
conectan a APIs en el backend,
(XML, JSON, RPC o customizadas)
que son susceptibles a todo tipo de
ataques. Este tipo de
vulnerabilidades, generalmente
requiere revisiones manuales y
suele permanecer sin ser
detectado.
Todo tipo de ataques: robo,
corrupción e incluso
modificación de datos.
Acceso no autorizado a
funciones de la aplicación.
Puede resultar en
compromiso total del
equipo.
Asegurar las comunicaciones entre
cliente de la aplicación y la API. Esquema
de autenticación fuerte. Parser de datos
Hardenizado contra ataques. Esquemas
de control de accesos. Protección contra
ataques de inyección.
Este capítulo se publica bajo la licencia Creative Commons Attribution-ShareAlike 4.0. Autor original: Owasp Foundation
IF-2021-76718462-APN-DNCIB#JGM
Página 22 de 35
Select target paragraph3
Connect to a paragraph
Connect to an entity
Disable highlights
Add to table of contents