Skip to content

АПИ кључ, АВС тајни или Стрипе Ливе Токен посвећен јавном ГитХуб репо-у: аутоматизовано гребање робота за 60 секунди, тренутна ротација кључа и прекидач за укидање обрачуна

Чим трчиш git push у јавно ГитХуб, ГитЛаб или Битбуцкет спремиште (or temporarily flip a private repository to "Public" for even 10 seconds) док је датотека, .env конфигурација, Јупитер нотебоок (.ipynb), или старија историја Гит урезивања садржи живи тајни кључ (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), глобална мрежа аутоматизованих робота за прикупљање акредитива пресреће ту тајну за 2 до 60 секунди. Зато што је ГитХуб јавна Events API, GH Archive, а вебхоок фирехосес у реалном времену стримују сваку јавност PushEvent глобално, злонамерни скрапер ботови анализирају ваш дифф са регуларним изразима и почињу да извршавају аутоматске команде у облаку пре него што уопште можете да унесете git revert.

У року од 90 seconds од ан AWS или GCP тајна када дође до јавног репо-а, аутоматизовани ботнет покрећу ГПУ/ЦПУ инстанце максималне величине (such as p4d.24xlarge or c6i.32xlarge преко опскурних региона као ap-east-1 Хонг Конг, me-south-1 Бахреин, или sa-east-1 Сао Пауло) да копа Монеро (XMR), затражите АВС Симпле Емаил Сервице (SES) квота се повећава за уништавање нежељене е-поште или клонирање вашег приватног S3 канте и RDS базе података, генерисање $5,000 to $80,000+ у рачунима за рачунање у облаку преко ноћи. Слично, процурило је OpenAI или Anthropic АПИ кључ је одмах упакован у подземна „реверсе-проки“ ЛЛМ тржишта која црпе хиљаде долара у токен кредитима у минути, док је процурела Stripe живи тајни кључ (sk_live_...) даје нападачима потпуни програмски приступ за читање/писање за издавање лажних повраћаја средстава, извоз клијента PII, или покренути неовлашћене исплате Цоннецт. Ако нападач активно изнуђује вашу организацију након што је ексфилтрирао базе података клијената са вашим кључем који је процурио, консултујте се са локалним службама за спровођење закона и телефонским линијама за сајбер инциденте преко наше бројеви за хитне случајеве директоријум одмах и прегледајте наше повезане водиче случајни пад базе података производње, гит форце-пусх и тајна тријажа цурења, производна база података је испуштена или С3 буцкет је избрисан без недавне резервне копије, и безбедност рада на даљину и приватност података у хитним случајевима.

Уради ово сада

  1. НЕ губите првих 60 секунди трчања git rm .env или git push --force: ИДИ ДИРЕКТНО НА КОНЗОЛУ ПРОВАЈДЕРА (AWS IAM, Stripe, OpenAI, GCP) И ОПОЗОВИ / ДЕАКТИВИРАЈТЕ КЉУЧ ИН < 30 SECONDS. Брисање датотеке у новом Гит урезивању (or even making the GitHub repository Private) не чини ништа да заустави ботове који су већ уклонили ваш кључ са ватрогасног црева ГитХуб догађаја пре 10 секунди. Сам кључ се прво мора убити на извору.
  2. Ако ан AWS кључ (AKIA... или ASIA...) процурило: Отвори AWS IAM -> Users -> Security credentials и одмах кликните на Деактивирај / Избриши на кључу за приступ, а затим приложите AWSCompromisedKeyQuarantineV2 (or a blanketодбити *inline policy) кориснику ИАМ-а и повећајте корисниково RevokeOldSessions политика да се убије било који привремени STS токени које је нападач већ исковао (see the exact STS bypass trap below).
  3. Ако а Stripe Живи тајни кључ (sk_live_... или rk_live_...) процурило: Иди на dashboard.stripe.com/apikeys, кликните ... -> Ролл кеи, и подесите истек старог кључа на "Сада (Immediately)" (NOT "in 24 hours"). Одмах проверите Stripe Dashboard -> Logs и Balance -> Payouts / Refunds за неовлашћене АПИ позиве.
  4. Ако ан OpenAI, Anthropic, Google Gemini, или SendGrid / Twilio кључ процурио: Одмах избришите АПИ кључ на контролној табли добављача и поставите Тврдо ограничење месечне потрошње ($0 или нормално ограничење) у подешавањима обрачуна да бисте прекинули захтеве за стримовање током лета.
  5. Почисти СВЕ регионе облака (especially disabled/opt-in regions) за лажне ЕЦ2 инстанце, Ламбда функције, ЕЦС задатке, С3 буцкет и бацкдоор ИАМ кориснике које је креирао бот током 2-минутног прозора изложености. Нападачи посебно покрећу инстанце крипто рударења у регионима на које никада не кликнете на конзоли (like Stockholm eu-north-1, Osaka ap-northeast-3, or Mumbai ap-south-1) и креирајте другог скривеног ИАМ корисника (or SSH key pair) тако да могу да остану унутар вашег налога након што избришете кључ који је процурио.
  6. ** Тек НАКОН што је тајна опозвана и бацкдоор ИАМ налози су очишћени, обришите урезивање из Гита (using git-filter-repo) И контактирајте ГитХуб подршку (or remove cached PR/commit views) да очистите висеће урезивање СХА кешова, а затим поднесете Захтев за одрицање од случајног цурења наплате АВС/ГЦП ако су ботови наплатили огроман рачун у облаку.**

Danger

Зашто брисање процурелог AKIA Кључ у АВС ИАМ НИЈЕ довољан (The STS GetSessionToken Persistence Trap). Унутар 5 seconds стругања ваше статике AKIA... АВС ИАМ приступни кључ са ГитХуб-а, софистицирани аутоматизовани ботнети не покрећу само ЕЦ2 инстанце са вашим AKIA кључ; њихов први АПИ позив је sts:GetSessionToken или sts:AssumeRole, који кује привремени ASIA... Услуга безбедносних токена (STS) токен сесије важи до 12 to 36 hours. Чак и након што избришете оригинал AKIA... приступни кључ у ИАМ конзоли, било који привремени ASIA... СТС токени исковани пре тог тренутка остају 100% активни и важећи осим ако не приложите и експлицитно Deny All инлине политика (with a Condition checking aws:TokenIssueTime < CurrentUTC) компромитованом ИАМ кориснику и свакој улози коју би могла да преузме.

Стабло одлучивања: 60-секундни хитни одговор према типу тајне која је процурила

Пратите овај дијаграм тока задржавања инцидената да бисте убили компромитоване акредитиве, прекинули упорност нападача и поништили наплату у облаку.

flowchart TD
    A["Тајна уживо посвећена јавном ГитХуб / ГитЛаб Репо (.енв, изворни код или гит историја)"] --> B["ДРУГО 0 ДО 30: НЕМОЈТЕ прво покретати гит рм. Отворите Цлоуд/АПИ Провидер Цонсоле & Одмах опозовите кључ"]
    B --> C{"Који тип акредитива је откривен?"}
    C -->|"1. АВС приступни кључ (АКИА... / АСИА...)"| D["1. Деактивирај/избриши кључ у ИАМ-у 2. Приложи уграђену 'Дени Алл' политику кориснику (убија исковане СТС токене) 3. Провери ЦлоудТраил за Бацкдоор ИАМ кориснике"]
    C -->|"2. Стрипе Ливе Сецрет Кеи (ск_ливе_... / рк_ливе_...)"| E["1. Ролл Кеи са истеком = 'Одмах' 2. Проверите /в1/рефундс, /в1/трансферс & Вебхоок крајње тачке 3. Процените изложеност клијента који може да открије идентитет"]
    C -->|"3. ОпенАИ (ск-прој-...), Антропиц (ск-ант-...) или Гемини Кеи"| F["1. Опозовите кључ у конзоли за програмере 2. Привремено смањите ограничење наплате на 0 УСД 3. Проверите евиденцију коришћења за одвод токена"]
    C -->|"4. УРИ базе података (постгрес://, монгодб+срв://) или Редис УРЛ"| G["1. Одмах ротирајте лозинку за ДБ 2. Покрените пг_терминате_бацкенд() / КИЛЛ да бисте прекинули активне везе 3. Закључајте безбедносну групу само на ВПЦ ИП адресе"]
    D --> H["Покрените мулти-регион Цомпуте Свееп (укините Рогуе ЕЦ2/ЕКС/СагеМакер/Ламбда у свих 30+ региона)"]
    E --> I["Очистите Гит историју преко 'гит филтер-репо' + Обришите ГитХуб кеширане урезивање СХА прегледа"]
    F --> I
    G --> I
    H --> J{"Да ли су аутоматизовани ботови прикупили рачун за облак од 1.000 до 100.000 долара или више?"}
    J -->|"ДА"| K["Отворите случај подршке за АВС/ГЦП наплату -> Пошаљите безбедносну ревизију након санације + затражите једнократни опрост љубазношћу превара/цурења рачуна"]
    J -->|"НО"| I

Део 1: Провајдер-по-провајдер Килл-Свитцх & Форензичка матрица (First 5 Minutes)

Користите ову референтну табелу да бисте лоцирали тачно дугме за опозив, понашање аутоматског ГитХуб тајног скенирања и скривени вектор постојаности за ваше процуреле акредитиве.

Тип акредитива и образац префикса Да ли га ГитХуб тајно скенирање аутоматски опозива? Непосредна 30-секундна Килл-Свитцх процедура Вектор постојаности скривеног нападача за проверу (Critical.) Где извршити ревизију неовлашћених АПИ позива
1. Амазон веб услуге (AKIA... ИАМ кључ / ASIA... СТС токен) БЕЗ аутоматског опозива: ГитХуб обавештава АВС, што отвара аутоматизовани АВС случај подршке (Compromised Key Quarantine) и прилаже AWSCompromisedKeyQuarantineV2, често 3 to 15 minutes *након што су ботови већ напали. 1. IAM -> Users -> [User] -> Security credentials -> Deactivate & Delete
2. Додајте инлине смернице: Effect: Deny, Action: "*", Resource: "*" (kills active STS tokens).
1. Привремено STS токени (ASIA...)
2. Ново креирани ИАМ корисници / приступни кључеви
3. Бацкдоор ИАМ улоге са екстерним Principal политике поверења
4. ЕЦ2 Шаблони за покретање / групе за аутоматско скалирање које поново покрећу прекинуте рударе.
АВС ЦлоудТраил -> Историја догађаја (Filter by User name = compromised IAM user или Event source = sts.amazonaws.com / iam.amazonaws.com).
2. Стрипе Ливе Сецрет / Ограничени кључ (sk_live_... / rk_live_...) ДА (често): Стрипе је у партнерству са ГитХуб Сецрет Сцаннинг-ом ради аутоматског роловања sk_live_ кључеви откривени на main, АЛИ кључеви скривени унутар басе64 стрингова, Гистс-а или нестандардних датотека могу да прођу поред аутоматског опозива. 1. Иди на dashboard.stripe.com/apikeys
2. Кликните на ... -> Ролл кеи
3. Изаберите Block old key immediately (Now) (never select a 12h/24h grace period.).
Малициоус Вебхоок Ендпоинтс: Нападачи користе ваше процуреле податке sk_live_ тастер за позивање POST /v1/webhook_endpoints, региструју сопствени УРЛ сервера да нечујно примају копије свих будућих догађаја наплате клијената и картица чак и након што убаците АПИ кључ. Стрипе контролна табла -> Програмери -> Дневници (filter by IP address and HTTP method POST/DELETE) + Програмери -> Вебхоокс (delete any unrecognized URLs).
3. ЈСОН налог Гоогле Цлоуд услуге ("private_key_id", AIza... АПИ кључ) Делимично: ГЦП упозорава власника пројекта (and optionally disables keys if Organization Policy is enabled), али често оставља тастер активан док шаље упозорење е-поштом. 1. GCP Console -> IAM & Admin -> Service Accounts
2. Кликните на Сервисни налог -> картицу Кључеви -> Избриши ИД кључа који је процурио.
3. Привремено онемогућите цео налог услуге.
1. Нови Кључеви налога за услуге генерисани кључем који је процурео
2. Цомпуте Енгине ГПУ инстанце (A100/H100/T4) завртено у страним зонама
3. Измењени Вези за ИАМ Политику пројекта (roles/owner или roles/editor).
ГЦП Цлоуд Аудит евиденције (Logs Explorer) користећи упит:
protoPayload.authenticationInfo.principalEmail="<service-account-email>"
4. ОпенАИ (sk-proj-...), Антропски (sk-ant-...), & ХуггингФаце (hf_...) ОпенАИ / Антхропиц: Удружите се са ГитХуб-ом да бисте аутоматски опозивали стандардни отворени текст (usually within 30 to 120 seconds), током којег ботови и даље могу да испаљују хиљаде паралела gpt-4o / claude-3-5-sonnet захтева. 1. Избришите кључ platform.openai.com/api-keys или console.anthropic.com/settings/keys
2. Доња месечна граница потрошње (Hard Cap) у подешавањима обрачуна да бисте зауставили паралелне стримове током лета.
Администраторски кључеви организације (sk-admin-...): Ако је ОпенАИ Админ АПИ кључ процурио, бот може програмски да позове POST /v1/organization/admin_api_keys да искујете потпуно нове кључеве АПИ-ја пројекта пре него што опозовете први. Ревизија свих кључева у организацији. ОпенАИ / Антропиц Усаге Дасхбоард (check activity by API key and model tier).
5. ГитХуб токен за лични приступ (ghp_... / github_pat_...) или НПМ токен (npm_...) ДА (Instant): ГитХуб аутоматски опозива све ghp_ или github_pat_ токен у делићу секунде се гура у јавно ГитХуб спремиште. Ако се прослеђује на хост који није ГитХуб (GitLab, Bitbucket, Pastebin, or Slack), опозовите ручно у github.com/settings/tokens (or npmjs.com -> Access Tokens). Убацивање злонамерног софтвера у ланац снабдевања: Нападач са вашим ghp_ или npm_ токен ће одмах гурнути злонамерно бацкдоор урезивање у ваше приватне репозиторије, додати лажни Деплои Кеи / ГитХуб Ацтионс Воркфлов (pull_request_target), или објавите тројанизовану верзију свог НПМ пакета. ГитХуб подешавања -> Сигурносни дневник (audit repo.create, hook.create, org.add_member, and oauth_authorization).

Део 2: Дубоко зарон: Како избацити нападача са свог АВС налога (The 4-Step Cloud Eviction Protocol)

Јер процурило AWS акредитиви носе највећи радијус финансијске експлозије (up to $50,000+ per day in EC2/SageMaker/Bedrock bills), морате извршити сва четири корака у наставку кад год је ан AKIA... или ASIA... кључ погађа јавно спремиште:

+-----------------------------------------------------------------------------+
|     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: Убијте оба статика AKIA Кључ и све исковано ASIA Токени сесије

Брисање AKIA кључ у АВС конзоли не поништава привремени STS акредитиве које је већ издао sts:GetSessionToken. Да бисте све одмах убили преко АВС ЦЛИ (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: Пронађи Бацкдоор ИАМ кориснике, улоге и приступне кључеве у ЦлоудТраил-у

Покрените ове АВС ЦЛИ команде да бисте проверили да ли је бот креирао скривеног бацкдоор ИАМ корисника или је приложио секундарни приступни кључ једном од ваших постојећих налога запослених током прозора:

# 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 и ImportKeyPair. Одмах избришите све неовлашћене кориснике, улоге и парове кључева.

Корак 3: Почистите све 30+ АВС региони за Рогуе ЕЦ2 инстанце, групе за аутоматско скалирање и Бедроцк/СагеМакер послове

Зашто жртве и даље добијају а $12,000 рачун на крају месеца након што су "проверили ЕЦ2 контролну таблу и видели нула случајева"? Зато што АВС конзола приказује само један по један регион (e.g., us-east-1), док се бот окренуо 20 случајеви у ap-south-1 (Mumbai), eu-north-1 (Stockholm), и sa-east-1 (Sao Paulo) и сакрили их унутар ЕЦ2 група за аутоматско скалирање (ASGs) тако да ако ручно прекинете инстанцу ЕЦ2, група за аутоматско скалирање покреће замену 30 seconds касније.

Покрените овај мулти-регионални басх један редак да бисте навели све покренуте или на чекању ЕЦ2 инстанце у сваком активном АВС региону у 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
- Пре окончања лажних ЕЦ2 инстанци: Проверите EC2 -> Auto Scaling Groups (and EC2 Spot Fleet Requests / ECS Clusters / EKS Node Groups / SageMaker Notebook & Training Jobs) у сваком погођеном региону и ПРВО избришите групу за аутоматско скалирање / захтев за спот, а затим укините инстанце. - Проверите АВС Бедроцк (Model Invocation Logging) и Амазон СЕС: Модерни ботови за прикупљање акредитива сада одмах покрећу АВС Бедроцк (Claude 3.5 Sonnet / Llama 3) користећи ваше украдене АВС акредитиве за препродају ЛЛМ токена (which does not show up under EC2 at all). Проверите АВС Цост Екплорер (Group by: Service и Group by: Region) да бисте уочили било какав ненормалан скок сервиса.


Део 3: Чишћење тајне из историје Гита (git-filter-repo) и чишћење ГитХуб-ове скривене кеш урезивања

Када је акредитив мртав на нивоу провајдера, морате уклонити тајни низ из вашег спремишта .git изврши историју тако да ни колеге ни будући стругачи не могу да је виде (and so GitHub's Push Protection stops blocking your branches).

1. Зашто git rm .env + git commit НЕ уклања тајну из Гита

Трчање git rm .env && git commit -m "remove env" само уклања датотеку из последњег урезивања (HEAD); тајна отвореног текста остаје трајно читљива унутар родитељског урезивања (the parent commit) свакоме ко кликне на „Обвезује“ на ГитХуб-у.

2. Чисто препишите историју спремишта користећи git-filter-repo

  1. Ако је само последње урезивање (HEAD) садржи тајну (and nobody else has pulled it yet):
    # Remove the sensitive file from the staging index while keeping it on your local disk
    git rm --cached .env
    echo ".env" >> .gitignore
    git add .gitignore
    git commit --amend --no-edit
    git push --force-with-lease origin main
    
  2. Ако је тајна закопана неколико урезивања уназад у вашој историји (or inside a code file you want to keep): Користи 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. Скривена ГитХуб кеш замка (Dangling Commit SHAs)

Чак и након што трчиш git filter-repo и git push --force, ГитХуб-ови веб сервери и даље одржавају стару, нереференцирану („висећу“) урезивање СХА живом и јавно доступном на https://github.com/<owner>/<repo>/commit/<old-40-char-sha> (and in any forks or Pull Requests) док се не заврши одвоз смећа. - Како одмах очистити кеширани СХА урезивање на ГитХуб-у: 1. Копирајте у потпуности 40-character урезивање СХА процурелог урезивања пре него што поново напишете историју. 2. Отвори https://support.github.com/contact -> затражите "Уклоните осетљиве податке / Обришите кеширане приказе за недоступни СХА урезивање" у спремишту owner/repo и обезбеди тачан СХА за урезивање (or use the GitHub Support portal's automated cache-purge workflow).


Део 4: Како добити а $5,000 to $100,000+ АВС или ГЦП Бот рачун је повучен (The Courtesy Forgiveness Appeal)

Шта ако сте гурнули .env датотеку у петак поподне, нисам проверио вашу е-пошту до понедељка ујутру и пробудио се у $28,400.00 Рачун за АВС или Гоогле Цлоуд од крипто-рудања или ЛЛМ-прокси ботова?

НЕ паничите и НЕМОЈТЕ још увек отказивати своју кредитну картицу или тражити повраћај средстава у банци. Обе Амазон веб услуге (AWS) и Гоогле Цлоуд Платформ (GCP) имају успостављену интерну Једнократну политику случајног цурења акредитива за прилагођавање обрачуна / љубазност кредита за појединачне програмере, студенте и стартапове, под условом да попуните 100% њихове обавезне контролне листе за поправку безбедности пре него што њихов тим за преглед обрачуна процени вашу жалбу.

АВС/ГЦП протокол за одрицање од рачуна у 5 корака (90%+ Success Rate for First-Time Leaks)

  1. Прво довршите сваки корак санације безбедности (AWS Will Reject Your Waiver Until the Account Is Clean):
    • Избришите компромитовани ИАМ приступни кључ (and the IAM User if possible).
    • Укините сваку неовлашћену инстанцу ЕЦ2, групу за аутоматско скалирање, волумен ЕБС-а, еластичну ИП, РДС инстанцу и С3 сегмент у свим регионима (verify via AWS Cost Explorer and AWS Billing -> Bills -> Charges by Region that daily accrual has dropped back to $0.00).
    • Омогући Хардвер или апликација за аутентификацију МФА (Multi-Factor Authentication) на вашем АВС роот налогу и сваком ИАМ кориснику.
  2. Отворите случај за подршку испод "Account and Billing" (Free for All AWS/GCP Tiers, No Paid Support Plan Required):
    • Иди на console.aws.amazon.com/support/home -> Креирај случај -> Рачун и наплата -> Услуга: Наплата -> Категорија: Оспоравање наплате / компромитовани налог.
  3. Пошаљите овај тачан чињенични резиме поправљања и потешкоћа:
    • Потврдите временску линију и узрок: Јасно наведите када је кључ случајно откривен на ГитХуб-у (e.g., "October 30 at 22:14 UTC") и када је опозван ("October 31 at 09:05 UTC").
    • Наведите неовлашћене накнаде по регионима и услугама: Наведите тачне износе у доларима лажне активности бота у односу на ваш уобичајени историјски месечни рачун (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").
    • Потврдите 100% поправку: Наведите тачне кораке које сте већ обавили (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).
    • Учтиво затражите једнократну љубазност наплате: Објасните да сте индивидуални програмер/студент/почетак у раној фази и да плаћате $18,420 неовлашћени рачун за бот би проузроковао озбиљне финансијске потешкоће и тражио би једнократни кредит за наплату/одрицање за лажну употребу.
  4. Привремено замените или ограничите своју повезану платну картицу ако је аутоматска наплата неизбежна:
    • Док је ваш случај подршке за АВС наплату у току (which usually takes 5 to 15 business days док АВС тимови за безбедност и услуге наплате провере да су сви лажни ресурси прекинути), контактирајте АВС подршку унутар тикета и замолите их да ставе привремено задржавање наплате (defer auto-charge) на спорној фактури како не би дошло до прекорачења на вашем банковном рачуну док се усклађивање кредита обрађује.

Warning

Зашто НИКАДА не смете да унесете хардкод кључеве у коду на страни клијента (NEXT_PUBLIC_, VITE_, REACT_APP_, Мобилне апликације или Цхроме екстензије). Чак и ако је ваше ГитХуб спремиште 100% Приватно, стављајући тајни АПИ кључ (like an OpenAI, Stripe secret, or AWS key) унутар променљиве окружења фронтенда са префиксом NEXT_PUBLIC_, VITE_ или REACT_APP_ повезује тај кључ отвореног текста директно у јавни ЈаваСцрипт .js датотеке које се приказују у веб претраживачу сваког посетиоца (where bots scrape it directly from your live production website in seconds). Само јавни/објављиви кључеви (like Stripe pk_live_... или Фиребасе клијентска конфигурација ограничена ХТТП упућивачом/безбедношћу на нивоу реда) може икада да додирне фронтенд код.

Tip

Инсталирај gitleaks или trufflehog као локална закачка пре урезивања за 60 секунди (So git Refuses to Commit a Secret Ever Again). Да би се физички онемогућило случајно извршење ан .env датотеку или АПИ кључ поново на лаптопу, инсталирајте gitleaks (brew install gitleaks) и додајте а .pre-commit-config.yaml кука (or turn on GitHub's free **"Push Protection for yourself"** at **github.com/settings/security_analysis**). Са омогућеном Пусх Протецтионом, ГитХуб-ови сервери прегледавају ваше git push у транзиту и одбаците притисак пре него што икада дође у спремиште кад год се открије препознатљив образац кључа.

(За повезане безбедносне инциденте код програмера и даљинског рада, погледајте Случајан пад базе података о производњи, гит форце-пусх, тајно цурење и тријажа инцидента, Производна база података је испуштена или С3 корпа је избрисана без недавне резервне копије, Случајно послат поверљиви платни списак, ПИИ клијента или табела ХИПАА, и Безбедност рада на даљину и приватност података у хитним случајевима.)


Регионални органи за извештавање о кршењу података и безбедности у облаку

Регион / Држава Закон о упадима у облак и обавештењу о кршењу података Званични орган за сајбер инциденте и регулаторно тело Када процурели ГитХуб кључ захтева обавезно регулаторно извештавање
Сједињене Америчке Државе Правило о заштити ФТЦ-а (16 CFR Part 314), СЕЦ Циберсецурити правило (Form 8-K Item 1.05), ХИПАА, & 50 државних закона о обавештењу о повреди података ЦИСА (cisa.gov/report / 1-844-SAY-CISA), ФБИ ИЦ3 (ic3.gov), ХХС ОЦР, & Државни тужиоци Ако ЦлоудТраил или Стрипе евиденције покажу да је спољна ИП адреса користила ваш кључ који је процурео GetObject или извоз нешифрованог купца PII, бројеве социјалног осигурања или евиденцију плаћања (rather than purely mining crypto on empty EC2 instances), примењују се државни закони о обавештењу о кршењу.
Европска унија (EEA) ГДПР (Articles 33 & 34) & НИС2 директива (Directive (EU) 2022/2555) Национално тело за заштиту података (CNIL, BfDI, DPC) & Национални ЦСИРТ (ENISA) Строго 72-Hour сат (GDPR Art. 33): Ако је процурели акредитив имао приступ за читање личних података ЕУ и не можете форензички искључити неовлашћени приступ ЦлоудТраил/ВПЦ евиденцијама протока, обавестите свој надзорни орган у року 72 hours.
Уједињено Краљевство УК ГДПР и Закон о заштити података 2018 Канцеларија Повереника за информације (ICO: 0303 123 1113) & НЦСЦ (ncsc.gov.uk) Пријавите неовлашћени приступ личним подацима УК ИЦО унутар 72 hours коришћењем ИЦО-овог онлине портала за процену кршења; документујте кораке ротације кључева и ИАМ карантина.
Канада, Аустралија и Нови Зеланд Канада PIPEDA
Аустралија Privacy Act 1988 (NDB Scheme)
Нови Зеланд Privacy Act 2020
ОПЦ (Canada), ОАИЦ & АЦСЦ (Australia: 1300 CYBER1), & ОПЦ (New Zealand) Може се пријавити ако изложеност акредитива ствара стварни ризик од значајне штете (RROSH у Канади) или увреда података која испуњава услове (Australia OAIC) који укључује личне податке.

Често постављана питања

Ако сам схватио да сам гурнуо .env датотеку у јавни ГитХуб репо и учинио репо приватним 2 минута касније, да ли и даље треба да ротирам своје кључеве?

Да, 100 посто кључева у тој датотеци мора се сматрати угроженим и одмах опозвати. Аутоматски ботови за прикупљање акредитива не чекају да Гоогле индексира ваше спремиште; они се директно претплате на ГитХуб-ову јавност у реалном времену `Events API` ватрогасно црево (`and GH Archive`), који емитује свака јавност `PushEvent` глобално у року од 1 до 3 секунде од вашег `git push`. До тренутка када сте два минута касније кликнули на „Подешавања -> Промени видљивост спремишта -> Учини приватним“, десетине робота аутоматизованих скрапера су већ преузели ваш дифф урезивања и ставили у ред ваше АВС, Стрипе, ОпенАИ и акредитиве базе података за експлоатацију.

Зашто су ботови наставили да покрећу ЕЦ2 инстанце на мом АВС налогу чак и након што сам избрисао процуреле AKIA приступни кључ?

Брисање статике `AKIA...` приступни кључ у АВС ИАМ само деактивира тај одређени трајни кључ; не поништава привремене `ASIA...` Услуга безбедносних токена (`STS`) токени сесије које је нападач већ генерисао користећи `sts:GetSessionToken` или `sts:AssumeRole` током првих неколико секунди након гребања кључа (`which remain valid for up to 12 to 36 hours`). Поред тога, аутоматизоване АВС скрипте за напад рутински позивају `iam:CreateUser` и `iam:CreateAccessKey` у првој секунди приступа да подигну други, скривени бацкдоор администраторски налог. Да бисте потпуно зауставили активни АВС упад, морате избрисати `AKIA` кључ, приложите изричит `Deny *` уметнута политика компромитованом ИАМ кориснику (`which immediately invalidates all minted STS tokens`) и проверава ЦлоудТраил за све новокреиране ИАМ кориснике или улоге.

Хоће ли АВС или Гоогле Цлоуд опростити много $10,000+ рачун ако су хакери украли мој АПИ кључ са ГитХуб-а и рударили криптовалуте?

У великој већини случајних цурења информација по први пут, да, под условом да реагујете брзо, у потпуности сарађујете са њиховим безбедносним тимом и не игноришете фактуру. И АВС и Гоогле Цлоуд имају интерну политику једнократног прилагођавања наплате за програмере и мала предузећа погођена неовлашћеним скоковима цурења акредитива. Пре него што затражите ослобађање од рачуна у оквиру подршке за „Налог и обрачун“, прво морате доказати да је цурење 100 посто затворено: опозовите изложене ИАМ кључеве, укините све лажне рачунарске инстанце и групе за аутоматско скалирање у свих 30+ глобалних региона, омогућите вишефакторску аутентификацију (`MFA`) на вашем роот налогу и подесите обавештења о трошковима за АВС Буџете.

Зашто? git rm .env не уклонити мој тајни кључ са ГитХуб-а?

Гит је непроменљива књига контроле верзија: када покренете `git rm .env` и притисните ново урезивање, Гит само бележи да датотека нема у најновијем снимку (`HEAD`), задржавајући пун садржај отвореног текста `.env` трајно ускладиштено унутар претходног урезивања (`the parent commit`) у историји урезивања вашег спремишта. Чак и ако препишете своју историју са `git filter-repo` и форце-пусх, свако још увек може да прочита тајну ако је нисте опозвали на конзоли провајдера. Увек прво опозовите и ротирајте тајни кључ на контролној табли добављача облака, а затим користите `git filter-repo` да избришете мртви низ из ваше историје урезивања.

Повезани водичи

Извори и званична упутства

  • Амазон веб услуге (AWS Security Incident Response Guide & AWS Knowledge Center: "What should I do if I notice unauthorized activity or exposed IAM access keys?"): AWSCompromisedKeyQuarantineV2 Понашање политике, поништавање привременог STS Токени сесије (RevokeOldSessions), и мулти-регионална ревизија ресурса.
  • ГитХуб документација (GitHub Secret Scanning, Push Protection, & "Removing sensitive data from a repository" using git-filter-repo): Партнерски програм аутоматског опозива (Stripe, AWS, OpenAI, NPM), git-filter-repo Поновно писање историје и чишћење недостижних кешираних СХА-ова урезивања.
  • Стрипе Инц. (Stripe Developer Security Guide: API Key Rotation & Compromised Key Incident Triage): Одмах sk_live_ Истек кључа, ревизија /v1/events и /v1/webhook_endpoints, и Рестрицтинг Кеис преко rk_live_ Сцопес.
  • НИСТ (Special Publication 800-61 Rev. 2 / Rev. 3: Computer Security Incident Handling Guide) & ОВАСП (Secrets Management Cheat Sheet): Задржавање акредитива, ефемерна федерација идентитета радног оптерећења ОИДЦ-а (replacing static CI/CD keys), и тајно скенирање пре урезивања.