Mind map
Vulnerabilidades del Software

Map content
Vulnerabilidades del Software
Son
- Fallos o debilidades en un sistema
- Causados por
- Complejidad tecnológica
- Falta de actualizaciones
- Errores de Programación
- Falta de validaciones
- Uso de librerías obsoletas y/o inseguras
- Ausencia de pruebas de seguridad
- Error Humano
- Ingeniería social
- Causados por
- Fallos o debilidades en un sistema
Se clasifican
- Sistema
- Fallos existentes en el sistema que ejecuta el Software
- Por ejemplo
- YellowKey, se vulneró la capa de encripción de discos BitLocker de Windows 11
- Por ejemplo
- Fallos existentes en el sistema que ejecuta el Software
- Red
- Fallos existentes en la red donde se ejecuta el software
- Por ejemplo
- Usar el protocolo de encripción WEP para un Access Point
- Por ejemplo
- Fallos existentes en la red donde se ejecuta el software
- Software
- Fallos que se presentan en el mismo software los cuales pueden ser aprovechados por un atacante
- Por ejemplo
- No atrapar excepciones y permitir que se vean permite que atacantes puedan aprender de como funciona un software internamente
- Por ejemplo
- Fallos que se presentan en el mismo software los cuales pueden ser aprovechados por un atacante
- Configuración
- Estos fallos se caracterizan por abusar de múltiples variables, dependiendo del software que lo use
- Por ejemplo
- Mantener el puerto 5432 abierto permite el acceso externo a Postgres, pero a la vez lo deja abierto para que cualquiera spamee el puerto e intentar entrar
- Por ejemplo
- Estos fallos se caracterizan por abusar de múltiples variables, dependiendo del software que lo use
- Sistema
Tipos comunes
- Desbordamiento de Búfer
- Presente principalmente en lenguajes que manejan manualmente la alocación de memoria
- C
- C++
- Rust
- Ejemplo de la vida real
- Twilight Hack para la Nintendo Wii
- Archivo guardado lee de manera insegura con método strcpy nombre del caballo del personaje
- Atacantes aprovechan esto para inyectar nombre malformado y sobrecargar el buffer del nombre
- Atacantes escriben instrucciones dentro del buffer sobrecargado
- Atacantes aprovechan overflow para sobreescribir el Return Address (Registro que guarda a donde saltar después de ejecución) a la memoria sobreescrita y tomar el control de la ejecución
- Wii vulnerada pierde el control y permite la ejecución de código no verificado
- Atacantes aprovechan overflow para sobreescribir el Return Address (Registro que guarda a donde saltar después de ejecución) a la memoria sobreescrita y tomar el control de la ejecución
- Atacantes escriben instrucciones dentro del buffer sobrecargado
- Atacantes aprovechan esto para inyectar nombre malformado y sobrecargar el buffer del nombre
- Archivo guardado lee de manera insegura con método strcpy nombre del caballo del personaje
- Twilight Hack para la Nintendo Wii
- Que es
- Permite acceder a memoria no autorizada
- Usuarios normales ven Segmentation Fault/Comportamiento Indefinido
- Atacantes manipulan memoria y registros para realizar exploits
- Permite acceder a memoria no autorizada
- Pasa por
- No tener en cuenta el tamaño en memoria de un elemento permite saltar a otro segmento de memoria
- Presente principalmente en lenguajes que manejan manualmente la alocación de memoria
- Inyecciones
- Hay diferentes tipos
- Inyección SQL
- Alterar consultas SQL para realizar consultas no intencionadas en la BD
- Pasa por
- Concatenar cadenas de consulta SQL en vez de usar Sentencias Preparadas (Prepared Statements)
- Pasa por
- Ejemplo
- Un sistema que por debajo haga SELECT * FROM users WHERE username =
- Dev no valida la variable del username y concatena SQL strings
- Atacante ingresa ' OR 1=1--
- Consulta se transforma en SELECT * FROM users WHERE username = '' OR 1=1-- ' AND password = 'foo'
- Atacante salta la validación de usuario y ha ingresado sin credenciales
- Consulta se transforma en SELECT * FROM users WHERE username = '' OR 1=1-- ' AND password = 'foo'
- Atacante ingresa ' OR 1=1--
- Dev no valida la variable del username y concatena SQL strings
- Un sistema que por debajo haga SELECT * FROM users WHERE username =
- Alterar consultas SQL para realizar consultas no intencionadas en la BD
- Inyección de comandos
- Ejecución no autorizada de comandos en el sistema que ejecuta el software
- Pasa por
- Permitir que el usuario pueda interactuar con herramientas que toquen al shell del sistema directamente
- Pasa por
- Ejemplo
- Dev realiza sitio web en php que lleva registro de mensajes del tablón de usuarios en un texto plano escrito usando shell_exec()
- Dev no valida mensaje usuario
- Atacante ingresa ; rm -rf .
- Atacante ha accedido al sistema que aloja al software y ha eliminado el software
- Atacante ingresa ; rm -rf .
- Dev no valida mensaje usuario
- Dev realiza sitio web en php que lleva registro de mensajes del tablón de usuarios en un texto plano escrito usando shell_exec()
- Ejecución no autorizada de comandos en el sistema que ejecuta el software
- XSS (Cross Side Scripting)
- Atacar un sistema al agregar código malicioso a una entrada de datos para que, al guardar, altere el renderizado del mismo y ejecute código no intencionado.
- Pasa por
- No validar carácteres especiales al guardar información en la BD
- Pasa por
- Ejemplo
- Dev realiza sistema de gestión documental que guarda, entre muchas cosas, la descripción de un documento
- Dev no valida descripción de documento
- Atacante genera etiqueta <script> que redirige a sitio que pide datos bancarios en nombre de la empresa y lo ingresa como descripción
- Como el sistema no valida, el entiende la etiqueta maliciosa como HTML válido y lo renderiza para TODOS los que visualicen el sitio del documento
- Atacante ha ejecutado códico malintencionado a través del sitio
- Como el sistema no valida, el entiende la etiqueta maliciosa como HTML válido y lo renderiza para TODOS los que visualicen el sitio del documento
- Atacante genera etiqueta <script> que redirige a sitio que pide datos bancarios en nombre de la empresa y lo ingresa como descripción
- Dev no valida descripción de documento
- Dev realiza sistema de gestión documental que guarda, entre muchas cosas, la descripción de un documento
- Atacar un sistema al agregar código malicioso a una entrada de datos para que, al guardar, altere el renderizado del mismo y ejecute código no intencionado.
- Inyección SQL
- Que es
- Inyectar código no autorizado en un software
- En general pasa por
- No limpiar o no limpiar adecuadamente entradas del usuario
- En general pasa por
- Inyectar código no autorizado en un software
- Hay diferentes tipos
- Cross Side Request Forgery
- Qué es
- Vulnerabilidad que permite sitios maliciosos obtener datos de sesión de sitios normales y realizar peticiones no autorizadas a los mismos
- Por qué ocurre
- Navegadores automáticamente confían en peticiones a sitios sin importar su orígen
- Pasa por
- No verificar el orígen de las peticiones y sus cookies
- Ejemplo de la vida real
- Vulnerabilidad de LangFlow
- Langflow usa FastAPI con su módulo de CORS
- Por facilidad devs colocan allow_origins=* SameSite=None; Secure para los Refresh Token
- Atacante usa ingeniería social para engañar a dev y hacer que ingrese a su instancia del software y a un sitio malicioso al mismo tiempo
- Sitio malicioso del atacante realiza petición POST a /api/v1/refresh
- Langflow permite la petición debido a la configuración insegura del Access Token y el atacante obtiene JWT
- Usando el JWT el atacante tiene acceso completo a /api/v1/validate/code
- Atacante realiza script malicioso para el endpoint
- Atacante obtiene acceso completo al sistema del dev
- Atacante realiza script malicioso para el endpoint
- Usando el JWT el atacante tiene acceso completo a /api/v1/validate/code
- Langflow permite la petición debido a la configuración insegura del Access Token y el atacante obtiene JWT
- Sitio malicioso del atacante realiza petición POST a /api/v1/refresh
- Atacante usa ingeniería social para engañar a dev y hacer que ingrese a su instancia del software y a un sitio malicioso al mismo tiempo
- Langflow también tiene endpoint /api/v1/validate/code que permite ingresar codigo Python validado por Access y Refresh Token
- Por facilidad devs colocan allow_origins=* SameSite=None; Secure para los Refresh Token
- Langflow usa FastAPI con su módulo de CORS
- Vulnerabilidad de LangFlow
- Qué es
- Gestión incorrecta de sesiones y autenticación
- Que es
- Fallos al crear, guardar, expirar o validar logins y sesiones (cookies, tokens)
- Permiten usar una cuenta ajena o entrar sin credenciales válidas
- Fallos al crear, guardar, expirar o validar logins y sesiones (cookies, tokens)
- Por que pasa
- Sesión no se renueva después del login
- Cookies sin políticas Secure / HttpOnly
- Tokens de tiempo indefinido
- Sistema no invalida tokens después de logout
- Ejemplo de la vida real
- Vulnerabilidad "View As" de Facebook 2018
- Facebook usa access tokens embebidos en el HTML del sistema de carga de videos de la vista "Ver Como"
- Facebook genera vista "Ver Como / View As para que usuarios vean su perfil como lo verían los demás
- Función de carga de videos genera token móvil con acceso total de la cuenta
- En la página View As del atacante quedó el access token de la víctima (el perfil que estaba “viendo como”)
- Atacante obtiene acceso al perfil de la víctima usando el access token que queda en el HTML
- En la página View As del atacante quedó el access token de la víctima (el perfil que estaba “viendo como”)
- Función de carga de videos genera token móvil con acceso total de la cuenta
- Facebook genera vista "Ver Como / View As para que usuarios vean su perfil como lo verían los demás
- Facebook usa access tokens embebidos en el HTML del sistema de carga de videos de la vista "Ver Como"
- Vulnerabilidad "View As" de Facebook 2018
- Que es
- Configuraciones por defecto inseguras
- Que es
- Dejar usuarios, claves, puertos o servicios tal como vienen de fábrica, sin endurecerlos al instalar
- Pasa por
- No cambiar lo de fábrica al desplegar (operador o instalador)
- Ejemplo de la vida real
- Configuración de routers Technicolor y Cisco Claro en 2020
- En el año 2020 la teleoperadora Claro entrega a sus usuarios routers Technicolor y Cisco con UPnP activado y con los puertos 8080 y 443 para admin abiertos al internet
- Claro no cambia contraseña de router y deja la que viene por defecto del fabricante
- Atacantes escanean rangos de red de Claro
- Atacantes ingresan configuración maliciosa al router usando UPnP o los puertos de admin
- Atacantes escanean rangos de red de Claro
- Claro no cambia contraseña de router y deja la que viene por defecto del fabricante
- En el año 2020 la teleoperadora Claro entrega a sus usuarios routers Technicolor y Cisco con UPnP activado y con los puertos 8080 y 443 para admin abiertos al internet
- Configuración de routers Technicolor y Cisco Claro en 2020
- Que es
- Desbordamiento de Búfer
Se detectan
- Análisis estático de código
- Analizar el programa sin ejecutarlo a través de sus fuentes
- SonarQube
- Plataforma de análisis estático de código diseñada para evaluar de forma continua la calidad, la seguridad y la fiabilidad del software
- Checkmarx
- Plataforma nativa de la nube para pruebas de seguridad de aplicaciones impulsada por Inteligencia Artificial diseñada para ayudar a las empresas a proteger cada etapa del ciclo de vida del desarrollo de software
- SonarQube
- Analizar el programa sin ejecutarlo a través de sus fuentes
- Pruebas de penetración (pentesting)
- Ataque controlado a un sistema para verificar su seguridad
- OWASP ZAP
- Proxy de interceptación que permite a desarrolladores y expertos en ciberseguridad encontrar vulnerabilidades en aplicaciones web de forma manual o automática
- Burp Suite
- Plataforma de software que funciona como un proxy de interceptación. Se sitúa entre el navegador web y el servidor objetivo para permitir a los profesionales de seguridad ver, modificar y analizar todo el tráfico HTTP y HTTPS
- OWASP ZAP
- Ataque controlado a un sistema para verificar su seguridad
- Escáneres de vulnerabilidades
- Permiten escanear problemas comunes en el sistema
- Nessus
- Sirve para buscar fallos de seguridad, programas desactualizados, errores de configuración y programas maliciosos en redes, computadoras y servidores.
- Análisis estático de código
Su impacto
- Pérdida de confidencialidad
- Información cae en manos no autorizadas
- Interrupción de servicios
- Suspensión total o parcial de manera imprevista
- Daños a la reputación
- Impacto negativo a la credibilidad e imagen del desarrollador
- Pérdida de datos o suplantación de identidad
- Eliminación o daño de la información
- Pérdida de confidencialidad
Buenas prácticas y mitigaciones
- Implementar tokens anti CSRF del lado del servidor
- Configurar cookies con SameSite Strict o Lax
- Configurar correctamente CORS
- Aprovechar las herramientas que trabajan los framework y mantenerlas actualizadas
- Usar Sentencias preparadas
- Aplicar el principio del menor privilegio en la BD y permisos de sistema
- Limpiar y validar caracteres especiales
- Usar métodos seguros para manipular memoria
- Validar siempre el tamaño de la entrada antes de alojarla en el buffer
- Usar herramientas de detección de vulnerabilidades
- Implementar certificados SSL
- Hashear contraseñas
- Logging constante en el sistema
- Instruir a compañeros sobre las vulnerabilidades
- Control de acceso
- DevOps que incluya suite de pruebas para seguridad: DevSecOps
- Políticas de control de acceso
- Mantener las librerias actualizadas
- Pensar la seguridad desde requerimientos
Images and files in the map
Information
- Description
- Mind Map on Vulnerabilidades del Software, created by Johan Portilla Aguirre on 20/08/2026.
- Created by
- Johan Portilla Aguirre
- Views
- 4
- Rating









