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.securityy 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.Randomfrente al uso seguro conjava.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,MessageDigestyMacen 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
SSLSocketFactoryyHttpsURLConnection. - 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.xmly anotaciones específicas. - Seguridad programática: Implementación práctica con métodos como
HttpServletRequest.isUserInRole()ogetRemoteUser(). - Servicio de autenticación y autorización Java (JAAS): Configuración del archivo
login.confe implementación de módulos personalizados medianteLoginModule. - 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
ObjectInputStreamcuando 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.reflectpermite 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.
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.
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)
el conocimiento del instructor era muy alto - sabía de lo que estaba hablando y conocía las respuestas a nuestras preguntas
Adam - Fireup.PRO
Curso - Advanced Java Security
Traducción Automática
Ejercicios prácticos
Olek - Fireup.PRO
Curso - Advanced Java Security
Traducción Automática
ejercicios de codificación
Mirek - Fireup.PRO
Curso - Advanced Java Security
Traducción Automática
Abre muchos caminos y proporciona muchas perspectivas sobre la seguridad
Nolbabalo Tshotsho - Vodacom SA
Curso - Advanced Java Security
Traducción Automática