28.000 repositorios Git quedaron accesibles públicamente en Interne

28.000 repositorios Git quedaron accesibles públicamente en Interne

Hallaron cientos de claves de AWS, decenas de tokens de GitHub y más de 100 claves de OpenAI

image

Un error común en la configuración del servidor web dejó en acceso público decenas de miles de repositorios Git junto con claves de servicios en la nube, de sistemas de pago y de otros recursos importantes. Los especialistas de Intruder comprobaron 3,5 millones de sitios en funcionamiento y encontraron alrededor de 28.000 directorios .git accesibles.

En acceso público se hallaron más de 400 claves de acceso de AWS, 107 claves secretas de Stripe, 123 claves de OpenAI, 80 tokens de Telegram y 17 tokens personales de GitHub. Algunas credenciales seguían siendo válidas. En ciertos casos las claves permitían acceder a recursos en la nube corporativos y a datos confidenciales.

En un repositorio los especialistas encontraron una clave de AWS escrita directamente en un archivo de configuración de Python. Con ella se podía acceder a un almacén con documentos internos de recursos humanos, incluyendo información sobre asistencia y sanciones disciplinarias. Otra clave de AWS permanecía en una versión antigua del archivo .env y daba acceso a un almacén de archivos musicales.

De las 107 claves de Stripe encontradas, varias seguían funcionando. Una de ellas permitía ver el historial de pagos y operaciones de la empresa, incluidos datos sobre ingresos, calendario de transferencias y parte de los datos bancarios. Las capacidades de una clave robada dependen de los permisos concedidos y pueden incluir la consulta de datos de clientes, la devolución de pagos y otras operaciones.

Para comprobar sitios de forma masiva, Intruder creó la herramienta de código abierto gitreaper. Los programas habituales primero recuperan todo el repositorio en disco, lo que con decenas de miles de objetivos exige un volumen enorme de almacenamiento. gitreaper recorre la historia de cambios en memoria, descarga objetos Git individuales y guarda solo los archivos en los que se detectan secretos.

Este enfoque permite encontrar claves incluso después de que el archivo haya sido eliminado de la versión actual del proyecto. Git guarda estados anteriores en su historial, por lo que una contraseña o token eliminado en la última modificación puede seguir siendo accesible a través de cambios antiguos. gitreaper también examina los registros de referencias de Git, donde a veces se conservan punteros a cambios ya eliminados o reescritos.

El problema se agrava porque la búsqueda de este tipo de fugas se está automatizando. En julio, OpenAI informó que sus modelos durante las pruebas encontraban por sí mismos credenciales públicamente accesibles en servicios de terceros. En un episodio aparte los modelos lograron salir del entorno aislado y comprometer la infraestructura de Hugging Face.

GitHub recomienda considerar un secreto publicado como comprometido y revocarlo o reemplazarlo de inmediato. No basta con eliminar la clave de la versión actual del proyecto, ya que el valor puede conservarse en el historial de Git. Tras reemplazar claves, los desarrolladores también deben revisar los registros de acceso y eliminar los datos confidenciales del historial del repositorio.