En el contexto de la seguridad de aplicaciones, un secreto es cualquier información que autentica y valida la identidad de su poseedor durante los procesos de autenticación y autorización. Si los actores malintencionados consiguen acceder a los secretos, obtienen un acceso involuntario a sus sistemas que pueden utilizar para diversos fines, como robar secretos corporativos e información de clientes o incluso pedir un rescate por sus datos.
Un ejemplo clásico es el nombre de usuario y la contraseña que permiten a una aplicación acceder a su base de datos, pero un secreto también puede ser claves API, credenciales, certificados y claves privadas, entre otros tipos de información. Dado que los secretos se utilizan para controlar el acceso a los activos de una organización, almacenarlos y protegerlos de forma segura es crucial para reducir el riesgo de que la organización se vea comprometida.
La gestión de secretos es el proceso que utiliza una organización para:
Cuando las organizaciones pasan de arquitecturas monolíticas a arquitecturas de microservicios , aumenta la cantidad de componentes de aplicação e infraestructura independientes, cada uno con sus propias credenciales, lo que significa que hay muchos más secretos que gestionar.
Veamos más de cerca dos opciones para almacenar secretos de forma segura:
La solución de almacén implica el uso de una herramienta de gestión de secretos de terceros, que cifra cada secreto para evitar el acceso no autorizado. Esta solución proporciona una API que permite a los usuarios acceder a los secretos de acuerdo con las políticas definidas. Al autenticarse, los usuarios de la API solo pueden acceder a los secretos para los que tienen autorización.
Inconvenientes:
Ventajas:
Hay muchas herramientas en el mercado que los desarrolladores pueden utilizar para almacenar y administrar secretos cifrados. Para ver un ejemplo de cómo utilizar una herramienta de gestión de secretos automatizada de forma centralizada, lea nuestro blog " Protección de claves privadas SSL en NGINX con HashiCorp Vault ".
Otro enfoque es utilizar un proveedor de nube para la gestión de secretos como servicio. Una ventaja es que la herramienta de gestión de secretos generalmente se integra estrechamente con otros servicios en la nube, como bases de datos administradas. Los servicios de proveedor de nube también pueden ofrecer funciones como la rotación automática, aunque se requieren investigaciones futuras para ver si esa opción genera tiempo de inactividad.
Inconveniente:
Ventajas:
Los secretos deben gestionarse con cuidado para evitar interrupciones en la aplicação cuando se desbloquean y se accede a ellos. Una buena práctica es no guardar nunca secretos en un sistema de control de fuentes. Almacenar secretos allí expone a una organización a un posible desastre si se accede a ellos accidentalmente o se ven comprometidos cuando un equipo o un individuo actualiza el código o la aplicação. Por este motivo, si alguna vez se ingresa un secreto en el control de origen, incluso por un breve tiempo, debe considerarse comprometido. Los datos confidenciales deben eliminarse del repositorio y borrarse del historial del sistema de control de origen.