Skip to main content

Riesgos de pérdida de secretos

Los secretos como las claves de API, las contraseñas y los tokens confirmados en los repositorios se pueden aprovechar mediante usuarios no autorizados, lo que crea seguridad, cumplimiento y riesgo financiero para su organización.

¿Qué son los secretos?

Los secretos son credenciales que conceden acceso a datos y sistemas confidenciales. Algunos ejemplos comunes son:

  • Claves de API y tokens usados para autenticarse con servicios externos
  • Contraseñas de base de datos y cadenas de conexión
  • Credenciales del proveedor de nube y tokens de cuenta de servicio
  • Certificados y claves de cifrado

Cuando los secretos se confirman en repositorios, se convierten en credenciales codificadas de forma rígida que se insertan directamente en el código fuente o los archivos de configuración. Estos secretos hardcodeados forman parte del historial de Git y permanecen accesibles incluso después de haber sido eliminados del commit más reciente. Esto significa que abordar una fuga de credenciales requiere más que eliminar el archivo; también debe revocar y cambiarla para evitar el acceso no autorizado.

Cómo se exponen los secretos

          **La expansión de secretos** se produce cuando las credenciales proliferan entre repositorios, equipos y sistemas sin una administración o visibilidad centralizadas. Esto dificulta el seguimiento de los secretos que existen, dónde se usan y si se han expuesto. Los secretos suelen entrar en los repositorios a través de varios patrones comunes.

Flujos de trabajo de desarrollo

  • Credenciales codificadas agregadas durante las pruebas locales y comprometidas accidentalmente
  • Secretos en archivos de configuración como archivos .env o plantillas de infraestructura como código
  • Credenciales de ejemplo que contienen claves o tokens de API reales en la documentación, wikis o archivos README.

Administración de repositorios

  • Repositorios heredados que contienen credenciales olvidadas pero todavía activas
  • Secretos compartidos en GitHub incidencias, comentarios de pull requests, discusiones o gists
  • Credenciales introducidas por colaboradores externos o contratistas

Propagación del control de versiones

  • Los secretos se conservan en el historial de Git incluso después de la eliminación del código actual.
  • Las credenciales se propagan a repositorios bifurcados, sistemas de copia de seguridad y registros de CI/CD.
  • Los repositorios públicos con secretos expuestos se indexan mediante motores de búsqueda y servicios de análisis especializados.

Riesgos de seguridad

Los secretos expuestos pueden provocar varios tipos de incidentes de seguridad.

Acceso no autorizado

Las pérdidas de credenciales proporcionan a los usuarios no autorizados acceso directo a los sistemas. Una vez expuestos, los secretos codificados de forma codificada se pueden aprovechar para:

  • Aprovisionamiento de infraestructura o servicios en su cuenta mediante credenciales de proveedor de nube filtradas
  • Acceso a datos confidenciales de clientes u organizaciones a través de credenciales de base de datos en peligro
  • Acceder a los sistemas de producción mediante tokens de cuenta de servicio expuestos

Infracciones de datos

Las fugas de credenciales proporcionan a los usuarios no autorizados acceso directo a los sistemas, lo que conduce a infracciones de datos. Una vez que los atacantes obtienen acceso mediante credenciales expuestas, pueden filtrar datos confidenciales, modificar o eliminar información crítica y poner en peligro la confianza del cliente. Las infracciones de datos requieren una respuesta a incidentes inmediata, incluida la revocación de credenciales, la corrección del sistema y la evaluación del ámbito y el impacto de la infracción.

Ataques de cadena de suministro

Los tokens expuestos del registro de paquetes se pueden usar para publicar versiones maliciosas de su software, lo que afecta a los usuarios y organizaciones downstream que dependen de sus paquetes.

Impacto financiero

Los secretos expuestos pueden costar el dinero de su organización de varias maneras.

  • Facturas inesperadas en la nube: las claves de API filtradas permiten a los atacantes usar los recursos en la nube. Pueden ejecutar instancias de computación, almacenar datos o extraer criptomonedas en su cuenta, generando facturas elevadas.
  • Respuesta a incidentes: la investigación de infracciones, la rotación de credenciales y los sistemas de auditoría tardan mucho tiempo y recursos en la ingeniería.
  • Costos legales: las infracciones de datos pueden dar lugar a multas, honorarios legales y gastos de notificación.
  • Daño a largo plazo: clientes perdidos, mayores costos de seguros y oportunidades de negocio perdidas después de que los incidentes de seguridad se conviertan en públicos.

Seguridad secreta con GitHub

          GitHub proporciona herramientas para ayudarle a evitar, detectar y corregir la pérdida de secretos:

1. Impedir que se confirmen nuevos secretos

Habilite protección Push para examinar el código durante las git push operaciones y bloquear las confirmaciones que contienen secretos detectados antes de entrar en su repositorio. Esto evita que las credenciales codificadas de forma rígida se agreguen al código base y proporcione comentarios en tiempo real a los desarrolladores en el momento de riesgo, que abarcan tanto patrones de proveedor para servicios conocidos como patrones que no son de proveedor, como claves privadas y claves de API genéricas.

Anime a los desarrolladores individuales a habilitar la protección de envío para sus cuentas personales, para proteger todos sus envíos en GitHub, independientemente de las políticas de la organización. Esto ayuda a evitar la expansión de secretos detectando credenciales filtradas antes de llegar a los repositorios.

2. Detección de secretos existentes

Use secret scanning para supervisar continuamente los repositorios de secretos codificados de forma permanente y generar alertas cuando se detecten credenciales, lo que le permite revocar y rotar las credenciales en peligro rápidamente. Más allá de la detección predeterminada de patrones de proveedor, puede expandir el examen a patrones que no son de proveedor y definir patrones personalizados para secretos específicos de la organización. Esto le ayuda a obtener visibilidad de la dispersión de secretos en toda su organización.

Pasos siguientes

Para proteger a su organización frente a la pérdida de secretos:

  1. Habilite la protección de inserción para evitar que se confirmen nuevos secretos.
  2. Habilite secret scanning para empezar a detectar fugas de secretos existentes.
  3. Establezca prácticas seguras de administración de credenciales para los equipos de desarrollo.