Conoce los tipos de vulnerabilidades más comunes en aplicaciones y las prácticas básicas más recomendadas para evitarlas.
Objetivo de esta presentación es lograr aumentar los niveles de concientización en los equipos de desarrollo y líderes de proyecto sobre las vulnerabilidades que más impacto tienen en las aplicaciones.
2. Lograr aumentar los niveles de concientización en los equipos de desarrollo y líderes
de proyecto sobre las vulnerabilidades que más impacto tienen en las aplicaciones.
Objetivo de esta Tech Talk
3. Es cuando los datos confidenciales están
expuestos a un actor que no está
autorizado para ver esos datos.
Pueden representar más pérdidas de
dinero y problemas para una compañía
que hasta las mismas caídas de un
sistema.
¿Qué es la exposición de
datos confidenciales?
4. Las vulnerabilidades de exposición de
datos confidenciales pueden ocurrir
cuando una aplicación no protege
adecuadamente la información
confidencial para que no sea revelada al
atacante.
¿Por qué ocurre la
exposición de datos
confidenciales?
5. www.teaminternational.com
● Facebook recolectó datos de los usuarios a través de una aplicación que usaba su API y los
vendió a la consultora Cambridge Analytics.
● Expedia comprometió datos de tarjetas de pago de 880 mil clientes debido por baja
encryptación.
● Quora expuso información personal de 100 millones de usuarios cuando detectó el acceso
no autorizado de terceros malintencionados.
● Google+ expuso datos de los perfiles de más de 500 mil usuarios a través de su API.
● Log4j es una librería que permite que los atacantes ejecuten código malicioso en los
sistemas afectados.
Las brechas de seguridad y casos de exposición de
datos más importantes
6. El Secure SDLC es un
modelo de procesos utilizado
para el desarrollo de
aplicaciones seguras,
complementando el ciclo de
vida de desarrollo tradicional
desde un punto de vista de
seguridad.
Secure Software
Development
LifeCycle (S-SDLC)
7. www.teaminternational.com
¿Qué es OWASP?
OWASP Top 10 es una guía estándar de la industria que enumera los riesgos de
seguridad de aplicaciones más críticos para ayudar a los desarrolladores a
proteger mejor las aplicaciones que diseñan e implementan.
9. Hardcoded credentials es
un tipo de vulnerabilidad
que ocurre cuando una
aplicación tiene
credenciales (contraseñas,
llaves, secretos) expuestas
en el código fuente o
comentarios.
1.Hardcoded
credentials
10. www.teaminternational.com
● El código fuente debe estar libre de claves o contraseñas, la aplicación debe
hacer uso de Variables de Entorno o Secrets para almacenar todas las
credenciales que utilice.
● Evitar guardar las credenciales en algún lado o compartirlas con el equipo.
● Se recomienda que si una clave o contraseña fue expuesta en código se
generen nuevas claves.
¿Cómo prevenirlo?
11. Broken Access Control es una
vulnerabilidad que ocurre cuando una
aplicación no valida que el usuario
(autenticado), que está realizando una
acción o accediendo a información,
tenga los permisos necesarios.
2. Broken Access Control
…api/users/817/movements Bingo!
…api/users/192/movements Bingo!
12. www.teaminternational.com
● Realizar los controles de acceso pertinentes. Todas las referencias deben
incluir un control de acceso que asegure que el usuario actual está autorizado
para requerir el objeto.
● Utilización de referencias indirectas por usuario o por sesión. Esto previene a
los atacantes acceder directamente a recursos no autorizados. Por ejemplo
almacenar en una Key-Value DB una asociación: Identificador temporal
random (uuid/guid) -> id real.
¿Cómo prevenirlo?
13. Information disclosure es un tipo de
vulnerabilidad que ocurre cuando una
aplicación revela (involuntariamente)
información confidencial.
3. Information disclosure
14. www.teaminternational.com
● Asegúrese de que todos los involucrados en la producción del sitio web sean
plenamente conscientes de qué información se considera confidencial. A veces, la
información aparentemente inofensiva puede ser mucho más útil para un atacante de
lo que la gente cree.
● Evitar colocar información sensible en lugares compartidos o fácilmente accesible (ej.
repositorios públicos, google docs, código o comentarios JavaScript).
● Utilizar políticas de contraseñas fuertes y encriptadas.
● Verificar que todas las funciones de depuración o diagnóstico estén deshabilitadas en
el entorno de producción.
¿Cómo prevenirlo?
15. Business logic abuse es un tipo de
vulnerabilidad que ocurre cuando un
atacante genera un comportamiento
no deseado (malicioso) en aplicación
debido a fallas en su diseño o
implementación. Estas fallas suceden
por no anticipar flujos inusuales en el
uso de la aplicación.
4. Business Logic Abuse
16. www.teaminternational.com
● Los desarrolladores deben entender cómo funciona la aplicación y el negocio.
● No se debe suponer sobre el comportamiento del usuario en la aplicación. No
se debe confiar en los datos de entrada del usuario. Se debe usar datos de la
sesión.
● Los desarrolladores deben escribir código limpio y la documentación para
todas las transacciones y flujos de trabajo debe ser fácil de entender.
¿Cómo prevenirlo?
17. Vulnerable library es un tipo de
vulnerabilidad que ocurre cuando una
aplicación utiliza bibliotecas (código
fuente o dependencias) de otros
equipos o terceros que se encuentran
desactualizadas y tienen
vulnerabilidades conocidas.
5. Vulnerable Library
18. www.teaminternational.com
● Realizar una revisión completa del proyecto, remover dependencias que no
son necesarias, y mantener actualizadas las que sean requeridas.
● Seguir las recomendaciones de las herramientas de Código Fuente o DevOps
para analizar vulnerabilidades de librerías.
● Solo utilizar componentes externos desde fuentes oficiales.
¿Cómo prevenirlo?