API-avain, AWS Secret tai Stripe Live Token sitoutunut julkiseen GitHub Repoon: Automaattinen botin kaapiminen 60 sekunnissa, välitön avainten kierto ja laskutuksen lopetuskytkin¶
Heti kun juokset git push julkiseen GitHub-, GitLab- tai Bitbucket-tietovarastoon (or temporarily flip a private repository to "Public" for even 10 seconds) kun tiedosto, .env kokoonpano, Jupyter-muistikirja (.ipynb), tai vanhempi Gitin toimitushistoria sisältää elävän salaisen avaimen (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), maailmanlaajuinen automaattisten tunnistetietojen keräämisbottien verkosto sieppaa salaisuuden 2-60 sekunnissa. Koska GitHub on julkinen Events API, GH Archive, ja reaaliaikaiset webhook-paloletkut suoratoistavat jokaista yleisöä PushEvent maailmanlaajuisesti haitalliset kaavinrobotit jäsentävät erosi säännöllisillä lausekkeilla ja alkavat suorittaa automaattisia pilvikomentoja ennen kuin voit edes kirjoittaa git revert.
** sisällä90 seconds** an AWS tai GCP salainen osuu julkiseen repoon, automatisoidut botnetit pyörittävät maksimikokoisia GPU/CPU-esiintymiä (such as p4d.24xlarge or c6i.32xlarge epämääräisillä alueilla, kuten ap-east-1 Hongkong, me-south-1 Bahrain tai sa-east-1 Sao Paulo) louhimaan Moneroa (XMR), pyydä AWS Simple Email Service -palvelua (SES). S3 kauhat ja RDS tietokannat, luovat $5,000 to $80,000+ pilvilaskujen laskuissa yön yli. Samoin vuotanut OpenAI tai Anthropic API-avain yhdistetään välittömästi maanalaisille "käänteisen välityspalvelimen" LLM-markkinapaikoille, jotka kuluttavat tuhansia dollareita tunnistepisteitä minuutissa, kun taas Stripe live salainen avain (sk_live_...) antaa hyökkääjille täyden ohjelmallisen luku-/kirjoitusoikeuden myöntää vilpillisiä hyvityksiä, viedä asiakkaalle PIItai käynnistää luvattomia Connect-maksuja. Jos hyökkääjä kiristää aktiivisesti organisaatiotasi, kun hän on tunkeutunut asiakastietokantoihin vuotaneella avaimellasi, ota yhteyttä paikallisiin lainvalvontaviranomaisiin ja kybertapahtumien vihjelinjaan meidän kauttamme. hätänumerot hakemistoon välittömästi ja tutustu aiheeseen liittyviin oppaihimme vahingossa tapahtuva tuotantotietokannan pudotus, git force-push ja salainen vuototriage, tuotantotietokanta on pudonnut tai S3-ryhmä poistettu ilman viimeaikaista varmuuskopiointia, ja hätäetätyön turvallisuus ja tietosuoja.
Tee tämä nyt¶
- ÄLÄ tuhlaa ensimmäisiä 60 sekuntia juoksemiseen
git rm .envtaigit push --force: SIIRRY SUORAAN TARJOAJAKONSOLIIN (AWS IAM,Stripe,OpenAI,GCP) JA PERUUTA / POISTA AVAIN< 30 SECONDS. Tiedoston poistaminen uudessa Git-toimituksessa (or even making the GitHub repository Private). Itse avain on ensin tapettava lähteellä. - Jos an
AWSavain (AKIA...taiASIA...) vuotanut: AvattuAWS IAM -> Users -> Security credentialsja napsauta heti käyttöavaimessa Deaktivointi / Poista ja liitä sittenAWSCompromisedKeyQuarantineV2(or a blanketKiellä *inline policy) IAM-käyttäjälle ja lisää käyttäjän arvoaRevokeOldSessionspolitiikka tappaa kaikki väliaikaisetSTShyökkääjän jo lyödyt rahakkeet (see the exact STS bypass trap below). - Jos a
StripeLive salainen avain (sk_live_...tairk_live_...) vuotanut: Siirrydashboard.stripe.com/apikeys, napsauta...-> Rullaa näppäintä ja aseta vanhan avaimen vanhenemisajaksi "Nyt (Immediately)" (NOT "in 24 hours"). Tarkista välittömästiStripe Dashboard -> LogsjaBalance -> Payouts / Refundsluvattomille API-kutsuille. - Jos an
OpenAI,Anthropic,Google Gemini, taiSendGrid / Twilioavain vuotanut: Poista API-avain välittömästi palveluntarjoajan hallintapaneelista ja aseta Kova kuukausittainen kulutusraja ($0tai normaali ylärajasi) Laskutusasetuksissa, jotta lennon aikana suoritettavat suoratoistopyynnöt katkeavat. - ** Pyyhkäise KAIKKI pilvialueet (
especially disabled/opt-in regions) rikollisille EC2-esiintymille, Lambda-toiminnoille, ECS-tehtäville, S3-sämpeleille ja takaoven IAM-käyttäjille, jotka botti on luonut 2 minuutin altistusikkunan aikana.** Hyökkääjät käynnistävät kryptolouhintaesiintymiä erityisesti alueilla, joita et koskaan klikkaa konsolissa (like Stockholm eu-north-1, Osaka ap-northeast-3, or Mumbai ap-south-1) ja luo toinen piilotettu IAM-käyttäjä (or SSH key pair), jotta he voivat pysyä tililläsi, kun olet poistanut vuotaneen avaimen. - **Vasta, JÄLKEEN salaisuus on kumottu ja takaoven IAM-tilit tyhjennetty, pyyhi commit Gitistä (
using git-filter-repo) JA ota yhteyttä GitHub-tukeen (or remove cached PR/commit views).
Danger
Miksi vuotanut poistetaan AKIA Näppäile AWS IAM EI riitä (The STS GetSessionToken Persistence Trap). Sisällä 5 seconds staattisen sähkön kaapimisesta AKIA... AWS IAM -käyttöavain GitHubista, kehittyneet automatisoidut botnetit eivät vain käynnistä EC2-esiintymiä AKIA avain; heidän ensimmäinen API-kutsunsa on sts:GetSessionToken tai sts:AssumeRole, joka tekee väliaikaisen ASIA... Suojaustunnuspalvelu (STS) istuntotunnus voimassa enintään 12 to 36 hours. Jopa alkuperäisen poistamisen jälkeen AKIA... pääsyavain IAM-konsolissa, mikä tahansa tilapäinen ASIA... Ennen tätä hetkeä lyödyt STS-tunnukset pysyvät 100 % aktiivisina ja voimassa, ellet liitä myös nimenomaista Deny All sisäinen käytäntö (with a Condition checking aws:TokenIssueTime < CurrentUTC) vaarantuneelle IAM-käyttäjälle ja kaikkiin rooleihin, jotka se voi ottaa.
Päätöspuu: 60 sekunnin hätätoimi vuotaneen salaisen tyypin mukaan¶
Noudata tätä tapauksen eristämisen vuokaaviota, niin voit tappaa vaarantuneet tunnistetiedot, palvelimen hyökkääjän pysyvyyden ja kääntää karanneen pilvilaskutuksen.
flowchart TD
A["Live Secret sitoutunut julkiseen GitHubiin / GitLab Repoon (.env, lähdekoodi tai git-historia)"] --> B["TOINEN 0 - 30: ÄLÄ Suorita git rm ensin. Avaa Cloud/API Provider Console & REVOKE Key välittömästi"]
B --> C{"Minkä tyyppiset suorat kirjautumistiedot paljastettiin?"}
C -->|"1. AWS-käyttöavain (AKIA... / ASIA...)"| D["1. Deaktivoi/Poista avain IAM:ssa 2. Liitä rivin 'Estä kaikki' -käytäntö käyttäjälle (tappaa lyödyt STS-tunnukset) 3. Tarkastele CloudTrailia takaoven IAM-käyttäjille"]
C -->|"2. Stripe Live Secret Key (sk_live_... / rk_live_...)"| E["1. Roll Key ja vanheneminen = 'Välittömästi' 2. Tarkista /v1/hyvitykset, /v1/siirrot & Webhook-päätepisteet 3. Arvioi asiakkaan henkilökohtaisten tunnistetietojen altistuminen"]
C -->|"3. OpenAI (sk-proj-...), Anthropic (sk-ant-...) tai Gemini Key"| F["1. Peru avain kehittäjäkonsolissa 2. Laske organisaation laskutusraja väliaikaisesti 0 dollariin 3. Tarkista Token Drainin käyttölokit"]
C -->|"4. Tietokannan URI (postgres://, mongodb+srv://) tai Redis-URL"| G["1. Käännä DB-salasana heti"]
D --> H["Suorita Multi-Region Compute Sweep (päätä Rogue EC2/EKS/SageMaker/Lambda kaikilla yli 30 alueella)"]
E --> I["Tyhjennä Git-historia 'git filter-repon' avulla + tyhjennä GitHub-välimuistissa olevat Commit SHA -näkymät"]
F --> I
G --> I
H --> J{"Keräsivätkö automatisoidut robotit 1 000-100 000+ dollarin pilvilaskun?"}
J -->|"KYLLÄ"| K["Avaa AWS/GCP-laskutustukitapaus -> lähetä korjauksen jälkeinen tietoturvatarkastus + pyydä kertaluonteista lupapetosta/laskuvuodon anteeksiantoa"]
J -->|"EI"| I
Osa 1: Provider-by-Provider Kill-Switch & Forensics Matrix (First 5 Minutes)¶
Käytä tätä viitetaulukkoa löytääksesi tarkan peruutuspainikkeen, automaattisen GitHubin salaisen skannauksen ja piilotetun pysyvyysvektorin vuotaneelle tunnistetiedolle.
| Tunnistetyyppi ja etuliitemalli | Peruuttaako GitHubin salainen skannaus sen automaattisesti? | Välitön 30 sekunnin Kill-Switch -menettely | Piilotettu hyökkääjän pysyvyysvektori tarkistettava (Critical.) |
Missä tarkastaa luvattomat API-kutsut |
|---|---|---|---|---|
1. Amazon Web Services (AKIA... IAM-avain / ASIA... STS Token) |
EI automaattista peruutusta: GitHub ilmoittaa AWS:lle, joka avaa automaattisen AWS-tukitapauksen (Compromised Key Quarantine) ja liitteenä AWSCompromisedKeyQuarantineV2, usein 3 to 15 minutes sen jälkeen, kun botit ovat jo hyökänneet. |
1. IAM -> Users -> [User] -> Security credentials -> Deactivate & Delete2. Lisää sisäinen käytäntö: Effect: Deny, Action: "*", Resource: "*" (kills active STS tokens). |
1. Väliaikainen STS rahakkeita (ASIA...)2. Äskettäin luodut IAM-käyttäjät / pääsyavaimet 3. Takaovi IAM-roolit ulkoisella Principal luottamuspolitiikkaa4. EC2 Käynnistysmallit / Automaattiset skaalausryhmät, jotka synnyttävät lopetettuja kaivostyöläisiä. |
AWS CloudTrail -> Tapahtumahistoria (Filter by User name = compromised IAM user tai Event source = sts.amazonaws.com / iam.amazonaws.com). |
2. Stripe Live Secret / Restricted Key (sk_live_... / rk_live_...) |
KYLLÄ (usein): Stripe tekee yhteistyötä GitHubin salaisen skannauksen kanssa sk_live_ avaimet havaittu päällä mainMUTTA-näppäimet, jotka on piilotettu base64-merkkijonojen, pääsisältöjen tai ei-standarditiedostojen sisään, voivat ohittaa automaattisen peruutuksen. |
1. Siirry dashboard.stripe.com/apikeys2. Napsauta ... -> Rullaava avain3. Valitse Block old key immediately (Now) (never select a 12h/24h grace period.). |
Haitalliset Webhook-päätepisteet: Hyökkääjät käyttävät vuotaneitasi sk_live_ avain soittamiseen POST /v1/webhook_endpoints, rekisteröivät oman palvelimen URL-osoitteen saadakseen hiljaa kopiot kaikista tulevista asiakkaiden kassa- ja korttitapahtumista, vaikka olet käyttänyt API-avainta. |
Stripe Dashboard -> Kehittäjät -> Lokit (filter by IP address and HTTP method POST/DELETE) + Kehittäjät -> Webhooks (delete any unrecognized URLs). |
3. Google Cloud Service -tili JSON ("private_key_id", AIza... API-avain) |
Osittainen: GCP varoittaa projektin omistajaa (and optionally disables keys if Organization Policy is enabled), mutta jättää avaimen usein aktiiviseksi lähettäessään sähköpostivaroituksen. |
1. GCP Console -> IAM & Admin -> Service Accounts2. Napsauta Palvelutili -> Avaimet -välilehteä -> Poista vuotanut avaintunnus. 3. Poista koko palvelutili väliaikaisesti käytöstä. |
1. Vuotaneen avaimen luomat uudet Palvelutiliavaimet 2. Compute Engine GPU-esiintymät ( A100/H100/T4) syntyi ulkomaisilla vyöhykkeillä3. Muokattu Projektin IAM-käytäntöjen sitomiset ( roles/owner tai roles/editor). |
GCP Cloud Audit Logs (Logs Explorer) käyttämällä kyselyä:protoPayload.authenticationInfo.principalEmail="<service-account-email>" |
4. OpenAI (sk-proj-...), antrooppinen (sk-ant-...), & HuggingFace (hf_...) |
OpenAI / Anthropic: Yhteistyö GitHubin kanssa kumoaa automaattisesti tavalliset selkotekstityöt (usually within 30 to 120 seconds), jonka aikana botit voivat silti ampua tuhansia rinnakkain gpt-4o / claude-3-5-sonnet pyyntöjä. |
1. Poista avain platform.openai.com/api-keys tai console.anthropic.com/settings/keys2. Alempi Kuukausittainen kulutusraja ( Hard Cap) Laskutusasetuksissa pysäyttääksesi lennon aikana tapahtuvat rinnakkaiset streamit. |
Organisaation järjestelmänvalvojan avaimet (sk-admin-...): Jos OpenAI Admin API -avain vuoti, botti voi kutsua ohjelmallisesti POST /v1/organization/admin_api_keys luoda uoteet projektin API-avaimet ennen kuin kumoat ensimmäisen. Tarkista kaikki organisaation avaimet. |
OpenAI / Anthropic Usage Dashboard (check activity by API key and model tier). |
5. GitHub Personal Access Token (ghp_... / github_pat_...) tai NPM Token (npm_...) |
KYLLÄ (Instant): GitHub kumoaa kaikki automaattisesti ghp_ tai github_pat_ token sekunnin murto-osana se työnnetään julkiseen GitHub-tietovarastoon. |
Jos välitetään muulle kuin GitHub-isännälle (GitLab, Bitbucket, Pastebin, or Slack), peruuta manuaalisesti osoitteessa github.com/settings/tokens (or npmjs.com -> Access Tokens). |
Supply-Chain Haittaohjelmien injektio: Hyökkääjä kanssasi ghp_ tai npm_ token työntää välittömästi haitallisen takaoven sitoumuksen yksityisiin varastoihin, lisää huijarin Deploy Key / GitHub Actions Workflow (pull_request_target) tai julkaise troijalainen versio NPM-paketistasi. |
GitHub-asetukset -> Suojausloki (audit repo.create, hook.create, org.add_member, and oauth_authorization). |
Osa 2: Deep Dive: Kuinka häätää hyökkääjä AWS-tililtäsi (The 4-Step Cloud Eviction Protocol)¶
Koska vuotanut AWS valtuustiedoilla on suurin taloudellinen räjähdyssäde (up to $50,000+ per day in EC2/SageMaker/Bedrock bills), sinun on suoritettava kaikki neljä alla olevaa vaihetta aina, kun an AKIA... tai ASIA... avain osuu julkiseen tietovarastoon:
+-----------------------------------------------------------------------------+
| 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 | |
| +-----------------------------------------------------------------------+ |
+-----------------------------------------------------------------------------+
Vaihe 1: Tapa molemmat staattiset AKIA Avain JA kaikki lyöty ASIA Istuntotunnukset¶
Poistaminen AKIA AWS-konsolin näppäin ei mitätöi väliaikaisesti STS valtakirjat on jo myöntänyt sts:GetSessionToken. Tappaa kaikki välittömästi AWS CLI:n kautta (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": "*"
}]
}'
Vaihe 2: Etsi takaoven IAM-käyttäjät, roolit ja käyttöavaimet CloudTrailista¶
Suorita nämä AWS CLI -komennot tarkistaaksesi, loiko botti piilotetun takaoven IAM-käyttäjän tai liittikö toissijaisen pääsyavaimen johonkin olemassa olevista työntekijätilistäsi ikkunan aikana:
# 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 ja ImportKeyPair. Poista kaikki luvattomat käyttäjät, roolit ja avainparit välittömästi.
Vaihe 3: Pyyhkäise kaikki 30+ AWS-alueet Rogue EC2 -esiintymille, automaattisille skaalausryhmille ja kallioperän/SageMaker-töille¶
Miksi uhrit saavat edelleen a $12,000 laskun kuun lopussa sen jälkeen, kun he "tarkistavat EC2:n kojelaudan ja näkivät nolla tapausta"? Koska AWS-konsoli näyttää vain yhden alueen kerrallaan (e.g., us-east-1), kun botti pyörähti ylös 20 tapauksia ap-south-1 (Mumbai), eu-north-1 (Stockholm), ja sa-east-1 (Sao Paulo) ja piilotti ne EC2 Auto Scaling Groups (ASGs), joten jos lopetat EC2-ilmentymän manuaalisesti, automaattinen skaalausryhmä käynnistää korvaavan 30 seconds myöhemmin.
Suorita tämä usean alueen bash one-liner listataksesi kaikki käynnissä olevat tai odottavat EC2-esiintymät jokaisella aktiivisella AWS-alueella 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).
- Tarkista AWS-kallioperä (Model Invocation Logging) ja Amazon SES: Nykyaikaiset tunnistetietojen keruubotit kutsuvat nyt välittömästi AWS Bedrockin (Claude 3.5 Sonnet / Llama 3) käyttämällä varastettuja AWS-tunnuksiasi LLM-tunnusten jälleenmyyntiin (which does not show up under EC2 at all). Tarkista AWS Cost Explorer (Group by: Service ja Group by: Region) havaitaksesi epänormaalit palvelupiikit.
Osa 3: Gitin historian salaisuuden puhdistaminen (git-filter-repo) ja tyhjennetään GitHubin piilotettu sitoumusvälimuisti¶
Kun valtuustiedot ovat kuolleet palveluntarjoajatasolla, sinun on poistettava salainen merkkijono arkistostasi .git sitoa historiaa, jotta työtoverit tai tulevat kaapijat eivät näe sitä (and so GitHub's Push Protection stops blocking your branches).
1. Miksi git rm .env + git commit EI poista salaisuutta Gitistä¶
Juoksemassa git rm .env && git commit -m "remove env" poistaa tiedoston vain uusimmasta vahvistuksesta (HEAD); selväkielinen salaisuus pysyy pysyvästi luettavissa ylätason sitoumuksessa (the parent commit) kaikille, jotka napsauttavat "Sitoutuu" GitHubissa.
2. Kirjoita arkistohistoria puhtaasti uudelleen käyttämällä git-filter-repo¶
- Jos vain viimeinen sitoumus (
HEAD) sisälsi salaisuuden (and nobody else has pulled it yet): - Jos salaisuus on haudattu useita sitoumuksia historiassasi (
or inside a code file you want to keep): Käytägit-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. Hidden GitHub Cache Trap (Dangling Commit SHAs)¶
Jopa juoksemisen jälkeen git filter-repo ja git push --force, GitHubin verkkopalvelimet pitävät edelleen vanhan, viittaamattoman ("roikkuvan") SHA:n hengissä ja julkisesti saatavilla osoitteessa https://github.com/<owner>/<repo>/commit/<old-40-char-sha> (and in any forks or Pull Requests) kunnes jätteiden keräys on käynnissä.
- Välimuistissa olevan Commit SHA:n tyhjentäminen GitHubissa välittömästi:
1. Kopioi koko 40-character commit SHA vuotaneesta sitomisesta ennen kuin kirjoitat historian uudelleen.
2. aukihttps://support.github.com/contact -> pyydä arkistossa "Poista arkaluontoiset tiedot / Tyhjennä välimuistinäkymät tavoittamattoman SHA:n vahvistamiseksi" owner/repo ja anna tarkka sitoumus SHA (or use the GitHub Support portal's automated cache-purge workflow).
Osa 4: Kuinka saada a $5,000 to $100,000+ AWS tai GCP Bot Bill Waived (The Courtesy Forgiveness Appeal)¶
Mitä jos työnnät an .env tiedosto perjantai-iltapäivällä, tarkisti sähköpostisi vasta maanantaiaamuna ja heräsin $28,400.00 AWS- tai Google Cloud -lasku kryptolouhinta- tai LLM-välityspalvelinboteista?
ÄLÄ panikoi, äläkä peruuta luottokorttiasi tai tee pankkiveloitusta vielä. Molemmat Amazon Web Services (AWS) ja Google Cloud Platform (GCP) sinulla on vakiintunut sisäinen Kertaluonteisen vahingossa tapahtuneen valtuustietovuodon laskutuksen oikaisu / kohteliaisuushyvityskäytäntö yksittäisille kehittäjille, opiskelijoille ja startup-yrityksille, edellyttäen, että täytät 100% heidän pakollisesta tietoturvan korjausluettelosta ennen, kun heidän laskutuksen tarkistustiiminsä arvioi valituksesi.
5-vaiheinen AWS / GCP Bill Waiver Protocol (90%+ Success Rate for First-Time Leaks)¶
- Suorita jokainen suojauskorjausvaihe ensin (
AWS Will Reject Your Waiver Until the Account Is Clean):- Poista vaarantunut IAM-käyttöavain (
and the IAM User if possible). - Lopeta jokainen luvaton EC2-esiintymä, automaattinen skaalausryhmä, EBS-volyymi, elastinen IP, RDS-ilmentymä ja S3-säilö kaikilta alueilla (
verify via AWS Cost Explorer and AWS Billing -> Bills -> Charges by Region that daily accrual has dropped back to $0.00). - Ota käyttöön Hardware tai Authenticator App MFA (
Multi-Factor Authentication) AWS-juuritilillesi ja jokaiselle IAM-käyttäjälle.
- Poista vaarantunut IAM-käyttöavain (
- Avaa tukitapaus alta
"Account and Billing"(Free for All AWS/GCP Tiers, No Paid Support Plan Required):- Siirry osoitteeseen
console.aws.amazon.com/support/home-> Luo tapaus -> Tili ja laskutus -> Palvelu: Laskutus -> Luokka: Kiistauta veloitus / vaarantunut tili.
- Siirry osoitteeseen
- Lähetä tämä täsmällinen tosiasiallinen korjaus- ja vaikeusyhteenveto:
- Tunnista aikajana ja syy: Kerro selvästi, milloin avain paljastui vahingossa GitHubissa (
e.g., "October 30 at 22:14 UTC") ja milloin se peruutettiin ("October 31 at 09:05 UTC"). - Erittele luvattomat veloitukset alueen ja palvelun mukaan: Luettelo vilpillisen bot-toiminnan tarkat dollarimäärät verrattuna normaaliin historialliseen kuukausilaskuusi (
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"). - Vahvista 100-prosenttinen korjaus: Merkitse luettelomerkkiin tarkat vaiheet, jotka olet jo suorittanut (
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). - Pyydä kohteliaasti kertaluonteista kohteliaisuuslaskutuksen oikaisua: Selitä, että olet yksittäinen kehittäjä / opiskelija / varhaisen vaiheen startup-yritys, joka maksaa
$18,420luvaton bot-lasku aiheuttaisi vakavia taloudellisia vaikeuksia, ja vilpillisen käytön vuoksi pyydetään kertaluonteista laskutushyvitystä/lupaa.
- Tunnista aikajana ja syy: Kerro selvästi, milloin avain paljastui vahingossa GitHubissa (
- Vaihda tilapäisesti tai rajaa linkitetty maksukorttisi, jos automaattinen laskutus on välitön:
- Kun AWS-laskutustukitapauksesi on tarkistettavana (
which usually takes 5 to 15 business dayskun AWS:n tietoturva- ja laskutuspalvelutiimit varmistavat, että kaikki petolliset resurssit on lopetettu, ota yhteyttä lipun sisällä olevaan AWS-tukeen ja pyydä heitä asettamaan väliaikainen laskutuksen lykkäys (defer auto-charge) kiistanalaisessa laskussa, jotta se ei ylitä pankkitiliäsi luottooikaisun käsittelyn aikana.
- Kun AWS-laskutustukitapauksesi on tarkistettavana (
Warning
Miksi et saa KOSKAAN koodata avaimia asiakaspuolen koodissa (NEXT_PUBLIC_, VITE_, REACT_APP_, Mobile Apps tai Chrome Extensions). Vaikka GitHub-arkistosi olisi 100% Yksityinen, laittaa salaisen API-avaimen (like an OpenAI, Stripe secret, or AWS key) käyttöliittymän ympäristömuuttujan sisällä, jonka etuliite on NEXT_PUBLIC_, VITE_ tai REACT_APP_ niputtaa tämän tekstiavaimen suoraan julkiseen JavaScriptiin .js tiedostot toimitetaan jokaisen vierailijan selaimeen (where bots scrape it directly from your live production website in seconds). Vain julkiset/julkaisevat avaimet (like Stripe pk_live_... tai HTTP-viittauksen / rivitason suojauksen rajoittama Firebase-asiakasmääritykset) voivat koskettaa käyttöliittymäkoodia.
Tip
Asentaa gitleaks tai trufflehog paikallisena Pre-Commit Hookina 60 sekunnissa (So git Refuses to Commit a Secret Ever Again). Tehdäkseen fyysisesti mahdottomaksi vahingossa tapahtuvan an .env tiedosto tai API-avain kannettavaan tietokoneeseen uudelleen, asenna gitleaks (brew install gitleaks) ja lisää a .pre-commit-config.yaml koukku (or turn on GitHub's free **"Push Protection for yourself"** at **github.com/settings/security_analysis**). Kun Push Protection on käytössä, GitHubin palvelimet tarkastavat sinun git push kuljetuksen aikana ja hylkää työntö ennen kuin se koskaan laskeutuu arkistoon aina, kun tunnistettava näppäinkuvio havaitaan.
(Lisätietoja kehittäjien ja etätyön tietoturvahäiriöistä, katso Vahingossa tapahtuva tuotantotietokannan pudotus, git force-push, salainen vuoto ja tapausten triage, Tuotantotietokanta hylätty tai S3-säilö poistettu ilman viimeaikaista varmuuskopiointia, Vahingossa sähköpostitse lähetetty luottamuksellinen palkanlaskenta, asiakkaan henkilötiedot tai HIPAA-laskentataulukko, ja Hätätyön etätyöturvallisuus ja tietosuoja.)
Alueelliset tietomurto- ja pilviturvallisuusraportointiviranomaiset¶
| Alue / Maa | Pilvitunkeutumis- ja tietomurtoilmoituslaki | Virallinen kybertapahtuma- ja valvontaviranomainen | Kun vuotanut GitHub-avain edellyttää pakollista viranomaisraportointia |
|---|---|---|---|
| Yhdysvallat | FTC suojasääntö (16 CFR Part 314), SEC:n kyberturvallisuussääntö (Form 8-K Item 1.05), HIPAA ja 50 osavaltion tietoturvaloukkausilmoitussäännöt |
CISA (cisa.gov/report / 1-844-SAY-CISA), FBI IC3 (ic3.gov), HHS OCR ja State Attorneys General |
Jos CloudTrail- tai Stripe-lokit osoittavat, että ulkoinen IP käytti vuotanutta avaimesi GetObject tai vie salaamaton asiakas PII, sosiaaliturvatunnukset tai maksutiedot (rather than purely mining crypto on empty EC2 instances), sovelletaan osavaltion rikkomusilmoituslakeja. |
Euroopan unioni (EEA) |
GDPR (Articles 33 & 34) & NIS2-direktiivi (Directive (EU) 2022/2555) |
Kansallinen tietosuojaviranomainen (CNIL, BfDI, DPC) & Kansallinen CSIRT (ENISA) |
** Tiukka 72-Hour Kello (GDPR Art. 33):** Jos vuotaneella valtuustiedolla oli lukuoikeus EU:n henkilötietoihin etkä voi oikeudellisesti sulkea pois luvatonta pääsyä CloudTrail/VPC Flow Logs -palveluun, ilmoita asiasta valvontaviranomaiselle 72 hours. |
| Iso-Britannia | Ison-Britannian GDPR ja tietosuojalaki 2018 | Tiedostopäällikön toimisto (ICO: 0303 123 1113) & NCSC (ncsc.gov.uk) |
Ilmoita luvattomasta henkilötietojen käytöstä UK ICO:lle 72 hours käyttämällä ICO:n online-loukkausten arviointiportaalia; dokumentoi avainten kierto ja IAM-karanteenin vaiheet. |
| Kanada, Australia ja Uusi-Seelanti | Kanada PIPEDAAustralia Privacy Act 1988 (NDB Scheme)Uusi-Seelanti Privacy Act 2020 |
OPC (Canada), OAIC & ACSC (Australia: 1300 CYBER1), & OPC (New Zealand) |
Raportoitava, jos henkilötietojen altistuminen aiheuttaa todellisen riskin merkittävästä haitasta (RROSH Kanadassa) tai kelvollinen tietomurto (Australia OAIC) jotka sisältävät henkilötietoja. |
Usein kysytyt kysymykset¶
Jos tajusin, että työnsin an .env tiedosto julkiseen GitHub-varastoon ja tehtiin reposta yksityinen 2 minuuttia myöhemmin, pitääkö minun silti kääntää avaimiani?¶
Kyllä, 100 prosenttia kyseisen tiedoston avaimista on katsottava vaarantuneeksi ja peruutettava välittömästi. Automaattiset tunnistetietojen keräävät robotit eivät odota, että Google indeksoi arkistosi. he tilaavat suoraan GitHubin reaaliaikaisen yleisön `Events API` paloletku (`and GH Archive`), joka lähettää kaikille yleisöille `PushEvent` maailmanlaajuisesti 1-3 sekunnin kuluessa `git push`. Kun klikkasit kaksi minuuttia myöhemmin "Asetukset -> Muuta arkiston näkyvyyttä -> Muuta yksityiseksi", kymmenet automatisoidut kaavinbotit olivat jo ladanneet commit diffisi ja asettaneet AWS-, Stripe-, OpenAI- ja tietokantatietosi jonoon hyödyntämistä varten.
Miksi botit jatkoivat EC2-esiintymien käynnistämistä AWS-tililläni, vaikka poistin vuotaneen AKIA pääsyavain?¶
Staattisen kuvan poistaminen `AKIA...` pääsyavain AWS IAM:ssa poistaa vain kyseisen pysyvän avaimen käytöstä; se ei mitätöi väliaikaisesti `ASIA...` Suojaustunnuspalvelu (`STS`) istuntotunnukset, jotka hyökkääjä on jo luonut käyttämällä `sts:GetSessionToken` tai `sts:AssumeRole` muutaman ensimmäisen sekunnin aikana avaimen raapimisen jälkeen (`which remain valid for up to 12 to 36 hours`). Lisäksi automaattiset AWS-hyökkäysskriptit kutsuvat rutiininomaisesti `iam:CreateUser` ja `iam:CreateAccessKey` heti ensimmäisellä käyttöoikeussekuntillaan perustaa toinen, piilotettu takaoven järjestelmänvalvojatili. Jos haluat pysäyttää aktiivisen AWS-tunkeutumisen kokonaan, sinun on poistettava `AKIA` avain, liitä selkeä `Deny *` sisäinen käytäntö vaarantuneelle IAM-käyttäjälle (`which immediately invalidates all minted STS tokens`) ja tarkastaa CloudTrail uusille IAM-käyttäjille tai -rooleille.
Antaako AWS tai Google Cloud anteeksi massiivisen $10,000+ laskun, jos hakkerit varastivat API-avaimeni GitHubista ja louhisivat krypton?¶
Suurin osa ensikertaisista vahingossa tapahtuneista vuodoista kyllä, jos toimit nopeasti, toimit täysin yhteistyössä heidän turvatiiminsä kanssa etkä jätä laskua huomiotta. Sekä AWS:llä että Google Cloudilla on sisäinen kertaluonteinen laskutuksen oikaisukäytäntö kehittäjille ja pienyrityksille, jotka ovat kärsineet luvattomista tunnistetietojen vuotamisesta. Ennen kuin pyydät laskun vapautusta "Tili ja laskutus" -tuesta, sinun on ensin todistettava, että vuoto on 100-prosenttisesti suljettu: kumoa paljastuneet IAM-avaimet, lopeta kaikki rogue-laskentaesiintymät ja automaattiset skaalausryhmät kaikilla yli 30:llä maailmanlaajuisella alueella, ota käyttöön monitekijätodennus (`MFA`) juuritililläsi ja määritä AWS-budjettien kustannushälytykset.
Miksi tekee git rm .env enkö poista salaista avaintani GitHubista?¶
Git on muuttumaton versionhallintarekisteri: kun suoritat `git rm .env` ja työnnä uusi sitoumus, Git kirjaa vain, että tiedosto puuttuu uusimmassa tilannekuvassa (`HEAD`), säilyttäen samalla koko selväkielisen sisällön `.env` pysyvästi tallennettu edelliseen sitoumukseen (`the parent commit`) arkiston toimitushistoriassa. Vaikka kirjoitat historiasi uudelleen `git filter-repo` ja pakottamalla työnnä, kuka tahansa voi silti lukea salaisuuden, jos et ole peruuttanut sitä palveluntarjoajan konsolissa. Peru ja kierrä aina salainen avain pilvipalveluntarjoajasi kojelaudassa ja käytä sitten `git filter-repo` pyyhkiä kuollut merkkijono sitoutumishistoriastasi.
Aiheeseen liittyviä oppaita¶
- Vahingossa tapahtuva tuotantotietokannan pudotus, git force-push, salainen vuoto ja tapausten triage
- Tuotantotietokanta hylätty tai S3-säilö poistettu ilman viimeaikaista varmuuskopiointia
- Vahingossa sähköpostissa luottamuksellinen palkkaluettelo, asiakkaan henkilötiedot tai HIPAA-laskentataulukko väärälle vastaanottajalle
- Satunnainen näyttöosuus luottamuksellisista palkkataulukoista, salasanojen hallinnasta tai irtisanomisluettelosta Zoomissa/Teamsissä
- Hätätyön etätyöturvallisuus ja tietosuoja
- Hätänumerot
Lähteet ja virallinen ohje¶
- 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?"):AWSCompromisedKeyQuarantineV2Käytännön käyttäytyminen, tilapäisen mitätöiminenSTSIstuntotunnukset (RevokeOldSessions) ja usean alueen resurssien tarkastus. - GitHub-dokumentaatio (
GitHub Secret Scanning, Push Protection, & "Removing sensitive data from a repository" using git-filter-repo): Kumppanin automaattinen peruutusohjelma (Stripe, AWS, OpenAI, NPM),git-filter-repoHistorian uudelleenkirjoittaminen ja tavoittamattomien välimuistissa olevien sitoumusten SHA:iden poistaminen. - Stripe Inc. (
Stripe Developer Security Guide: API Key Rotation & Compromised Key Incident Triage): Välittömästisk_live_Avaimen vanheneminen, tarkastus/v1/eventsja/v1/webhook_endpointsja Rajoita avaimia kauttark_live_Soveltamisalat. - NIST (
Special Publication 800-61 Rev. 2 / Rev. 3: Computer Security Incident Handling Guide) & OWASP (Secrets Management Cheat Sheet): Credential Containment, lyhytaikainen OIDC Workload Identity Federation (replacing static CI/CD keys) ja Pre-Commit Secret Scanning.