A tu propio ritmo

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Buscar en lecciones


IngresarEmpezar
← Regresar a lecciones
Editar en Github

Comunicación de vulnerabilidades encontradas y recomendaciones de mitigación

Ejemplo de mensaje de comunicación de vulnerabilidad
Inyección SQL (SQLi) - Severidad Crítica

Para comunicar adecuadamente una vulnerabilidad, es importante adaptar el mensaje al público objetivo, ya sean partes interesadas internas, clientes o el público en general. La comunicación debe ser clara y estructurada, con un enfoque en proporcionar una visión general concisa de la vulnerabilidad, su impacto potencial y los pasos necesarios para la remediación.

El mensaje debe incluir detalles clave como la naturaleza de la vulnerabilidad, cómo fue descubierta y los aspectos técnicos del problema. La evaluación del impacto es crucial, delineando las posibles consecuencias si la vulnerabilidad es explotada. Se deben proporcionar instrucciones claras y accionables de mitigación o remediación para abordar la vulnerabilidad.

La seguridad y la confidencialidad son primordiales al compartir información sobre vulnerabilidades. Asegúrate de que la comunicación sea segura, especialmente si implica detalles sensibles o código de prueba de concepto. Si se divulga públicamente, sigue prácticas de divulgación responsable coordinando con la parte afectada antes de liberar la información.

Ejemplo de mensaje de comunicación de vulnerabilidad

1**Asunto**: Vulnerabilidad crítica de inyección SQL descubierta en la aplicación web XYZ 2 3**Descripción**: 4Se ha identificado una vulnerabilidad crítica de inyección SQL en la aplicación web XYZ, que permite a los atacantes ejecutar consultas SQL arbitrarias contra la base de datos. Esto podría conducir al acceso no autorizado a datos sensibles, manipulación de datos o compromiso total de la base de datos. 5 6**Detalles Técnicos**: 7La vulnerabilidad está presente en el formulario de inicio de sesión de usuario de la aplicación XYZ, donde la entrada del usuario no se sanea correctamente. Un atacante puede explotar esta vulnerabilidad inyectando comandos SQL a través de los campos de nombre de usuario o contraseña. 8 9**Impacto**: 10Si se explota, esta vulnerabilidad podría resultar en: 11- Acceso no autorizado a datos sensibles de clientes. 12- Modificación o eliminación de registros de la base de datos. 13- Compromiso total de la base de datos, permitiendo que un atacante controle la base de datos. 14 15**Mitigación y Remediación**: 16- Inmediato: Desactivar el formulario afectado o restringir el acceso hasta que se implemente una solución. 17- A largo plazo: Actualizar el código de la aplicación para usar consultas parametrizadas en lugar de cadenas SQL concatenadas. 18- Aplicar el parche que se ha desarrollado para abordar esta vulnerabilidad. Las instrucciones están adjuntas. 19 20**Evidencia**: 21Se desarrolló una prueba de concepto que explotó con éxito esta vulnerabilidad, demostrando la capacidad de recuperar datos sensibles de la base de datos. Capturas de pantalla y registros están disponibles bajo petición. 22 23**Referencias**: 24- [OWASP Inyección SQL](https://owasp.org/www-community/attacks/SQL_Injection) 25- [CWE-89: Inyección SQL](https://cwe.mitre.org/data/definitions/89.html) 26 27**Próximos Pasos**: 28- Aplicar el parche dentro de las próximas 24 horas. 29- Realizar una revisión de seguridad exhaustiva de los mecanismos de validación de entradas y de interacción con la base de datos de la aplicación. 30- Programar una reunión de seguimiento para discutir la implementación de medidas de seguridad adicionales. 31 32Por favor, confirme la recepción de este informe y las acciones de remediación tomadas.

Mitigación de Vulnerabilidades

La mitigación de vulnerabilidades durante las pruebas de penetración (pentesting) implica identificar, analizar y abordar las debilidades de seguridad en un sistema o aplicación para prevenir posibles explotaciones.

Aplicación de parches y actualizaciones: Asegúrate de que todo el software, firmware y sistemas estén actualizados con los últimos parches de seguridad. Esta es la mitigación más sencilla para las vulnerabilidades causadas por componentes obsoletos. Gestión de Configuración: Se deben aplicar configuraciones seguras en todos los sistemas. Esto incluye deshabilitar servicios innecesarios, eliminar cuentas predeterminadas y seguir el principio de privilegio mínimo. Validación y Saneamiento de Entradas: Implementa una validación y saneamiento de entradas robustos para prevenir ataques de inyección como SQL injection, XSS o inyección de comandos. Uso de Protocolos Seguros: Reemplaza los protocolos inseguros (por ejemplo, FTP, HTTP) con sus contrapartes seguras (por ejemplo, SFTP, HTTPS) para proteger los datos en tránsito. Controles de Acceso: Implementa mecanismos de control de acceso fuertes, incluyendo autenticación multifactor (MFA), control de acceso basado en roles (RBAC) y políticas de contraseñas estrictas. Registro y Monitoreo: Configura un registro y monitoreo exhaustivo para detectar y responder rápidamente a posibles ataques. Esto puede incluir sistemas de detección de intrusos (IDS), sistemas de gestión de eventos e información de seguridad (SIEM) y revisiones regulares de registros. Segmentación de Redes: Usa segmentación de redes para limitar el impacto potencial de un ataque. Al aislar sistemas críticos, incluso si un atacante accede a una parte de la red, no podrá moverse lateralmente fácilmente a otras partes.

Inyección SQL (SQLi) - Severidad Crítica

La Inyección SQL ocurre cuando un atacante puede inyectar consultas SQL maliciosas en la base de datos de una aplicación web manipulando la entrada del usuario, permitiendo el acceso no autorizado o la manipulación de la base de datos.

Consecuencias de la Inyección SQL

  • Fuga o robo de datos.
  • Manipulación de datos (inserción, actualización, eliminación de registros).
  • Control total de la base de datos.
  • Bypass de mecanismos de autenticación.

Usos Comunes para la Inyección SQL

  • Robar datos sensibles de bases de datos.
  • Eludir la autenticación de inicio de sesión.
  • Eliminar o alterar registros.
  • Obtener acceso administrativo a la base de datos.

Cómo Mitigar la Inyección SQL

  • Usa declaraciones preparadas y consultas parametrizadas.
  • Implementa una validación y saneamiento de entradas adecuados.
  • Limita los permisos del usuario de la base de datos.
  • Actualiza y aplica parches regularmente a los sistemas de base de datos.

Cómo Encontrar Evidencia de Inyección SQL

  • Usa herramientas automatizadas como SQLMap para detectar vulnerabilidades de inyección SQL.
  • Prueba manualmente las entradas intentando inyectar consultas SQL (por ejemplo, usando comillas simples, declaraciones UNION).
  • Revisa los registros de la aplicación en busca de errores relacionados con la ejecución de consultas SQL.

Referencias

Cross-Site Scripting (XSS) - Alta Severidad

Las vulnerabilidades de Cross-Site Scripting (XSS) permiten a los atacantes inyectar scripts maliciosos en páginas web vistas por otros usuarios, lo que puede llevar a acciones no autorizadas, robo de datos o desfiguración del sitio.

Consecuencias del XSS

  • Robo de cookies de sesión, lo que puede llevar al secuestro de cuentas.
  • Desfiguración de páginas web.
  • Acciones no autorizadas en nombre de los usuarios.
  • Ataques de phishing.

Usos Comunes del XSS

  • Robo de cookies de sesión para secuestrar cuentas de usuario.
  • Redirección de usuarios a sitios maliciosos.
  • Mostrar contenido o anuncios no autorizados en sitios web legítimos.
  • Ejecutar keyloggers u otros scripts maliciosos en el contexto del navegador de un usuario.

Cómo Mitigar el XSS

  • Implementa codificación de salida.
  • Usa políticas de seguridad de contenido (CSP).
  • Valida y sanea todas las entradas del usuario.
  • Evita funciones peligrosas como eval().

Cómo Encontrar Evidencia de XSS

  • Usa herramientas automatizadas como Burp Suite u OWASP ZAP para identificar vulnerabilidades de XSS.
  • Inyecta manualmente cargas útiles comunes de XSS (por ejemplo, <script>alert('XSS')</script>) en los campos de entrada.
  • Revisa los registros de la aplicación web y el tráfico de red en busca de ejecución de scripts inusual o actividad del usuario.

Referencias

Cross-Site Request Forgery (CSRF) - Alta Severidad

Cross-Site Request Forgery (CSRF) explota la confianza que un sitio web tiene en el navegador de un usuario, engañando al navegador para que realice solicitudes no deseadas a un sitio donde el usuario está autenticado.

Consecuencias del CSRF

  • Transacciones no autorizadas (por ejemplo, transferencias de fondos).
  • Secuestro de cuentas.
  • Manipulación de datos.

Usos Comunes del CSRF

  • Transferir fondos sin el consentimiento del usuario.
  • Cambiar detalles de la

cuenta del usuario, como correo electrónico o contraseña.

  • Publicar contenido no autorizado en nombre de los usuarios.

Cómo Mitigar el CSRF

  • Usa tokens anti-CSRF.
  • Implementa re-autenticación para acciones críticas.
  • Usa el atributo SameSite para cookies.

Cómo Encontrar Evidencia de CSRF

  • Verifica si los formularios o solicitudes sensibles incluyen tokens anti-CSRF.
  • Usa herramientas como Burp Suite para inspeccionar solicitudes HTTP en busca de tokens CSRF ausentes.
  • Intenta enviar solicitudes manualmente sin tokens CSRF para ver si la aplicación las procesa.

Referencias

Ausencia de Tokens Anti-CSRF - Alta Severidad

Los tokens anti-CSRF se utilizan para proteger aplicaciones web de ataques CSRF, asegurando que las solicitudes provengan de usuarios autenticados. La ausencia de estos tokens hace que las aplicaciones sean vulnerables a los ataques CSRF.

Consecuencias de la Ausencia de Tokens Anti-CSRF

  • Transacciones no autorizadas (por ejemplo, transferencias de fondos).
  • Secuestro de cuentas.
  • Manipulación de datos.

Usos Comunes de la Ausencia de Tokens Anti-CSRF

  • Explotar usuarios que ya están autenticados en un sitio web.
  • Engañar a los usuarios para que realicen acciones que no pretendían (por ejemplo, cambiar configuraciones de la cuenta).

Cómo Mitigar la Ausencia de Tokens Anti-CSRF

  • Implementa tokens anti-CSRF en todos los formularios y solicitudes que cambien el estado.
  • Verifica el token en el servidor para cada acción sensible.
  • Usa frameworks que manejen automáticamente la protección contra CSRF.

Cómo Encontrar Evidencia de la Ausencia de Tokens Anti-CSRF

  • Inspecciona formularios HTML y solicitudes HTTP para verificar la presencia de tokens anti-CSRF.
  • Usa herramientas como Burp Suite para determinar si las acciones pueden ejecutarse sin tokens.
  • Envía solicitudes manualmente sin tokens para verificar si la aplicación las procesa.

Referencias

Deserialización Insegura - Severidad Crítica

La deserialización insegura ocurre cuando una aplicación deserializa datos no confiables, lo que puede llevar a la ejecución de código arbitrario, escalación de privilegios u otros ataques.

Consecuencias de la Deserialización Insegura

  • Ejecución remota de código.
  • Escalada de privilegios.
  • Manipulación de datos.

Usos Comunes de la Deserialización Insegura

  • Ejecución de código arbitrario en el servidor.
  • Modificación de objetos serializados para escalar privilegios.
  • Manipulación de datos de la aplicación al alterar objetos serializados.

Cómo Mitigar la Deserialización Insegura

  • Evita la deserialización de datos no confiables.
  • Implementa una validación estricta durante la deserialización.
  • Usa formatos seguros (por ejemplo, JSON) en lugar de formatos binarios.

Cómo Encontrar Evidencia de Deserialización Insegura

  • Usa herramientas como ysoserial para generar cargas útiles maliciosas para probar vulnerabilidades de deserialización.
  • Inspecciona el código para identificar deserialización de datos no confiables.
  • Revisa los registros de la aplicación en busca de errores o comportamientos sospechosos relacionados con la deserialización.

Referencias

Autenticación Rota - Severidad Crítica

Las vulnerabilidades de autenticación rota ocurren cuando los mecanismos de autenticación se implementan incorrectamente, permitiendo que los atacantes comprometan credenciales de usuario o tokens de sesión.

Consecuencias de la Autenticación Rota

  • Secuestro de cuentas.
  • Acceso no autorizado a datos sensibles.
  • Elevación de privilegios.

Usos Comunes de la Autenticación Rota

  • Robo de tokens de sesión para secuestrar cuentas.
  • Fuerza bruta o adivinación de contraseñas débiles.
  • Explotación de fallos en la autenticación para obtener acceso no autorizado.

Cómo Mitigar la Autenticación Rota

  • Implementa políticas de contraseñas fuertes y MFA.
  • Usa almacenamiento seguro de contraseñas (por ejemplo, hashing con bcrypt).
  • Asegura la gestión de sesiones.

Cómo Encontrar Evidencia de Autenticación Rota

  • Usa herramientas como Hydra o Medusa para probar políticas de contraseñas débiles.
  • Analiza la implementación de la gestión de sesiones en busca de debilidades.
  • Inspecciona solicitudes HTTP para detectar la transmisión insegura de tokens de autenticación.

Referencias

Exposición de Datos Sensibles - Severidad Crítica

La exposición de datos sensibles ocurre cuando la información sensible no está adecuadamente protegida, lo que lleva al acceso no autorizado durante el almacenamiento o la transmisión.

Consecuencias de la Exposición de Datos Sensibles

  • Robo de datos (por ejemplo, números de tarjetas de crédito, información personal).
  • Sanciones regulatorias (por ejemplo, multas GDPR).
  • Pérdida de confianza de los clientes.

Usos Comunes de la Exposición de Datos Sensibles

  • Robo de datos no cifrados durante la transmisión.
  • Acceso a datos sensibles almacenados en texto plano.
  • Exposición de claves API o contraseñas en repositorios de código.

Cómo Mitigar la Exposición de Datos Sensibles

  • Usa cifrado fuerte para datos en reposo y en tránsito.
  • Implementa TLS/SSL para las comunicaciones.
  • Sigue los principios de minimización de datos.

Cómo Encontrar Evidencia de Exposición de Datos Sensibles

  • Usa herramientas como Wireshark para capturar y analizar tráfico de red en busca de datos no cifrados.
  • Inspecciona configuraciones de almacenamiento para verificar prácticas de cifrado.
  • Revisa repositorios de código en busca de información sensible codificada de forma dura.

Referencias

Configuración de Seguridad Incorrecta - Alta Severidad

La configuración de seguridad incorrecta ocurre cuando los sistemas, redes o aplicaciones se configuran con ajustes inseguros, como contraseñas predeterminadas, puertos abiertos o permisos excesivamente permisivos.

Consecuencias de la Configuración de Seguridad Incorrecta

  • Acceso no autorizado a sistemas y datos.
  • Brechas de datos.
  • Compromiso del sistema.

Usos Comunes de la Configuración de Seguridad Incorrecta

  • Acceso a sistemas usando credenciales predeterminadas.
  • Explotación de puertos o servicios abiertos.
  • Acceso a archivos sensibles debido a permisos incorrectos.

Cómo Mitigar la Configuración de Seguridad Incorrecta

  • Sigue las pautas de configuración segura.
  • Revisa y actualiza regularmente las configuraciones.
  • Desactiva funciones y servicios innecesarios.

Cómo Encontrar Evidencia de Configuración de Seguridad Incorrecta

  • Usa herramientas como Nmap para escanear puertos y servicios abiertos.
  • Revisa configuraciones en busca de uso de credenciales predeterminadas.
  • Realiza auditorías de configuración para identificar debilidades de seguridad.

Referencias

Uso de Componentes con Vulnerabilidades Conocidas - Alta Severidad

Esta vulnerabilidad surge cuando las aplicaciones utilizan componentes de terceros desactualizados o vulnerables, como bibliotecas o frameworks, que tienen problemas de seguridad conocidos.

Consecuencias del Uso de Componentes con Vulnerabilidades Conocidas

  • Explotación de vulnerabilidades conocidas.
  • Brechas de datos.
  • Compromiso del sistema.

Usos Comunes del Uso de Componentes con Vulnerabilidades Conocidas

  • Explotación de vulnerabilidades conocidas en bibliotecas obsoletas.
  • Acceso no autorizado a través de componentes comprometidos.
  • Desencadenar ataques de denegación de servicio (DoS) usando frameworks vulnerables.

Cómo Mitigar el Uso de Componentes con Vulnerabilidades Conocidas

  • Actualiza y aplica parches regularmente a los componentes.
  • Usa herramientas automatizadas para identificar dependencias vulner

ables.

  • Evita usar componentes no soportados o sin mantenimiento.

Cómo Encontrar Evidencia del Uso de Componentes con Vulnerabilidades Conocidas

  • Usa herramientas como OWASP Dependency-Check para identificar componentes conocidos vulnerables.
  • Revisa informes de análisis de composición de software.
  • Monitorea bases de datos de vulnerabilidades en busca de actualizaciones para los componentes en uso.

Referencias

SSL/TLS Utiliza Algoritmos de Cifrado y Hash Débiles - Alta Severidad

Esta vulnerabilidad ocurre cuando las configuraciones de SSL/TLS utilizan algoritmos criptográficos obsoletos o débiles, como MD5 o SHA-1, que son vulnerables a ataques.

Consecuencias de Algoritmos de Cifrado y Hash Débiles en SSL/TLS

  • Intercepción y descifrado de datos.
  • Ataques de hombre en el medio (MITM).
  • Pérdida de integridad de datos.

Usos Comunes de Algoritmos de Cifrado y Hash Débiles en SSL/TLS

  • Descifrado de datos interceptados durante el tránsito.
  • Ejecución de ataques MITM aprovechando la criptografía débil.
  • Falsificación o manipulación de datos aprovechando colisiones de hash.

Cómo Mitigar Algoritmos de Cifrado y Hash Débiles en SSL/TLS

  • Configura SSL/TLS para usar algoritmos de cifrado fuertes (por ejemplo, AES-256).
  • Deshabilita el soporte para protocolos débiles como SSLv2/3 y TLS 1.0/1.1.
  • Revisa y actualiza regularmente las configuraciones de SSL/TLS.

Cómo Encontrar Evidencia de Algoritmos de Cifrado y Hash Débiles en SSL/TLS

  • Usa herramientas como SSL Labs’ SSL Test o OpenSSL para analizar la fuerza de las configuraciones de SSL/TLS.
  • Revisa configuraciones del servidor en busca de cifrados y protocolos soportados.
  • Monitorea los handshakes de SSL/TLS para asegurarte de que se negocian algoritmos fuertes.

Referencias