Guía de integración del almacén de claves de UBER

Resumen

Esta guía configura el sensor CBOM Secure Discover_Keystore para inventariar material criptográfico en archivos de almacén de claves en formato UBER (.ubr). UBER es un formato propietario de BouncyCastle que utiliza cifrado Twofish y SHA-512 para la protección e integridad de claves (más robusto que BKS) y que se encuentra en implementaciones anteriores de BouncyCastle. El sensor lee los archivos .ubr en modo de solo lectura a través del proveedor JCE de BouncyCastle y extrae:

  • Claves privadas y sus certificados asociados
  • Certificados de clave pública (entradas de confianza)
  • Entradas de llave secreta
  • Nombres de alias, tipos de clave, tamaños de clave y períodos de validez
  • Algoritmos de firma y números de teléfono del emisor/sujeto

Requisitos previos

  1. Una instancia de CBOM en ejecución con el sensor Discover_Keystore licenciado.
  2. Acceso de solo lectura al sistema de archivos del host que contiene los archivos .ubr.
  3. El archivo JAR del proveedor BouncyCastle (bcprov-jdk18on-*.jar) en el host del sensor.
  4. JDK 8 o posterior (para inspección con keytool).
  5. La contraseña de almacenamiento para cada almacén de claves, además de cualquier contraseña a nivel de clave.
  6. Permisos de lectura en los directorios que contienen archivos .ubr.

Guía paso por paso

Paso 1: Localice los archivos del almacén de claves de UBER.

find /opt /usr/local /home /var/lib /etc -name '*.ubr' -type f 2>/dev/null ls -la /opt/myapp/security/store.ubr # confirmar que la cuenta del sensor puede leer

Paso 2: Verificar la disponibilidad del proveedor BouncyCastle

find /opt /usr/local/lib /usr/share/java -name 'bcprov-*.jar' 2>/dev/null # Si no está presente, descárguelo de la distribución oficial y verifique su suma de comprobación: wget https://downloads.bouncycastle.org/java/bcprov-jdk18on-178.jar \ -O /opt/cbom/lib/bcprov-jdk18on-178.jar

Confirme que el proveedor puede abrir un almacén de claves de destino antes de configurar el sensor:

keytool -list -keystore /opt/myapp/security/store.ubr \ -storetype UBER -storepass changeit \ -provider org.bouncycastle.jce.provider.BouncyCastleProvider \ -providerpath /opt/cbom/lib/bcprov-jdk18on-178.jar

Paso 3: Preparar las credenciales del almacén de claves

Registre cada contraseña de la tienda (y cualquier contraseña de clave por alias) como un secreto con nombre en la bóveda de secretos de CBOM (UI > Configuración > Secretos) en lugar de codificarlo directamente, por ejemplo, uber-keystore-myapp-pass.

Paso 4: Configurar el sensor de seguridad CBOM

sensor: nombre: Discover_Keystore habilitado: verdadero scan_id: uber-keystore-scan-prod-001 almacén de claves: formato: UBER proveedor: org.bouncycastle.jce.provider.BouncyCastleProvider provider_jar_path: /opt/cbom/lib/bcprov-jdk18on-178.jar descubrimiento: rutas: - /opt/myapp/security/store.ubr - /var/lib/bc-app/keys/root.ubr patrones de ruta: [ '/opt/**/*.ubr', '/usr/local/**/*.ubr' ] recursivo: verdadero seguir enlaces simbólicos: falso credenciales: contraseña de almacén predeterminada: secret_ref: uber-keystore-default-pass credenciales por archivo: - ruta: /opt/myapp/security/store.ubr contraseña de almacén: { secret_ref: uber-keystore-myapp-pass } salida: include_certificate_chain: true redact_private_key_material: true programación: cron: "0 2 * * *"

Guárdalo en /etc/cbom/sensors/uber-keystore-prod.yaml y reinicia: systemctl restart cbom-sensor.

Paso 5: Validar

tail -f /var/log/cbom/uber-keystore-sensor.log # buscar 'Almacén de claves UBER abierto... Escaneo completado' cbom-ctl sensor trigger --scan-id uber-keystore-scan-prod-001

Confirme los activos en Activos > Claves criptográficas filtrados por origen uber-keystore-scan-prod-001 y verifique los alias y las huellas digitales con la salida de keytool.

Errores comunes

KeyStoreException: UBER no encontrado

Causa: El archivo JAR de BouncyCastle no se encuentra en el classpath o provider_jar_path es incorrecto/ilegible.

Solución: Confirme que el archivo JAR existe y que la cuenta del sensor puede leerlo, corrija la ruta provider_jar_path y reinicie el sensor.

El almacén de claves fue manipulado o la contraseña era incorrecta.

Causa: La contraseña de la tienda es incorrecta o el archivo está dañado (UBER utiliza la integridad SHA-512).

Solución: Pruebe la contraseña con keytool; si es correcta pero sigue fallando, restaure desde la copia de seguridad, luego actualice el secreto de la bóveda y vuelva a intentarlo.

UnrecoverableKeyException: No se pudo recuperar la clave.

Causa: Un alias específico utiliza una contraseña de clave distinta que no coincide con la contraseña del almacén.

Solución: Identifique el alias que está fallando en el registro, obtenga su contraseña de clave y agregue una entrada key_passwords para esa ruta/alias, luego reinicie y vuelva a activarlo.

Recomendaciones de seguridad

  • Nunca incluyas contraseñas codificadas directamente en YAML; haz referencia al repositorio de secretos de CBOM o a un administrador externo.
  • Restringir los permisos del archivo .ubr a 640 o más, y asignarlos al usuario de la aplicación.
  • Antes de la implementación, valide la suma de comprobación del archivo JAR de BouncyCastle comparándola con el valor publicado.
  • Rote las contraseñas del almacén de claves según un calendario definido y actualice la bóveda después de cada rotación.
  • Revise periódicamente los registros de acceso a los sensores para confirmar que la actividad de escaneo coincide con las expectativas.

Conclusión

Al localizar archivos .ubr, confirmar la disponibilidad del proveedor de BouncyCastle y proporcionar credenciales a través del almacén de secretos de CBOM, el sensor Discover_Keystore inventaría de forma continua y segura todas las claves y certificados en los almacenes de claves UBER, lo que permite el cumplimiento normativo, la gestión del ciclo de vida de los certificados y la agilidad criptográfica para las implementaciones heredadas de BouncyCastle.