Auditoría de seguridad en microservicios Java con Quarkus

Auditoría de seguridad en microservicios Java

La auditoría de seguridad en microservicios Java es esencial para equipos que manejan aplicaciones críticas en sectores como finanzas o salud. En esta guía paso a paso, aprenderás a evaluar riesgos, configurar Quarkus y Keycloak, y aplicar un checklist verificable que te permitirá reducir vulnerabilidades y cumplir con RGPD.


1. Entender el entorno de microservicios Java

1.1 ¿Qué es un microservicio?

Un microservicio es una unidad funcional independiente que expone una API (REST, gRPC, etc.) y se despliega de forma aislada. Cada microservicio posee su propio ciclo de vida, base de datos y lógica de negocio.

1.2 Principios de seguridad en microservicios

  • Principio de menor privilegio: Cada servicio solo debe acceder a los recursos que necesita.
  • Defensa en profundidad: Combina autenticación, autorización, validación de entrada y monitoreo.
  • Cifrado en tránsito: TLS es obligatorio para todas las comunicaciones entre servicios.

Nota: Lescopr permite visualizar en tiempo real la exposición de cada endpoint, facilitando la identificación de brechas.

2. Configurar Quarkus para seguridad

2.1 Introducción a Quarkus

Quarkus es un framework Java optimizado para contenedores y nativas, ideal para microservicios ligeros. Incluye extensiones de seguridad que simplifican la integración con proveedores de identidad.

2.2 Paso a paso: habilitar la extensión quarkus-oidc

  1. Añade la dependencia en pom.xml:
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-oidc</artifactId>
    </dependency>
    
  2. Configura application.properties:
    quarkus.oidc.auth-server-url=https://keycloak.example.com/auth/realms/mi-realm
    quarkus.oidc.client-id=mi-microservice
    quarkus.oidc.credentials.secret=********
    
  3. Anota los endpoints con @RolesAllowed para aplicar autorización basada en roles.

2.3 Verificación de configuración

Utiliza el endpoint /q/openapi de Quarkus para inspeccionar la documentación generada y confirmar que los scopes están correctamente declarados.

3. Integrar Keycloak como proveedor de identidad

3.1 ¿Qué es Keycloak?

Keycloak es una solución de gestión de identidades y accesos (IAM) que soporta OpenID Connect y SAML. Provee registro de usuarios, gestión de roles y flujos de autenticación.

3.2 Configuración básica de un realm

  • Crea un realm llamado mi-realm.
  • Define un client con el mismo client-id usado en Quarkus.
  • Configura roles y grupos que reflejen los permisos de tus microservicios.

3.3 Validación de tokens en tiempo de ejecución

Lescopr puede capturar los tokens JWT emitidos por Keycloak y mostrarlos en sus dashboards, permitiendo detectar tokens expirados o con scopes inesperados.

4. Checklist de auditoría paso a paso

4.1 Preguntas clave

  • ¿Todos los endpoints están protegidos por @RolesAllowed o equivalentes?
  • ¿Se verifica la firma y expiración de los tokens JWT?
  • ¿Se usan conexiones TLS entre cada microservicio?
  • ¿Se registran los accesos en un log centralizado?
  • ¿Se cumplen los requisitos de RGPD (registro de consentimientos, borrado de datos)?

4.2 Lista de verificación (Checklist)

  • Configuración de Quarkus
    • Extensión quarkus-oidc instalada.
    • Propiedades auth-server-url, client-id y secret correctas.
    • Anotaciones de autorización aplicadas.
  • Keycloak
    • Realm y client creados.
    • Roles y grupos alineados con la arquitectura.
    • Políticas de token (expiración, algoritmo) definidas.
  • Comunicación
    • TLS habilitado en todos los puertos.
    • Certificados gestionados y rotados regularmente.
  • Monitoreo y registro
    • Logs de acceso enviados a Lescopr.
    • Alertas configuradas para intentos de acceso no autorizado.
    • Métricas de MTTR y error rate visibles en dashboards.

4.3 Cómo realizar la auditoría de seguridad

Respuesta directa: Para ejecutar la auditoría, revisa cada microservicio contra el checklist anterior, valida la configuración de Quarkus y Keycloak, y usa los dashboards de Lescopr para confirmar que no existen accesos inesperados ni vulnerabilidades de TLS.

5. Automatizar la auditoría con Lescopr

Lescopr ofrece una integración nativa con Quarkus y Keycloak que permite:

  • Descubrimiento automático de endpoints y sus requisitos de autorización.
  • Correlación de logs de autenticación con métricas de rendimiento.
  • Generación de informes de cumplimiento RGPD listos para auditorías externas.

5.1 Paso a paso para la integración

  1. Registra tu aplicación en la consola de Lescopr.
  2. Configura el agente de observabilidad con la URL de tu cluster Kubernetes.
  3. Activa el módulo de Security Auditing y selecciona Quarkus y Keycloak como fuentes.
  4. Revisa los dashboards y exporta el informe de auditoría.

6. Próximos pasos

Una vez completado el checklist, mantén la auditoría como parte de tu pipeline CI/CD. Ejecuta pruebas de seguridad en cada despliegue y actualiza los roles en Keycloak conforme evolucionen los requisitos de negocio.


Para profundizar, la documentación de Lescopr detalla la implementación paso a paso.