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¶
- **BATALKE, DEAKTIF, lan ROTATE saben rahasia sing katon ing konsol panyedhiya FIRST - ing 120 detik pisanan - sadurunge mbuwang siji detik mlaku
gitprintah **: 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 jumlahgit 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 **. - **Audit Tagihan Cloud lan Log Audit (
AWS CloudTrail,GCP Cloud Audit Logs,Stripe Logs) kanggo jendhela antarane Panjenengangit pushlan panjabutan kunci sampeyan **: Bot cryptomining otomatis nggunakake bocorAWS_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 utawaLambdaterus-terusan pancing supaya tetep ana ing akun AWS sampeyan sanajan sampeyan mbusak kunci sing bocor. - ** 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. - Tulis ulang kabeh riwayat panyimpenan Git kanthi nggunakake lokal
git filter-repo(utawaBFG Repo-Cleaner) kanggo ngilangi file utawa nyunting string sandi saka saben komitmen, wit, lan tag sajarah:git filter-branchwis ora resmi dening proyek Git; nganggogit filter-repo --invert-paths --path .env(kanggo nuke file saka kabeh commits) utawagit filter-repo --replace-text expressions.txt(kanggo ngganti string sandi tartamtu karo***REMOVED***ing file kode tanpa mbusak file). - 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 mbukakgit filter-repolangit 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 ndelenggithub.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. - ** Instal lokal
pre-commitscanner rahasia (gitleaksutawatrufflehog) ing njero.git/hooks/pre-commitsadurunge sampeyan nulis baris kode liyane **: A 10 detikgitleaks protect --stagedpancing pre-commit mriksa saben baris sing dipentasake sacara lokal ing laptop lan pamblokiran sampeyangit commitsadurunge 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¶
- ** Priksa
AWS CloudTrail -> Event historykanggo kabeh telpon API digawe dening bocorAccess Key ID**: - Bukak AWS CloudTrail Console -> Riwayat acara.
- Ganti dropdown goleki saka Mung-Waca dadi
Access key IDlan tempel sing bocorAKIA...senar. - Deleng saben acara sing dicathet wiwit menit sampeyan mlayu
git push. Khusus goleki:CreateUser,CreateAccessKey,AttachUserPolicy,CreateRole,AssumeRole,GetSessionToken,RunInstances(EC2),RequestSpotInstances,CreateFunction(Lambda), utawaSendEmail(SES spam). - ** Copot sembarang sauntara aktif
STSsesi sing digawe dening pangguna kasebut**: - Malah sawise sampeyan mbusak a
AKIA...tombol akses, yen panyerang disebutsts:GetSessionTokensadurunge sampeyan mbusak kunci kasebut, sementaraASIA...token sesi tetep valid nganti 36 jam. - Kanggo mateni kabeh sauntara aktif
STStoken kanggo pangguna IAM kasebut langsung, pindhah menyangIAM -> Users -> [Leaked User] -> Permissions -> Add inline policylan klikRevoke sessions(sing nempelake eksplisitDeny *kawicaksanan kanggo sembarang token ditanggepi ngendiaws:TokenIssueTimeluwih dhisik tinimbang saiki.). - ** Priksa
IAM -> UserslanIAM -> Roleskanggo akun backdoor sing mentas digawe**: - Urut kabeh Panganggo IAM miturut ** Wektu nggawe **. Mbusak pangguna sing ora dikenal (
admin-backup,sys-monitor,support-bot) lan verifikasiTrust relationshipstab 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. - Gunakake
AWS Resource ExplorerutawaEC2 Global Viewkanggo mriksa ALL 30+ Wilayah AWS kanggo cryptominers sing didhelikake: - Penyerang arang banget ngluncurake kedadeyan cryptomining
us-east-1ngendi sampeyan bakal weruh ing dashboard. Nanging, padha miwitip4d,g5, utawac6i.32xlargeconto ingap-southeast-3(Jakarta),me-central-1(UAE),il-central-1(Tel Aviv), utawasa-east-1(São Paulo). - Buka
EC2 Console -> EC2 Global View(sing mindai saben wilayah sing aktif ing tabel siji) lan **Mbusak ** kedadeyan sing ora sah langsung. - Mbukak Kasus Tagihan Dhukungan AWS langsung yen kedadeyan nakal entuk tagihan:
- Yen bot spun munggah
$8,000saka conto GPU EC2 sadurunge sampeyan mungkasi, aja gupuh: yen sampeyan wis ngamanake akun, mbusak tombol, ngaktifake root/IAMMFA, 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).
- ** Instal
git-filter-repo** (Mbutuhake 5 detik): - ** Gawe salinan serep keamanan folder panyimpenan lokal sadurunge nulis ulang riwayat **:
(Cathetan: Yen sampeyan wis mindhah sah
.envfile metu, priksa manawa salinan resik saka.envdisimpen ing/tmp/.env.safenjaba repo, amargagit filter-repobakal ngilangke.envsaka direktori kerja sampeyan uga.) - Pilih Pilihan A (Busak Path File Kabeh kaya
.envutawaid_rsa) UTAWA Opsi B (Redact Spésifik Rahasia Strings Nang File Kode): - ** Pilihan A: Mbusak rampung
.env(utawaconfig/secrets.json) saka saben komit ing sajarah**: (Kenapa--invert-paths? tanpa--invert-paths,git filter-repo --path .envtetep ONLY.envlan mbusak kabeh liyane. Nggabungke--invert-paths --path .envngandhani Git supaya kabeh kajaba.enving kabeh commit, cabang, lan tag.) - 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.txtngemot siji string rahasia (utawa regex) saben baris:Saiki mlayuAKIAIOSFODNN7EXAMPLE==>REDACTED_AWS_KEY sk_live_51NzExampleSecretKey999==>REDACTED_STRIPE_KEY regex:postgres:\/\/non_at_chars@==>postgres://REDACTED_DB_CREDENTIALS@git filter-repo --replace-text: - ** Tambah
.envkanggo.gitignoresupaya sampeyan ora nindakake maneh 5 menit saka saiki**: - Tambah maneh remot GitHub sampeyan (
git filter-reposengaja mbusakoriginminangka priksa keamanan) lan push-push kabeh cabang lan tag:
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:¶
- ** Cara 1 (Instant, 100% Ngilangke Lengkap - Paling apik yen repo ora duwe Masalah kritis / PR / Bintang) **:
- Pindhah menyang repositori sampeyan ing GitHub ->
Settings-> Gulung menyang ngisor (Danger Zone) -> KlikDelete this repository. - Gawe repositori anyar kanthi jeneng sing padha ing GitHub lan push resik sampeyan
git filter-reporepositori lokal (git push -u origin main). - Mbusak repositori ing GitHub langsung ngilangi kabeh tampilan web umum saka SHA commit cache lawas (
404 Not Found). - Cara 2 (Ngreksa Bintang, Masalah, lan PR - Nggunakake Dhukungan GitHub / Cache Purge):
- Pisanan, jupuk ** hash SHA 40 karakter sing tepat ** saka komit lawas sing ngemot rahasia kasebut (priksa
git refloging folder serep utawa email kabar GitHub). - 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 langsunggit gcngresiki cache sing mbatalake tampilan web sing di-cache lan obyek sing ora dirujuk tanpa mbusak gudang sampeyan. - ** Kabar kabeh kanca / kolaborator kanggo
git cloneseger (NATEgit pull)**: - Marang saben pangembang ing tim sampeyan: "Aja mbukak
git pulllan push." Yen kanca kerja sing narik komitmen ala sadurunge mlakugit pull(kang nggabungke sajarah reged lawas karo sajarah ditulis ulang anyar) lan push, ** bakal push dibusak.envlangsung bali menyang GitHub.** Saben kolaborator kudu mbusak folder lokal lan mbukak sing anyargit clone, utawa mlayugit 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:
- ** Aktifake GitHub gratis
"Push Protection for Yourself"ing kabeh akun GitHub sampeyan**: - Pindhah menyang GitHub
Settings(setelan profil pribadhi, tengen ndhuwur) ->Code security and analysis(utawaCode security). - Gulung menyang
Secret scanning-> AktifakePush protection for yourself. - Kanthi iki diuripake, kapan sampeyan mbukak
git pushsaka 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 nolakgit pushlangsung ing terminal sampeyan sadurunge commit urip. - ** Instal
gitleaksminangka lokalpre-commitnyopot 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
911yen 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 miturutPIPEDAmenyang Kantor Komisioner Privasi Kanada (OPC). - Inggris Raya:
- Layanan Darurat: Nelpon
999(utawa101/ Penipuan Tindakan0300 123 2040lan Pusat Keamanan Siber Nasional /NCSCingncsc.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
112ing 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 EUNIS2Directive ngadhepi ** 24 jam tenggat wektu nglaporake peringatan dini ** menyang negaraneCSIRT(BSIing Jerman,ANSSIing Prancis,ACNing Italia) kanggo kedadeyan cyber sing signifikan. - Australia lan Selandia Anyar:
- Layanan Darurat: Nelpon
000ing Australia utawa111ing 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
112ing India (utawa1930kanggo 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.ining 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¶
- Ransomware lan malware: penahanan lan pemulihan langsung
- Pembajakan jeneng domain, DNS kadaluwarsa, lan pengambilalihan situs web
- Google Workspace utawa Microsoft 365 khusus domain admin lockout lan DNS rescue
- Akun phishing lan kompromi: kunci darurat
- rm -rf utawa Shift-Delete sing ora disengaja ing Linux, macOS, utawa Windows: remount mung maca langsung
- Nomer darurat miturut negara
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 SementaraSTSSesi liwataws:TokenIssueTime, lanCloudTrailAudit Forensik). - Institut Standar lan Teknologi Nasional (
NIST) (Amerika Serikat): * Publikasi Khusus800-61Wahyu 2: Pandhuan Penanganan Insiden Keamanan Komputer & SP800-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 karoGitleaks/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.