Ponte en Contacto

Temario del curso

1. Seguridad de la TI y codificación segura

  • Principios Fundamentales de Seguridad: Confidencialidad, Integridad y Disponibilidad (CIA) en el contexto de las 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 a prueba de fallos.
  • Clasificaciones Estándar de Vulnerabilidades: Comprensión de CWE (Common Weakness Enumeration) y OWASP.

2. Seguridad de aplicaciones web

  • Análisis Detallado de OWASP Top Ten: Análisis profundo de Inyección, Autenticación Rota y Exposición de Datos Sensibles.
  • Scripting entre sitios (XSS): Escenarios de XSS reflejado, almacenado y basado en 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 sesión y gestión de tiempo de espera.
  • Seguridad de API: Protección de endpoints REST y SOAP contra su mal uso.

3. Seguridad de servicios web

  • Servicios Web vs. Aplicaciones Web Tradicionales: Diferencias en las superficies de ataque.
  • Seguridad en la Capa de Transporte: Configuración SSL/TLS para clientes y servidores Java.
  • Seguridad de Mensajes: Integridad y confidencialidad a nivel de carga útil (payload).
  • 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 XML: Prevención de ataques de Entidades Externas XML (XXE).
  • Validación de Esquemas XML: Buenas prácticas para la aplicación estricta de esquemas.
  • Firmas Digitales XML: Implementación de firmas para asegurar la no repudiación.
  • Cifrado XML: Enfoques estándar para cifrar el contenido XML.

5. Fundamentos de seguridad de Java

  • 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 Security Manager (Legacy vs. Moderno).
  • Gestión de KeyStores: Creación y gestión de keystores y truststores para certificados.

6. Criptografía práctica

  • Algoritmos Criptográficos: Descripción general de algoritmos simétricos (AES), asimétricos (RSA, ECC) y de resumen (SHA-256/512).
  • Generación de Números Aleatorios: Los peligros de java.util.Random vs. 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 mediante Authenticator.getDefault().
  • Análisis de Certificados: Lectura y análisis programático de certificados X.509.

8. Seguridad Java EE

  • Seguridad Declarativa: Control de acceso basado en roles (RBAC) usando web.xml y anotaciones.
  • Seguridad Programática: Uso de HttpServletRequest.isUserInRole() y getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Configuración de login.conf e implementación de LoginModules.
  • Seguridad de Servlets: Restricciones de seguridad gestionadas por el contenedor y métodos de autenticación (FORM, BASIC, DIGEST).

9. Errores de codificación comunes y vulnerabilidades

  • Deserialización Insegura: Los riesgos de ObjectInputStream y el evasivo de comprobaciones de seguridad.
  • Inyección de Comandos: Mitigación de vulnerabilidades de ejecución a nivel del SO.
  • Travesía de Ruta: Sanitización de entradas del sistema de archivos para prevenir la travesía de directorios.
  • Abuso de Reflexión: Riesgos asociados con java.lang.reflect y el evasivo del control de acceso.
  • Credenciales Codificadas: 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 IVs estáticos.

10. Fuentes de conocimiento

  • Herramientas de Análisis Estático: Uso de SonarQube, Checkmarx y Fortify para escaneo automatizado.
  • Herramientas de Análisis Dinámico: Descripción general de Burp Suite y OWASP ZAP.
  • Bases de Datos CVE: Cómo hacer seguimiento y reaccionar ante nuevas vulnerabilidades del framework de Java.
  • Lecturas Recomendadas: Lista de libros, documentación y listas de verificación de codificación segura.

Requerimientos

Ninguno.

 21 Horas

Número de participantes


Precio por participante

Reseñas (4)

Próximos cursos

Categorías Relacionadas