En el corazón de cada aplicación hay secretos. Credenciales que permiten la comunicación entre humanos y máquinas y entre máquinas. Las identidades de las máquinas superan en número a las identidades humanas en un factor de 45 a 1 y representan la mayoría de los secretos de los que debemos preocuparnos. Según la investigación reciente de CyberArk, el 93 % de las organizaciones tuvieron dos o más violaciones relacionadas con la identidad en el último año. Está claro que debemos abordar este creciente problema. Además, está claro que muchas organizaciones están de acuerdo con el uso de credenciales de texto sin formato para estas identidades en repositorios privados, pensando que seguirán siendo privadas. Sin embargo, la mala higiene en el código privado conduce a filtraciones públicas, como vemos en las noticias con demasiada frecuencia. Dado el alcance del problema, ¿qué podemos hacer? Lo que realmente necesitamos es un cambio en nuestros procesos, especialmente en torno a la creación, el almacenamiento y el trabajo con identidades de máquinas. Afortunadamente, existe un camino claro a seguir, que combina las soluciones de gestión de secretos existentes y las herramientas de detección y remediación de secretos, todo ello al tiempo que se atiende a los desarrolladores donde se encuentren. Elaboración de un plan de seguridad de secretos de extremo a extremo Cuando pensamos en solucionar el problema de identidad de la máquina, también conocido como proliferación de secretos, podemos resumir el problema en un par de oraciones. «Tenemos una cantidad desconocida de secretos válidos de texto simple de larga duración distribuidos en nuestro código, configuraciones, canales de integración continua, sistemas de gestión de proyectos y otras fuentes, que no podemos contabilizar, y sin una estrategia de rotación coherente. Mientras tanto, los desarrolladores siguen trabajando con secretos en texto simple, ya que es una forma confiable, aunque problemática, de hacer que la aplicación funcione». Al pensar en esta definición práctica, podemos elaborar un plan de varios pasos para abordar cada inquietud. Detección de secretos: busque en el código y los sistemas involucrados en el ciclo de vida del desarrollo de software para identificar las credenciales de texto simple existentes, recopilando la mayor cantidad de información posible sobre cada una. Gestión de secretos: contabilización de todos los secretos conocidos a través de una plataforma de bóveda centralizada. Flujos de trabajo de desarrolladores: ajuste los procesos y las herramientas para facilitar la creación, el almacenamiento y la invocación de secretos de forma segura. Escaneo de secretos: monitoreo continuo de nuevos secretos que se agreguen en texto simple. Rotación automática: el reemplazo regular de secretos válidos acorta su posible explotación por parte de actores maliciosos. Puede realizar este viaje paso a paso, tratándolo como una implementación por fases. Antes de que se dé cuenta, estará mucho más cerca de eliminar la proliferación de secretos y proteger todas las identidades de sus máquinas. Encontrar sus secretos El primer problema que encuentra todo equipo cuando intenta controlar la proliferación de secretos es determinar qué secretos tienen. Un esfuerzo de búsqueda manual para rastrear secretos desconocidos abrumaría rápidamente a cualquier equipo, pero afortunadamente, existen herramientas de escaneo de secretos, como GitGuardian, que pueden automatizar este proceso y brindar información sobre detalles críticos. Desde una plataforma estable, debe proporcionar una ruta de comunicación para trabajar con los desarrolladores para la remediación. Implementar una bóveda de secretos centralizada Un aspecto central de cualquier buena estrategia de administración de secretos es administrar cómo se almacenan y utilizan los secretos. Las bóvedas empresariales le permiten contabilizar de manera transparente todos los secretos conocidos, cifrándolos en reposo y en tránsito. Una buena solución de bóveda, que incluye Conjure de Cyberark y Hashicorp Vault Enterprise. Si toda su infraestructura es del mismo proveedor, como AWS o GCP, también son muy buenas opciones. Asegurar el flujo de trabajo del desarrollador La gestión de secretos históricamente se ha dejado en manos de los desarrolladores para que la descubran, lo que lleva a una amplia variedad de soluciones como archivos `.env` y, lamentablemente, la codificación rígida de secretos en la base de código. Aprovechar una solución de bóveda centralizada les brinda a los desarrolladores una forma consistente de invocar de manera segura las credenciales de sus aplicaciones en todos los entornos. Si puede ofrecer un enfoque estandarizado que sea tan fácil de implementar como lo que están haciendo actualmente, encontrará que muchos desarrolladores aprovecharán la oportunidad de garantizar que sus implementaciones no se bloqueen debido a este problema de seguridad. También querrá considerar desplazarse a la izquierda. Las herramientas de línea de comandos, como ggshield, permiten a los desarrolladores agregar ganchos Git automáticos para escanear las credenciales de texto sin formato antes de que se realice cualquier confirmación. Evitar que un secreto llegue a una confirmación significa que no hay incidentes con los que lidiar más tarde y solucionar el problema en el punto menos costoso del ciclo de vida del desarrollo de software. Escaneo de secretos en cada interacción compartida También necesitas una forma de tener en cuenta la realidad de que a veces ocurren accidentes. Se necesita un monitoreo continuo para observar cualquier problema nuevo que surja de desarrolladores existentes que cometan un error o cuando se contratan nuevos equipos o subcontratistas que simplemente aún no conocen tus procesos. Al igual que cuando se realiza la detección de secretos por primera vez, usar una plataforma que reúne la información en un incidente coherente te ayudará a responder rápidamente a estos nuevos problemas. GitGuardian, por ejemplo, se integra a nivel de repositorio de código para capturar nuevas credenciales de texto sin formato en segundos, automáticamente en cada push o comentario. Las credenciales de corta duración deberían ser el objetivo de la rotación automática Si un atacante encuentra un secreto válido, eso hace que su trabajo sea mucho más simple, ya que puede desbloquear cualquier puerta que encuentre. Si ese mismo atacante encuentra un secreto inválido, no puede hacer mucho con él. Con una bóveda centralizada en su lugar, puedes poner en marcha planes de rotación automática. La mayoría de las plataformas y servicios modernos tienen una forma de generar nuevas credenciales a través de una llamada API y una forma de invalidar los secretos existentes. Con un poco de programación, siguiendo una de las muchas guías publicadas por plataformas como AWS o CyberArk, es posible automatizar el reemplazo seguro de cualquier credencial de forma regular, incluso diaria. La seguridad de secretos de extremo a extremo requiere un plan El mejor momento para abordar los problemas relacionados con la seguridad de secretos de extremo a extremo es ahora mismo. Si aún no tiene un plan de acción, hoy es el mejor momento para comenzar a tener esas conversaciones. Comience por hacerse preguntas como «¿Qué secretos tenemos?» o «¿Tiene una bóveda preparada?». En definitiva, debemos dotar a los desarrolladores de flujos de trabajo y barreras de seguridad que les permitan centrarse en su flujo de desarrollo. Mantenerse alerta para descubrir nuevos secretos y abordarlos de inmediato es un proceso continuo. Requerirá esfuerzo, incluida la concientización y la adopción de los procesos y las tecnologías adecuados, pero cualquier empresa puede controlar mejor las identidades y los secretos de las máquinas, de principio a fin, en toda la organización. ¿Le resultó interesante este artículo? Este artículo es una contribución de uno de nuestros valiosos socios. Síganos en Twitter  y LinkedIn para leer más contenido exclusivo que publicamos.