Skip to content

Voatosika tsy nahy .env Tsiambaratelo na lakilen'ny AWS amin'ny Repo GitHub ho an'ny daholobe: Nahoana no tsy manafina izany ny famafana ny rakitra

Tsy mitovy ny laharan'ny vonjy taitra arakaraka ny firenena. Ity pejy ity dia mampiasa 911, laharana ho an'i Etazonia sy Kanada. Firenena maro hafa no mampiasa 112, 999, na isa hafa. Tadiavo ny laharana ho an'ny firenenao.

Fahatsapana folo segondra aorian'ny fihazakazahana git push origin main (na mamadika tahiry manokana amin'ny Public) fa ny fanoloranao dia misy plaintext .env rakitra, AWS AKIA... Access Key sy Secret Key, OpenAI/Anthropic API key, Stripe sk_live_... marika famokarana, URI angona PostgreSQL/MongoDB misy tenimiafina, na tsy misy encryption $HOME/.ssh/id_ed25519 Ny fanalahidy manokana dia vonjy maika amin'ny cybersecurity dimy fanairana. Botnets mijinja fahazoan-dàlana mandeha ho azy dia manao fitsapan-kevitra ho an'ny daholobe GitHub Events Firehose (api.github.com/events) ary manao clone vao voatosika ao anatin'ny 1,5 ka hatramin'ny 4 segondra git push mamita. Ny ratsy kokoa, saika ny mpamorona rehetra mikoropaka dia manao fahadisoana mahafaty: mamafa ny .env rakitra eo an-toerana, ampio .env ho .gitignore, ary manosika commit faharoa mitondra ny lohateny hoe "remove .env" na "oops". ** Manosika commit faharoa izay mamafa .env tsy manafina na inona na inona**: ny tsiambaratelon'ny plaintext dia mijanona ho vakiana 100 isan-jato mandrakizay ao anatin'ny diff commit teo aloha (git log -p), ary na dia tosika aza ianao (git push --force) eo ambonin'ny sampana, ny fanoloran-tena tsy voatanisa (dangling blob) dia mijanona ho azon'ny besinimaro amin'ny alàlan'ny URL GitHub mivantana sy ny fomba fijery Pull Request voatahiry mandra-panadio azy. Raha toa ka efa nampiasain'ny mpanafika ny fahazoan-dàlana tafaporitsaka mba handefasana ransomware, hijack ny sehatra DNS-nao, na hanidy ny mpanofa rahonao, jereo ny torolalana mpiara-miasa aminay. valin'ny ransomware sy malware, fanodinkodinana ny anaran'ny sehatra, DNS lany daty, ary fandraisana an-tranonkala, ary Google Workspace na Microsoft 365 domain custom lockout. Raha misy fiatraikany amin'ny fiarovana ny marary amin'ny hopitaly, ny fanaraha-maso indostrialy ara-batana, na ny fotodrafitrasa fandefasana vonjy taitra, dia antsoy ny laharan'ny vonjy taitra eo an-toerana (911 any Etazonia sy Kanada, 112 manerana ny Vondrona Eoropeana, 999 any Royaume-Uni) na jereo ny lahatahiry iraisam-pirenena momba ny laharana vonjy maika.

Ataovy izao izao

  1. ** ATAOVY, ATAOVY, ATAOVY ny tsiambaratelo rehetra miharihary ao amin'ny console mpanome VOALOHANY - ao anatin'ny 120 segondra voalohany - alohan'ny handany segondra iray. git baiko**: Raha vao misy tsiambaratelo mikasika ny fitahirizana GitHub, GitLab, na Bitbucket ho an'ny besinimaro mandritra ny 3 segondra aza, Raiso ho may tanteraka io fanalahidy io ary efa eo am-pelatanan'ny mpanafika mandeha ho azy. Tsy misy isa git reset --hard, git push --force, na ny famafana ny fitehirizana dia afaka mamafa fanalahidy iray ao amin'ny angon-drakitra momba ny bots scraper izay efa nampidina ny commit anao tamin'ny faharoa #2. Midira ao amin'ny AWS IAM, Stripe, OpenAI, consoles database, na fika SSH GitHub dieny izao ary Alefaso / Delete / Roll ny lakile avy hatrany.
  2. Jereo ny faktioran'ny rahonao sy ny diarin'ny fanaraha-maso (AWS CloudTrail, GCP Cloud Audit Logs, Stripe Logs) ho an'ny varavarankely eo anelanelanao git push ary ny fanafoanana ny lakilenao: Niporitsaka ny fampiasana bots cryptomining mandeha ho azy AWS_ACCESS_KEY_ID (AKIA...(p4d.24xlarge / g5.48xlarge) manerana ny faritra AWS miafina rehetra (ap-east-1, me-south-1, af-south-1) ary mamorona backdoor IAM mpampiasa na Lambda fiompiana fikirizana mba hijanonana ao anatin'ny kaontinao AWS na dia efa nofafanao aza ilay fanalahidy tafaporitsaka.
  3. ** AZA manosika na dia iray segondra aza "Delete .env" manolo-tena - raha ny marina, fanoratana "delete secret" na "remove password" ao amin'ny hafatra commit dia manintona bots kikisana lasibatra**: scripts an'arivony mpisehatra fandrahonana no manontany manokana ny GitHub Search amin'ny hafatra commit misy "remove .env", "delete key", "oops", ary "remove credentials", dia tsindrio ny iray commit mihemotra amin'ny tantara raha hangalatra ny lakile.
  4. ** Avereno soratana eo an-toerana ny tantaran'ny fitahirizana Git manontolo git filter-repo (na BFG Repo-Cleaner) hanesorana ny rakitra na hanesorana ny tady tenimiafina avy amin'ny commit, hazo, ary tenifototra ara-tantara**: git filter-branch dia lany tamin'ny fomba ofisialy ny tetikasa Git; mampiasa git filter-repo --invert-paths --path .env (hamoaka rakitra avy amin'ny commit rehetra) na git filter-repo --replace-text expressions.txt (manoloana tady tenimiafina manokana amin'ny ***REMOVED*** ao anaty rakitra code nefa tsy mamafa ny rakitra).
  5. ** Manery ny sampana sy ny marika rehetra (git push origin --force --all), ARY diovy ny fijerin'ny commit commit amin'ny lafiny server-server (dangling commits)**: Ity ny tsiambaratelo tsy fantatry ny ankamaroan'ny mpamorona: na dia efa mihazakazaka aza ianao git filter-repo ary git push --force, Ny mpizara GitHub dia mitazona ny SHA commit taloha ho velona ao amin'ny cache zavatra (git cat-file), midika izany fa na iza na iza nanoratra ny 40-karakter commit SHA avy amin'ny Public Events API dia mbola afaka mijery github.com/user/repo/commit/<OLD_SHA>. Hazavainay eto ambany ny fomba fanadiovana avy hatrany ny cache commit mihantona amin'ny alàlan'ny GitHub Support / API na amin'ny famafana sy famerenana ny tahiry.
  6. ** Mametraka eo an-toerana pre-commit scanner miafina (gitleaks na trufflehog) anatiny .git/hooks/pre-commit alohan'ny hanoratanao andalana kaody hafa**: 10 segondra gitleaks protect --staged pre-commit hook dia mijery ny tsipika rehetra eo an-toerana amin'ny solosainao sy ny sakana git commit alohan'ny hivoahan'ny miafina iray ny milinanao.

Danger

** Raha namoaka AWS Key ianao (AKIA...), TSY ampy ny famafana an'io IAM Access Key tokana io - tsy maintsy manamarina ianao raha efa namorona mpampiasa IAM faharoa, Role, na vonjimaika ilay mpanafika. STS Session Token nandritra ny 60 segondra dia nivantana ny fanalahidy**: Rehefa misy bot automatique mahita lakile AWS miaraka amin'ny AdministratorAccess na iam:* fahazoan-dàlana amin'ny GitHub, ny antso API mandeha ho azy voalohany indrindra (ao anatin'ny 2 segondra). iam:CreateUser + iam:CreateAccessKey (na sts:GetSessionToken manankery mandritra ny 36 ora). Raha toa ka mamafa ny lakile tafaporitsaka amin'ny .env ary miverina matory, mitohy mandeha ny fanalahidin'ny backdoor vao noforonin'ilay mpanafika $15,000/day EC2 GPU clusters mandritra ny faran'ny herinandro. Araho avy hatrany ny 6-Point AWS Post-Leak Containment Checklist amin'ny dingana 2 etsy ambany.


Hazo fanapaha-kevitra: famehezana avy hatrany, fihodinana ary fanadiovana ny tantaran'ny Git

Ataovy amin'ny filaharan'ny vanim-potoana hentitra ity rindranasa ity (Esory ny FIRST -> Audit Persistence SECOND -> Purge Git History THIRD):

flowchart TD
    Start["Tsiambaratelo natosiky ny Public Repo (.env, AWS/GCP Key, DB Password, Stripe/OpenAI Key, na Private SSH Key)"] --> Step1["MINITRA 0 hatramin'ny 2 (Laharam-pahamehana #1): Esory / Ampidiro avy hatrany ny fanalahidy rehetra hita ao amin'ny Provider Console"]

    Step1 --> SecretType{"Karazana fahazoan-dàlana inona no tao anatin'ny Commit?"}

    SecretType -->|"Key Infrastructure Cloud (AWS AKIA, kaonty serivisy GCP JSON, Azure SP)"| CloudAudit["MINUTE 2 ka hatramin'ny 10: Jereo ny CloudTrail / Logs Activity -> Atsaharo ny Rogue EC2/Compute Instances any amin'ny Faritra Rehetra -> Famafana ireo mpampiasa IAM tsy nahazoana alalana/Role/STS Sessions"]

    SecretType -->|"Database URI / Password (Postgres, MySQL, MongoDB, Redis, Supabase)"| DBAudit["MINUTE 2 ka hatramin'ny 10: Atsipazo ny tenimiafina mpampiasa DB + Vonoy ny fifandraisana mavitrika (pg_terminate_backend) + Hidio ny vondrona fiarovana amin'ny Firewall amin'ny IP voafantina fotsiny"]

    SecretType -->|"API Token na SSH Key (Stripe, OpenAI, GitHub PAT, Slack, Private SSH Key)"| TokenAudit["MINUTE 2-10: Ampidiro ao amin'ny Dashboard ny lakilen'ny API / Esory ny lakile SSH ho an'ny daholobe ao amin'ny $HOME/.ssh/authorized_keys & Settings GitHub -> Fanamarinana ny Log fampiasana API vao haingana"]

    CloudAudit --> RepoVisibility{"MINUTE 10 hatramin'ny 20: Ahoana no tianao hanadio ny tahiry GitHub?"}
    DBAudit --> RepoVisibility
    TokenAudit --> RepoVisibility

    RepoVisibility -->|"Famafana Cache 100% haingana indrindra (Tsy misy olana manan-danja/ Tantara kintana tokony hotazonina)"| NukeRepo["1. Fafao ny Repository manontolo amin'ny Settings GitHub. 2. Manaova git filter-repo eo an-toerana mba hanadio ny tantara. 3. Mamorona tantara vaovao Repo & Push Clean (Manimba avy hatrany ny SHA Commit Cached rehetra)"]

    RepoVisibility -->|"Tsy maintsy mitahiry ireo kintana Repo efa misy, olana, PR, & Forks"| RewriteRepo["1. Manaova git filter-repo (--invert-paths na --replace-text). 2. Manaova git push --force --all & --tags. 3. Mifandraisa amin'ny GitHub Support / Support Portal mba hanadio Dangling Commit SHA Cache"]

Dingana 1: Minitra 0 hatramin'ny 2 - Taratasy fitaka fanafoanana avy hatrany avy amin'ny mpamatsy

Aza ** manokatra terminal hiadiana aminy git rebase raha mbola miasa ny fanalahidin'ny famokaranao. Kitiho mivantana amin'ny mpamatsy voakasika etsy ambany ary vonoy aloha ny fahazoan-dàlana:

Karazana fahazoan-dàlana tafaporitsaka Tovona / lamina ao amin'ny Codeo Hetsika fanafoanana sy fihodinana 30 segondra marina Manafoana azy ho azy ve ny GitHub (Secret Scanning Partner Program)?
1. AWS IAM Access Key AKIA... (Lalao IAM maharitra) na ASIA... (Falahidy STS vonjimaika) + Tsiambaratelo 40-char AWS Console -> IAM -> Users -> [Username] -> Security credentials tabilao -> Access keys -> Tsindrio Deactivate ary avy eo Delete. (Jereo koa raha ny AWS Compomized Key Quarantine Policy AWSCompromisedKeyQuarantineV2 dia efa nampifandraisin'ny AWS ho azy.) Mampandre ny AWS avy hatrany (AWS dia mandefa mailaka ho azy aminao, manokatra Raharaha Fanohanana Laharam-pahamehana, ary apetaka AWSCompromisedKeyQuarantineV2 ao anatin'ny minitra vitsy - manakana ny fandefasana EC2 - fa ** tsy maintsy mamafa ny lakile amin'ny tanana ianao**).
2. Google Cloud (GCP) Kaonty serivisy JSON na API Key private_key_id, BEGIN PRIVATE KEY ao anatiny *-credentials.json, na AIzaSy... Google Cloud Console -> IAM & Admin -> Service Accounts -> tsindrio Kaonty -> Keys tab -> Fafao ny ID Key tafaporitsaka. Fa AIzaSy... Fanalahidy API: APIs & Services -> Credentials -> Regenerate Key ary ferana ny lakile amin'ny alàlan'ny HTTP Referrer / IP. Eny/Alert: Google Cloud dia mampandre ho azy ny tompon'ny tetikasa ary afaka manafoana ny fanalahidin'ny kaonty GCP Service tafaporitsaka hita ao amin'ny GitHub ho an'ny daholobe.
3. Stripe Live Secret Key sk_live_... na rk_live_... (Lahy voafetra) ** Dashboard Stripe (dashboard.stripe.com/apikeys) -> Tsindrio ... eo akaikin'ny Key Secret -> Tsindrio Roll key... -> Mifidiana Expire now (Immediately)**. ENY (Nofoanana ho azy): Fampidiran'i Stripe amin'ny Fikarohana Tsiambaratelon'ny GitHub Mihodina/manafoana ho azy sk_live_ fanalahidy ao anatin'ny segondra amin'ny fanosehana ampahibemaso sy handefasana mailaka anao.
4. OpenAI / Anthropic / HuggingFace API Keys sk-proj-..., sk-ant-..., hf_... - OpenAI (platform.openai.com/api-keys): Kitiho avy hatrany ny kisary Fako eo akaikin'ny lakile (bots drain $500 amin'ny crédit GPT-4 / Claude ao anatin'ny 4 minitra.).
- Antropika (console.anthropic.com/settings/keys): Atsaharo/fafao ny lakile.
- Mamihina Face: Settings -> Access Tokens -> Invalidate.
ENY: mpiara-miasa amin'ny OpenAI, Anthropic, ary HuggingFace miaraka amin'ny GitHub Secret Scanning mba hanaisotra ho azy ireo fanalahidy hita ao amin'ny repos ampahibemaso, na dia tsy maintsy atao aza ny fanamarinana amin'ny tanana.
5. GitHub Personal Access Token (PAT) na OAuth / App Key ghp_..., github_pat_..., gho_..., ghs_... GitHub Settings -> Developer settings -> Personal access tokens -> Fafao ny marika. ENY (eo no ho eo): Manafoana ho azy ny GitHub ghp_ na github_pat_ mariho ny segondra vitsy dia atosiky ny tahiry GitHub ho an'ny daholobe.
6. Tady fifandraisana an-databatra (PostgreSQL, MongoDB Atlas, Supabase, PlanetScale, Redis) postgresql://user:pass@host..., mongodb+srv://..., SUPABASE_SERVICE_ROLE_KEY 1. Ahodina ny tenimiafina mpampiasa database ao amin'ny dashboard rahona (RDS, Atlas, Supabase, Neon).
2. Atsaharo ny fifandraisana TCP misokatra efa misy (SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid();) satria ny fanovana ny tenimiafina Postgres/MySQL dia tsy manakana ny mpanafika efa mifandray amin'ny socket mavitrika.
TSIA (TSY esorina ho azy ny URI Database Generic): Satria a postgresql:// na mongodb+srv:// Ny URL dia manondro anarana mpampiantrano mahazatra, GitHub dia tsy afaka manafoana ho azy ny tenimiafinao momba ny angon-drakitra - tsy maintsy manova azy amin'ny tanana ianao izao.
7. Key SSH manokana (id_rsa, id_ed25519, .pem EC2 Keypair) -----BEGIN OPENSSH PRIVATE KEY----- na -----BEGIN RSA PRIVATE KEY----- Ny fanalahidy SSH manokana dia TSY azo "tsy tafaporitsaka." Sokafy avy hatrany ny mpizara tsirairay $HOME/.ssh/authorized_keys rakitra (sy ny GitHub/GitLab Settings -> SSH and GPG keys pejy) ary fafao ny tsipika fanalahidin'ny daholobe mifanandrify. Ho an'ny AWS EC2 .pem fanalahidy, esory ny fanalahidin'ny daholobe amin'ny tranga EC2 rehetra $HOME/.ssh/authorized_keys. TSIA: Tsy afaka miditra amin'ny lohamilina Linux-nao ny GitHub raha hanova $HOME/.ssh/authorized_keys - tsy maintsy manaisotra ny fanalahidin'ny daholobe amin'ny mpizara kendrena rehetra ianao.

Dingana 2: Minitra 2 ka hatramin'ny 10 - Fanamarinana raha efa namorona varavarana ambadika ny mpanafika (AWS / Cloud Containment)

Raha tafaporitsaka ianao .env misy rakitra AWS Access Key (AKIA...), Kaonty Google Cloud Service JSON, na Azure Service Principal, ny famafana ny lakile tafaporitsaka dia antsasaky ny ady. Tsy maintsy manamarina ianao fa tsy nampiasa ireo 90 segondra ireo ny bot automatique mba hametrahana fikirizana ao anatin'ny kaontinao rahona:

Ny 6-Point AWS Post-Leak Forensic Audit

  1. Jereo AWS CloudTrail -> Event history ho an'ny antso API rehetra nataon'ireo tafaporitsaka Access Key ID:
  2. Sokafy ny AWS CloudTrail Console -> Tantaran'ny hetsika.
  3. Ovay ny fidinana fidinana avy amin'ny vakiana fotsiny ho Access key ID ary apetaho ilay tafaporitsaka AKIA... tady.
  4. Jereo ny hetsika rehetra voarakitra hatramin'ny minitra nihazakazakanao git push. Mitadiava manokana: CreateUser, CreateAccessKey, AttachUserPolicy, CreateRole, AssumeRole, GetSessionToken, RunInstances (EC2), RequestSpotInstances, CreateFunction (Lambda), na SendEmail (SES spam).
  5. ** Esory izay vonjimaika mavitrika STS sessions naterak'io mpampiasa io**:
  6. Na dia aorian'ny famafanao an AKIA... fanalahidy fidirana, raha niantso ilay mpanafika sts:GetSessionToken alohan'ny namafanao ny lakile, ny vonjimaika ASIA... Mbola manankery hatramin'ny 36 ora ny token'ny session.
  7. Mba hamono ny rehetra mavitrika vonjimaika STS famantarana ho an'io mpampiasa IAM io avy hatrany, mankanesa any IAM -> Users -> [Leaked User] -> Permissions -> Add inline policy ary tsindrio Revoke sessions (izay mipetaka mazava Deny * politika ho an'ny famantarana rehetra navoakan'ny toerana aws:TokenIssueTime aloha kokoa noho ny amin'izao fotoana izao.).
  8. Jereo IAM -> Users ary IAM -> Roles ho an'ny kaonty backdoor vao noforonina:
  9. Alaharo araka ny Fotoam-pamoronana ny Mpampiasa IAM rehetra. Fafao izay mpampiasa tsy mahazatra (admin-backup, sys-monitor, support-bot) ary manamarina ny Trust relationships kiheba eo amin'ny anjara toeran'ny IAM anao mba hahazoana antoka fa tsy nampidirin'ilay mpanafika ny ID kaonty AWS ivelany azy manokana ("Principal": {"AWS": "arn:aws:iam::999999999999:root"}) amin’ny maha tale azo itokisana azy.
  10. ** Ampiasao AWS Resource Explorerna EC2 Global View hijerena ny Faritra AWS 30+ REHETRA ho an'ny mpitrandraka crypto miafina**:
  11. Mahalana ny mpanafika no manomboka tranga cryptomining us-east-1 izay hahitanao azy ireo eo amin'ny dashboard anao. Izy ireo kosa dia manomboka p4d, g5, na c6i.32xlarge ohatra ao ap-southeast-3 (Jakarta), me-central-1 (UAE), il-central-1 (Tel Aviv), na sa-east-1 (São Paulo).
  12. misokatra EC2 Console -> EC2 Global View (izay mijery ny faritra rehetra azo ampiasaina ao anaty tabilao tokana) ary Atsaharo avy hatrany izay tranga tsy nahazoana alalana.
  13. ** Sokafy avy hatrany ny raharaha faktiora fanohanana AWS raha toa ka misy volavolan-dalàna ny tranga ratsy fanahy**:
  14. Raha nisy bot nivadika $8,000 amin'ny ohatra EC2 GPU alohan'ny hamarananao azy ireo, aza mikoropaka: rehefa voaro ny kaonty dia vonoy ny lakile, velomy ny root/IAM MFA, ary nesoriny ny lakile tao amin'ny GitHub, sokafy ny AWS Account and Billing Support Case manazava ny tsy nahy GitHub push sy ny dingana fanarenanao. Matetika ny AWS dia manome ** crédit famelan-keloka amin'ny faktioran'ny sitrapo indray mandeha** ho an'ny famaha GitHub tsy nahy rehefa nohamarinin'ny ekipan'ny fiarovana azy fa madio ny tahiry.

Dingana 3: Nahoana no tsy mahomby ny famafana ny rakitra amin'ny fanolorana vaovao - ary ny fomba hanoratana araka ny tokony ho izy ny tantara miaraka amin'ny git filter-repo

1. Nahoana git rm .env && git commit -m "delete .env" tsy misy ilana azy mihitsy

Git dia rafitra fichier azo ampiarina amin'ny atiny ihany (Directed Acyclic Graph / DAG amin'ny commits, trees, and blob objects): - Aoka hatao hoe Manolo-tena A1B2C3 nampiana .env (Blob 998877). - Eritrereto hoe 2 minitra aty aoriana ianao dia mihazakazaka git rm .env, ampio .env ho .gitignore, ary manosika Manolo-tena D4E5F6. - Raha misy olona mijery ny lisitry ny rakitra ankehitriny ao amin'ny pejinao GitHub dia tsy hahita .env, Manolotena A1B2C3 ary Blob 998877 dia mbola ampahany 100 isan-jaton'ny tahiry. Na iza na iza mihazakazaka git clone downloads Blob 998877, dia afaka manindry izay rehetra manindry ny "Commits" ao amin'ny GitHub A1B2C3 hamaky ny anao .env rakitra amin'ny soratra tsotra, ary fitaovana mandeha ho azy (trufflehog git https://github.com/user/repo) jereo ny commit ara-tantara tsirairay ao anatin'ny 2 segondra.

2. Isaky ny dingana: famafana rakitra na tady miafina manerana ny tantara rehetra mampiasa git filter-repo

Ny tetikasa Git sy GitHub dia manoro amin'ny fomba ofisialy git-filter-repo (izay manolo ny miadana, mora diso git filter-branch ary mora kokoa noho ny BFG Repo-Cleaner).

  1. ** Mametraka git-filter-repo** (Maharitra 5 segondra):
    # On macOS (Homebrew):
    brew install git-filter-repo
    
    # On Linux / Windows (via pip / apt):
    pip3 install git-filter-repo
    
  2. Manaova dika mitovy amin'ny lahatahiry fitahirizanao eo an-toerana alohan'ny hanoratana indray ny tantara:
    cp -r $HOME/projects/my-repo $HOME/projects/my-repo-backup
    cd $HOME/projects/my-repo
    
    (Fanamarihana: Raha efa nafindranao ny manankery .env alaivo ny rakitra, ataovy azo antoka ny dika mitovy amin'ny .env dia voavonjy ao /tmp/.env.safe ivelan'ny repo, satria git filter-repo hamafa .env avy amin'ny lahatahiry miasa koa.)
  3. ** Safidio ny safidy A (fafao ny lalana iray manontolo toy ny .env na id_rsa) OR Safidy B (Redact Spéciales Secret Strings Atside Code Files)**:
  4. Safidy A: Esory tanteraka .env (na config/secrets.json) avy amin'ny fanekena rehetra teo amin'ny tantara:
    git filter-repo --invert-paths --path .env --force
    
    (Nahoana --invert-paths? tsy misy --invert-paths, git filter-repo --path .env mitazona IHANY .env ary mamafa ny hafa rehetra. Manambatra --invert-paths --path .env miteny amin'i Git mba hitazona ny zava-drehetra EXCEPT .env manerana ny commits, branches ary tags rehetra.)
  5. **Safidy B: Tazony ny rakitra kaody (app.py / config.js), fa esory amin'ny dikan-tantara rehetra ny tady miafina miafina **: Mamorona rakitra lahatsoratra /tmp/secrets-to-scrub.txt misy tady miafina iray (na regex) isaky ny andalana:
    AKIAIOSFODNN7EXAMPLE==>REDACTED_AWS_KEY
    sk_live_51NzExampleSecretKey999==>REDACTED_STRIPE_KEY
    regex:postgres:\/\/non_at_chars@==>postgres://REDACTED_DB_CREDENTIALS@
    
    Mihazakazaha izao git filter-repo --replace-text:
    git filter-repo --replace-text /tmp/secrets-to-scrub.txt --force
    shred -u /tmp/secrets-to-scrub.txt 2>/dev/null || rm -P /tmp/secrets-to-scrub.txt
    
  6. Ampio .env ho .gitignore ka aza averinao 5 minitra manomboka izao:
    echo ".env" >> .gitignore
    echo "*.pem" >> .gitignore
    git add .gitignore
    git commit -m "chore: update gitignore rules"
    
  7. Ampidiro indray ny GitHub lavitra anao (git filter-repo fanahy iniana manala origin ho fisavana fiarovana) ary tosika ny sampana rehetra sy ny marika:
    git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPO.git
    git push origin --force --all
    git push origin --force --tags
    

Dingana 4: Ny fandrika Cache GitHub miafina (Dangling Commits) sy ny fomba fanadiovana azy

Ity misy zava-misy ara-tsiansa manan-danja voarakitra ao amin'ny Doka ofisialy GitHub (Manala angon-drakitra saro-pady amin'ny tahiry): - Rehefa mihazakazaka ianao git filter-repo ary git push origin --force --all, ny commit rehetra ao amin'ny fitahirizanao dia mahazo hash 40-karakter SHA-1 vaovao, ary ny main Ny fanondro sampana dia mifindra mankany amin'ny tantara madio vaovao. - ** NA izany aza, ny mpizara fitahirizana Git backend GitHub dia TSY manangom-pako avy hatrany (git gc --prune=now) ny SHA taloha, tsy misy references.** - Midika izany raha voarakitra an-tsoratra ny hash commit taloha ny bot mpanafika iray (oh. a1b2c3d4...) avy amin'ny GitHub Events API ho an'ny daholobe tamin'ny voalohany nanosikao azy, mbola afaka misokatra izy ireo https://github.com/YOUR_USERNAME/YOUR_REPO/commit/a1b2c3d4... amin'ny navigateur web rehetra ary jereo ny .env fichier na dia REHEFA voatosiky ny tantara madio aza ianao. Ratsy kokoa, raha niseho tao anaty Fangataka Sintonina ilay tsiambaratelo, refs/pull/12/head mitazona izany fanoloran-tena ho azo tratrarina.

Ahoana ny famotehana ny cached/dangling commits amin'ny mpizara GitHub amin'izao fotoana izao:

  1. **Fomba 1 (Fotoana, 100% Fafana tanteraka - Tsara indrindra raha tsy misy olana / PRs / Stars manakiana ny repo) **:
  2. Mandehana any amin'ny fitahirizanao ao amin'ny GitHub -> Settings -> Mihodina mankany ambany (Danger Zone) -> Tsindrio Delete this repository.
  3. Mamorona tahiry vaovao miaraka amin'ny anarana mitovy amin'izany ao amin'ny GitHub ary tohizo ny fanadiovanao git filter-repo tahiry eo an-toerana ho azy (git push -u origin main).
  4. Ny famafana ny tahiry ao amin'ny GitHub ** dia manapaka avy hatrany ny fijerin'ny besinimaro rehetra momba ny SHA commit cache taloha** (404 Not Found).
  5. Fomba 2 (Mitahiry kintana, olana, ary PRs - Mampiasa Fanohanana GitHub / Fanadiovana Cache):
  6. Voalohany, alao ny ** 40-toetra marina SHA hash** amin'ny fanekena taloha izay misy ny tsiambaratelo (jereo git reflog ao amin'ny lahatahiry backup na ny mailaka fampahafantaranao GitHub).
  7. Sokafy GitHub Support (support.github.com) ary ampiasao ny automatique Esory ny angon-drakitra saro-pady / Purge cached commit view workflow (manondro ny URL fitehirizana sy ny SHA(s) mihantona marina). Ny fitaovana automatique an'ny GitHub Support dia mandeha amin'ny lafiny mpizara avy hatrany git gc fanadiovana cache izay manafoana ny fijerena tranonkala voasakana sy ny zavatra tsy voafafa nefa tsy mamafa ny fitehirizanao.
  8. ** Ampahafantaro ny mpiara-miasa / mpiara-miasa rehetra git clone vaovao (TSY MISY git pull)**:
  9. Lazao amin'ny mpamorona rehetra ao amin'ny ekipanao hoe: "Aza mihazakazaka git pull ary tohizo." Raha misy mpiara-miasa iray nisintona ny fanaovan-dratsy teo aloha dia mihazakazaka git pull (izay mampifangaro ny tantara maloto taloha sy ny tantara nosoratana vaovao) ary manosika, ** hanosika ny voafafa izy ireo .env miverena avy hatrany ao amin'ny GitHub.** Ny mpiara-miasa rehetra dia tsy maintsy mamafa ny lahatahiry eo an-toerana ary manao vaovao git clone, na mihazakazaka git fetch origin && git reset --hard origin/main.

Dingana 5: Misoroka ny fivoahana ho avy mandrakizay (Gitleaks Pre-Commit Hook & GitHub Push Protection)

Makà 60 segondra izao mba hahatonga azy ho tsy azo atao amin'ny matematika ny fanaovana tsiambaratelo indray:

  1. ** Alefaso maimaim-poana ny GitHub "Push Protection for Yourself" manerana ny kaontinao GitHub manontolo**:
  2. Mandehana any amin'ny GitHub Settings (ny firafitry ny mombamomba anao manokana, ambony havanana) -> Code security and analysis (na Code security).
  3. Mankanesa any amin'ny Secret scanning -> Enable Push protection for yourself.
  4. Miaraka amin'izany dia mihodina, isaky ny mihazakazaka ianao git push avy amin'ny solosaina rehetra mankany amin'ny izay ** tahiry ho an'ny daholobe na tsy miankina, ny mpizara GitHub dia mijery ny packfile ho avy * alohan'ny * hanaiky ny fanosehana: raha mahita fanalahidy AWS, OpenAI key, Stripe key, Private SSH key, na Slack token, ** GitHub dia mandà ny git push ao amin'ny terminal anao alohan'ny handehanana mivantana ny commit.
  5. ** Mametraka gitleaks toy ny eo an-toerana pre-commit ampidiro amin'ny solosainao**:
    # Install gitleaks:
    brew install gitleaks   # (or download binary on Linux/Windows)
    
    # Add a pre-commit hook inside your repository (.git/hooks/pre-commit):
    cat << 'EOF' > .git/hooks/pre-commit
    # /usr/bin/env bash
    gitleaks protect --verbose --redact --staged
    if test $? -ne 0; then
      echo "COMMIT BLOCKED BY GITLEAKS: High-entropy secret or API key detected in staged changes."
      exit 1
    fi
    EOF
    chmod +x .git/hooks/pre-commit
    

Tip

** Fampiasana .env.example miaraka amin'ny tadin'ny placeholder dummy ary 1Password CLI / AWS Vault / doppler ho an'ny tsiambaratelo eo an-toerana**: Aza mitahiry ny fanalahidin'ny famokarana tena izy ao anaty lahatsoratra tsotra .env fichier amin'ny solosaina finday developer raha azonao atao ny misoroka izany. Fa kosa, manaova fiarovana .env.example (STRIPE_API_KEY=sk_test_placeholder_replace_me), ampio .env* ho an'ny tontolonao $HOME/.gitignore_global (git config --global core.excludesfile $HOME/.gitignore_global), na manindrona tsiambaratelo mivantana ao amin'ny fitadidiana amin'ny fampiasana azy op run --env-file=".env.tpl" -- npm start (1Password CLI) na aws-vault exec.


Laharana vonjy taitra isam-paritra sy protocole masoivoho

Raha toa ka mitarika fidirana tsy nahazoana alalana amin'ny angon-drakitra manokana voafehy (PII / PHI), ny rafitra ara-pahasalamana, na ny fotodrafitrasan'ny governemanta, manaraka ny protocole fampandrenesana tsy maintsy atao:

  • Etazonia sy Kanada:
  • Fiarovam-piainana maika / fahatapahan'ny fotodrafitrasa tena ilaina: Antsoy 911 raha misy fanitsakitsahana fotodrafitrasa misy fiantraikany amin'ny fiasan'ny hopitaly na fanaraha-maso fiarovana ara-batana.
  • Sampan-draharahan'ny fiarovana amin'ny aterineto sy ny fotodrafitrasa (CISA) & FBI (IC3): Raha nampiasa fanalahidin'ny rahona tafaporitsaka ny mpanafika mba handroahana angon-drakitra na hanaparitahana malware amin'ny fakana an-keriny, dia mitadiava amin'ny CISA (1-844-Say-CISA / cisa.gov/report) sy ny FBI Internet Crime Complaint Center (ic3.gov).
  • Fampandrenesana momba ny fanitsakitsahana ny angon-drakitra momba ny SEC, FTC, & Fampandrenesana Lehiben'ny Fampanoavana: Raha asehon'ny diarin'ny fidirana CloudTrail / database fa misy adiresy IP tsy nahazoana alalana niditra ny angon-drakitra manokana ho an'ny mpanjifa (PII) na firaketana ara-pahasalamana (HIPAA ePHI) alohan'ny nanafoanana ilay lakile tafaporitsaka dia miresaha avy hatrany amin'ny mpanolotsaina ara-dalàna momba ny fe-potoana fampahafantarana momba ny fanitsakitsahana ny angon-drakitra sy ny tatitra federaly HHS OCR / FTC Safeguards Fitsipika.
  • Canadian Center for Cyber Security: Antsoy 1-833-CYBER-88 (1-833-292-3788) na mitatitra fanitsakitsahana ny fiainana manokana eo ambany PIPEDA mankany amin'ny ** Biraon'ny Kaomisera momba ny tsiambaratelo ao Canada (OPC)**.
  • United Kingdom:
  • Sampandraharaha vonjy maika: Antsoy 999 (na 101 / Fisolokiana hetsika 0300 123 2040 ary ny National Cyber Security Center / NCSC amin'ny ncsc.gov.uk).
  • ** Biraon'ny kaomisera informatika (ICO - 72-Hour UK GDPR Window)**: Raha misy fahazoan-dàlana tafaporitsaka namela ny fidirana tsy nahazoana alalana tamin'ny angon-drakitra manokana an'ny mponina any Angletera, Ny Andininy faha-33 amin'ny GDPR UK dia mitaky ny fanaovana tatitra ny fanitsakitsahana ny angon-drakitra manokana amin'ny ICO (0303 123 1113) ao anatin'ny 72 ora aorian'ny fahafantarana ny fandikan-dalàna.
  • Union eropeana:
  • Sampandraharaha vonjy maika: Antsoy 112 manerana ny firenena mpikambana ao amin'ny EU.
  • GDPR Article 33 & NIS2 Directive Incident Reporting: Ny fikambanana iharan'ny EU GDPR dia tsy maintsy manombantombana raha toa ka nahatonga ny fanitsakitsahana ny tsiambaratelon'ny angon-drakitra manokana (fampandrenesana 72 ora ho an'ny National Data Protection Authority/ DPA), raha ireo sampan-draharaha manan-danja/manan-danja eo ambanin'ny EU NIS2 Directive dia miatrika ** fe-potoana 24 ora mialohan'ny tatitra fampitandremana** ho an'ny fireneny CSIRT (BSI any Alemaina, ANSSI any Frantsa, ACN any Italia) noho ny trangan-javatra an-tserasera lehibe.
  • ** Aostralia sy Nouvelle Zélande**:
  • Sampandraharaha vonjy maika: Antsoy 000 any Aostralia na 111 any Nouvelle Zélande.
  • Ivon-toeram-piarovana Cyber Australian (ACSC) & Fanitsakitsahana angon-drakitra azo ampahafantarina (OAIC): Antso 1300 CYBER1 (1300 292 371) ho valin'ny zava-nitranga, ary tombantombana ny adidy amin'ny fampahafantarana eo ambanin'ny ** Biraon'ny Vaomieran'ny Fampahalalam-baovao Aostraliana (OAIC) Fanitsakitsahana angon-drakitra azo ampahafantarina (NDB) tetika** na ny Nouvelle Zélande Privacy Act 2020 (Privacy Commissioner).
  • India sy Azia-Pasifika:
  • Sampandraharaha vonjy maika: Antsoy 112 any India (na 1930 ho an'ny heloka an-tserasera).
  • CERT-Amin'ny toromarika momba ny tatitra 6 ora tsy maintsy atao (India): Eo ambanin'ny Ekipa misahana ny vonjy taitra amin'ny ordinatera indiana (CERT-In) toro-lalana (No. 20(3)/2022-CERT-In), ny fidirana tsy nahazoana alalana amin'ny rafitra rahona/IT na ny fiparitahan'ny angona misy fiantraikany amin'ny fikambanana any India dia tsy maintsy taterina amin'ny incident@cert-in.org.in ao anatin'ny 6 ora vao hita.

Fanontaniana apetraka matetika

Nofafako ny .env fisie ary nanosika commit vaovao 30 segondra taorian'ny fahadisoako - mbola mila manodina ny fanalahidin'ny API sy ny tenimiafina momba ny database ve aho?

Eny, 100 isan-jato - mihodina avy hatrany ny fanalahidy tsirairay tsy an-kanavaka. Ny fanadihadiana momba ny cybersecurity akademika sy ny telemetry avy amin'ny GitHub Secret Scanning dia manamafy fa ny bots mijinja fahazoan-dàlana mandeha ho azy dia manara-maso ny renirano GitHub Events (api.github.com/events) amin'ny fotoana tena izy ary alaivo ny commits vao haingana ao anatiny 1.5 hatramin'ny 5 segondra. Ny ratsy kokoa, manosika commit faharoa izay mamafa .env mamela ny soratra tsotra manontolo .env rakitra mipetraka maharitra ao anatin'ny tantaran'ny commit voalohany - ary bots maro no mikaroka manokana ny commit izay mamafa .env rakitra. Raha vantany vao voatosika any amin'ny tahiry ho an'ny daholobe na dia 1 segondra aza ny tsiambaratelo iray, dia simba mandrakizay izany; Ny fanafoanana sy fanodinkodinana ny fahazoan-dàlana ao amin'ny dashboard mpamatsy no hany zavatra miaro anao.

Ahoana raha repository PRIVATE GitHub ny repository rehefa nanao ny .env rakitra, ary te hanadio azy fotsiny aho alohan'ny hanaovana ny repo amin'ny herinandro ho avy?

Raha nisy ny tahiry 100% Private nandritra ny fotoana rehetra (ary tsy nisy fampiharana CI/CD an'ny antoko fahatelo tsy azo itokisana), ny bots scraper ao amin'ny GitHub Events API dia manana tsy mbola nahita ny tsiambaratelonao. AZA mamafa fotsiny anefa `.env` amin'ny fanoloran-tena vaovao ary avy eo atsangano ny repo avy amin'ny Private mankany Public. Amin'ny fotoana hamadihanao tahiry manokana ho an'ny Public, ny grafika fanolorana ara-tantara manontolo lasa ampahibemaso - ary ny bots dia mijery avy hatrany ny fanekena taloha rehetra ao amin'ny repo vaovao. Alohan'ny hanaovana repo tsy miankina, na: (1) Run git filter-repo --invert-paths --path .env hanesorana ny rakitra amin'ny fanekena ara-tantara rehetra (ary ahodiho ny fanalahidy ho an'ny fanao tsara indrindra), NA (2) Adikao ao anaty lahatahiry vaovao ireo rakitra madio, mandehana git init ho an'ny tantara voalohany 1-commit madio, ary avoahy io tahiry vaovao io.

Nahoana ny AWS no nampiditra politika iray antsoina hoe AWSCompromisedKeyQuarantineV2 amin'ny mpampiasa IAM, ary nahoana aho no mbola mahazo faktiora?

Satria ny AWS dia miara-miasa mivantana amin'ny GitHub Secret Scanning, isaky ny misy AKIA... Ny fanalahidy dia miseho amin'ny fanolorana GitHub ho an'ny daholobe, ny rafitra fiarovana mandeha ho azy an'ny AWS dia mahita izany ao anatin'ny minitra, manokatra tapakila fanohanana, ary mametraka ny politikam-pitantanana. AWSCompromisedKeyQuarantineV2 (na V3) ho an'io mpampiasa IAM io. Io politikan'ny quantine io dia manakana ny hetsika mampidi-doza toa ny fandefasana vaovao ec2:RunInstances na mamafa ny siny S3 - fa TSY manafoana ny trangan'ny EC2 izay efa nalefan'ny mpanafika nandritra ny 60 segondra voalohany talohan'ny nidiran'ny politika, ary tsy mamafa ireo mpampiasa IAM aoriana na vonjimaika. STS sessions efa noforonin'ny mpanafika. Tsy maintsy mbola mamafa tanana ny lakile tafaporitsaka ianao, jereo EC2 Global View manerana ny faritra rehetra mba hamaranana ny tranga ratsy, ary jereo CloudTrail ho an'ny fanovana IAM tsy nahazoana alalana.

Inona no maha samy hafa ny git filter-repo ary BFG Repo-Cleaner, ary nahoana aho no tsy tokony hampiasa git filter-branch?

git filter-branch dia script akorandriaka tranainy lova natsangana tamin'ny dikan-teny Git tany am-boalohany izay miadana be amin'ny trano fitehirizam-bokatra lehibe, mora amboarina (mamela refs backup refs/original/ izay mbola misy ny tsiambaratelonao.), ary izao dia manonta fampitandremana ofisialy avy amin'ny Git milaza anao tsy hampiasa izany. Samy git-filter-repo (voasoratra amin'ny Python ary ankatoavin'ny tompon'andraikitra amin'ny fomba ofisialy Git sy GitHub) ary BFG Repo-Cleaner (voasoratra amin'ny Java/Scala) mihazakazaka 10x ka hatramin'ny 100x haingana kokoa ary avereno soratana madio daholo ny fanolorana, hazo ary marika. git-filter-repo no tiana amin'ny ankapobeny anio satria manova na dia ny commit-nao efa nohamarininao aza (`HEAD`) tsy mila commit santatra misaraka aloha.

Ahoana no ahafahan'ny olona mijery ny commit voafafako ao amin'ny GitHub rehefa avy nihazakazaka aho git filter-repo ary git push --force?

Ao amin'ny Git, `git push --force` fanavaozana ihany ny tondro fanondro sampana (`refs/heads/main`) hanondro ny rojo commit vaovao nosoratanao; manao izany tsy fafao avy hatrany ireo zavatra taloha tsy voatanisa ("mihantona") voatahiry ao amin'ny mpizara backend GitHub. Raha nisy bota nandrakitra ny hash SHA 40 amin'ny commit tany am-boalohany rehefa nidona tamin'ny API Events ho an'ny daholobe, mandeha mivantana mankany https://github.com/owner/repo/commit/<40-char-SHA> dia mbola hampiditra an'io commit kamboty io avy amin'ny cache object GitHub mandra-pahatongan'ny fanangonana fako. Mba hanokafana io fomba fijery cache io avy hatrany esory ny tahiry ao amin'ny GitHub ary avereno amin'ny repo eo an-toerana madio, na alefaso amin'ny SHA commit mihantona Fanohanana GitHub (`support.github.com`) ho an'ny fanadiovana cache eo amin'ny lafiny mpizara.

Ahoana raha efa nisy nanindry ny "Fork" tao amin'ny tahiry ho an'ny daholobe alohan'ny handehanako git filter-repo?

Izany no antony Ny dingana 1 dia manafoana sy manodina foana ny fahazoan-dàlana ao amin'ny dashboard mpamatsy: mihazakazaka git filter-repo ary manery an-keriny mankany amin'ny fitehirizanao manokana dia TSY mamerina manoratra commit ao anatin'ny Fork tsy miankina an'olon-kafa amin'ny fitahirizanao (raha tsy mamafa ny fitahirizanao ray aman-dreny manontolo ianao ary mifandray amin'ny GitHub Support momba ny angona saro-pady amin'ny forks). Raha vantany vao nofoanana ny fanalahidin'ny AWS/API ary nahodina ny tenimiafina momba ny angona, izay kopia taloha .env Ny rakitra mipetraka ao anaty fork an'ny antoko fahatelo na angon-drakitra bot dia lasa andian-tsoratra maty tsy misy ilana azy izay tsy afaka miditra amin'ny fotodrafitrasanao intsony.


Mpitarika mifandraika


Loharano sy tari-dalana ofisialy

  • Documentation ofisialin'ny GitHub (docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository): Esory ny angona saro-pady amin'ny tahiry iray (git filter-repo, BFG Repo-Cleaner, Fanadiovana Cache amin'ny Dangling, ary Fiarovana Push Scanning Secret).
  • Amazon Web Services (AWS) Torolàlana momba ny famaliana ny lozam-pifamoivoizana (docs.aws.amazon.com/security/): Famaliana ny lakilen'ny fidirana AWS IAM (AWSCompromisedKeyQuarantineV2, Fanafoanana vonjimaika STS Sessions via aws:TokenIssueTime, ary CloudTrail Fanamarinana ara-tsiansa).
  • Institut Nasionaly momba ny fenitra sy ny teknolojia (NIST) (Etazonia): Famoaham-boky manokana 800-61 Apok. 2: Torolàlana momba ny fitantanana ny zava-mitranga amin'ny ordinatera & SP 800-57: Tolo-kevitra ho an'ny Fitantanana Key (Fanafoanana ny Fanomezan-dàlana sy Fihodinana Kriptografika).
  • Open Web Application Security Project (OWASP): Taratasin'ny fitantanam-pitantanana tsiambaratelo (Misoroka ny fahazoan-dàlan'ny kaody henjana, Fikarohana tsiambaratelo mialoha amin'ny Gitleaks/TruffleHog, ary ny tsindrona miafina Ephemeral Runtime).
  • Masoivoho fiarovana amin'ny cybersecurity sy ny fotodrafitrasa (CISA) (Etazonia): Cloud Security Reference Technical Architecture and Compromised Credential Remediation Playbook.