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.





