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
- Una instancia de CBOM en ejecución con el sensor Discover_Keystore licenciado.
- Acceso de solo lectura al sistema de archivos del host que contiene los archivos .ubr.
- El archivo JAR del proveedor BouncyCastle (bcprov-jdk18on-*.jar) en el host del sensor.
- JDK 8 o posterior (para inspección con keytool).
- La contraseña de almacenamiento para cada almacén de claves, además de cualquier contraseña a nivel de clave.
- 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.
