git log - git stash - git rebase - git filter-repo

Għaliex git log Xorta Juri s-Sigrieti Tiegħek: Git Commit L-Istorja Qatt Ma Tinsa

Għaliex git log jikxef sigrieti anke wara li jkunu "mħassra"

It-tħassir ta' linja minn fajl u commitIt-twassil tal-bidla fil-fatt ma jneħħix id-dejta sensittiva mir-repożitorju tiegħek. Jekk dak is-sigriet, ċavetta tal-API, kredenzjali, jew token, qatt kien committed, jgħix fl-istorja tal-Git tiegħek. Kull min ikun qed iħaddem git log -p, wirja git, jew l-ispezzjoni ta' differenzi mill-passat commits xorta jistgħu jirkuprawha.

Anke jekk tikteb fuq fajl jew tissostitwixxi l-valur, gitlog jippreserva l-linja sħiħa ta' kull bidla. Dan huwa intenzjonat. Il-mudell kollu ta' Git huwa bbażat fuq immutabbli commit storja u kopji mqassma. Għalhekk sakemm ma terġax tikteb l-istorja b'mod espliċitu, is-sigrieti tiegħek xorta jibqgħu hemm. Hawn każ prattiku:

⚠️ Eżempju edukattiv, m'għandekx taħdem fil-produzzjoni

Tard wisq. L- gitlog xorta juri dik iċ-ċavetta fl-inizjali commit.

Kunċetti żbaljati Dwar git stash u git rebase

Ħafna żviluppaturi jassumu git stash jgħin biex jaħbi jew inaddaf sigrieti. Mhux veru. git stash xkafef biss direttorju tax-xogħol jinbidel temporanjament; qatt ma jmiss commit storja. Jekk qatt kien hemm sigriet committed, il-ħażna tal-bidliet wara ma tagħmel xejn biex inaddfu.

Xi ngħidu dwar git rebaseFilwaqt li jista' jerġa' jikteb l-istorja, dan irid isir minn qabelcisEly. Sempliċement niġri git rebase -i u l-ordni mill-ġdid jew it-tgħaffiġ commits ma jneħħix sigrieti sakemm ma teditjahomx jew twaqqagħhom b'mod espliċitu. U jekk teżisti anke klonu jew furketta waħda bl-oriġinali commits, is-sigriet tiegħek għadu jgħix.

Agħar minn hekk, ir-rebase mingħajr ma jiġi force-push b'mod korrett jew ir-rikordinazzjoni mal-kollaboraturi tista' terġa' tintroduċi l-kredenzjali esposti permezz ta' merges.

⚠️ Eżempju edukattiv, tużax f'ambjenti reali

⚠️ Eżempju edukattiv, m'għandekx taħdem fuq repożitorji ta' produzzjoni

Editja commit li fih is-sigriet, imma tinsa tneħħih. Tiegħek gitlog jista tfittex aktar nadif, iżda l-kontenut sensittiv xorta jista' jiġi rkuprat.

Riskji tad-Dinja Reali minn Kredenzjali Minsija fl-Istorja tal-Git

Dan mhux teoretiku. L-attakkanti jiskennjaw b'mod attiv repożitorji pubbliċi u privati ​​għal sigrieti moħbija fihom commit storiji. Forks tal-GitHub, repositorji mera, u cached CI/CD pipelines kollha jistgħu jospitaw dawk it-tokens minsija.

  • Ċavetta tal-API li nxterdet minn waħda antika gitlog wassal għal eluf f'kontijiet tal-cloud għal startup waħda.
  • Tokens tal-OAuth committed, imbagħad “deleted”, intużaw biex jaħtfu l-kontijiet tal-utenti.
  • Sigrieti midfuna fil-fond fil-forks ta' proġetti open source wasslu għal inċidenti kbar ta' sigurtà.

Dawn il-problemi jiżdiedu CI/CDKull xogħol li jikklona repo jaħdem gitlog taħt il-kappa, u kull artefatt tal-bini jista' potenzjalment jinkludi traċċi ta' sigrieti esposti.

Tindif ta' Dejta Sensittiva b'git filter-repo

Jekk il-ħsara tkun saret, l-aktar għodda affidabbli biex tnaddafha hija git filter-repo. B'differenza git rebase, li jerġa' jikteb individwali commits, git filter-repo jista' jerġa' jikteb kollox commit storja bbażata fuq mogħdijiet tal-fajls, mudelli, jew kontenut.

Eżempju: biex tneħħi l-okkorrenzi kollha ta' config.json li jista’ jkun fih sigrieti:

⚠️ Eżempju edukattiv, ivverifika f'repożitorju tat-test qabel ma tużah fil-produzzjoni

Jew biex tneħħi kollox commits li jinkludu string speċifika (eż., AWS_SECRET_ACCESS_KEY):

⚠️ Eżempju edukattiv, ivverifika f'repożitorju tat-test qabel ma tużah fil-produzzjoni

Oqgħod attent: Dan se jerġa' jinkiteb commit hashes. Ikollok bżonn tagħmel force-push u tinforma lill-kollaboraturi kollha. Kwalunkwe ċwievet ta' awtomazzjoni jew ta' skjerament marbuta ma' commit Il-hashes se jinkisru.

Ukoll, għodod simili BFG Repo-Cleaner joffru kapaċitajiet simili iżda huma inqas flessibbli u issa huma kkunsidrati skaduti għal każijiet kumplessi.

Il-Prevenzjoni ta' Tnixxijiet Sigrieti Qabel Ma Jaslu għand Git

Il-prevenzjoni tegħleb it-tindif. Ara kif twaqqaf is-sigrieti milli qatt jidhru gitlog:

1. Pre-commit Hooks

Uża għodod bħalhom pre-commit, gitleaks, Jew Talisman biex jiskennja għal sigrieti qabel commits:

2. CI/CD Pipeline Infurzar

tintegra skoperta sigrieta fix-xogħlijiet tas-CI tiegħek. Il-bini ta' fallimenti meta jinstabu sigrieti. Agħmel dan politika.

3. Ġestjoni tas-Sigrieti

Qatt ma tagħmel hardcode tal-kredenzjali. Uża varjabbli tal-ambjent, vaults, jew secret managers mill-ewwel jum.

4. Dipendenzi tal-Awditjar

Tafdax pakketti ta' partijiet terzi bl-addoċċ. Is-sigrieti jistgħu joħorġu permezz ta' saffi npm, PyPI, jew Docker.

Soluzzjoni Finali: Scrub Secrets b'git filter-repo

It-tħassir tas-sigrieti mill-kodiċi mhux biżżejjed. gitlog iżomm rekord sħiħ sakemm ma tieħux azzjoni intenzjonata biex terġa' tikteb l-istorja. Tiddependix fuq git stash jew nofs moħmi git rebase tentattivi. Uża git filter-repo meta jkollok bżonn tindif fil-fond, u infurza l-politiki u l-iskennjar qabel ma s-sigrieti jaslu fir-repożitorju tiegħek fl-ewwel lok.

Għal skoperta proattiva ta' sigrieti, ikkunsidra li tuża għodod bħal Xygeni biex tiżgura tiegħek pipelines, infurza commit iġjene, u jipprevjenu tnixxijiet għaljin qabel ma joħorġu fil-wiċċ. Git qatt ma jinsa, imma tista' tiżgura ruħek li qatt ma jiftakar is-sigrieti tiegħek fl-ewwel lok.

sca-tools-software-composition-analysis-tools
Prijoritizza, irranġa, u assigura r-riskji tas-softwer tiegħek
Ikseb il-Kont B'Xejn tiegħek.
Mhix meħtieġa karta ta 'kreditu.

Assigura l-Iżvilupp u l-Kunsinna tas-Softwer tiegħek

bis-Suite tal-Prodotti Xygeni