Contacta con nosotros

Temario del curso

1. Ciberseguridad y codificación segura

  • Principios fundamentales de seguridad: Confidencialidad, integridad y disponibilidad (CIA) en el contexto de aplicaciones Java.
  • Ciclo de vida del desarrollo de software seguro (SSDLC): Integración de la seguridad desde los requisitos hasta el despliegue.
  • Paradigmas de codificación segura: Defensa en profundidad, privilegio mínimo y valores predeterminados seguros.
  • Clasificaciones estándar de vulnerabilidades: Comprensión de CWE (Enumeración de Debilidades Comunes) y OWASP.

2. Seguridad de aplicaciones web

  • Análisis profundo del Top Ten de OWASP: Análisis detallado de inyección, autenticación rota y exposición de datos sensibles.
  • Secuencias de comandos entre sitios (XSS): Escenarios de XSS reflejado, almacenado y basado en el DOM en Java/JSP.
  • Falsificación de solicitudes entre sitios (CSRF): Mecanismos de ataque e implementación de tokens anti-CSRF.
  • Gestión de sesiones: Seguridad de cookies, fijación de sesiones y gestión de tiempos de espera.
  • Seguridad de APIs: Protección de puntos finales REST y SOAP contra abusos.

3. Seguridad de servicios web

  • Servicios web frente a aplicaciones web tradicionales: Diferencias en las superficies de ataque.
  • Seguridad de la capa de transporte: Configuración de SSL/TLS para clientes y servidores Java.
  • Seguridad de mensajes: Integridad y confidencialidad a nivel de contenido útil.
  • Estándares de autenticación: Implementación de OAuth 2.0, OpenID Connect y JWT (JSON Web Tokens).

4. Seguridad XML

  • Vulnerabilidades en el análisis de XML: Prevención de ataques de entidad externa XML (XXE).
  • Validación de esquemas XML: Mejores prácticas para imponer esquemas estrictos.
  • Firmas digitales XML: Implementación de firmas para garantizar la no repudiación.
  • Cifrado XML: Enfoques estándar para cifrar el contenido XML.

5. Fundamentos de seguridad en Java

  • La arquitectura de seguridad de Java: El paquete java.security y la arquitectura de proveedores.
  • Proveedores de seguridad: Instalación y configuración de proveedores como Bouncy Castle.
  • Control de acceso: Archivos de política, permisos y el Administrador de seguridad (heredado frente a moderno).
  • Gestión de almacenes de claves: Creación y gestión de almacenes de claves y confianza para certificados.

6. Criptografía práctica

  • Algoritmos criptográficos: Resumen de algoritmos simétricos (AES), asimétricos (RSA, ECC) y de hash (SHA-256/512).
  • Generación de números aleatorios: Los peligros de java.util.Random frente a java.security.SecureRandom.
  • Gestión de claves: Estrategias de generación, almacenamiento y rotación de claves.
  • Arquitectura de criptografía de Java (JCA): Uso de las clases Cipher, MessageDigest y Mac.
  • Extensión de criptografía de Java (JCE): Comprensión de archivos de política y jurisdicción de fuerza ilimitada.

7. Servicios de seguridad de Java

  • SSL/TLS en Java: Uso de SSLSocketFactory y HttpsURLConnection.
  • Gestores de confianza: Personalización de la verificación de confianza para entornos PKI privados.
  • Autenticadores: Autenticación programática utilizando Authenticator.getDefault().
  • Análisis de certificados: Lectura y análisis de certificados X.509 de forma programática.

8. Seguridad de Java EE

  • Seguridad declarativa: Control de acceso basado en roles (RBAC) utilizando web.xml y anotaciones.
  • Seguridad programática: Uso de HttpServletRequest.isUserInRole() y getRemoteUser().
  • JAAS (Servicio de autenticación y autorización de Java): Configuración de login.conf e implementación de LoginModule.
  • Seguridad de servlets: Restricciones de seguridad gestionadas por el contenedor y métodos de autenticación (FORM, BASIC, DIGEST).

9. Errores comunes de codificación y vulnerabilidades

  • Deserialización insegura: Los riesgos de ObjectInputStream y eludir controles de seguridad.
  • Inyección de comandos: Mitigación de vulnerabilidades de ejecución a nivel del sistema operativo.
  • Recorrido de rutas: Sanitización de entradas del sistema de archivos para evitar el cruce de directorios.
  • Abuso de reflexión: Riesgos asociados con java.lang.reflect y eludir el control de acceso.
  • Credenciales codificadas en la fuente: Identificación y eliminación de secretos del código fuente.
  • Errores en la implementación criptográfica: Uso del modo ECB, claves débiles o vectores de inicialización estáticos.

10. Fuentes de conocimiento

  • Herramientas de análisis estático: Uso de SonarQube, Checkmarx y Fortify para escaneos automatizados.
  • Herramientas de análisis dinámico: Resumen de Burp Suite y OWASP ZAP.
  • Bases de datos CVE: Cómo seguir y reaccionar ante nuevas vulnerabilidades del marco de trabajo de Java.
  • Lecturas recomendadas: Lista de libros, documentación y listas de comprobación de codificación segura.

Requerimientos

Ninguno.

 21 Horas

Número de participantes


Precio por participante

Testimonios (4)

Próximos cursos

Categorías Relacionadas