API gakoa, AWS sekretua edo Stripe Live Tokena GitHub Repo publikoarekin konprometituta: 60 segundotan automatizatutako bot-en scraping, berehalako gakoen biraketa eta fakturazio-hilketa-aldaketa¶
Korrika egiten duzun unean git push GitHub, GitLab edo Bitbucket biltegi publiko batera (or temporarily flip a private repository to "Public" for even 10 seconds) fitxategi bat bitartean, .env konfigurazioa, Jupyter koadernoa (.ipynb), edo Git konpromezuen historia zaharragoak gako sekretu zuzena dauka (such as an AWS Access Key ID starting with AKIA, a Stripe Live Secret Key sk_live_, an OpenAI key sk-proj-, an Anthropic key sk-ant-, or a Google Cloud service account .json), kredentzialak biltzeko robot automatizatuen sare global batek sekretu hori atzematen du 2 eta 60 segundotan. GitHub-en publikoa delako Events API, GH Archive, eta denbora errealeko webhook su-hokeek publiko bakoitza igortzen dute PushEvent orokorrean, scraper bot gaiztoek zure desberdintasuna esamolde erregularrekin analizatzen dute eta hodeiko komando automatizatuak exekutatzen hasten dira idatzi aurretik. git revert.
** barruan90 secondsbaten ** AWS edo GCP sekretua reposi publiko batean jotzen duenean, botnet automatizatuek tamaina maximoko GPU/CPU instantziak biratzen dituzte (such as p4d.24xlarge or c6i.32xlarge bezalako eskualde ilunetan zehar ap-east-1 Hong Kong, me-south-1 Bahrain, edo sa-east-1 Sao Paulo) nirea Monerora (XMR), eskatu AWS Simple Email Service (SES) kuota handitzen da phishing-aren spama lehertzeko edo zure pribatua klonatzeko S3 kuboak eta RDS datu-baseak, ** sortzen$5,000 to $80,000+ hodeiko kalkuluko fakturak gauean**. Era berean, filtrazio bat OpenAI edo Anthropic API gakoa berehala lotzen da lurpeko "alderantzizko proxy" LLM merkatuetan, milaka dolar xurgatzen dituzten token kredituetan minutuko, filtratutako bitartean. Stripe zuzeneko gako sekretua (sk_live_...) Erasotzaileei irakurketa/idazketa programatikorako sarbide osoa ematen die iruzurrezko itzulketak emateko, bezeroa esportatzeko PII, edo baimenik gabeko Connect ordainketak abiarazi. Erasotzaile bat zure erakundea aktiboki estortatzen ari bada bezeroen datu-baseak filtratutako zure gakoarekin ihes egin ondoren, kontsultatu tokiko legea betearazteko eta ziber-gertakarietarako telefono-zerbitzuak gure bidez. larrialdi zenbakiak direktorioa berehala, eta berrikusi gure erlazionatutako gidak ustekabeko ekoizpenaren datu-basearen erorketa, git force-push eta isurketa sekretuaren triage, produkzio datu-basea erori egin da edo S3 kuboa ezabatu egin da azken babeskopiarik gabe, eta larrialdietako urruneko lanaren segurtasuna eta datuen pribatutasuna.
Egin hau orain¶
- EZ alferrik galdu lehenengo 60 segundoak korrika
git rm .envedogit push --force: JOAN ZUZENEAN HORNITZAILEAREN KONTSOLARA (AWS IAM,Stripe,OpenAI,GCP) ETA GILTZA ERREBOKATU / DESAKTIBATU< 30 SECONDS. Fitxategia ezabatzen Git konpromezu berri batean (or even making the GitHub repository Private) ez du egiten ezer duela 10 segundo GitHub Events-en sutetik zure gakoa kendu zuten bot-ak geldiarazteko. Gakoa bera iturrian hil behar da lehenik. - An bada
AWStekla (AKIA...edoASIA...) leaked: IrekiAWS IAM -> Users -> Security credentialseta egin klik berehala sarbide-gakoan Desaktibatu / Ezabatu, eta erantsiAWSCompromisedKeyQuarantineV2(or a blanketUkatu *inline policy) IAM erabiltzaileari eta handitu erabiltzailearenaRevokeOldSessionsaldi baterako edozein hiltzeko politikaSTSerasotzaileak dagoeneko asmatutako tokenak (see the exact STS bypass trap below). - a bada
StripeZuzeneko gako sekretua (sk_live_...edork_live_...) leaked: Joandashboard.stripe.com/apikeys, egin klik...-> Biratu tekla, eta ezarri gako zaharraren iraungipena "Orain (Immediately)" (NOT "in 24 hours"). Berehala egiaztatuStripe Dashboard -> LogsetaBalance -> Payouts / Refundsbaimenik gabeko API deietarako. - An bada
OpenAI,Anthropic,Google Gemini, edoSendGrid / Twiliogakoa filtratu da: Ezabatu berehala hornitzailearen aginte-paneleko API gakoa eta ezarri Hilabeteko gastu-muga gogorra ($0edo zure ohiko muga) Fakturazio-ezarpenetan, hegaldiko erreprodukzio-eskaerak mozteko. - **Ekortu hodei-eskualde GUZTIAK (
especially disabled/opt-in regions(like Stockholm eu-north-1, Osaka ap-northeast-3, or Mumbai ap-south-1) eta sortu ezkutuko bigarren IAM erabiltzaile bat (or SSH key pair) filtratutako gakoa ezabatu ondoren zure kontuaren barruan egon daitezen. - Sekretua baliogabetu eta atzeko ateko IAM kontuak garbitu ONDOREN bakarrik, garbitu Git-etik konpromezua (
using git-filter-repo) ETA jarri harremanetan GitHub laguntzarekin (or remove cached PR/commit views) zintzilik dauden konpromisoak SHA cacheak garbitzeko, eta ondoren aurkeztu AWS / GCP ustekabeko ihes-fakturazioaren salbuespen-eskaera, bot-ek hodeiko faktura masiboa egiten badute.
Danger
** Zergatik ezabatu filtratutakoa AKIA Giltza AWS IAM EZ DA Nahikoa (The STS GetSessionToken Persistence Trap).** Barruan 5 seconds zure estatikoa scraping AKIA... GitHub-eko AWS IAM sarbide-gakoa, botnet automatizatu sofistikatuek ez dituzte zurekin EC2 instantziak abiarazten. AKIA giltza; beren lehen API deia ** dasts:GetSessionToken edo sts:AssumeRole**, aldi baterako bat egiten duena ASIA... Segurtasun Token Zerbitzua (STS) saio-tokena gehienez 12 to 36 hours. Jatorrizkoa ezabatu ondoren ere AKIA... IAM kontsolan sarbide-gakoa, aldi baterako edozein ASIA... Une hori baino lehen egindako STS tokenak % 100 aktibo eta baliozkoak dira, esplizitu bat ere erantsi ezean Deny All lerroko politika (with a Condition checking aws:TokenIssueTime < CurrentUTC) arriskuan dagoen IAM Erabiltzaileari eta har ditzakeen Rol guztiei.
Erabakien zuhaitza: 60 segundoko larrialdi-erantzuna, filtratutako sekretu motaren arabera¶
Jarraitu gertakariak eusteko fluxu-diagrama hau arriskuan jarritako kredentziala akabatzeko, erasotzaileen iraunkortasuna eta hodei iheslarien fakturazioa alderantzikatzeko.
flowchart TD
A["Zuzeneko sekretua GitHub / GitLab Repo publikoarekin konprometituta (.env, iturburu kodea edo git historia)"] --> B["BIGARREN 0tik 30era: EZ Exekutatu git rm Lehenik. Ireki Hodeia/API Hornitzaileen kontsola eta ERREBOKE gakoa berehala"]
B --> C{"Zein zuzeneko kredentzial mota agertu zen?"}
C -->|"1. AWS Sarbide-gakoa (AKIA... / ASIA...)"| D["1. Desaktibatu/Ezabatu IAMn gakoa 2. Erantsi lineako 'Guztiak ukatu' gidalerroak erabiltzaileari (Kills Minted STS Tokens) 3. Ikuskatu CloudTrail Backdoor IAM erabiltzaileentzat"]
C -->|"2. Stripe Live Secret Key (sk_live_... / rk_live_...)"| E["1. Iraungitze-gakoa = 'Berehala' 2. Egiaztatu /v1/refunds, /v1/transfers eta Webhook-en amaierako puntuak 3. Ebaluatu Bezeroaren PII Esposizioa"]
C -->|"3. OpenAI (sk-proj-...), Anthropic (sk-ant-...) edo Gemini Key"| F["1. Ezeztatu gakoa garatzaileen kontsolan 2. Jaitsi erakundearen fakturazio-muga gogorra 0 $-ra aldi baterako 3. Egiaztatu erabilera-erregistroak Token drainatzeko"]
C -->|"4. Datu-basearen URIa (postgres://, mongodb+srv://) edo Redis URLa"| G["1. Biratu DB pasahitza berehala 2. Exekutatu pg_terminate_backend() / KILL konexio aktiboak kentzeko 3. Blokeatu Segurtasun Taldea VPC IPetarako soilik"]
D --> H["Exekutatu eskualde anitzeko konputazioaren miaketa (amaitu Rogue EC2/EKS/SageMaker/Lambda 30+ eskualde guztietan)"]
E --> I["Garbitu Git historia 'git filter-repo' bidez + Garbitu GitHub Cached Commit SHA ikuspegiak"]
F --> I
G --> I
H --> J{"Bot automatizatuek 1.000 $ eta 100.000 $ baino gehiago hodeiko faktura kobratu al zuten?"}
J -->|"BAI"| K["Ireki AWS/GCP fakturaziorako laguntza kasua -> Bidali erremediazio osteko segurtasun-ikuskaritza + Eskatu behin-behineko kortesia-iruzurra/fakturak barkatzea."]
J -->|"EZ"| I
1. zatia: hornitzailez hornitzaile Kill-Switch eta auzitegi-matrizea (First 5 Minutes)¶
Erabili erreferentzia-taula hau errebokatze-botoi zehatza, GitHub-en bilaketa sekretuaren portaera automatikoa eta isuritako kredentzialaren ezkutuko iraunkortasun-bektorea aurkitzeko.
| Kredentzial mota eta aurrizkiaren eredua | GitHub Secret Scanning automatikoki baliogabetzen al du? | Berehalako 30 segundoko Kill-Switch prozedura | Ezkutuko erasotzailearen iraunkortasun-bektorea egiaztatzeko (Critical.) |
Non ikuskatu baimenik gabeko API deiak |
|---|---|---|---|---|
1. Amazon Web Services (AKIA... IAM gakoa / ASIA... STS Token) |
Ez deuseztatu automatikoki: GitHub-ek AWS-i jakinarazten dio, eta horrek AWS laguntza kasu automatiko bat irekitzen du (Compromised Key Quarantine) eta eranskinak AWSCompromisedKeyQuarantineV2, askotan 3 to 15 minutes botek dagoeneko eraso egin ostean. |
1. IAM -> Users -> [User] -> Security credentials -> Deactivate & Delete2. Gehitu lineako politika: Effect: Deny, Action: "*", Resource: "*" (kills active STS tokens). |
1. Aldi baterako STS tokens (ASIA...)2. Sortu berria IAM Erabiltzaileak / Sarbide-gakoak 3. Atzeko atea IAM rolak kanpokoarekin Principal konfiantza politikak4. EC2 **Abian jarri txantiloiak / Auto Scaling taldeak ** amaitutako meatzariak birsortzen dituztenak. |
AWS CloudTrail -> Gertaeren historia (Filter by User name = compromised IAM user edo Event source = sts.amazonaws.com / iam.amazonaws.com). |
2. Stripe Live gako sekretua/murriztua (sk_live_... / rk_live_...) |
BAI (askotan): Stripe GitHub Secret Scanning-ekin elkartzen da automatikoki errodatzeko sk_live_ aktibatuta dauden giltzak main, BAINA base64 kateen barruan ezkutatuta dauden gakoak, Gists edo estandarrak ez diren fitxategiak automatikoki errebokatzea gainditu dezakete. |
1. Joan dashboard.stripe.com/apikeys2. Egin klik ... -> Roll tekla3. Hautatu Block old key immediately (Now) (never select a 12h/24h grace period.). |
** Webhook amaierako puntu maltzurrak: ** Erasotzaileek zure filtrazioa erabiltzen dute sk_live_ deitzeko tekla POST /v1/webhook_endpoints, beren zerbitzariaren URLa erregistratuz etorkizuneko bezeroen ordainketa eta txartelaren gertaeren kopiak isilean jasotzeko API gakoa jaurti ondoren ere. |
Stripe Arbela -> Garatzaileak -> Erregistroak (filter by IP address and HTTP method POST/DELETE) + Garatzaileak -> Webhooks (delete any unrecognized URLs). |
3. Google Cloud Service kontua JSON ("private_key_id", AIza... API gakoa) |
Partziala: GCPk proiektuaren jabeari abisatzen dio (and optionally disables keys if Organization Policy is enabled), baina maiz aktibatuta uzten du tekla mezu elektronikoaren abisua bidaltzen duen bitartean. |
1. GCP Console -> IAM & Admin -> Service Accounts2. Sakatu Zerbitzu-kontua -> Gakoak fitxa -> Ezabatu filtratutako gako IDa. 3. Desgaitu Zerbitzu-kontu osoa aldi baterako. |
1. Filtratutako gakoak sortutako Zerbitzu-kontuaren gako berriak 2. Compute Engine GPU instantziak ( A100/H100/T4) atzerriko zonaldeetan sortu zen3. Aldatua Proiektuaren IAM gidalerroen loturak ( roles/owner edo roles/editor). |
GCP Cloud Audit Logs (Logs Explorer) kontsulta erabiliz:protoPayload.authenticationInfo.principalEmail="<service-account-email>" |
4. OpenAI (sk-proj-...), antropikoak (sk-ant-...), & HuggingFace (hf_...) |
OpenAI / Anthropic: Elkartu GitHub-ekin testu arruntaren bultzada estandarrak automatikoki baliogabetzeko (usually within 30 to 120 seconds), eta horretan bot-ek oraindik milaka paralelo jaurti ditzakete gpt-4o / claude-3-5-sonnet eskaerak. |
1. Ezabatu giltza platform.openai.com/api-keys edo console.anthropic.com/settings/keys2. txikiagoa Hileroko gastu muga ( Hard Cap) Fakturazio ezarpenetan hegaldiko korronte paraleloak geldiarazteko. |
Erakundearen administrazio-gakoak (sk-admin-...): OpenAI Admin API gako bat filtratzen bada, bot-ak programatikoki deitu dezake POST /v1/organization/admin_api_keys proiektu berriaren API gakoak idaztea lehenengoa baliogabetu aurretik. Ikuskatu Erakundeko gako guztiak. |
OpenAI / Erabilera antropikoen panela (check activity by API key and model tier). |
5. GitHub Sarbide pertsonaleko tokena (ghp_... / github_pat_...) edo NPM Token (npm_...) |
** BAI (Instant):** GitHub-ek automatikoki baliogabetzen du edozein ghp_ edo github_pat_ GitHub biltegi publiko batera bidaltzen den segundo zatiaren seinale. |
GitHub ez den ostalari batera bultzatzen bada (GitLab, Bitbucket, Pastebin, or Slack), ezeztatu eskuz github.com/settings/tokens (or npmjs.com -> Access Tokens). |
Supply Chain Malware Injection: Erasotzaile bat zurekin ghp_ edo npm_ token-ak berehala bultzatuko du atzeko ate maltzur bat zure biltegi pribatuetara, gehitu maltzur bat Inplementatu Gakoa / GitHub Actions Workflow (pull_request_target), edo argitaratu zure NPM paketearen troiako bertsio bat. |
GitHub ezarpenak -> Segurtasun erregistroa (audit repo.create, hook.create, org.add_member, and oauth_authorization). |
2. zatia: murgilketa sakona: nola kanporatu erasotzaile bat zure AWS kontutik (The 4-Step Cloud Eviction Protocol)¶
Filtratuta dagoelako AWS kredentzialak finantza eztanda-erradio handiena daramate (up to $50,000+ per day in EC2/SageMaker/Bedrock bills), beheko lau pausoak exekutatu behar dituzu an AKIA... edo ASIA... teklak biltegi publiko batera jotzen du:
+-----------------------------------------------------------------------------+
| ANATOMY OF A 60-SECOND AUTOMATED AWS GITHUB SCRAPER BOT ATTACK |
+-----------------------------------------------------------------------------+
| |
| [ SEC 00 ] Developer runs 'git push origin main' with .env (AKIA...) |
| | |
| [ SEC 04 ] Bot scrapes GitHub Events API Firehose -> Extracts AKIA key |
| | |
| [ SEC 06 ] Bot calls 'sts:GetCallerIdentity' & 'sts:GetSessionToken' |
| | (Mints temporary ASIA... token that survives AKIA deletion.) |
| v |
| +----+------------------------------------------------------------------+ |
| | [ SEC 15 TO 90: PARALLEL MULTI-REGION EXPLOITATION ] | |
| | 1. Persistence: Calls 'iam:CreateUser' / 'iam:CreateAccessKey' | |
| | (Creates hidden user 'aws-support-backup' with AdministratorAccess)| |
| | 2. Compute Abuse: Launches Auto-Scaling Groups of c6i.32xlarge / | |
| | g5.48xlarge in 12 regions + AWS Bedrock / SageMaker LLM endpoints | |
| | 3. Spam Abuse: Calls 'ses:PutAccountSendingAttributes' (50k emails) | |
| | 4. Data Exfiltration: Lists & downloads S3 buckets / RDS snapshots | |
| +-----------------------------------------------------------------------+ |
+-----------------------------------------------------------------------------+
1. urratsa: hil biak estatikoak AKIA Giltza ETA Guztiak Minted ASIA Saioaren tokenak¶
Ezabatuz AKIA AWS kontsolako giltzak ez baliogabetzen du aldi baterako STS dagoeneko emandako kredentzialak sts:GetSessionToken. Dena berehala hiltzeko AWS CLI bidez (using a separate clean admin profile):
# 1. Delete the compromised Access Key immediately
aws iam delete-access-key --user-name CompromisedUser --access-key-id AKIAIOSFODNN7EXAMPLE
# 2. Attach an explicit 'Deny All' inline policy to the IAM User to immediately
# invalidate any STS tokens minted by that user AND block all further actions:
aws iam put-user-policy --user-name CompromisedUser --policy-name EmergencyKillSwitch \
--policy-document '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Deny",
"Action": "*",
"Resource": "*"
}]
}'
2. urratsa: Bilatu Backdoor IAM erabiltzaileak, rolak eta sarbide-gakoak CloudTrail-en¶
Exekutatu AWS CLI komando hauek leihoan zehar bot-ak ezkutuko atzeko ateko IAM erabiltzaile bat sortu duen edo bigarren mailako sarbide-gako bat erantsi duen egiaztatzeko:
# List all IAM users created recently across the account
aws iam list-users --query 'Users[?CreateDate>=`2026-10-30`].[UserName,CreateDate]' --output table
# Audit CloudTrail for every API call made by the compromised user in the last 24 hours
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=Username,AttributeValue=CompromisedUser \
--max-results 50 \
--query 'Events[].[EventTime,EventName,EventSource]' --output table
CreateUser,CreateAccessKey,CreateLoginProfile (gives the bot an AWS Console password),AttachUserPolicy,CreateRole,UpdateAssumeRolePolicy, eta ImportKeyPair. Ezabatu berehala baimenik gabeko erabiltzaile, rol eta gako bikote guztiak.
3. urratsa: miaketa guztiak 30+ Rogue EC2 Instantziak, Auto Scaling Groups eta Bedrock/SageMaker lanetarako AWS eskualdeak¶
Zergatik jasotzen dute oraindik biktimek a $12,000 faktura hilaren amaieran "EC2 aginte-panela egiaztatu eta zero instantzia ikusi" ondoren? AWS kontsolak eskualde bat aldi berean bakarrik erakusten duelako (e.g., us-east-1), bot-a piztu zen bitartean 20 kasuak -nap-south-1 (Mumbai), eu-north-1 (Stockholm), eta sa-east-1 (Sao Paulo), eta EC2 Auto Scaling Groups barruan ezkutatu zituen (ASGs) beraz, EC2 instantzia eskuz amaitzen baduzu, Auto Scaling Taldeak ordezko bat abiarazten du 30 seconds geroago.
Exekutatu eskualde anitzeko bash bakarreko lerro hau abian edo zain dauden EC2 instantzia guztiak zerrendatzeko AWS eskualde aktibo guztietan. 10 seconds:
for region in $(aws ec2 describe-regions --query 'Regions[].RegionName' --output text); do
echo "=== Checking Region: $region ==="
aws ec2 describe-instances --region "$region" \
--filters "Name=instance-state-name,Values=running,pending,stopped" \
--query 'Reservations[].Instances[].[InstanceId,InstanceType,State.Name,LaunchTime]' \
--output table
done
EC2 -> Auto Scaling Groups (and EC2 Spot Fleet Requests / ECS Clusters / EKS Node Groups / SageMaker Notebook & Training Jobs) kaltetutako eskualde bakoitzean eta ezabatu Auto Scaling Group / Spot Request LEHENENGO, ondoren amaitu instantziak.
- Egiaztatu AWS Bedrock (Model Invocation Logging) eta Amazon SES: Kredentzialak biltzeko robot modernoek orain berehala deitzen dute AWS Bedrock (Claude 3.5 Sonnet / Llama 3) lapurtutako AWS kredentzialak erabiliz LLM tokenak birsaltzeko (which does not show up under EC2 at all). Egiaztatu AWS Cost Explorer (Group by: Service eta Group by: Region) zerbitzu-puntu anormal bat antzemateko.
3. zatia: Git historiatik sekretua garbitzea (git-filter-repo) & GitHub-en ezkutuko konpromisoaren cachea garbitzea¶
Kredentziala hornitzaile mailan amaitutakoan, kate sekretua kendu behar duzu zure biltegitik. .git egin historia, ez lankideek ez etorkizuneko scraperek ikusi ahal izateko (and so GitHub's Push Protection stops blocking your branches).
1. Zergatik git rm .env + git commit Ez du sekretua Git-etik kentzen¶
Korrika git rm .env && git commit -m "remove env" fitxategia azken konpromezutik bakarrik kentzen du (HEAD); testu arrunteko sekretua betirako irakurgarria izaten jarraitzen du gurasoen konpromisoaren barruan (the parent commit) GitHub-en "Konpromisatzen" sakatzen duen edonori.
2. Berridatzi biltegiaren historia garbi erabiliz git-filter-repo¶
- ** Azken konpromezua besterik ez balitz (
HEAD) sekretua zuen (and nobody else has pulled it yet):** - Sekretua zure historian hainbat konpromiso lurperatzen bada (
or inside a code file you want to keep): Erabiligit-filter-repo(the official, fast replacement recommended by Git and GitHub instead of the deprecated git filter-branch):# Option A: Completely purge a file (.env) from every commit in history git filter-repo --path .env --invert-paths --force # Option B: Replace a specific secret string with '***REMOVED***' across all files in history echo "sk_live_51NzExampleSecretKey12345==>***REMOVED***" > expressions.txt git filter-repo --replace-text expressions.txt --force # Force-push the rewritten history to GitHub across all branches and tags git push origin --force --all git push origin --force --tags
3. Ezkutuko GitHub cache tranpa (Dangling Commit SHAs)¶
Korrika egin ondoren ere git filter-repo eta git push --force, GitHub-en web zerbitzariek SHA zaharra, erreferentziarik gabeko ("zintzilik") konpromezua bizirik eta publikoki eskuragarri mantentzen dute. https://github.com/<owner>/<repo>/commit/<old-40-char-sha> (and in any forks or Pull Requests) zabor bilketa egin arte.
- Nola garbitu berehala Cached Commit SHA bat GitHub-en:
1. Kopiatu osoa 40-character filtratutako konpromisoaren SHA konprometitu historia berridatzi aurretik.
2. Ireki https://support.github.com/contact -> galdetu biltegian "Kendu datu sentikorrak / Garbitu cacheko ikuspegiak eskuraezina den SHA konprometitu baterako" owner/repo eta eman SHA konpromezu zehatza (or use the GitHub Support portal's automated cache-purge workflow).
4. zatia: Nola lortu a $5,000 to $100,000+ AWS edo GCP Bot fakturari uko egin zaio (The Courtesy Forgiveness Appeal)¶
Zer gertatzen da bat bultzatuko bazenu .env fitxategia ostiral arratsaldean, ez zuen zure posta elektronikoa begiratu astelehen goizera arte eta ** batekin esnatu zen$28,400.00 AWS edo Google Cloud faktura** kripto-meatzaritza edo LLM-proxy botetatik?
EZ izutu, eta EZ utzi zure kreditu-txartela bertan behera edo bankuko itzulketarik aurkeztu oraindik. Biak Amazon Web Services (AWS) eta Google Cloud Platform (GCP) Garatzaile, ikasle eta startup indibidualentzako Behin-behineko ustekabeko egiaztagirien ihesaren fakturazio-doikuntza / Kortesiazko kreditu-politika ezarrita daukate, baldin eta betetzen baduzu. 100% beren derrigorrezko segurtasuna konpontzeko kontrol-zerrenda *fakturazio berrikusteko taldeak zure helegitea ebaluatu aurretik.
5 urratseko AWS / GCP Bill Waiver Protokoloa (90%+ Success Rate for First-Time Leaks)¶
- ** Osatu lehenik segurtasuna konpontzeko urrats guztiak (
AWS Will Reject Your Waiver Until the Account Is Clean):**- Ezabatu arriskuan dagoen IAM sarbide-gakoa (
and the IAM User if possible). - Amaitu baimenik gabeko EC2 instantzia, Auto Scaling Group, EBS bolumena, Elastic IP, RDS instantzia eta S3 ontzi guztietan eskualde guztietan (
verify via AWS Cost Explorer and AWS Billing -> Bills -> Charges by Region that daily accrual has dropped back to $0.00). - Gaitu Hardware edo Authenticator aplikazioa MFA (
Multi-Factor Authentication) zure AWS Root Kontuan eta IAM erabiltzaile guztietan.
- Ezabatu arriskuan dagoen IAM sarbide-gakoa (
- Ireki laguntza-kasu bat azpian
"Account and Billing"(Free for All AWS/GCP Tiers, No Paid Support Plan Required):- Joan
console.aws.amazon.com/support/home-> Kasua sortu -> Kontua eta fakturazioa -> Zerbitzua: Fakturazioa -> Kategoria: Kartu bat eztabaidatu / Konprometitutako kontua.
- Joan
- Bidali egitatezko zuzenketa eta zailtasunen laburpen zehatz hau:
- Aitortu denbora-lerroa eta kausa: adierazi argi eta garbi noiz agertu den gakoa ustekabean GitHub-en (
e.g., "October 30 at 22:14 UTC") eta ezeztatu zenean ("October 31 at 09:05 UTC"). - Zehaztu baimenik gabeko gastuak eskualdearen eta zerbitzuaren arabera: zerrendatu iruzurrezko bot-aren jardueraren dolarreko zenbateko zehatzak zure hileko faktura historiko arruntaren aldean (
e.g., "My normal monthly AWS bill for the past 8 months is $14.50/month in us-east-1; the unauthorized charges total $18,420.12 across ap-east-1, eu-north-1, and sa-east-1 EC2/Bedrock usage"). - Berretsi % 100eko konponketa: Idatzi puntu zehatzak dagoeneko bete dituzun urratsak (
1. Deleted IAM key AKIA...; 2. Terminated all unauthorized resources across all regions; 3. Audited CloudTrail for backdoor users; 4. Enabled Root & IAM MFA; 5. Configured AWS Budgets alerts). - Eskatu adeitasunez behin-behineko kortesiazko fakturazioaren doikuntza: Azaldu garatzaile/ikasle/hasierako hasierako hasierako enpresa bat zarela, bat ordaintzen duzula.
$18,420baimenik gabeko bot fakturak zailtasun ekonomiko larriak eragingo lituzke eta iruzurrezko erabileragatik kodeiziazko fakturazio-kreditua/salbuespena eskatuko luke.
- Aitortu denbora-lerroa eta kausa: adierazi argi eta garbi noiz agertu den gakoa ustekabean GitHub-en (
- Aldi baterako trukatu edo mugatu zure estekatutako ordainketa-txartela fakturazio automatikoa berehala badago:
- Zure AWS Billing Support kasua berrikusten ari den bitartean (
which usually takes 5 to 15 business daysAWS Segurtasun eta Fakturazio Zerbitzuen Taldeek baliabide maltzur guztiak amaitu direla egiaztatzen duten bitartean), jarri harremanetan AWS Laguntza-zerbitzuarekin txartelaren barruan eta eskatu fakturazio-blokea aldi baterako jartzeko (defer auto-charge) eztabaidatutako fakturan, kreditu-doikuntza prozesatzen ari den bitartean zure banku-kontua deskubritu ez dezan.
- Zure AWS Billing Support kasua berrikusten ari den bitartean (
Warning
Zergatik ez dituzu INOIZ EZ DITUZTEN giltzak kodetu behar bezeroaren aldeko kodean (NEXT_PUBLIC_, VITE_, REACT_APP_, Mobile Apps edo Chrome Extensions). Zure GitHub biltegia bada ere 100% Pribatua, API gako sekretua jarriz (like an OpenAI, Stripe secret, or AWS key) frontend inguruneko aldagai baten barruan ** aurrizkiarekinNEXT_PUBLIC_,VITE_**, edo REACT_APP_ Testu arrunteko gako hori zuzenean JavaScript publikoan biltzen du .js Bisitari guztien web arakatzaileari hornitutako fitxategiak (where bots scrape it directly from your live production website in seconds). Gako publikoak/argitagarriak soilik (like Stripe pk_live_... edo Firebase bezeroaren konfigurazioa HTTP Erreferenteak / Errenkada-mailako segurtasunak mugatuta) frontend kodea ukitu dezake.
Tip
** Instalatu gitleaks edo trufflehog Tokiko Aurre-Konpromiso Hook gisa 60 segundotan (So git Refuses to Commit a Secret Ever Again).** Ustekabean bat egitea fisikoki ezinezkoa izan dadin .env fitxategia edo API gakoa zure ordenagailu eramangarrian berriro, instalatu gitleaks (brew install gitleaks) eta gehitu a .pre-commit-config.yaml amua (or turn on GitHub's free **"Push Protection for yourself"** at **github.com/settings/security_analysis**). Push Protection gaituta dagoenez, GitHub-en zerbitzariek zure kontrola ikuskatzen dute git push garraioan eta ukatu bultzada biltegian lurreratu baino lehen gako-eredu antzematen den bakoitzean.
(Lotutako garatzaileei eta urrutiko laneko segurtasun-intzidentziari buruz, ikus Ustekabeko produkzio datu-basearen erorketa, git force-push, isuri sekretua eta gertakarien triage, Produkzioaren datu-basea erori egin da edo S3 kuboa ezabatu egin da azken babeskopiarik gabe, Ustekabean posta elektronikoz bidalitako isilpeko nomina, bezeroaren PII edo HIPAA kalkulu-orria, eta Larrialdietako urruneko lanaren segurtasuna eta datuen pribatutasuna.)
Eskualdeko datuen urraketa eta hodeiko segurtasunaren berri emateko agintariak¶
| Eskualdea / País | Hodeiko Intrusioaren eta Datuen Urraketen Jakinarazpenaren Legea | Ziber Gorabeheren eta Arautze Agintaritza Ofiziala | Leaked GitHub gako batek derrigorrezko arauzko txostena eskatzen duenean |
|---|---|---|---|
| Estatu Batuak | FTC Bermeen Araua (16 CFR Part 314), SEC Zibersegurtasun Araua (Form 8-K Item 1.05), HIPAA eta 50 Estatuko Datuen Urraketen Jakinarazpen Estatutuak |
CISA (cisa.gov/report / 1-844-SAY-CISA), FBI IC3 (ic3.gov), HHS OCR eta Estatuko fiskal nagusiak |
CloudTrail edo Stripe erregistroek kanpoko IP batek filtratutako gakoa erabili duela erakusten badute GetObject edo enkriptatu gabeko bezeroa esportatu PII, Gizarte Segurantzako zenbakiak edo ordainketa-erregistroak (rather than purely mining crypto on empty EC2 instances), estatu-hauste-oharraren legeak aplikatzen dira. |
Europar Batasuna (EEA) |
GDPR (Articles 33 & 34) & NIS2 Zuzentaraua (Directive (EU) 2022/2555) |
** Datuak Babesteko Agintaritza Nazionala (CNIL, BfDI, DPC)** & CSIRT Nazionala (ENISA) |
** Zorrotza 72-Hour Erlojua (GDPR Art. 33):** Filtratutako kredentzialak EBko datu pertsonaletarako irakurtzeko sarbidea izan badu eta forentseki ezin baduzu baztertu baimenik gabeko sarbidea CloudTrail/VPC Flow Logs-en, jakinarazi zure gainbegiratze-agintariari. 72 hours. |
| Erresuma Batua | Erresuma Batuko GDPR eta Datuen Babeserako Legea 2018 | Informazio Komisarioaren Bulegoa (ICO: 0303 123 1113) & NCSC (ncsc.gov.uk) |
Salatu baimenik gabeko datu pertsonalen sarbidearen barruan dagoen Erresuma Batuko ICOra 72 hours ICOren lineako urraketak ebaluatzeko ataria erabiliz; dokumentatu zure gakoen biraketa eta IAM berrogeialdiko urratsak. |
| Kanada, Australia eta Zelanda Berria | Kanada PIPEDAAustralia Privacy Act 1988 (NDB Scheme)** Zelanda Berria Privacy Act 2020** |
OPC (Canada), OAIC & ACSC (Australia: 1300 CYBER1), & OPC (New Zealand) |
Jakinarazi beharrekoa egiaztagiriaren esposizioak kalte nabarmena izateko benetako arriskua sortzen badu (RROSH Kanadan) edo hauta daitezkeen datuen urraketa (Australia OAIC) informazio pertsonala inplikatuta. |
Maiz egiten diren galderak¶
Bat bultzatu dudala konturatzen banintz .env fitxategia GitHub reposi publiko batera eta 2 minutu geroago denda pribatu bihurtu, oraindik giltzak biratu behar al ditut?¶
Bai, fitxategi horretako gakoen ehuneko 100 arriskuan jarri eta berehala baliogabetu behar da. Kredentzialak biltzeko robot automatizatuek ez dute itxaron Google-k zure biltegia indexatzeko; GitHub-en denbora errealeko publikora zuzenean harpidetzen dira `Events API` su-hobia (`and GH Archive`), publiko oro emititzen duena `PushEvent` mundu osoan zure 1 eta 3 segundotan `git push`. Bi minutu geroago "Ezarpenak -> Aldatu biltegiaren ikusgarritasuna -> Egin pribatua" sakatu zenuenerako, dozenaka automatizatutako scraper bot-ek dagoeneko deskargatu zuten zure konpromezuaren desberdintasuna eta ilaran jarri zituzten zure AWS, Stripe, OpenAI eta datu-basearen kredentzialak ustiatzeko.
Zergatik jarraitu zuten bot-ek EC2 instantziak abiarazten nire AWS kontuan, filtrazioa ezabatu ondoren ere AKIA sarbide-giltza?¶
Estatiko bat ezabatzen `AKIA...` AWS IAM-en sarbide-gakoak gako iraunkor zehatz hori soilik desaktibatzen du; ez du aldi baterako baliogabetzen `ASIA...` Segurtasun Token Zerbitzua (`STS`) Erasotzaileak dagoeneko erabilita sortu dituen saio-tokenak `sts:GetSessionToken` edo `sts:AssumeRole` Zure giltza urradu ondorengo lehen segundoetan (`which remain valid for up to 12 to 36 hours`). Horrez gain, AWS eraso-script automatizatuek ohiko dei egiten dute `iam:CreateUser` eta `iam:CreateAccessKey` sarbidearen lehen segundoan, ezkutuko atzeko atzeko administratzaile kontu bat landatzeko. AWS intrusio aktibo bat guztiz gelditzeko, ezabatu behar duzu `AKIA` gakoa, erantsi esplizitu bat `Deny *` lineako politika arriskuan jarritako IAM erabiltzaileari (`which immediately invalidates all minted STS tokens`), eta auditatu CloudTrail sortu berri den IAM erabiltzaile edo roletarako.
AWS edo Google Cloud-ek barkatuko al dute izugarria $10,000+ fakturatu hackerrek nire API gakoa GitHub-etik lapurtu eta kriptografia atera badute?¶
Lehen aldiz ustekabeko filtrazio gehienetan, bai, baldin eta azkar jarduten baduzu, haien segurtasun taldearekin guztiz lankidetzan aritzen bazara eta fakturari kasurik egin ezean. Bai AWSek bai Google Cloud-ek baimenik gabeko kredentzial-isurien puntuek eragindako garatzaileentzako eta enpresa txikientzako kortesiazko fakturazio-doikuntzaren barne-politika bat dute. "Kontua eta fakturazioa" laguntzan fakturaren salbuespena eskatu baino lehen, filtrazioa ehuneko 100 itxita dagoela frogatu behar duzu: ezeztatu agerian dauden IAM gakoak, amaitu kalkulu-instantzia maltzur guztiak eta eskalatze automatikoko talde guztiak 30+ eskualde globaletan, gaitu faktore anitzeko autentifikazioa (`MFA`) zure root kontuan eta konfiguratu AWS Budgets kostuen alertak.
Zergatik egiten du git rm .env ez kendu nire gako sekretua GitHub-etik?¶
Git bertsio-kontroleko liburu aldaezina da: exekutatzen duzunean `git rm .env` eta bultzatu konpromezu berri bat, Git-ek fitxategia ez dagoela argazki berrienean erregistratzen du soilik (`HEAD`), testu arrunteko eduki osoa mantenduz `.env` betirako gordeta aurreko konpromisoaren barruan (`the parent commit`) zure biltegiko konpromisoen historian. Nahiz eta zure historia berridatzi `git filter-repo` eta force-push, edonork irakur dezake sekretua hornitzailearen kontsolan ezeztatu ez baduzu. Lehenik eta behin, ezeztatu eta biratu gako sekretua zure hodeiko hornitzailearen aginte-panelean, eta gero erabili `git filter-repo` Zure konpromisoen historiatik hildako katea garbitzeko.
Erlazionatutako gidak¶
- Ustekabeko produkzio datu-basearen erorketa, git force-push, isuri sekretua eta gertakarien triage
- Produkzioaren datu-basea erori egin da edo S3 kuboa ezabatu egin da azken babeskopiarik gabe
- Ustekabean posta elektronikoz bidalitako isilpeko nominak, bezeroaren PII edo HIPAA kalkulu-orri okerreko hartzaileari
- Isilpeko soldata-orriaren, pasahitz-kudeatzailearen edo kaleratze-zerrendaren ustekabeko pantaila zatia Zoom/Teams-en
- Larrialdietako urruneko lanaren segurtasuna eta datuen pribatutasuna
- Larrialdi zenbakiak
Iturriak eta orientabide ofiziala¶
- Amazon Web Services (
AWS Security Incident Response Guide & AWS Knowledge Center: "What should I do if I notice unauthorized activity or exposed IAM access keys?"):AWSCompromisedKeyQuarantineV2Politika-jokaera, Aldi baterako baliogabetzeaSTSSaio-tokenak (RevokeOldSessions), eta Eskualde Anitzeko Baliabideen Auditoria. - GitHub dokumentazioa (
GitHub Secret Scanning, Push Protection, & "Removing sensitive data from a repository" using git-filter-repo): Bazkideen Auto-Errebokatze Programa (Stripe, AWS, OpenAI, NPM),git-filter-repoHistoriaren berridazketa eta atzemanezinak diren cacheko konpromisoen SHA-ak garbitzea. - Stripe Inc. (
Stripe Developer Security Guide: API Key Rotation & Compromised Key Incident Triage): Berehalask_live_Gako Iraungitzea, Ikuskaritza/v1/eventseta/v1/webhook_endpoints, eta Gakoak mugatuz bidezrk_live_Esparruak. - NIST (
Special Publication 800-61 Rev. 2 / Rev. 3: Computer Security Incident Handling Guide) & OWASP (Secrets Management Cheat Sheet): Kredentzialak edukitzea, OIDC Laneko Identitatearen Federazio iragankorra (replacing static CI/CD keys), eta Aurre-konpromisoa sekretua eskaneatzea.