### Colisiones en hashes de commits firmados de Git: Nueva investigación revela un riesgo crítico para la integridad del software
#### 1. Introducción
Un reciente avance en el ámbito de la ciberseguridad ha puesto en entredicho uno de los pilares de la confianza en los sistemas de control de versiones: la unicidad de los hashes en los commits firmados de Git. Investigadores han demostrado que es posible generar dos commits distintos —con el mismo contenido, autor y fecha— y obtener firmas válidas que pasan como “Verified” en plataformas como GitHub, aunque los hashes de los commits no coincidan. Este hallazgo cuestiona la fiabilidad de la integridad referencial en entornos de desarrollo colaborativo y plantea serias dudas sobre los mecanismos actuales de verificación en la cadena de suministro software.
#### 2. Contexto del Incidente o Vulnerabilidad
Git, uno de los sistemas de control de versiones más adoptados a nivel mundial, utiliza hashes SHA-1 para identificar de manera única cada commit. Cuando un desarrollador firma un commit, se espera que la firma criptográfica, junto con el hash, garantice tanto la autenticidad como la unicidad del contenido y su autoría. Sin embargo, la investigación demuestra que esta suposición ya no es válida: un actor malicioso puede forjar un commit alternativo que replica exactamente los metadatos y el contenido de uno legítimo, pero cuya firma sigue apareciendo como válida y verificada, mientras el hash subyacente difiere.
Este escenario resulta especialmente relevante en proyectos Open Source y corporativos que dependen de la trazabilidad e inmutabilidad del historial de cambios para cumplir con normativas, auditorías y requisitos de seguridad.
#### 3. Detalles Técnicos
El núcleo de la vulnerabilidad reside en la forma en la que Git calcula los hashes de los commits y cómo las firmas GPG se aplican sobre ellos. Específicamente:
– **Algoritmo de Hashing:** Git emplea SHA-1 para la generación de identificadores de commits. Aunque SHA-1 ha sido considerado inseguro desde 2017 tras el anuncio de la primera colisión práctica, su uso persiste en numerosos repositorios.
– **Proceso de Firmado:** La firma GPG se realiza sobre los metadatos del commit. Sin embargo, no existe una relación estrictamente unívoca entre el hash y la firma; sólo se exige que el contenido firmado coincida.
– **Ataque de Colisión:** Mediante técnicas de preimagen y colisión en SHA-1, un atacante puede crear un segundo commit cuyo contenido, autor, fecha y firma coinciden con el original, aunque el hash no sea idéntico.
– **TTPs (MITRE ATT&CK):** Este vector de ataque se corresponde con la táctica TA0040 (Manipulación de la cadena de suministro) y la técnica T1608.002 (Upload Malicious File: Software Deployment Tools).
– **IoCs:** Repositorios con commits firmados cuyo hash difiere del original pero mantiene la validez de la firma pueden considerarse indicadores de compromiso.
Herramientas como **shattered** y frameworks de explotación como **Metasploit** pueden facilitar la generación de colisiones en SHA-1. Aunque Git anunció en 2022 el soporte experimental para SHA-256, la migración masiva aún no se ha materializado en la mayoría de organizaciones.
#### 4. Impacto y Riesgos
El riesgo principal radica en la pérdida de confianza en la inmutabilidad y trazabilidad de los commits firmados. Algunas de las consecuencias más relevantes son:
– **Suplantación de Autoría:** Un atacante podría introducir código malicioso aparentando ser el autor legítimo.
– **Evasión de Auditorías:** Cambios no autorizados podrían pasar desapercibidos durante auditorías de cumplimiento, afectando normativas como **GDPR** o **NIS2**.
– **Cadena de Suministro:** Repositorios y dependencias pueden ser contaminados con código alterado sin que los mecanismos actuales de verificación lo detecten.
– **Impacto Económico:** Según estudios de Forrester y Ponemon, el coste medio de un incidente de cadena de suministro supera los 4 millones de dólares.
#### 5. Medidas de Mitigación y Recomendaciones
Para mitigar este riesgo, se recomiendan las siguientes acciones:
– **Migración a SHA-256:** Adoptar versiones recientes de Git que permitan el uso de SHA-256 para la generación de hashes de commits.
– **Verificación Extendida:** Implementar herramientas que, además de la firma, validen el hash del commit original.
– **Auditoría Continua:** Revisar periódicamente el historial de commits en busca de posibles colisiones o inconsistencias.
– **Limitación de Acceso:** Restringir el acceso de escritura a los repositorios críticos y reforzar los controles de autenticación.
– **Actualización de Políticas:** Adaptar las políticas de seguridad y cumplimiento a la nueva realidad, incluyendo la verificación cruzada de hashes y firmas.
#### 6. Opinión de Expertos
Expertos en ciberseguridad, como Matthew Green (Johns Hopkins University), advierten que “la confianza ciega en los hashes de Git como identificadores únicos ya no es válida. El ecosistema debe acelerar la transición a algoritmos resistentes a colisiones y fortalecer la verificación de firmas”. Por su parte, organizaciones como CNCF y OWASP recomiendan una revisión urgente de las dependencias software y la adopción de controles adicionales de integridad.
#### 7. Implicaciones para Empresas y Usuarios
Empresas sujetas a normativas como **GDPR** y **NIS2** deben revisar sus procedimientos de control de cambios y demostrar la integridad de los mismos ante auditorías. Los equipos de desarrollo y DevSecOps han de actualizar sus pipelines CI/CD para incorporar verificaciones de integridad adicionales. El sector de software libre también debe fortalecer sus procesos de revisión y firma para evitar la contaminación de repositorios y paquetes.
#### 8. Conclusiones
El descubrimiento de la vulnerabilidad en la unicidad de los commits firmados de Git supone un punto de inflexión en la gestión de la integridad software. La comunidad y las empresas deben reaccionar de forma proactiva, adoptando algoritmos robustos y mejorando los mecanismos de verificación para asegurar la confianza en la cadena de suministro digital.
(Fuente: feeds.feedburner.com)
