8. Securizando las propiedades de las Mule Application


Es posible encriptar y proteger las propiedades de una aplicación para que los datos sensibles de tu organización queden ocultos.

 

Configuración de Secure Properties  en MuleSoft

Al desarrollar con MuleSoft, es crucial que protejas las propiedades de configuración de tu aplicación. Por ejemplo, detalles como contraseñas y URLs de conexión a bases de datos no deben estar expuestos en texto plano. Aquí es donde el módulo Secure Properties te será de gran ayuda.

Este módulo te permite encriptar las propiedades de configuración utilizando diferentes algoritmos de encriptación. Aunque el algoritmo AES con modo CBC es el predeterminado, tú puedes elegir el que mejor se adapte a tus necesidades (Blowfish en modo CBC). Para encriptar y desencriptar, necesitarás una clave de encriptación que deberás definir como una propiedad del sistema o variable de entorno.

 

Además, puedes tener una configuración segura para cada archivo de propiedades encriptado, lo que te permite tener múltiples archivos, cada uno con su propio método de encriptación, si es necesario.

Generando la clave de encriptación:

Para generar tus claves de encriptación, puedes utilizar herramientas como la librería secure-properties-tool.jar. Es indispensable que te apoyes en la documentación de MuleSoft para entender cómo realizar estas encriptaciones correctamente. Y si estás trabajando en CloudHub, hay un servicio que te permite encriptar propiedades directamente sin necesidad de descargar ninguna librería.

Una vez encriptado, en el archivo de properties se indicará de la siguiente forma,   property: ![password_encriptado].

Instrucción de encriptación.

java -cp secure-properties-tool.jar com.mulesoft.tools.SecurePropertiesTool string encrypt Blowfish CBC keySecret 1234

Si quieres ahorrarte descargar la librería, puedes utilizar la aplicación que hay desplegada en Cloudhub y es de uso publico en el siguiente enlace.

 

Acceso a Propiedades Seguras:

Para acceder a los valores encriptados, utilizarás un prefijo especial secure:: en tus configuraciones. Por ejemplo, para obtener la contraseña de la base de datos encriptada, deberás usar ${secure::db.password} en la configuración de la conexión. Igualmente, esto es una tarea para los Developers, aunque nunca está de más saberlo.

 

Ocultamiento de Propiedades en CloudHub

CloudHub te ofrece una forma de «ocultar» propiedades de la aplicación durante el despliegue. Los valores se almacenan en la base de datos de propiedades del CloudHub y nunca se muestran en la interfaz de usuario del Runtime Manager. Esto es esencial para mantener la seguridad, incluso si alguien obtiene acceso a tu consola de administración.

 

Configuración de la Clave de Seguridad:

En entornos locales (On-Premise), puedes establecer tu clave de encriptación como una propiedad del sistema Java o como una variable de entorno del sistema operativo. También tienes la opción de configurarla en el archivo wrapper.conf de Mule.

En CloudHub, definirás la clave de encriptación en la pestaña de propiedades del Runtime Manager. Lo más recomendable es configurar esta clave directamente desde la consola del Runtime Manager y ocultarla utilizando la lista secureProperties en el archivo mule-artifact.json, asegurándote de que las claves no sean visibles durante el proceso de despliegue.

Protección de Datos en Tránsito

MuleSoft te ofrece herramientas para proteger tus datos mientras se transmiten. Mediante el uso de protocolos como HTTPS, SSL y TLS, puedes garantizar que los datos viajen cifrados por la red. El módulo de seguridad Anypoint Edge también puede proteger los datos en tránsito.

Para añadir un nivel extra de seguridad dentro de la propia aplicación Mule, puedes utilizar el módulo de criptografía de Mule para encriptar y desencriptar datos. Este módulo te permite trabajar con encriptación simétrica o asimétrica, así como realizar la firma y validación de firmas de tus mensajes.

 

Módulo de Criptografía:

El módulo Crypto de Mule es una herramienta poderosa que sigue la arquitectura criptográfica de Java (Java Cryptography Architecture – JCA), y admite extensiones de criptografía de Java (JCE), PGP y XML. Y si necesitas realizar transformaciones de datos, DataWeave incluye un módulo cripto que permite aplicar funciones de hash directamente en tus scripts.

 

Conclusión

Como arquitecto MuleSoft, cuentas con una variedad de herramientas y módulos diseñados para asegurar las propiedades de configuración y los datos, tanto en reposo como en tránsito. Es tu responsabilidad implementar estas prácticas de seguridad y asegurarte de que tu equipo las comprenda y las lleve a cabo. La seguridad no es un aspecto opcional en el desarrollo de aplicaciones y APIs, es fundamental, y con estos recursos, tienes todo lo necesario para mantener seguras y protegidas tus aplicaciones.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *