Skip to content

Kupusama na kintulumukina .env Binsweki to Bafungula ya AWS ya Repo ya GitHub ya Bantu Yonso: Sambu na Inki Kufwa Fichier Ke Bumbaka Yo Ve

Banimero ya urgence ke swaswanaka na insi. Lutiti yai ke sadilaka 911, nimero ya États-Unis mpi ya Canada. Bansi mingi yankaka kesadilaka 112, 999, to ntalu yankaka. Sosa nimero ya insi na beno.

Kubakisa basegonde kumi na nima ya kubaka ntinu . git push origin main (to kubalula kisika ya kubumba bima ya kinsweki na . Public) nde commit na nge vandaka ti masonama ya pwelele .env fichier, AWS mosi AKIA... Nsabi ya Kukota mpi Nsabi ya Kinsweki, nsabi ya API ya OpenAI/Anthropic, ya Bande . sk_live_... kidimbu ya kisalu, URI ya bansangu ya PostgreSQL/MongoDB ti mot de passe, to kima mosi ya kukonda kukangama . $HOME/.ssh/id_ed25519 nsabi ya kinsweki kele urgence ya cybersécurité ya alarme tanu. Ba botnet yina ke bakaka bansangu ya bantu ke landaka kusala bansosa na bantu yonso GitHub Events Firehose (api.github.com/events) ye clone ya mpa ya bo me pusa ke sala na kati ya basegonde 1,5 tii na 4 ya nge . git push kumanisa. Kima ya mbi kuluta kele nde, penepene na konso muntu yina kesalaka baprograme ya boma kesalaka kifu ya nene ya mutindu mosi: bo kefwaka . .env fichier na kisika na beno, yika .env na .gitignore, mpi pusa commit ya zole ya kele ti ntu-dyambu . "remove .env" to "oops". Kupusa commit ya zole yina ke katulaka .env ke bumba kima ve: kinsweki ya masonama ya mpamba ke bikalaka 100 na kati ya nkama ya kutanga kimakulu na kati ya diff ya commit ya ntama (git log -p), ye kana nkutu vo opusidi e ngolo ( ).git push --force) na zulu ya filiale, commit ya kukonda referansi ( ).dangling blob) ke bikala ya kumonana na bantu yonso na nzila ya URL na yo ya mbala mosi ya GitHub mpi ya kutala Pull Request yina bo me bumbaka tii kuna bo ta katulaka yo na pwelele. Kana bantu yina ke nwanisa nge me sadila dezia bansangu yina bo me basisa sambu na kutula ransomware, kubotula domaine na nge ya DNS, to kukanga muntu yina ke futila nge na matuti, tala bantuma na beto ya ke twadisaka na . mvutu ya ransomware mpi ya mbi, Kubotula zina ya domaine, DNS ya me manaka, mpi kubaka site internet, mpi Kukangama ya kisika ya kisalu ya Google to ya Microsoft 365. Kana nsangu ya ke tadila bantu yina ke bela ke bebisa lutaninu ya bambefo ya lupitalu, bima yina bo ke twadisaka na banzo ya bisalu, to bima yina bo ke sadilaka sambu na kutinda bantu na kintulumukina, binga nimero ya urgence ya bwala na beno (911 na États-Unis mpi na Canada, . 112 na Union européenne ya mvimba, . 999 na Royaume-Uni) to tala mukanda na beto ya bansi mingi ya . nimero ya urgence.

Sala yo sesepi

  1. KATULA, KUKANGA, TI KUBALUSA konso kinsweki mosi ya me basika na console ya fournisseur NTETE - na kati ya basegonde 120 ya ntete - na ntwala ya kubebisa ata sekondi mosi ya kubaka ntinu . git komande: Kana kinsweki mosi me simba kisika ya kubumba bima ya bantu yonso ya GitHub, GitLab, to Bitbucket ata na basegonde 3, baka nsapi yina bonso nde yo me yoka kimakulu mpi yo kele dezia na maboko ya bantu yina ke nwanisaka nge na mutindu mosi ya automatique. Ata ntalu mosi ve ya git reset --hard, git push --force, to kufwa kisika ya kubumba bima lenda katula nsabi mosi na kati ya bansangu ya bot mosi ya ke katulaka bima yina bakaka dezia commit na nge na sekondi #2. Kota na AWS IAM, Stripe, OpenAI, ba consoles ya ba base de données, to ba parametre ya GitHub SSH sesepi yai mpi Katula / Katula / Katula nsabi mbala mosi.
  2. Tala ba facture na nge na matuti mpi ba nsangu ya Audit (AWS CloudTrail, GCP Cloud Audit Logs, Stripe Logs) sambu na fenetre na kati ya . git push mpi kukatula nsapi na nge: Ba-robot ya ke salaka kisalu ya crypto-mining ke sadilaka fuite . AWS_ACCESS_KEY_ID (AKIA...) nsangu na kati ya basegonde 30 tii na 90 sambu na kubalula ba instance ya GPU ya quota ya kuluta mingi (p4d.24xlarge / g5.48xlarge) na bisika yonso ya kubumbana ya AWS (ap-east-1, me-south-1, af-south-1) mpi kusala bantu yina kesadilaka IAM na nima to . Lambda persistence hooks sambu yo bikala na kati ya konti na nge ya AWS ata na nima ya kufwa nsabi yina me basika.
  3. Kupusa ve ata fioti sekondi mosi "Delete .env" kusala - na kutuba ya mbote, kusonika "delete secret" to "remove password" na nsangu ya kudipesa ke bendaka ba-robot ya bo me yidika mbote: Mafunda ya ba script ya ke salaka mambu ya ke pesa boma ke yulaka na sikisiki yonso GitHub Sosa bansangu ya kudipesa yina kele ti . "remove .env", "delete key", "oops", mpi "remove credentials", na nima niema commit mosi na nima na disolo sambu na kuyiba nsabi.
  4. Sonika diaka disolo ya mvimba ya kisika ya kubumba bima ya Git na kisika na nge na kusadilaka . git filter-repo (to BFG Repo-Cleaner) sambu na kukatula fichier to kuyidika nsinga ya mot de passe na konso commit ya ntama, nti, mpi tag: git filter-branch kele ya kukonda mfunu na nzila ya projet Git; sadila git filter-repo --invert-paths --path .env (ku nuke fichier mosi na ba commits nionso) to git filter-repo --replace-text expressions.txt (sambu na kuyingisa bansinga ya mot de passe mosi buna ti ***REMOVED*** muna kati kwa nkanda mia kode lembi katula nkanda miami).
  5. Pusa-pusa balutangu yonso ti bidimbu (git push origin --force --all), YE katula ba views ya commit ya GitHub ya bo me bumbaka na serveur (dangling commits): Tala kinsweki yina bantu mingi ya ke salaka baprograme ke zabaka ve: ata na nima ya kubaka ntinu . git filter-repo mpidina git push --force, Ba serveurs ya GitHub ke taninaka commit SHA ya ntama na luzingu na kati ya cache ya bima na bo (git cat-file), disongidila konso muntu yina sonikaka SHA ya commit ya bisono 40 na API ya Mambu ya Bantu Yonso lenda tala kaka . github.com/user/repo/commit/<OLD_SHA>. Beto ke tendula na nsi mutindu ya kukatula nswalu ba cache ya commit yina ke kangama na nzila ya GitHub Support / API to na kufwaka mpi kusala diaka kisika ya kubumba bima.
  6. Tula kisika mosi pre-commit scanner ya kinsweki (gitleaks to trufflehog) na kati .git/hooks/pre-commit na ntwala ya kusonika nzila ya nkaka ya kode: A 10-seconde . gitleaks protect --staged pre-commit hook ke talaka konso nzila yina bo me tula na ordinatere na nge ya maboko mpi ke kangaka git commit na ntwala nde kinsweki mosi kubasika na masini na nge.

Danger

Kana nge me basisa Nsabi ya AWS (AKIA...), kufwa kaka Nsabi yina mosi ya Kukota na IAM mefwana VE - nge fwete tala kana muntu yina kunwanisa nge mesala dezia Muntu ya Kesadilaka, Mukumba, to Muntu ya Ntangu Fioti ya IAM ya zole . STS Session Token na nsungi ya basegonde 60 nsabi vandaka na luzingu: Ntangu bot mosi ya ke salaka yo mosi ke monaka nsabi ya AWS ti . AdministratorAccess to iam:* nswa na GitHub, kubinga na yo ya ntete kibeni ya API ya automatique (na nsungi ya basegonde 2) kele . iam:CreateUser + . iam:CreateAccessKey (to sts:GetSessionToken ke salaka bangunga 36). Kana nge katula kaka nsabi yina me basika na . .env mpi kuvutuka na mpongi, nsabi ya mpa ya porte ya nima yina muntu yina me nwanisa nge me sala ke landa kusala . $15,000/day EC2 GPU kimvuka na nsuka ya mposo yonso. Landa Liste na beto ya 6 Points ya AWS ya Kukangama na Nima ya Kubasika na Fase 2 na nsi mbala mosi.


Nti ya lukanu: kubumba nswalu, kubalula, mpi kukatula disolo ya Git

Sala kisalu yai na ndonga ya ngolo ya mambu yina kusalamaka (Katula NTETE -> Kukwamina na Audit ya ZOLE -> Kukatula Histoire ya Git YA TATU):

flowchart TD
    Start["Kinsweki ya bo me pusa na Repo ya bantu yonso (.env, Nsabi ya AWS/GCP, Mot de passe ya DB, Nsabi ya Stripe/OpenAI, to Nsabi ya SSH ya kinsweki)"] --> Step1["MINUTA 0 TI 2 (PRIORITÉ #1): Katula / Balula Konso Nsabi ya Me Monama na Console ya Muntu ya Ke Pesaka Nswalu"]

    Step1 --> SecretType{"Inki Mutindu ya Kuzaba Mambu Vandaka Na Kati ya Komite?"}

    SecretType -->|"Nsabi ya bisadilu ya matuti (AWS AKIA, JSON ya konti ya kisalu ya GCP, Azure SP)"| CloudAudit["MINUTA 2 TI 10: Tala CloudTrail / Ba nsangu ya bisalu -> Sukisa Rogue EC2/Kusala ba instance na ba régions yonso -> Kufwa bantu ya ke sadilaka IAM/ba role/ba sessions ya STS yina bo me pesa ve nswa"]

    SecretType -->|"URI ya kisika ya kubumba bansangu / Mot de passe (Postgres, MySQL, MongoDB, Redis, kisika ya kubumba bansangu)"| DBAudit["MINUTA 2 TI 10: Balula Mot de Passe ya Muntu ya Ke Sadilaka DB + Kufwa Banzila ya Ke Salaka (pg_terminate_backend) + Kanga Kimvuka ya Lutaninu ya Mur ya Tiya kaka na IP ya Liste ya Mpembe"]

    SecretType -->|"Kidimbu ya API to nsabi ya SSH (Banda, OpenAI, PAT ya GitHub, Slack, Nsabi ya SSH ya kinsweki)"| TokenAudit["MINUTA 2 TI 10: Tula Nsabi ya API na Tablo ya Kisalu / Katula Nsabi ya SSH ya Bantu Yonso na $HOME/.ssh/authorized_keys & Baparametre ya GitHub -> Tadila Bazulunalu ya Kusadila API ya Ntama"]

    CloudAudit --> RepoVisibility{"MINUTA 10 TI 20: Inki Mutindu Nge Ke Zola Kukatula Kisika ya Kubumba Bima ya GitHub?"}
    DBAudit --> RepoVisibility
    TokenAudit --> RepoVisibility

    RepoVisibility -->|"Kufwanisa Cache ya Nswalu 100% (Ata Diambu mosi ve ya Mfunu/Disolo ya Bambwetete ya Kubumba)"| NukeRepo["1. Katula Kisika ya Kubumba Bima ya Mvimba na Parametre ya GitHub. 2. Sala git filtre-repo Na kisika sambu na kusukula mambu ya ntama. 3. Sala Repo ya Mpa & Pusa Histoire ya Bunkete (Ke Bebisaka Na Nswalu Ba SHA Yonso ya Commit Ya Bo Me Bumbaka)"]

    RepoVisibility -->|"Mufwete Lunda Bambwetete ya Repo, Banimero, Ba PR, mpi Bafourche"| RewriteRepo["1. Sala git filtre-repo (--kubalula-nzila to --kuyingisa-mambu). 2. Kusala git push --ngolo --nionso & --ba tag. 3. Solula ti lusadisu ya GitHub / Portal ya lusadisu sambu na kukatula Cache ya SHA ya ke kangama"]

Kitini ya ntete: Muniti 0 tii na 2 - Mukanda ya Kukusa ya Kukatula Nswalu na Muntu ya Ke Pesaka Bima

Kukangula ve terminal sambu na kunwana ti yo . git rebase ntangu ba nsabi na nge ya kusala bima kele kaka na kisalu. Fina mbala mosi na muntu yina bo me bebisa na nsi mpi fwa ntete bansangu ya mfunu:

Mutindu ya Kidimbu ya Kuzaba Prefixe / Mutindu na Kode na Nge Kukatula & Kubalula ya Sekonde 30 ya sikisiki Keti GitHub ke katulaka yo na mbala mosi (Secret Scanning Partner Program)?
1. Nsabi ya kukota na AWS IAM AKIA... (Nsabi ya IAM ya ntangu ya nda) to ASIA... (Nsabi ya STS ya ntangu fioti) + Kinsweki ya 40-char Kisika ya AWS -> IAM -> Users -> [Username] -> Security credentials tab -> Access keys -> Niema Deactivate na nima Delete. (Tala mpi kana Nsiku ya Kutula Bantu na Quarantine ya Nsabi ya AWS AWSCompromisedKeyQuarantineV2 vandaka dezia ya kukangama na mbala mosi na AWS.) Ke kebisaka AWS mbala mosi (AWS ke tindaka nge e-mail na mbala mosi, ke kangulaka Case ya Lusadisu ya Priorité ya Kuluta, mpi ke yikaka AWSCompromisedKeyQuarantineV2 na kati ya baminiti - kukanga nzila na EC2 - kansi nge fwete katula kaka nsabi na maboko).
2. Matuti ya Google (GCP) Konti ya kisalu JSON to Nsabi ya API private_key_id, BEGIN PRIVATE KEY na kati *-credentials.json, to AIzaSy... Kisika ya Google ya Matuti -> IAM & Admin -> Service Accounts -> niema Konti -> Keys tab -> Kufwa ID ya Nsabi yina me basika. Sambu na AIzaSy... Nsabi ya API: APIs & Services -> Credentials -> Regenerate Key na nsabi ya kukangama na nzila ya HTTP Referreur / IP. Ee/Lukebisu: Google Cloud ke zabisaka na mbala mosi ba mfumu ya bisalu mpi lenda kanga ba nsapi ya konti ya kisalu ya GCP yina me basika na GitHub ya bantu yonso.
3. Nsabi ya kinsweki ya Stripe sk_live_... to rk_live_... (Nsabi ya bo me kanga) Tablo ya bande (dashboard.stripe.com/apikeys) -> Niema ... na lweka ya Nsabi ya Kinsweki -> Fina . Roll key... -> Pona Expire now (Immediately). EE (Bo me katula yo na mbala mosi): Kuvukisa ya Stripe ti Scanning ya kinsweki ya GitHub ke balukaka/ke katulaka ngolo na mbala mosi sk_live_ nsabi na kati ya basegonde ya push ya bantu yonso mpi ke tinda nge ba e-mail.
4. OpenAI / Bantu / Kuyamba Luse API Bafungula sk-proj-..., sk-ant-..., hf_... - Kangula AI (platform.openai.com/api-keys): Fina na icone ya Poubelle yina kele na lweka ya nsabi mbala mosi (bots drain $500 ya GPT-4 / Claude ke pesa mbongo na nsi ya baminiti 4.).
- Kima ya bantu (console.anthropic.com/settings/keys): Kukanga/Kufwa nsabi.
- KuyambaLuse: Settings -> Access Tokens -> Invalidate.
EE: OpenAI, Anthropic, na HuggingFace ke sala kintuadi na GitHub Secret Scanning sambu na kukatula na mbala mosi ba nsabi ya me monana na ba repos ya bantu yonso, ata kuzikisa na maboko kele mfunu.
5. Kidimbu ya Kukota na GitHub (PAT) to OAuth / Nsabi ya App ghp_..., github_pat_..., gho_..., ghs_... Kisika ya Git Settings -> Developer settings -> Personal access tokens -> Kufwa kidimbu. EE (Na mbala mosi): GitHub ke katulaka na mbala mosi konso ghp_ to github_pat_ token ya kitini ya sekondi yo ke pusamaka na konso kisika ya kubumba bima ya GitHub ya bantu yonso.
6. Bansinga ya Kuvukisa Bansangu (PostgreSQL, MongoDB Atlas, Supabase, PlanetScale, Redis) postgresql://user:pass@host..., mongodb+srv://..., SUPABASE_SERVICE_ROLE_KEY 1. Balula mot de passe ya kusadila base de données na tablo ya matuti (RDS, Atlas, Supabase, Neon).
2. Sukisa ba nsangu ya TCP ya kukangula yina kele dezia (SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid();) sambu kusoba mot de passe ya Postgres/MySQL ke katulaka ve muntu yina ke nwanisaka yina me vukana dezia ti socket mosi ya ke salaka.
VE (Ba URI ya Base de données génériques ke katukaka ve na mutindu mosi): Sambu a postgresql:// to mongodb+srv:// URL ke songa zina ya host ya nge me yidika, GitHub lenda katula ve mot de passe ya ba nsangu na nge - nge fwete soba yo na maboko sesepi yai.
7. Nsabi ya SSH ya kinsweki (id_rsa, id_ed25519, .pem EC2 Nsabi zole) -----BEGIN OPENSSH PRIVATE KEY----- to -----BEGIN RSA PRIVATE KEY----- Nsabi ya SSH ya kinsweki lenda ATA FIOTI ve "kukonda kubasika." Kangula mbala mosi konso serveur ya $HOME/.ssh/authorized_keys mukanda (na GitHub/GitLab na nge Settings -> SSH and GPG keys lutiti) mpi kufwa nzila ya nsabi ya bantu yonso yina ke wakana. Sambu na AWS EC2. .pem nsabi, katula nsabi ya bantu yonso na konso instance ya EC2 . $HOME/.ssh/authorized_keys. VE: GitHub lenda kota ve na ba serveur na nge ya Linux sambu na kuyidika $HOME/.ssh/authorized_keys - nge fwete katula nge mosi nsabi ya bantu yonso na konso serveur ya lukanu.

Phase 2: Minuta 2 tii na 10 - Kutala kana Bantu ya Ke Nwanisa Me Sala Dezia Kielo ya Nsuka (AWS / Containment ya Matuti)

Kana nge me basika .env fichier vandaka na Nsabi ya kukota na AWS (AKIA...), JSON ya Konti ya Kisalu ya Google Cloud, to Mfumu ya Kisalu ya Azure, kufwa nsabi yina me basika kele kaka ndambu ya bitumba. Nge fwete zikisa nde bot mosi ya me salaka yo mosi sadilaka ve basegonde yina 90 sambu na kutula kukwamina na kati ya konti na nge ya matuti:

Audit forensique ya AWS ya kele ti mambu 6 na nima ya kubasika

  1. tala AWS CloudTrail -> Event history sambu na ba appel yonso ya API yina me basika Access Key ID:
  2. Kangula Konsolo ya AWS CloudTrail -> Disolo ya mambu.
  3. Soba listi ya kusosa katuka na Tanga-kaka tii na Access key ID mpi tula yina me basika AKIA... nsinga.
  4. Tala mambu yonso ya bo me sonikaka banda na munuta yina nge bakaka ntinu . git push. Sosa na sikisiki yonso: CreateUser, CreateAccessKey, AttachUserPolicy, CreateRole, AssumeRole, GetSessionToken, RunInstances (EC2), RequestSpotInstances, CreateFunction (Dimeme), to SendEmail (mpam ya mbi ya SES).
  5. Katula konso kisalu ya ntangu fioti STS balukutakanu ya me katuka na muntu yina:
  6. Ata na nima ya kufwa . AKIA... nsabi ya kukota, kana muntu yina me nwanisa nge me binga . sts:GetSessionToken na ntwala ya kufwa nsabi, bo ya ntangu fioti ** .ASIA... session token ke bikala na ngolo tii na bangunga 36.**
  7. Kufwa bantu yonso ya ke salaka sambu na ntangu fioti STS tokens sambu na nsadi yina ya IAM mbala mosi, kwenda na IAM -> Users -> [Leaked User] -> Permissions -> Add inline policy mpi niema Revoke sessions (yina ke kangamaka na pwelele Deny * nsiku sambu na konso kidimbu yina bo me basisa kisika aws:TokenIssueTime kele na ntwala ya ntangu yai.).
  8. tala IAM -> Users mpidina IAM -> Roles sambu na bakonti ya nsuka ya bo me sala:
  9. Sosa bantu yonso ya ke sadilaka IAM na kulanda Ntangu ya kusala. Kufwa konso muntu ya nge me zaba ve (admin-backup, sys-monitor, support-bot) mpi zikisa nde . Trust relationships tab na Roles na nge ya IAM sambu na kuzikisa nde muntu yina me sala nge mbi me yika ve ID na bo mosi ya konti ya AWS ya nganda ("Principal": {"AWS": "arn:aws:iam::999999999999:root"}) bonso mfumu ya nzo-nkanda yina bo ke tudilaka ntima.
  10. Sadila AWS Resource Explorer to EC2 Global View sambu na kutala ba Régions YONSO 30+ ya AWS sambu na ba cryptomineurs ya kubumbana:
  11. Bantu yina ke nwanisaka ke basisaka ve mingi ba instance ya cryptomining na 2019. us-east-1 kisika nge ta mona yo na tablo na nge ya ordinatere. Kansi, bo ke basisaka . p4d, g5, to c6i.32xlarge bambandu na ap-southeast-3 (Yakarta), me-central-1 (Emirats Arabes Unis), il-central-1 (Tel-Aviv), to sa-east-1 (San Paulo).
  12. Kangula EC2 Console -> EC2 Global View (yina ke talaka konso kisika yina bo me pesa nzila na mesa mosi) mpi Kusukisa konso instance yina bo me pesa ve nswa mbala mosi.
  13. Kangula Cas ya Facture ya Lusadisu ya AWS mbala mosi kana ba instance ya luvunu me sala facture:
  14. Kana bot mosi me baluka $8,000 ya EC2 GPU instances na ntwala ya kumanisa yo, kuwa boma ve: kana nge me tanina konti, katula nsabi, pesa root/IAM nzila . MFA, mpe katula nsabi na GitHub, kangula Cas ya lusadisu ya konti ya AWS mpe ya kufutila yina ke tendula push ya GitHub ya kukonda kukana mpe bitambi na nge ya kuyidika. AWS ke pesaka mbala na mbala credit ya ndolula ya mbala mosi ya mbongo ya luzolo ya mbote sambu na ba fuite ya nsabi ya GitHub na kintulumukina kana kimvuka na bo ya lutaninu me zikisa nde kisika ya kubumba bima kele bunkete.

Phase 3: Sambu na nki Kufwa Fichier na Commit ya Mpa ke nungaka ve - mpi mutindu ya kusonika diaka mbote-mbote histoire ti . git filter-repo

1. Samu na yinki git rm .env && git commit -m "delete .env" kele mpenza ya kukonda mfunu

Git kele ngidika ya mikanda ya ke yikaka kaka mambu yina kele na kati (Directed Acyclic Graph / DAG ya ba commits, banti, mpi bima ya blob): - Yindula nde Kusala A1B2C3 yikamaka .env (Blob 998877). - Yindula nde na nima ya minuta 2 nge me baka ntinu git rm .env, yika .env na .gitignore, mpi pusa Kusala D4E5F6. - Ntangu muntu mosi ke tala lisiti ya bafishe ya ntangu yai na lutiti na nge ya luyantiku ya GitHub ta mona ve . .env, Kudipesa A1B2C3 mpidina Blob 998877 kele kaka kitini ya 100 na kati ya nkama ya kisika ya kubumba bima. Konso muntu yina ke salaka . git clone kubaka Blob 998877, konso muntu yina ke niema "Kusala" na GitHub lenda niema . A1B2C3 kutanga na nge .env fichier na masonama ya mpamba, mpi bisadilu yina ke salaka yo mosi (trufflehog git https://github.com/user/repo) scanner konso commit ya histoire mosi na basegonde 2.

2. Kitini-kitini: Kufwa Fichier to Nsinga ya Kinsweki Na Histoire YONSO Na Kusadilaka . git filter-repo

Projet ya Git na GitHub ke siamisa na mutindu ya officiel git-filter-repo (yina ke baka kisika ya malembe, ya ke salaka bifu mingi . git filter-branch mpi kele nkutu ya kukonda mindondo kuluta . BFG Repo-Cleaner).

  1. Tula git-filter-repo (Yau ke baka basegonde 5):
    # On macOS (Homebrew):
    brew install git-filter-repo
    
    # On Linux / Windows (via pip / apt):
    pip3 install git-filter-repo
    
  2. Sala kopi ya lutaninu ya dossier ya kisika na nge na ntwala ya kusonika diaka histoire:
    cp -r $HOME/projects/my-repo $HOME/projects/my-repo-backup
    cd $HOME/projects/my-repo
    
    (Note: Kana nge me katula dezia valide na nge .env fichier out, zikisa nde nge kele ti kopi ya bunkete ya . .env me bumbana na /tmp/.env.safe na nganda ya repo, sambu . git filter-repo ta kusukula .env tuka muna nkanda miaku mia salu mpe.)
  3. Pona Nsola A (Kufwa Nzila ya Fichier ya Mvimba bonso .env to id_rsa) TO Nsola B (Kuyidika Bansinga ya Kinsweki ya Sipesiali Na Kati ya Bafishe ya Bakode):
  4. Nsola A: Katula yo yonso .env (to config/secrets.json) katuka na konso kisalu ya disolo:
    git filter-repo --invert-paths --path .env --force
    
    (Sambu na nki --invert-paths? Kukonda --invert-paths, git filter-repo --path .env ke bumba KAKA .env mpi ke katulaka bima yonso ya nkaka. Kuvukisa --invert-paths --path .env ke songa Git na kubumba bima yonso KAKA . .env na zulu ya ba commits yonso, ba filiale, mpi ba tags.)
  5. Nsola B: Lunda fichier ya kode (app.py / config.js), kansi katula nsinga ya kinsweki ya bo me sonikaka na code ya ngolo na konso version ya ntama: Sala fichier ya masonama /tmp/secrets-to-scrub.txt yina kele na nsinga mosi ya kinsweki (to regex) na nzila mosi:
    AKIAIOSFODNN7EXAMPLE==>REDACTED_AWS_KEY
    sk_live_51NzExampleSecretKey999==>REDACTED_STRIPE_KEY
    regex:postgres:\/\/non_at_chars@==>postgres://REDACTED_DB_CREDENTIALS@
    
    Ntangu yai tina 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. Yika .env na .gitignore yo yina nge fwete sala yo diaka ve na nima ya minuta 5 katuka ntangu yai:
    echo ".env" >> .gitignore
    echo "*.pem" >> .gitignore
    git add .gitignore
    git commit -m "chore: update gitignore rules"
    
  7. Yika diaka televizio na nge ya GitHub (git filter-repo kukatula na luzolo yonso origin bonso nsiku ya ke tadila lutaninu) mpi pusa na ngolo balutangu yonso mpi bidimbu:
    git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPO.git
    git push origin --force --all
    git push origin --force --tags
    

Kitini ya 4: Mutambu ya Cache ya GitHub ya Kubumbana (Dangling Commits) ye Mutindu ya Kukatula Yo .

Tala kieleka ya mfunu ya forensique ya bo me sonikaka na Mikanda ya Kimfumu ya GitHub (Kukatula ba nsangu ya mfunu na kisika ya kubumba bansangu): - Ntangu nge ke baka ntinu git filter-repo mpidina git push origin --force --all, konso commit na kisika na nge ya kubumba bima kebakaka hash ya mpa ya SHA-1 ya bisono 40, mpi na nge . main pointeur ya filiale ke kwenda na disolo ya mpa ya bunkete. - KANSI, serveur ya kubumba Git ya GitHub ke vukisaka ve mbala mosi bamvindu (git gc --prune=now) ya ntama, ya kukonda referansi kusala SHA. - Yo ke tendula nde kana robot ya muntu yina me nwanisa nge me sonika hash ya ntama (mu mbandu, a1b2c3d4...) katuka na API ya mambu ya GitHub ya bantu yonso ntangu nge pusaka mbala ya ntete, bo lenda kangula kaka . https://github.com/YOUR_USERNAME/YOUR_REPO/commit/a1b2c3d4... na konso navigateur ya Internet mpi tala .env fichier ata NA NIMA ya nge pusaka na ngolo histoire ya bunkete. Kima ya kuluta mbi, kana kinsweki monanaka na kati ya Demande de tirage, refs/pull/12/head ke taninaka lusilu yina kimakulu.

Mutindu ya kufwa ba nsangu ya bo me bumba/ya ke kangama na ba serveur ya GitHub sesepi yai:

  1. Metode 1 (Instant, 100% Kufwanisa ya Mvimba - Mbote kana repo kele ve ti Mambu ya mfunu/PRs/Bambwetete):
  2. Kwenda na kisika ya kubumba bima na nge na GitHub -> Settings -> Kuluta na nsi (Danger Zone) -> Niema Delete this repository.
  3. Sala kisika ya kubumba bima ya mpa ti zina ya mutindu mosi na GitHub mpi pusa bunkete na nge . git filter-repo kisika ya kubumba bima na yo (git push -u origin main).
  4. Kufwa kisika ya kubumba bima na GitHub ke katulaka mbala mosi bifwanisu yonso ya web ya bantu yonso ya SHA ya ntama yina bo me bumbaka (404 Not Found).
  5. Mutindu ya zole (Kutanina Bambwetete, Mambu, ti Ba PR - Kusadila Lusadisu ya GitHub / Kukatula Cache):
  6. Ntete, baka hash ya SHA ya sikisiki ya bisono 40 ya commit ya ntama yina vandaka ti kinsweki (tala git reflog na dossier na nge ya lutaninu to na ba e-mail na nge ya nsangu ya GitHub).
  7. Kangula Lusadisu ya GitHub (support.github.com) mpi sadila mutindu ya kisalu ya automatique Katula bansangu ya mfunu / Kukatula ba views ya commit ya bo me bumbaka (kusadila URL ya kisika ya kubumba bima mpi SHA(s) ya commit ya ke kangama-kangama). Kisalu ya kukonda mpasi ya GitHub Support ke salaka mbala mosi na ndambu ya serveur . git gc cache purge yina ke katulaka mfunu ya bifwanisu ya web yina bo me bumbaka mpi bima yina bo me tubilaka ve kukonda kufwa kisika yina nge ke bumbaka bima.
  8. Zabisa banduku yonso ya kimvuka / bantu ya kisalu na git clone ya mpa (ATA FIOTI VE git pull):
  9. Tubila konso muntu ya ke salaka bisalu ya kimvuka na nge: "Kusala ve git pull mpi pusa." Kana nduku ya kisalu yina bendaka commit ya mbi na ntwala ke baka ntinu . git pull (yina ke vukisa disolo ya mvindu ya ntama ti disolo ya mpa ya bo me sonika diaka) mpi ke pusa, bo ta pusa yina bo me katula . .env vutuka mbala mosi na GitHub. Konso muntu ya ke salaka kumosi fwete katula dossier na yandi ya bwala mpi kusala dossier ya mpa . git clone, to kubaka ntinu git fetch origin && git reset --hard origin/main.

Kitini ya 5: Kukanga nzila na masa yina ke basika na bilumbu ke kwisa kimakulu (Gitleaks Lutaninu ya Hook & Push ya GitHub)

Baka basegonde 60 sesepi yai sambu na kusala nde yo vanda mpasi na kusala dyaka kinsweki na kintulumukina na mutindu ya matematike:

  1. Kangula GitHub ya ofele "Push Protection for Yourself" na zulu ya konti na nge ya mvimba ya GitHub:
  2. Kwenda na GitHub Settings (ba parametre ya profil na nge mosi, na zulu na diboko ya kitata) -> Code security and analysis (to Code security).
  3. Kuluta na Secret scanning -> Kupesa nzila Push protection for yourself.
  4. Kana nge me kangula yo, konso ntangu ya nge ke baka ntinu git push katuka na konso ordinatere tii na konso kisika ya kubumba bima ya bantu yonso to ya kinsweki, serveur ya GitHub ke talaka packfile na nge yina ke kota na ntwala ya kundima push: kana yo me mona nsabi ya AWS, nsabi ya OpenAI, nsabi ya Stripe, nsabi ya SSH ya kinsweki, to kidimbu ya Slack, GitHub ke buyaka . git push kaka na terminal na nge na ntwala nde commit kubasika.
  5. Tula gitleaks bonso muntu ya bwala pre-commit nsinga ya ordinatere na nge:
    # 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

Sadila .env.example ti bansinga ya kisika ya luvunu mpi 1Password CLI / AWS Vault / doppler sambu na binsweki ya bwala: Kubumba ve ata fioti bansapi ya kisalu ya kieleka na masonama ya mpamba . .env fichier na ordinatere ya developpeur kana nge lenda tina yo. Kansi, sala safe . .env.example (STRIPE_API_KEY=sk_test_placeholder_replace_me), kuyika .env* na ntoto ya mvimba $HOME/.gitignore_global (git config --global core.excludesfile $HOME/.gitignore_global), to kukotisa binsweki mbala mosi na mabanza na ntangu ya kusala kisalu na kusadilaka . op run --env-file=".env.tpl" -- npm start (1Password CLI) to aws-vault exec.


Banimero ya urgence ya kizunga mpi bansiku ya kimvuka

Kana kupusa ya GitHub na kintulumukina kunata muntu na kukota kukonda kupesa nswa na bansangu ya muntu yina bo metulaka bansiku (PII / PHI), ba système ya kusansa bantu, to bisalu ya luyalu, landa ba protocole ya mfunu ya kuzabisa bantu kana bo me fwa nsiku:

  • Etats-Unis na Canada:
  • Lutaninu ya Luzingu ya Nswalu / Kukatuka ya Infrastructure ya Mfunu: Binga 911 kana kufwa nsiku ya infrastructure ke bebisa bisalu ya lupitalu to mambu ya ke tadila lutaninu ya nitu.
  • Kimvuka ya ke talaka mambu ya lutaninu ya Internet mpi ya banzo (CISA) & FBI (IC3): Kana bantu yina ke nwanisa nge me sadila bansapi ya matuti yina me basika sambu na kukatula bansangu to kutula baprograme ya mbi ya ke lombaka mbongo, zabisa yo na CISA (1-844-Say-CISA / cisa.gov/report) ye Centro ya FBI ya Kufunda Mambu ya Mbi na Internet (ic3.gov).
  • SEC, FTC, & Procureur Général ya Leta Nsangu ya Kufwa Bansangu: Kana CloudTrail / ba nsangu ya kukota na base de données ke monisa nde adresi IP mosi ya bo me pesa ve nswa me kota na bansangu ya bakiliya (PII) to mikanda ya ke tubilaka mambu ya mavimpi (HIPAA ePHI).
  • Centre ya Canada ya Lutaninu ya Internet: Binga 1-833-CYBER-88 (1-833-292-3788) to kuzabisa mambu ya kufwa bansiku ya kinsweki na nsi ya . PIPEDA na Biro ya Komite ya Ke Talaka Mambu ya Kinsweki ya Canada (OPC).
  • Kimfumu ya Bumosi:
  • Bisalu ya nswalu: Binga 999 (to 101 / Luvunu ya bisalu 0300 123 2040 na Centre National de Sécurité Cybernétique / . NCSC na ncsc.gov.uk).
  • Biro ya Komisere ya Bansangu (ICO - 72-Hour UK GDPR Window): Kana nsangu mosi ya bo me basisa me pesa nzila ya kukota kukonda kupesa nswa na bansangu ya bantu yina ke zingaka na UK, Artikle 33 ya UK GDPR ke lomba nde bo zabisa ICO (0303 123 1113) muna ola 72 tuka kazaya e diambu diadi.
  • Kimvuka ya Eropa:
  • Bisalu ya nswalu: Binga 112 na bansi yonso ya kele na kati ya UE.
  • GDPR Artikle 33 & NIS2 Directive Incident Reporting: Bimvuka yina kele na nsi ya nsiku ya GDPR ya UE fwete tadila kana kumonisa bansangu ya muntu me sala nde bo fwa kinsweki ya bansangu ya muntu (kuzabisa bangunga 72 na kimvuka ya ke talaka mambu ya lutaninu ya bansangu ya insi / DPA), na ntangu bimvuka ya mfunu/ya mfunu na nsi ya UE . NIS2 Directive ke kutana ti nsuka ya kupesa rapore na ntwala ya bangunga 24 na insi na bo CSIRT (BSI na Allemagne, ANSSI na France, ACN na Italie) sambu na mambu ya nene yina salamaka na Internet.
  • Australie na Nouvelle-Zélande:
  • Bisalu ya nswalu: Binga 000 na Australie to 111 na Nouvelle-Zélande.
  • Centre ya Lutaninu ya Internet ya Australie (ACSC) & Kufwa Bansangu ya Bo Ke Zabisaka (OAIC): Kubinga 1300 CYBER1 (1300 292 371) samu na kupesa mvutu na mambu yina me salama, mpe kutadila mikumba ya kuzabisa na nsi ya Biro ya Komite ya Bansangu ya Australie (OAIC) Kufwa Bansangu yina Bo Lenda Zabisa (NDB) ngidika to Nsiku ya Ke Talaka Mambu ya Kinsweki ya Nouvelle-Zélande 2020 (Privacy Commissioner).
  • Inde na Asie-Pacifique:
  • Bisalu ya nswalu: Binga 112 na Inde (to 1930 sambu na mambu ya mbi ya internet).
  • CERT-In Nsiku ya Kupesa Rapore ya Bangunga 6 (Inde): Na nsi ya Kimvuka ya Ke Sadisaka Bantu na Kusadila Baordinatere ya Inde (CERT-In) nzila (No. 20(3)/2022-CERT-In), kukota kukonda kupesa nswa na ba système ya matuti/IT to kubasika ya bansangu yina ke tadila bimvuka na Inde fwete zabisama na ** .incident@cert-in.org.in na nsungi ya bangunga 6** ya kuzaba.

Bangyufula yina bantu keyulaka mbala na mbala

Mono me katula yo .env fichier mpi pusaka commit ya mpa basegonde 30 na nima ya kifu na mono - keti mono kele kaka na mfunu ya kubalula bafungula na mono ya API mpi ba mot de passe ya base de données?

Ee, 100 na kati ya nkama - balula konso nsabi mosi mbala mosi kukonda kukatula. Bakulonguka ya banzo-nkanda ya ketubilaka mambu ya metala lutaninu ya Internet mpi telemetrie ya GitHub Secret Scanning kendimisa nde ba-robot yina kebakaka bansangu na bo mosi ketalaka mambu yina kesalamaka na GitHub (Api.github.com/mambu) na ntangu ya kyeleka mpi kubaka ba commits ya mpa ya bo mepusa na kati ya . 1,5 tii na basegonde 5. Kima ya mbi kuluta, kupusa commit ya zole yina ke katulaka . .env ke bika masonama ya mvimba .env fichier ke vanda ntangu yonso na kati ya diff ya histoire ya commit ya ntete - mpi ba robot mingi ke sosaka na sikisiki yonso ba commit yina ke katulaka . .env ba fichier. Kana kinsweki me pusama na kisika ya kubumba bima ya bantu yonso ata na sekondi 1, yo ke kumaka na kigonsa kimakulu; kukatula mpi kubalula nsangu yina kele na tablo ya ba fournisseur kele kima mosi mpamba yina ke taninaka nge.

Inki beto lenda tuba kana kisika ya kubumba bima vandaka kisika ya kubumba bima ya GitHub ya KIMPWANZA ntangu mono salaka . .env fichier, mpe mu zola kaka kusukula yau na ntwala ya kusala repo public na mposo ke kwisa?

Kana kisika ya kubumba bima vandaka . 100 na kati ya nkama ya kinsweki ntangu yonso (mpi ata application mosi ve ya CI/CD ya bantu ya nkaka yina bo ke tudilaka ve ntima vandaka ti nswa ya kukota), ba-robot ya ke katulaka bima na API ya GitHub Events ya bantu yonso kele ti . ve mona kinsweki na nge ntete. Kansi, KUFWA ve kaka . `.env` na commit ya mpa mpi na nima kubalula repo katuka na Privé tii na Public. Na ntangu nge ke balula kisika ya kubumba bima ya kinsweki na Public, yo . graphique ya mvimba ya mambu ya ntama ke kuma ya bantu yonso - mpi ba bots ke tala mbala mosi ba commits yonso ya ntama na repo ya mpa ya bantu yonso. Na ntwala ya kusala nde repo ya kinsweki kuvanda na meso ya bantu yonso, to: (1) Kusala . git filtre-repo --balula-nzila --nzila .env sambu na kukatula fichier na ba commits yonso ya ntama (mpi kubalusa ba clés ata mpidina sambu na kusala mbote), TO (2) Kopie ba fichiers ya bunkete ya ntangu yai na dossier mosi ya mpa kibeni, sala . kubanda sambu na disolo ya ntete ya 1-commit ya bunkete, mpi kubasisa kisika yina ya kubumba bima ya mpa.

Sambu na nki AWS yikaka na mbala mosi nsiku mosi ya bo ke bingaka . AWSCompromisedKeyQuarantineV2 na nsadi na mono ya IAM, mpi sambu na nki mono ke bakaka kaka mbongo?

Sambu AWS ke salaka mbala mosi ti GitHub Secret Scanning, konso ntangu yina . AKIA... nsabi ke monanaka na commit ya GitHub ya bantu yonso, ngidika ya lutaninu ya AWS ke zabaka yo na nima ya minuta fioti, ke kangulaka tike ya lusadisu, mpi ke kangaka nsiku yina bo ke twadisaka . AWSQuarantineNsabi ya Bo Me BebisaV2. (to V3.) na nsadi yina ya IAM. Nsiku yina ya quarantaine ke kangaka bisalu ya kigonsa ya pwelele bonso kubasisa mambu ya mpa . ec2:Kusala Bambandu to kufwa ba-bucket S3 - kansi yo ke manisaka ve ba instance ya EC2 yina muntu yina me nwanisa me yantika dezia na nsungi ya basegonde 60 ya ntete na ntwala nde bo tula nsiku yina, mpi yo ke katulaka ve bantu yina ke sadilaka IAM na nima to bantu yina ke sadilaka yo sambu na ntangu fioti . STS sessions yina muntu ya ke nwanisaka me salaka dezia. Nge fwete katula kaka na maboko nsabi yina me basika, tala . EC2 Kumona ya Ntoto ya Mvimba na bisika yonso sambu na kumanisa ba instance ya luvunu, mpi kutala . Nzila ya Matuti sambu na bansoba ya IAM yina bo me pesa ve nswa.

Inki luswaswanu kele na kati ya . git filter-repo mpidina BFG Repo-Cleaner, ye sambu na nki mono fwete sadila ve . git filter-branch?

Kitini ya filtre ya git kele script ya shell ya ntama yina bo me tungaka na ba version ya ntete ya Git yina kele malembe mingi na ba repositoire ya nene, yo kele pete na kuyidika yo na mutindu ya mbi (kubika ba refs ya backup na 1999). ba refs/ya kisina/ yina kele kaka ti binsweki na nge.), mpi ntangu yai ke niema lukebisu ya kukonda mfunu ya me katuka na Git yina ke songa nge na kusadila yo ve. Yonso zole git-filtre-repo (ya bo me sonikaka na Python mpi ya bo me ndimaka na mutindu ya me fwana na bantu yina ke taninaka Git mpi na GitHub) mpi . BFG Repo-Kusukula (me sonikama na Java/Scala) sala 10x tii na 100x nswalu mpi sonika diaka na bunkete ba commits yonso, banti, mpi ba tags. git-filtre-repo ke zolaka mingi bubu yai sambu yo ke sobaka ata mambu yina nge me sala sesepi (`HEAD`) kukonda kulomba ntete kusala kima mosi ya kuswaswana na ntwala.

Inki mutindu muntu lenda mona kaka commit na mono ya bo me katula na GitHub na nima ya kubaka ntinu . git filter-repo mpidina git push --force?

Na Git, `git push --force` ke tula kaka bima ya mpa pointeur ya referansi ya filiale (`refs/heads/main`) sambu na kusonga nsinga na nge ya mpa ya bo me sonika diaka; yo ke salaka ve mbala mosi kufwa bima ya ntama ya kukonda referansi ("dangling") ya bo me bumba na ba serveur ya backend ya GitHub. Kana bot mosi sonikaka hash ya SHA ya bisono 40 ya commit na nge ya kisina ntangu yo bulaka API ya Mambu ya bantu yonso, kwenda mbala mosi na . 40-kisono-SHA> ta tula kaka commit yina ya orphelin na cache ya bima ya GitHub tii kuna kisalu ya kuvukisa bamvindu ta salama. Sambu na kufwa mbala mosi, to . katula kisika ya kubumba bima na GitHub mpi sala yo diaka na kisika na nge ya kubumba bima ya bunkete ., to tinda SHA ya ke kangama na . Lusadisu ya GitHub (`support.github.com`) sambu na kukatula nswalu cache na ndambu ya serveur.

Inki nge ta sala kana muntu mosi me niema dezia "Forche" na kisika na mono ya kubumba bima ya bantu yonso na ntwala nde mono baka ntinu . git filter-repo?

Kikuma yai Kitini ya ntete kele ntangu yonso kukatula mpi kubalula bansangu ya mfunu na tablo ya ba fournisseur .: kutambula git filtre-repo mpi kupusa na ngolo na kisika na nge mosi ya kubumba bima . ke sonika diaka ve mambu yina bo me sala na kati ya Fourche ya kimpwanza ya muntu ya nkaka ya kisika na nge ya kubumba bima (katula kaka kana nge katula kisika na nge ya kubumba bima yonso mpi nge solula ti Lusadisu ya GitHub na yina me tala bansangu ya mfunu na bafourche). Kana nge me katula bansapi ya AWS/API mpi me balula ba mot de passe ya base de données, konso kopi ya . .env fichier yina me vanda na kati ya base de données ya fork to ya bot ya muntu ya nkaka ke kumaka nsinga ya bisono ya kufwa mpi ya kukonda mfunu yina lenda kota diaka ve na infrastructure na nge.


Bantwadisi ya ke wakana


Bisika mpi lutwadisu ya leta

  • Mikanda ya Lutaninu ya GitHub (docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository): Kukatula Bansangu ya Mfunu na Kisika ya Kubumba Bansangu (git filter-repo, BFG Repo-Cleaner, Kukatula Cache ya Kusala na Kinsweki, mpi Lutaninu ya Kupusa na Kusala Scanner ya Kinsweki).
  • Bisalu ya Internet ya Amazon (AWS) Mukanda ya Kupesa Mvutu na Mambu ya Lutaninu (docs.aws.amazon.com/security/): Kupesa mvutu na ba nsabi ya kukota ya AWS IAM yina bo me monisa (AWSCompromisedKeyQuarantineV2, Kukatula ya ntangu fioti STS Balukutakanu na nzila ya aws:TokenIssueTime, mpi CloudTrail Audit forensique).
  • Institut ya Insi ya Bansiku mpi ya Teknolozi (NIST) (États-Unis): Mukanda ya Sipesiali 800-61 Kus. 2: Mukanda ya Kuyidika Mambu ya Ke Tadila Lutaninu ya Ordinatere & SP 800-57: Nsikudukusu samu na kusadila ba nsangu ya mfunu (Kukatula ba nsangu ya kuzaba yina me beba mpe kubalula ba nsangu ya kinsweki).
  • Kangula Projet ya Lutaninu ya Baprograme ya Web (OWASP): Mukanda ya Kukusa ya Kuyidika Binsweki (Kukanga Bansangu ya Kukonda Kukangama, Kusala Na Ntwala ya Kusala Scanner ya Kinsweki ti Gitleaks/TruffleHog, ye Injection Secrète de Temps de Runção Efémera).
  • Kimvuka ya ke talaka mambu ya lutaninu ya Internet mpi ya banzo (CISA) (États-Unis): Mukanda ya Kusadila Architecture Technique de Référence de Sécurité des Nuages ​​et Réparation des Crédentiels Compromis.