Contacta con nosotros

Temario del curso

1. Seguridad informática y programació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 la implementación final.
  • Paradigmas de programación segura: Defensa en profundidad, principio de mínimo privilegio y configuraciones predeterminadas seguras.
  • Clasificación estándar de vulnerabilidades: Comprensión del CWE (Common Weakness Enumeration) y la lista OWASP Top Ten.

2. Seguridad en aplicaciones web

  • Análisis detallado de la lista OWASP Top Ten: Estudio exhaustivo de inyecciones, fallos en autenticación y exposición indebida de datos sensibles.
  • Inyección de scripts entre sitios (XSS): Casos típicos de XSS reflejada, almacenada y basada en DOM en entornos Java/JSP.
  • Falsificación de solicitudes entre sitios (CSRF): Mecanismos empleados en los ataques y métodos para implementar tokens Anti-CSRF.
  • Gestión de sesiones: Seguridad en el uso de cookies, protección contra fijación de sesión y control adecuado de tiempos de espera.
  • Seguridad en API: Técnicas para blindar endpoints REST y SOAP frente a abusos maliciosos.

3. Seguridad de servicios web

  • Diferencias entre servicios web y aplicaciones tradicionales: Análisis de las distintas superficies de ataque.
  • Seguridad a nivel de transporte: Configuración correcta de SSL/TLS en clientes y servidores Java.
  • Protección del contenido de los mensajes: Garantía de integridad y confidencialidad en el intercambio de datos.
  • Estándares de autenticación: Implementación correcta de OAuth 2.0, OpenID Connect y JSON Web Tokens (JWT).

4. Seguridad en XML

  • Prevención de ataques relacionados con el análisis de archivos XML: Evitar posibles ataques XXE.
  • Validación de esquemas XML: Buenas prácticas para establecer restricciones rigurosas mediante esquemas XML.
  • Firmas digitales en XML: Cómo utilizarlas para garantizar la no repudiación del contenido transmitido.
  • Cifrado de datos XML: Métodos estándar para cifrar información almacenada o enviada mediante XML.

5. Fundamentos de la seguridad en Java

  • Arquitectura de seguridad en Java: El paquete java.security y el sistema de proveedores.
  • Gestión de proveedores de seguridad: Instalación y configuración de módulos como Bouncy Castle.
  • Control de acceso en Java: Uso adecuado de archivos de políticas, permisos y el Security Manager (su uso tradicional y actual).
  • Gestión de almacenes de claves: Creación y manejo de KeyStores y TrustStore para certificados digitales.

6. Criptografía práctica

  • Algoritmos criptográficos: Presentación general de algoritmos simétricos (AES), asimétricos (RSA, ECC) y funciones hash (SHA-256/512).
  • Generación de números aleatorios: Peligros derivados del uso inadecuado de java.util.Random frente al uso seguro con java.security.SecureRandom.
  • Gestión de claves criptográficas: Estrategias para generar, guardar y actualizar las claves usadas.
  • Arquitectura Java Cryptography Architecture (JCA): Utilización de clases como Cipher, MessageDigest y Mac en desarrollos seguros.
  • Extensión Java Cryptography Extension (JCE): Entendimiento básico sobre archivos de políticas y límites legales asociados al uso de algoritmos fuertes.

7. Servicios de seguridad en Java

  • Uso adecuado de SSL/TLS en entornos Java: Implementación con SSLSocketFactory y HttpsURLConnection.
  • Gestión de confianza: Personalización del proceso de verificación de certificados en entornos PKI privados.
  • Autenticación programática: Implementación sencilla mediante Authenticator.getDefault() para controlar accesos.
  • Lectura y análisis de certificados: Manipulación correcta de certificados X.509 por vía de código.

8. Seguridad en Java EE

  • Seguridad declarativa: Control de acceso basado en roles mediante el archivo web.xml y anotaciones específicas.
  • Seguridad programática: Implementación práctica con métodos como HttpServletRequest.isUserInRole() o getRemoteUser().
  • Servicio de autenticación y autorización Java (JAAS): Configuración del archivo login.conf e implementación de módulos personalizados mediante LoginModule.
  • Gestión de restricciones y métodos de autenticación: Uso de mecanismos como FORM, BASIC o DIGEST para proteger servicios servlet.

9. Errores comunes al programar y vulnerabilidades frecuentes

  • Deserialización insegura: Riesgos asociados a ObjectInputStream cuando no se verifican adecuadamente los datos de entrada.
  • Inyección de comandos: Estrategias eficaces para mitigar vulnerabilidades que permiten ejecutar órdenes del sistema sin autorización.
  • Recorrido no controlado de rutas de archivos: Validación correcta de entradas de usuario para evitar el acceso a directorios fuera de lo previsto.
  • Abuso de reflexión en Java: Prevención de situaciones donde java.lang.reflect permite anular mecanismos de control de acceso.
  • Credenciales codificadas directamente en el código fuente: Detección y eliminación de información sensible que se deja accidentalmente expuesta.
  • Fallas al implementar criptografía: Uso inadecuado de modos como ECB, claves débiles o inicializadores de vector predeterminados.

10. Fuentes de conocimiento en seguridad informática

  • Herramientas de análisis estático: Utilización eficaz de SonarQube, Checkmarx y Fortify para identificar errores automáticamente.
  • Análisis dinámico de vulnerabilidades: Presentación de herramientas como Burp Suite o OWASP ZAP para pruebas en tiempo real.
  • Bases de datos CVE: Seguimiento continuo de nuevas vulnerabilidades detectadas en el framework Java y cómo responder ante ellas.
  • Lecturas recomendadas: Listado exhaustivo de libros, documentación oficial y listas de verificación para lograr una programación segura.

Requerimientos

No se requieren conocimientos previos.

 21 Horas

Formación Corporativa a Medida

Soluciones de formación diseñadas exclusivamente para empresas.

  • Contenido personalizado: Adaptamos el temario y los ejercicios prácticos a los objetivos y necesidades reales del proyecto.
  • Calendario flexible: Fechas y horarios adaptados a la agenda de su equipo.
  • Modalidad: Online (en directo), In-company (en sus oficinas) o Híbrida.
Inversión

Precio por grupo privado (formación online) desde 4350 € + IVA*

Contáctenos para obtener un presupuesto exacto y conocer nuestras promociones actuales

Reseñas (4)

Próximos cursos

Categorías Relacionadas