Según los investigadores de Orca, es una práctica común almacenar las credenciales necesarias para que estos comandos se ejecuten correctamente en variables de entorno en los entornos de línea de comandos de Linux utilizados por estas CLI. El problema es que algunos de los comandos CLI de AWS y Gcloud también devuelven estas variables de entorno a la salida estándar (salida estándar en sistemas Unix) como parte de la ejecución del comando.
Para AWS CLI, Lambda get-function-configuration, get-function, update-function-configuration, update-function-code y Publish-version exhiben este comportamiento. Lambda es la plataforma informática sin servidor de AWS que permite a los desarrolladores ejecutar código y aplicaciones directamente sin aprovisionar servidores virtuales. Para la CLI de Gcloud, las funciones de gcloud implementan
«Si el desarrollador no es consciente de ello, ni siquiera el uso de enmascaramiento secreto a través de GitHub Actions / Cloudbuild es suficiente, porque puede haber variables de entorno preexistentes en la función de la nube», dijeron los investigadores.
Mitigación para evitar la filtración de secretos
AWS actualizará su documentación para que los riesgos sean más claros para los usuarios. La compañía aconseja a los clientes que no almacenen valores confidenciales en variables de entorno y, en su lugar, utilicen el almacén de secretos seguro especialmente diseñado, como AWS Secrets Manager. También se recomienda a los usuarios que revisen sus registros de compilación para asegurarse de que no contengan secretos y que supriman las salidas de comandos confidenciales dirigiéndolas a /dev/null. El acceso a los registros de compilación también debe restringirse únicamente a los usuarios que necesiten tenerlo.
Google Cloud tenía recomendaciones similares, según los investigadores de Orca. La compañía señaló que la salida del comando se puede suprimir usando el indicador “–no-user-output-enabled” y que los secretos se pueden almacenar de forma segura usando el “comando de implementación de gcloud” con “–set-secrets” y “–update -Secretos” opciones.