Skip to content

Sengaja Didorong .env Rahasia utawa Kunci AWS menyang Repo GitHub Umum: Napa Mbusak File Ora Didhelikake

Nomer darurat beda-beda miturut negara. Kaca iki nggunakake 911, nomer kanggo Amerika Serikat lan Kanada. Akeh negara liya nggunakake 112, 999, utawa nomer liyane. Temokake nomer kanggo negara sampeyan.

Nyadari sepuluh detik sawise mlaku git push origin main (utawa flipping repositori pribadi menyang Public) yen komitmen sampeyan kalebu plainteks .env berkas, AWS AKIA... Kunci Akses lan Kunci Rahasia, kunci OpenAI/Anthropic API, Stripe sk_live_... token produksi, URI database PostgreSQL/MongoDB kanthi tembung sandhi, utawa ora enkripsi $HOME/.ssh/id_ed25519 kunci pribadi minangka darurat keamanan siber limang weker. Botnet pemanen kredensial otomatis terus-terusan polling publik GitHub Events Firehose (api.github.com/events) lan clone mentas di-push laku ** ing 1,5 kanggo 4 detik saka Panjenengan git push ngrampungake**. Luwih elek, meh saben pangembang panik nggawe kesalahan fatal sing padha: padha mbusak .env file lokal, nambah .env kanggo .gitignore, lan push komit kapindho kanthi judhul "remove .env" utawa "oops". ** Nyurung komit kapindho sing mbusak .env ora ndhelikake **: rahasia plaintext tetep 100 persen bisa diwaca ing salawas-lawase ing prabédan commit sadurunge (git log -p), lan sanajan sampeyan meksa-push (git push --force) liwat cabang, komitmen sing ora dirujuk (dangling blob) tetep bisa diakses umum liwat URL GitHub langsung lan tampilan Panjaluk Tarik sing di-cache nganti diresiki kanthi jelas. Yen kredensial sing bocor wis digunakake dening panyerang kanggo nyebarake ransomware, mbajak domain DNS, utawa ngunci panyewa awan sampeyan, takon pandhuan kanca kita babagan ransomware lan respon malware, pembajakan jeneng domain, DNS kadaluwarsa, lan pengambilalihan situs web, lan Kunci admin domain khusus Google Workspace utawa Microsoft 365. Yen bocor kredensial nyebabake safety pasien rumah sakit, kontrol industri fisik, utawa infrastruktur pengiriman darurat, hubungi nomer darurat lokal sampeyan (911 ing Amerika Serikat lan Kanada, 112 liwat Uni Eropa, 999 ing Inggris) utawa priksa direktori internasional kita nomer darurat.

Apa iki saiki

  1. **BATALKE, DEAKTIF, lan ROTATE saben rahasia sing katon ing konsol panyedhiya FIRST - ing 120 detik pisanan - sadurunge mbuwang siji detik mlaku git printah **: Sawise rahasia ndemek panyimpenan umum GitHub, GitLab, utawa Bitbucket nganti 3 detik, ** dianggep tombol kasebut minangka diobong kanthi permanen lan wis ana ing tangan penyerang otomatis **. Ora jumlah git reset --hard, git push --force, utawa mbusak repositori bisa mbusak kunci saka database bot scraper sing wis ndownload komitmen sampeyan ing nomer loro. Mlebu menyang AWS IAM, Stripe, OpenAI, konsol database, utawa setelan GitHub SSH saiki lan **Pateni / Busak / Gulung tombol langsung **.
  2. **Audit Tagihan Cloud lan Log Audit (AWS CloudTrail, GCP Cloud Audit Logs, Stripe Logs) kanggo jendhela antarane Panjenengan git push lan panjabutan kunci sampeyan **: Bot cryptomining otomatis nggunakake bocor AWS_ACCESS_KEY_ID (AKIA...) kredensial sajrone 30 nganti 90 detik kanggo muter kuota GPU maksimum (p4d.24xlarge / g5.48xlarge) ing kabeh wilayah AWS sing didhelikake (ap-east-1, me-south-1, af-south-1) lan nggawe pangguna backdoor IAM utawa Lambda terus-terusan pancing supaya tetep ana ing akun AWS sampeyan sanajan sampeyan mbusak kunci sing bocor.
  3. ** ORA meksa sedhela "Delete .env" commit - nyatane, ngetik "delete secret" utawa "remove password" ing pesen commit narik bot scraper sing ditargetake**: Ewonan skrip aktor ancaman khusus takon GitHub Telusuri pesen komitmen sing ngemot "remove .env", "delete key", "oops", lan "remove credentials", banjur klik siji commit mundur ing sajarah kanggo nyolong tombol.
  4. Tulis ulang kabeh riwayat panyimpenan Git kanthi nggunakake lokal git filter-repo (utawa BFG Repo-Cleaner) kanggo ngilangi file utawa nyunting string sandi saka saben komitmen, wit, lan tag sajarah: git filter-branch wis ora resmi dening proyek Git; nganggo git filter-repo --invert-paths --path .env (kanggo nuke file saka kabeh commits) utawa git filter-repo --replace-text expressions.txt (kanggo ngganti string sandi tartamtu karo ***REMOVED*** ing file kode tanpa mbusak file).
  5. Paksa-push kabeh cabang lan tag (git push origin --force --all), LAN ngresiki tampilan komit cache ing sisih server GitHub (dangling commits): Punika rahasia paling pangembang ora ngerti: malah sawise sampeyan mbukak git filter-repo lan git push --force, Server GitHub njaga commit SHA lawas ing cache obyek (git cat-file), tegese sapa wae sing ngrekam 40 karakter commit SHA saka API Acara umum isih bisa ndeleng github.com/user/repo/commit/<OLD_SHA>. Kita nerangake ing ngisor iki carane langsung ngresiki cache commit dangling liwat Dhukungan / API GitHub utawa kanthi mbusak lan nggawe repositori.
  6. ** Instal lokal pre-commit scanner rahasia (gitleaks utawa trufflehog) ing njero .git/hooks/pre-commit sadurunge sampeyan nulis baris kode liyane **: A 10 detik gitleaks protect --staged pancing pre-commit mriksa saben baris sing dipentasake sacara lokal ing laptop lan pamblokiran sampeyan git commit sadurunge rahasia bisa ninggalake mesin sampeyan.

Danger

Yen sampeyan bocor Kunci AWS (AKIA...), mung mbusak Kunci Akses IAM siji ora cukup - sampeyan kudu mriksa manawa panyerang wis nggawe Panganggo, Peran, utawa Sementara IAM kapindho STS Token Sesi sajrone 60 detik, kunci kasebut urip: Nalika bot otomatis ndeteksi tombol AWS karo AdministratorAccess utawa iam:* ijin ing GitHub, telpon API otomatis pisanan (ing 2 detik). iam:CreateUser + iam:CreateAccessKey (utawa sts:GetSessionToken valid kanggo 36 jam). Yen sampeyan mung mbusak tombol trocoh saka .env lan turu maneh, tombol backdoor sing mentas digawe penyerang terus mlaku $15,000/day Kluster EC2 GPU kabeh akhir minggu. Tindakake 6-Point AWS Post-Leak Containment Checklist ing Fase 2 ing ngisor iki langsung.


Wit keputusan: penahanan langsung, rotasi, lan pembersihan riwayat Git

Jalanake alur kerja iki kanthi urutan kronologis sing ketat (Cabut FIRST -> Audit Persistence SECOND -> Purge Git History THIRD):

flowchart TD
    Start["Rahasia Didorong menyang Repo Umum (.env, AWS/GCP Key, DB Sandi, Stripe/OpenAI Key, utawa Private SSH Key)"] --> Step1["MENIT 0 SAMPAI 2 (PRIORITAS #1): Mbusak / Muter Saben Kunci sing Dipaparake ing Konsol Panyedhiya Langsung"]

    Step1 --> SecretType{"Apa Jinis Kredensial Ana Ing Komit?"}

    SecretType -->|"Kunci Infrastruktur Cloud (AWS AKIA, Akun Layanan GCP JSON, Azure SP)"| CloudAudit["MENIT 2 nganti 10: Priksa CloudTrail / Log Aktivitas -> Mungkasi Rogue EC2 / Compute Instances ing Kabeh Wilayah -> Busak Pangguna IAM / Peran / Sesi STS sing Ora Sah"]

    SecretType -->|"URI / Sandi Database (Postgres, MySQL, MongoDB, Redis, Supabase)"| DBAudit["MENIT 2 SAMPAI 10: Puter Sandi Panganggo DB + Mateni Sambungan Aktif (pg_terminate_backend) + Kunci Grup Keamanan Firewall menyang IP sing Didaftar Putih Mung"]

    SecretType -->|"Token API utawa Kunci SSH (Stripe, OpenAI, GitHub PAT, Slack, Kunci SSH Pribadi)"| TokenAudit["MENIT 2 nganti 10: Gulung Kunci API ing Dashboard / Copot Kunci SSH Umum saka $HOME/.ssh/authorized_keys & Setelan GitHub -> Audit Log Panggunaan API Paling Anyar"]

    CloudAudit --> RepoVisibility{"MENIT 10 nganti 20: Kepiye Sampeyan pengin Mbusak Repositori GitHub?"}
    DBAudit --> RepoVisibility
    TokenAudit --> RepoVisibility

    RepoVisibility -->|"Ngilangke Cache 100% Paling Cepet (Ora Ana Masalah Kritis/Riwayat Bintang sing Perlu Disimpen)"| NukeRepo["1. Busak Repositori Kabeh ing Setelan GitHub. 2. Jalanake git filter-repo Lokal kanggo ngresiki Sejarah. 3. Gawe Riwayat Repo Segar & Push Clean (Enggal Numpes Kabeh Komit SHA sing Cache)"]

    RepoVisibility -->|"Kudu Nglestarekake Bintang Repo, Masalah, PR, & Garpu sing Ana"| RewriteRepo["1. Jalanake git filter-repo (--invert-paths utawa --replace-text). 2. Run git push --force --all & --tags. 3. Hubungi GitHub Dhukungan / Portal Dhukungan kanggo Purge Dangling Commit SHA Cache"]

Fase 1: Menit 0 nganti 2 - Lembar Cheat Pembatalan Langsung dening Panyedhiya

Aja ** ora ** mbukak terminal kanggo perang karo git rebase nalika kunci produksi sampeyan isih aktif. Klik langsung menyang panyedhiya sing kena pengaruh ing ngisor iki lan mateni kredensial dhisik:

Tipe Kredensial Bocor Ater-ater / Pola ing Kode Panjenengan Persis 30-Detik Pembatalan & Rotasi Tindakan Apa GitHub Mbusak Otomatis (Secret Scanning Partner Program)?
1. Kunci Akses IAM AWS AKIA... (tombol IAM long-term) utawa ASIA... (Tombol STS sauntara) + Rahasia 40-char Konsol AWS -> IAM -> Users -> [Username] -> Security credentials tab -> Access keys -> Klik Deactivate banjur Delete. (Uga priksa manawa AWS Composed Key Quarantine Policy AWSCompromisedKeyQuarantineV2 wis dipasang kanthi otomatis dening AWS.) Langsung Tandha AWS (AWS kanthi otomatis ngirim email marang sampeyan, mbukak Kasus Dhukungan Prioritas Dhuwur, lan nempelake AWSCompromisedKeyQuarantineV2 ing sawetara menit - ngalangi EC2 diluncurake - nanging ** sampeyan isih kudu mbusak tombol kanthi manual **).
2. Google Cloud (GCP) Akun Layanan JSON utawa Kunci API private_key_id, BEGIN PRIVATE KEY ing njero *-credentials.json, utawa AIzaSy... Google Cloud Console -> IAM & Admin -> Service Accounts -> klik Akun -> Keys tab -> Busak ID Kunci sing bocor. Kanggo AIzaSy... Kunci API: APIs & Services -> Credentials -> Regenerate Key lan matesi kunci dening HTTP Referrer / IP. Ya/Tandha: Google Cloud kanthi otomatis menehi kabar marang pamilik proyek lan bisa mateni kunci Akun Layanan GCP sing bocor sing dideteksi ing GitHub umum.
3. Stripe Live Secret Key sk_live_... utawa rk_live_... (Kunci Watesan) Dasbor Stripe (dashboard.stripe.com/apikeys) -> Klik ... ing jejere Kunci Rahasia -> Klik Roll key... -> Pilih Expire now (Immediately). YES (Otomatis Dicabut): Integrasi Stripe karo GitHub Secret Scanning **otomatis muter / ora valid sk_live_ tombol ing sawetara detik ** saka push umum lan email sampeyan.
4. Tombol API OpenAI / Anthropic / HuggingFace sk-proj-..., sk-ant-..., hf_... - OpenAI (platform.openai.com/api-keys): Klik lambang Trash ing jejere tombol langsung (bots drain $500 saka kridit GPT-4 / Claude ing sangisore 4 menit.).
- Antropi (console.anthropic.com/settings/keys): Pateni/Busak tombol.
- Wajah Peluk: Settings -> Access Tokens -> Invalidate.
YES: OpenAI, Anthropic, lan HuggingFace partner karo GitHub Secret Scanning kanggo otomatis mbatalake kunci sing dideteksi ing repo umum, sanajan verifikasi manual wajib.
5. Token Akses Pribadi GitHub (PAT) utawa OAuth / Kunci Aplikasi ghp_..., github_pat_..., gho_..., ghs_... GitHub Settings -> Developer settings -> Personal access tokens -> Mbusak token. YES (Instant): GitHub kanthi otomatis mbatalake sembarang ghp_ utawa github_pat_ token pamisah detik kasebut di-push menyang repositori GitHub umum.
6. String Koneksi Database (PostgreSQL, MongoDB Atlas, Supabase, PlanetScale, Redis) postgresql://user:pass@host..., mongodb+srv://..., SUPABASE_SERVICE_ROLE_KEY 1. Puter sandi pangguna basis data ing dashboard awan (RDS, Atlas, Supabase, Neon).
2. Mateni sambungan TCP mbukak sing wis ana (SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid();) amarga ngganti tembung sandi Postgres/MySQL ora ** ora ** medhot panyerang sing wis nyambung menyang soket aktif.
NO (URI Database Umum Ora Dicabut Otomatis): Amarga a postgresql:// utawa mongodb+srv:// URL nuduhake jeneng host khusus, GitHub ora bisa mbatalake tembung sandhi database sampeyan kanthi otomatis - sampeyan kudu ngganti kanthi manual saiki.
7. Kunci SSH Pribadi (id_rsa, id_ed25519, .pem EC2 Keypair) -----BEGIN OPENSSH PRIVATE KEY----- utawa -----BEGIN RSA PRIVATE KEY----- **Kunci SSH pribadi ora bisa "ora bocor." ** Langsung mbukak saben server $HOME/.ssh/authorized_keys file (lan GitHub/GitLab Settings -> SSH and GPG keys kaca) lan mbusak baris kunci umum sing cocog. Kanggo AWS EC2 .pem tombol, mbusak tombol umum saka saben EC2 Kayata kang $HOME/.ssh/authorized_keys. NO: GitHub ora bisa mlebu menyang server Linux sampeyan kanggo nyunting $HOME/.ssh/authorized_keys - sampeyan kudu mbusak kunci umum saka saben server target dhewe.

Fase 2: Menit 2 nganti 10 - Priksa Yen Penyerang Wis Nggawe Backdoor (AWS / Cloud Containment)

Yen sampeyan bocor .env file ngemot AWS Access Key (AKIA...), Akun Layanan Google Cloud JSON, utawa Principal Layanan Azure, mbusak kunci sing bocor mung setengah perang. Sampeyan kudu verifikasi manawa bot otomatis ora nggunakake 90 detik kasebut kanggo netepake kegigihan ing akun maya sampeyan:

Audit Forensik Pasca Bocor AWS 6-Point

  1. ** Priksa AWS CloudTrail -> Event history kanggo kabeh telpon API digawe dening bocor Access Key ID**:
  2. Bukak AWS CloudTrail Console -> Riwayat acara.
  3. Ganti dropdown goleki saka Mung-Waca dadi Access key ID lan tempel sing bocor AKIA... senar.
  4. Deleng saben acara sing dicathet wiwit menit sampeyan mlayu git push. Khusus goleki: CreateUser, CreateAccessKey, AttachUserPolicy, CreateRole, AssumeRole, GetSessionToken, RunInstances (EC2), RequestSpotInstances, CreateFunction (Lambda), utawa SendEmail (SES spam).
  5. ** Copot sembarang sauntara aktif STS sesi sing digawe dening pangguna kasebut**:
  6. Malah sawise sampeyan mbusak a AKIA... tombol akses, yen panyerang disebut sts:GetSessionToken sadurunge sampeyan mbusak kunci kasebut, sementara ASIA... token sesi tetep valid nganti 36 jam.
  7. Kanggo mateni kabeh sauntara aktif STS token kanggo pangguna IAM kasebut langsung, pindhah menyang IAM -> Users -> [Leaked User] -> Permissions -> Add inline policy lan klik Revoke sessions (sing nempelake eksplisit Deny * kawicaksanan kanggo sembarang token ditanggepi ngendi aws:TokenIssueTime luwih dhisik tinimbang saiki.).
  8. ** Priksa IAM -> Users lan IAM -> Roles kanggo akun backdoor sing mentas digawe**:
  9. Urut kabeh Panganggo IAM miturut ** Wektu nggawe **. Mbusak pangguna sing ora dikenal (admin-backup, sys-monitor, support-bot) lan verifikasi Trust relationships tab ing Peran IAM sampeyan kanggo mesthekake panyerang ora nambah ID Akun AWS eksternal dhewe ("Principal": {"AWS": "arn:aws:iam::999999999999:root"}) minangka kepala sekolah sing dipercaya.
  10. Gunakake AWS Resource Explorerutawa EC2 Global View kanggo mriksa ALL 30+ Wilayah AWS kanggo cryptominers sing didhelikake:
  11. Penyerang arang banget ngluncurake kedadeyan cryptomining us-east-1 ngendi sampeyan bakal weruh ing dashboard. Nanging, padha miwiti p4d, g5, utawa c6i.32xlarge conto ing ap-southeast-3 (Jakarta), me-central-1 (UAE), il-central-1 (Tel Aviv), utawa sa-east-1 (São Paulo).
  12. Buka EC2 Console -> EC2 Global View (sing mindai saben wilayah sing aktif ing tabel siji) lan **Mbusak ** kedadeyan sing ora sah langsung.
  13. Mbukak Kasus Tagihan Dhukungan AWS langsung yen kedadeyan nakal entuk tagihan:
  14. Yen bot spun munggah $8,000 saka conto GPU EC2 sadurunge sampeyan mungkasi, aja gupuh: yen sampeyan wis ngamanake akun, mbusak tombol, ngaktifake root/IAM MFA, lan mbusak kunci saka GitHub, bukak Akun AWS lan Kasus Dhukungan Tagihan sing nerangake push GitHub sing ora disengaja lan langkah remediasi sampeyan. AWS kanthi rutin menehi kredit pangapunten tagihan muhibah sepisan kanggo bocor kunci GitHub sing ora disengaja sawise tim keamanan verifikasi repositori kasebut resik.

Fase 3: Napa Mbusak File ing Komit Anyar Gagal - lan Cara Nulis Ulang Sejarah kanthi Bener git filter-repo

1. Kenapa git rm .env && git commit -m "delete .env" pancen ora ana gunane

Git minangka sistem file sing bisa ditanggulangi konten mung ditambah (Directed Acyclic Graph / DAG saka commit, wit, lan obyek blob): - Upaminipun ** Prasetya A1B2C3** ditambahake .env (Blob 998877). - Upaminipun 2 menit mengko sampeyan mbukak git rm .env, nambah .env kanggo .gitignore, lan push ** Komit D4E5F6**. - Nalika ana wong sing njelajah dhaptar file saiki ing homepage GitHub sampeyan ora bakal weruh .env, Komitmen A1B2C3 lan Blob 998877 isih 100 persen bagéan saka gudang. Sapa wae sing mlaku git clone downloads Blob 998877, sapa wae sing ngeklik tab "Commits" ing GitHub bisa ngeklik A1B2C3 kanggo maca Panjenengan .env file ing teks biasa, lan alat otomatis (trufflehog git https://github.com/user/repo) pindai saben komit sejarah sajrone 2 detik.

2. Langkah-langkah: Mbusak File utawa Rahasia String Across ALL Sajarah Nggunakake git filter-repo

Proyek Git lan GitHub resmi nyaranake git-filter-repo (sing ngganti alon, rawan kesalahan git filter-branch lan malah luwih fleksibel tinimbang BFG Repo-Cleaner).

  1. ** Instal git-filter-repo** (Mbutuhake 5 detik):
    # On macOS (Homebrew):
    brew install git-filter-repo
    
    # On Linux / Windows (via pip / apt):
    pip3 install git-filter-repo
    
  2. ** Gawe salinan serep keamanan folder panyimpenan lokal sadurunge nulis ulang riwayat **:
    cp -r $HOME/projects/my-repo $HOME/projects/my-repo-backup
    cd $HOME/projects/my-repo
    
    (Cathetan: Yen sampeyan wis mindhah sah .env file metu, priksa manawa salinan resik saka .env disimpen ing /tmp/.env.safe njaba repo, amarga git filter-repo bakal ngilangke .env saka direktori kerja sampeyan uga.)
  3. Pilih Pilihan A (Busak Path File Kabeh kaya .env utawa id_rsa) UTAWA Opsi B (Redact Spésifik Rahasia Strings Nang File Kode):
  4. ** Pilihan A: Mbusak rampung .env (utawa config/secrets.json) saka saben komit ing sajarah**:
    git filter-repo --invert-paths --path .env --force
    
    (Kenapa --invert-paths? tanpa --invert-paths, git filter-repo --path .env tetep ONLY .env lan mbusak kabeh liyane. Nggabungke --invert-paths --path .env ngandhani Git supaya kabeh kajaba .env ing kabeh commit, cabang, lan tag.)
  5. Pilihan B: Simpen file kode (app.py / config.js), nanging scrub string rahasia hardcoded saka saben versi sajarah: Nggawe file teks /tmp/secrets-to-scrub.txt ngemot siji string rahasia (utawa regex) saben baris:
    AKIAIOSFODNN7EXAMPLE==>REDACTED_AWS_KEY
    sk_live_51NzExampleSecretKey999==>REDACTED_STRIPE_KEY
    regex:postgres:\/\/non_at_chars@==>postgres://REDACTED_DB_CREDENTIALS@
    
    Saiki mlayu 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. ** Tambah .env kanggo .gitignore supaya sampeyan ora nindakake maneh 5 menit saka saiki**:
    echo ".env" >> .gitignore
    echo "*.pem" >> .gitignore
    git add .gitignore
    git commit -m "chore: update gitignore rules"
    
  7. Tambah maneh remot GitHub sampeyan (git filter-repo sengaja mbusak origin minangka priksa keamanan) lan push-push kabeh cabang lan tag:
    git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPO.git
    git push origin --force --all
    git push origin --force --tags
    

Fase 4: Trap Cache GitHub sing Didhelikake (Dangling Commits) lan Cara Ngresiki

Iki kasunyatan forensik kritis sing didokumentasikan ing Dokumen Resmi GitHub (Mbusak data sensitif saka gudang): - Nalika sampeyan mlayu git filter-repo lan git push origin --force --all, saben komit ing repositori sampeyan entuk ** hash SHA-1 40 karakter anyar**, lan sampeyan main pitunjuk cabang pindhah menyang sajarah resik anyar. - Nanging, server panyimpenan Git backend GitHub ora langsung ngumpulake sampah (git gc --prune=now) komit SHA lawas sing ora dirujuk. - Tegese yen bot panyerang nyathet hash commit lawas (contone, a1b2c3d4...) saka API Acara GitHub umum nalika sampeyan pisanan meksa, ** isih bisa mbukak https://github.com/YOUR_USERNAME/YOUR_REPO/commit/a1b2c3d4... ing sembarang browser web lan ndeleng Panjenengan .env file malah sawise sampeyan meksa-di-push sajarah resik.** Samsaya Awon, yen rahasia katon ing Pull Request, refs/pull/12/head njaga komitmen kasebut bisa digayuh kanthi permanen.

Cara ngrusak cached / dangling commits ing server GitHub saiki:

  1. ** Cara 1 (Instant, 100% Ngilangke Lengkap - Paling apik yen repo ora duwe Masalah kritis / PR / Bintang) **:
  2. Pindhah menyang repositori sampeyan ing GitHub -> Settings -> Gulung menyang ngisor (Danger Zone) -> Klik Delete this repository.
  3. Gawe repositori anyar kanthi jeneng sing padha ing GitHub lan push resik sampeyan git filter-repo repositori lokal (git push -u origin main).
  4. Mbusak repositori ing GitHub langsung ngilangi kabeh tampilan web umum saka SHA commit cache lawas (404 Not Found).
  5. Cara 2 (Ngreksa Bintang, Masalah, lan PR - Nggunakake Dhukungan GitHub / Cache Purge):
  6. Pisanan, jupuk ** hash SHA 40 karakter sing tepat ** saka komit lawas sing ngemot rahasia kasebut (priksa git reflog ing folder serep utawa email kabar GitHub).
  7. Buka Dhukungan GitHub (support.github.com) lan gunakake otomatis Mbusak data sensitif / Purge cached commit views workflow (referensi URL repositori lan persis dangling commit SHA(s)). Alat otomatis Dhukungan GitHub mbukak sisih server langsung git gc ngresiki cache sing mbatalake tampilan web sing di-cache lan obyek sing ora dirujuk tanpa mbusak gudang sampeyan.
  8. ** Kabar kabeh kanca / kolaborator kanggo git clone seger (NATE git pull)**:
  9. Marang saben pangembang ing tim sampeyan: "Aja mbukak git pull lan push." Yen kanca kerja sing narik komitmen ala sadurunge mlaku git pull (kang nggabungke sajarah reged lawas karo sajarah ditulis ulang anyar) lan push, ** bakal push dibusak .env langsung bali menyang GitHub.** Saben kolaborator kudu mbusak folder lokal lan mbukak sing anyar git clone, utawa mlayu git fetch origin && git reset --hard origin/main.

Fase 5: Nyegah bocor ing mangsa ngarep (Gitleaks Pre-Commit Hook & GitHub Push Protection)

Njupuk 60 detik sapunika kanggo nggawe matematis mokal kanggo sengaja nindakake rahasia maneh:

  1. ** Aktifake GitHub gratis "Push Protection for Yourself" ing kabeh akun GitHub sampeyan**:
  2. Pindhah menyang GitHub Settings (setelan profil pribadhi, tengen ndhuwur) -> Code security and analysis (utawa Code security).
  3. Gulung menyang Secret scanning -> Aktifake Push protection for yourself.
  4. Kanthi iki diuripake, kapan sampeyan mbukak git push saka komputer apa wae menyang ** sembarang ** panyimpenan umum utawa pribadi, server GitHub mriksa file paket sing mlebu * sadurunge * nampa push: yen ndeteksi tombol AWS, tombol OpenAI, tombol Stripe, kunci SSH pribadi, utawa token Slack, GitHub nolak git push langsung ing terminal sampeyan sadurunge commit urip.
  5. ** Instal gitleaks minangka lokal pre-commit nyopot laptopmu**:
    # 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

** Gunakake .env.example karo strings placeholder goblok lan 1Password CLI / AWS Vault / doppler kanggo rahasia lokal**: Aja nyimpen kunci produksi nyata ing plainteks .env file ing laptop pangembang yen sampeyan bisa nyingkiri. Nanging, tundhuk aman .env.example (STRIPE_API_KEY=sk_test_placeholder_replace_me), nambah .env* menyang global sampeyan $HOME/.gitignore_global (git config --global core.excludesfile $HOME/.gitignore_global), utawa nyuntikake rahasia langsung menyang memori nalika runtime nggunakake op run --env-file=".env.tpl" -- npm start (1Password CLI) utawa aws-vault exec.


Nomer darurat regional lan protokol agensi

Yen push kredensial GitHub ora sengaja nyebabake gangguan sing ora sah menyang data pribadi sing diatur (PII / PHI), sistem kesehatan, utawa infrastruktur pemerintah, tindakake protokol notifikasi pelanggaran wajib:

  • Amerika Serikat lan Kanada:
  • Keslametan-Urip Darurat / Pemadaman Infrastruktur Kritis: Nelpon 911 yen pelanggaran infrastruktur mengaruhi operasi rumah sakit utawa kontrol safety fisik.
  • Badan Keamanan Siber lan Infrastruktur (CISA) & FBI (IC3): Yen panyerang nggunakake kunci maya sing bocor kanggo ngeksfiltrasi data utawa nyebarake malware pemerasan, lapor menyang CISA (1-844-Say-CISA / cisa.gov/report) lan Pusat Pengaduan Kejahatan Internet FBI (ic3.gov).
  • **Kabar Pelanggaran Data SEC, FTC, & Kejaksaan Negeri **: Yen CloudTrail / log akses database nuduhake yen alamat IP sing ora sah ngakses data pribadi pelanggan (PIIutawa cathetan kesehatan (HIPAA ePHI) sadurunge kunci sing bocor dicabut, langsung takon karo penasihat hukum babagan garis wektu kabar pelanggaran data negara lan laporan federal HHS OCR / FTC Safeguards Rule.
  • Pusat Keamanan Siber Kanada: Telpon 1-833-CYBER-88 (1-833-292-3788) utawa laporake pelanggaran privasi miturut PIPEDA menyang Kantor Komisioner Privasi Kanada (OPC).
  • Inggris Raya:
  • Layanan Darurat: Nelpon 999 (utawa 101 / Penipuan Tindakan 0300 123 2040 lan Pusat Keamanan Siber Nasional / NCSC ing ncsc.gov.uk).
  • ** Kantor Komisaris Informasi (ICO - Jendela GDPR UK 72 Jam)**: Yen kredensial bocor ngidini akses ora sah menyang data pribadhi warga Inggris, Artikel 33 GDPR UK mbutuhake nglaporake pelanggaran data pribadhi sing bisa dingerteni menyang ICO (0303 123 1113) sajrone 72 jam sawise ngerti babagan pelanggaran kasebut.
  • Uni Eropa:
  • Layanan Darurat: Nelpon 112 ing kabeh negara anggota EU.
  • GDPR Artikel 33 & Pelaporan Insiden Arahan NIS2: Organisasi sing tundhuk karo EU GDPR kudu netepake manawa pajanan kredensial nyebabake pelanggaran rahasia data pribadhi (kabar 72 jam menyang Otoritas Perlindungan Data nasional / DPA), nalika entitas penting/penting ing EU NIS2 Directive ngadhepi ** 24 jam tenggat wektu nglaporake peringatan dini ** menyang negarane CSIRT (BSI ing Jerman, ANSSI ing Prancis, ACN ing Italia) kanggo kedadeyan cyber sing signifikan.
  • Australia lan Selandia Anyar:
  • Layanan Darurat: Nelpon 000 ing Australia utawa 111 ing Selandia Anyar.
  • Pusat Keamanan Siber Australia (ACSC) & Pelanggaran Data sing Bisa Diweruhi (OAIC): Telpon1300 CYBER1 (1300 292 371) kanggo nanggepi kedadeyan, lan netepake kewajiban notifikasi miturut Kantor Komisaris Informasi Australia (OAIC) Pelanggaran Data sing Bisa Dikabari (NDB) skema utawa Undhang-undhang Privasi Selandia Baru 2020 (Privacy Commissioner).
  • India lan Asia-Pasifik:
  • Layanan Darurat: Nelpon 112 ing India (utawa 1930 kanggo cybercrime).
  • Arahan Pelaporan 6 Jam Wajib CERT-In (India): Ing Tim Tanggap Darurat Komputer India (CERT-In) arah (No. 20(3)/2022-CERT-In), akses ora sah menyang sistem cloud/IT utawa bocor data sing mengaruhi organisasi ing India kudu dilaporake **incident@cert-in.org.in ing 6 jam ** deteksi.

Pitakonan sing kerep ditakoni

Aku mbusak .env file lan di-push komit anyar 30 detik sawise kesalahan - aku isih kudu muter kunci API lan sandi database?

Ya, 100 persen - muter saben tombol langsung tanpa pangecualian. Pasinaon keamanan siber akademik lan telemetri saka GitHub Secret Scanning konfirmasi yen bot pemanen kredensial otomatis ngawasi aliran Acara GitHub umum (api.github.com/events) ing wektu nyata lan download mentas di-push commits ing 1,5 kanggo 5 detik. Luwih elek, meksa nindakake komitmen kapindho sing mbusak .env ninggalake kabeh plainteks .env file sing lungguh kanthi permanen ing sajarah commit pisanan sing beda - lan akeh bot khusus nggoleki commit sing mbusak .env berkas. Sawise rahasia wis di-push menyang gudang umum kanggo malah 1 detik, iku kompromi ing salawas-lawase; mbatalake lan muter kredensial ing dashboard panyedhiya iku mung bab sing nglindhungi sampeyan.

Apa yen repositori kasebut minangka repo GitHub PRIVATE nalika aku nindakake .env file, lan aku mung pengin ngresiki sadurunge nggawe repo umum minggu ngarep?

Yen gudang ana 100 persen Pribadi kabeh wektu (lan ora ana aplikasi CI/CD pihak katelu sing ora dipercaya duwe akses), bot scraper ing API Acara GitHub umum duwe ora durung weruh rahasiamu. Nanging, aja mung mbusak `.env` ing komitmen anyar banjur flip repo saka Pribadi menyang Umum. Wayahe sampeyan loncat karo muter awak repositori pribadi kanggo Public, sawijining kabeh grafik komitmen historis dadi umum - lan bot langsung mindai kabeh komitmen lawas ing repo umum sing anyar. Sadurunge nggawe repo pribadi umum, salah siji: (1) Run git filter-repo --invert-paths --path .env kanggo mbusak file saka kabeh komit historis (lan muter tombol kanggo praktik paling apik), UTAWA (2) Nyalin file saiki sing resik menyang folder anyar, mbukak git init kanggo resik 1-komit Sajarah dhisikan, lan nerbitaké sing repositori seger.

Apa AWS otomatis masang kabijakan disebut AWSCompromisedKeyQuarantineV2 kanggo pangguna IAM, lan kenapa aku isih ditagih?

Amarga AWS mitra langsung karo GitHub Secret Scanning, kapan wae AKIA... tombol katon ing komitmen GitHub umum, sistem keamanan otomatis AWS ndeteksi ing sawetara menit, mbukak tiket dhukungan, lan nempelake kabijakan sing dikelola AWSCompromisedKeyQuarantineV2 (utawa V3) menyang pangguna IAM kasebut. Kabijakan kuarantin kasebut ngalangi tumindak mbebayani kaya ngluncurake anyar ec2: RunInstances utawa mbusak ember S3 - nanging ora mungkasi kedadeyan EC2 sing wis diluncurake panyerang sajrone 60 detik pisanan sadurunge kabijakan kasebut dilampirake, uga ora mbusak pangguna IAM backdoor utawa sementara. STS sesi sing wis digawe penyerang. Sampeyan isih kudu mbusak tombol sing bocor kanthi manual, priksa Tampilan Global EC2 ing kabeh wilayah kanggo mungkasi kedadean nakal, lan mriksa CloudTrail kanggo owah-owahan IAM sing ora sah.

Apa bedane antarane git filter-repo lan BFG Repo-Cleaner, lan apa aku ora kudu nggunakake git filter-branch?

git filter-cabang minangka skrip cangkang lawas sing dibangun ing versi awal Git sing alon banget ing repositori gedhe, gampang dikonfigurasi (ninggalake referensi cadangan ing refs/asli/ sing isih ngemot rahasia sampeyan.), lan saiki nyithak bebaya deprecation resmi saka Git supaya sampeyan ora nggunakake. loro-lorone git-filter-repo (ditulis ing Python lan resmi disetujoni dening maintainers Git inti lan GitHub) lan BFG Repo-Cleaner (ditulis ing Jawa/Scala) mbukak 10x kanggo 100x luwih cepet lan cleanly nulis ulang kabeh commits, wit, lan tags. git-filter-repo umume luwih disenengi dina iki amarga ngowahi komit sing wis dicenthang saiki (`HEAD`) tanpa mbutuhake komitmen awal sing kapisah dhisik.

Kepiye carane wong bisa ndeleng komitmen sing wis dibusak ing GitHub sawise aku mlayu git filter-repo lan git push --force?

Ing Git, `git push --force` mung nganyari ing titik referensi cabang (`refs/heads/main`) kanggo nuding chain komit sing ditulis maneh; iku ora langsung mbusak obyek sing ora dirujuk ("dangling") lawas sing disimpen ing server backend GitHub. Yen bot nyathet hash SHA 40 karakter saka komitmen asli sampeyan nalika ngetik API Acara umum, langsung navigasi menyang https://github.com/owner/repo/commit/<40-char-SHA> isih bakal mbukak komit yatim piatu saka cache obyek GitHub nganti koleksi sampah mlaku. Kanggo nuke tampilan cache kasebut langsung mbusak repositori ing GitHub lan gawe maneh saka repo lokal sing resik, utawa ngirim dangling commit SHA menyang Dhukungan GitHub (`support.github.com`) kanggo ngresiki cache sisih server langsung.

Apa yen ana wong sing wis ngeklik "Fork" ing repositori umum sadurunge aku mlayu git filter-repo?

Iki kok Langkah 1 tansah mbatalake lan muter kredensial ing dashboard panyedhiya: mlaku git filter-repo lan meksa meksa menyang repositori sampeyan dhewe ora nulis ulang commit nang garpu independen wong liya saka repositori sampeyan (kajaba sampeyan mbusak kabeh repositori induk lan hubungi Dhukungan GitHub babagan data sensitif ing garpu). Sawise sampeyan wis mbatalake tombol AWS/API lan muter sandi database, sembarang salinan lawas .env file sing lungguh ing garpu pihak katelu utawa database bot dadi senar karakter sing ora ana gunane sing ora bisa ngakses infrastruktur sampeyan maneh.


Pandhuan sing gegandhengan


Sumber lan panuntun dhumateng resmi

  • Dokumentasi Keamanan Resmi GitHub (docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository): * Mbusak Data Sensitif Saka Repositori (git filter-repo, BFG Repo-Cleaner, Dangling Commit Cache Purging, lan Secret Scanning Push Protection)*.
  • Layanan Web Amazon (AWS) Pandhuan Tanggap Kedadean Keamanan (docs.aws.amazon.com/security/): Nanggapi Kunci Akses IAM AWS sing Dipaparake (AWSCompromisedKeyQuarantineV2, Pencabut Sementara STS Sesi liwat aws:TokenIssueTime, lan CloudTrail Audit Forensik).
  • Institut Standar lan Teknologi Nasional (NIST) (Amerika Serikat): * Publikasi Khusus 800-61 Wahyu 2: Pandhuan Penanganan Insiden Keamanan Komputer & SP 800-57: Rekomendasi kanggo Manajemen Kunci (Pancabutan Kredensial sing Dikompromi lan Rotasi Kriptografi)*.
  • Bukak Proyek Keamanan Aplikasi Web (OWASP): * Lembar Cheat Manajemen Rahasia (Nyegah Kredensial Hardcoded, Pre-Commit Secret Scanning karo Gitleaks/TruffleHog, lan Ephemeral Runtime Secret Injection)*.
  • Badan Keamanan Siber lan Infrastruktur (CISA) (Amerika Serikat): Arsitektur Referensi Teknis Keamanan Cloud lan Playbook Remediasi Kredensial sing Dikompromi.