Калиди API, Secret AWS ё Stripe Live Token, ки ба репои оммавии GitHub дода шудааст: Скрепинги автоматии бот дар 60 сония, гардиши фаврии калид ва ивази биллинг¶
The instant you run git push to a public GitHub, GitLab, or Bitbucket repository (or temporarily flip a private repository to "Public" for even 10 seconds) while a file, .env configuration, Jupyter notebook (.ipynb), or older Git commit history contains a live secret key (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), a global network of automated credential-harvesting bots intercepts that secret in 2 to 60 seconds. Because GitHub's public Events API, GH Archive, and real-time webhook firehoses stream every public PushEvent globally, malicious scraper bots parse your diff with regular expressions and begin executing automated cloud commands before you can even type git revert.
Within 90 seconds of an AWS ё GCP secret hitting a public repo, automated botnets spin up maximum-size GPU/CPU instances (such as p4d.24xlarge or c6i.32xlarge across obscure regions like ap-east-1 Hong Kong, me-south-1 Bahrain, or sa-east-1 Sao Paulo) to mine Monero (XMR), request AWS Simple Email Service (SES) quota increases to blast phishing spam, or clone your private S3 buckets and RDS databases, generating $5,000 to $80,000+ in cloud compute bills overnight. Similarly, a leaked OpenAI ё Anthropic Калиди API фавран ба бозорҳои зеризаминии "reverse-proxy" LLM ҷамъ карда мешавад, ки дар як дақиқа ҳазорҳо доллар кредитҳои токенро холӣ мекунанд, дар ҳоле ки ифшошуда Stripe калиди махфии зинда (sk_live_...) ба ҳамлагарон дастрасии пурраи барномавии хондан/навиштанро барои додани баргардонидани маблағҳои қаллобӣ, содироти муштарӣ медиҳад PII, ё ангеза пардохтҳои беиҷозат Connect. Агар ҳамлакунанда пас аз истихроҷи пойгоҳи додаҳои муштариён бо калиди фошшудаи шумо созмони шуморо фаъолона тамаъҷӯӣ кунад, тавассути телефонҳои мо бо телефонҳои боварӣ ба мақомоти ҳифзи ҳуқуқ ва ҳодисаҳои киберӣ машварат кунед. рақамҳои фавқулодда дарҳол директория кунед ва дастурҳои марбутамонро аз назар гузаронед тарки тасодуфии базаи истеҳсолӣ, git force-push ва триажи ихроҷи махфӣ, махзани истеҳсолот партофта шуд ё сатили S3 бе нусхаи охирин тоза карда шуд, ва амнияти кори дурдасти фавқулодда ва махфияти маълумот.
Ҳоло ин корро кунед¶
- ** 60 сонияи аввали давиданатонро барбод надиҳед
git rm .envёgit push --force: БУСТАВ БА КОНСОЛИ ПРОВАЙДЕР РАВЕД (AWS IAM,Stripe,OpenAI,GCP) ВА КАЛИДРО БАТОР НАМОЕД/ХОМУШ НАМОЕД< 30 SECONDS.** Нест кардани файл дар аҳдномаи нави Git (or even making the GitHub repository Private) барои боздоштани ботҳое, ки аллакай 10 сония пеш калиди шуморо аз оташфишонии GitHub Events канда буданд, коре намекунад. Аввал худи калид бояд дар манбаъ кушта шавад. - **Агар а
AWSкалид (AKIA...ёASIA...) фош шудааст: ** КушодаAWS IAM -> Users -> Security credentialsва фавран дар калиди дастрасӣ Хомӯш кардан / Нобуд кардан-ро клик кунед ва баъд -ро замима кунед.AWSCompromisedKeyQuarantineV2(or a blanketИнкор кардан *inline policy) ба корбари IAM ва афзоиш додани корбарRevokeOldSessionsсиёсати куштани ҳама гуна муваққатӣSTSнишонаҳо, ки ҳамлагар аллакай сикка кардааст (see the exact STS bypass trap below). - If a
StripeКалиди махфии зинда (sk_live_...ёrk_live_...) фош шудааст: Баdashboard.stripe.com/apikeys, клик кунед...-> Калиди рол, ва мӯҳлати истифодабарии калиди кӯҳнаро ба "Ҳоло таъин кунед (Immediately)" (NOT "in 24 hours"). Дарҳол тафтиш кунедStripe Dashboard -> LogsваBalance -> Payouts / Refundsбарои зангҳои беиҷозат API. - Агар а
OpenAI,Anthropic,Google Gemini, ёSendGrid / Twilioкалид фош шуд: Калиди API-ро дар панели провайдер фавран нест кунед ва Маҳдудияти хароҷоти сахти моҳонаро муқаррар кунед ($0ё сарпӯши муқаррарии шумо) дар танзимоти ҳисоб барои қатъ кардани дархостҳои ҷараён дар парвоз. - Sweep ALL Cloud Regions (
especially disabled/opt-in regions) for rogue EC2 instances, Lambda functions, ECS tasks, S3 buckets, and backdoor IAM users created by the bot during the 2-minute exposure window. Attackers specifically launch crypto-mining instances in regions you never click on in the console (like Stockholm eu-north-1, Osaka ap-northeast-3, or Mumbai ap-south-1) and create a second hidden IAM user (or SSH key pair) so they can stay inside your account after you delete the leaked key. - Only AFTER the secret is revoked and backdoor IAM accounts are purged, scrub the commit from Git (
using git-filter-repo) AND contact GitHub Support (or remove cached PR/commit views) to purge dangling commit SHA caches, then file an AWS / GCP Accidental Leak Billing Waiver Request if bots ran up a massive cloud bill.
Danger
Why Deleting the Leaked AKIA Key in AWS IAM Is NOT Enough (The STS GetSessionToken Persistence Trap). Within 5 seconds of scraping your static AKIA... AWS IAM access key from GitHub, sophisticated automated botnets do not just launch EC2 instances with your AKIA key; their very first API call is sts:GetSessionToken ё sts:AssumeRole, which mints a temporary ASIA... Security Token Service (STS) session token valid for up to 12 to 36 hours. Even after you delete the original AKIA... калиди дастрасӣ дар консоли IAM, ҳар муваққатӣ ASIA... Токенҳои STS, ки пеш аз ин лаҳза сикка шудаанд, 100% фаъол ва эътибор доранд, агар шумо инчунин возеҳ ** замима накунедDeny All сиёсати inline** (with a Condition checking aws:TokenIssueTime < CurrentUTC) ба корбари осебдидаи IAM ва ҳар нақше, ки он метавонад ба ӯҳда гирад.
Дарахти қарор: Вокуниши 60-сония ба ҳолати фавқулодда аз рӯи намуди махфии ифшошуда¶
Барои нест кардани эътимодномаи вайроншуда, устувории ҳамлавар ва баргардонидани ҳисобҳои абрии фирорӣ ин ҷадвали ҷараёни пешгирии ҳодисаро риоя кунед.
flowchart TD
A["Сирри зинда, ки ба ҷамъияти GitHub / GitLab Repo (.env, Source Code, ё History git)"] --> B["ДУИУМ СОАТИ 0 ТО 30: git rm-ро аввал НАКУНЕД. Консол провайдери абрӣ/API-ро кушоед ва Калидро фавран бекор кунед"]
B --> C{"Кадом намуди эътимодномаи зинда фош шуд?"}
C -->|"1. Калиди дастрасии AWS (AKIA... / ASIA...)"| D["1. Хомӯш кардан/нест кардани калид дар IAM 2. Ба корбар Сиёсати 'Инкор кардани ҳама'-ро замима кунед (Токенҳои STS-ро мекушад) 3. Санҷиши CloudTrail барои корбарони пушти дари IAM"]
C -->|"2. Калиди махфии Stripe Live (sk_live_... / rk_live_...)"| E["1. Калиди ғелонда бо анҷоми мӯҳлат = 'Фавран' 2. Санҷед /v1/refunds, /v1/transfers & Endpoints Webhook 3. Арзёбии таъсири PII-и муштарӣ"]
C -->|"3. OpenAI (sk-proj-...), Anthropic (sk-ant-...), or Gemini Key"| F["1. Revoke Key in Developer Console 2. Lower Organization Hard Billing Cap to $0 Temporarily 3. Check Usage Logs for Token Drain"]
C -->|"4. Database URI (postgres://, mongodb+srv://) or Redis URL"| G["1. Рамзи DB-ро фавран гардонед 2. Барои қатъ кардани пайвастҳои фаъол pg_terminate_backend() / KILL -ро иҷро кунед 3. Гурӯҳи Амниятро танҳо ба IP-ҳои VPC баста кунед"]
D --> H["Ҳисобкунии бисёрминтақавиро иҷро кунед (Роgue EC2/EKS/SageMaker/Lambda-ро дар ҳама 30+ минтақа қатъ кунед)"]
E --> I["Таърихи Git-ро тавассути 'git filter-repo' тоза кунед + Тоза кардани GitHub-и кеши SHA-ро тоза кунед"]
F --> I
G --> I
H --> J{"Оё ботҳои автоматӣ ҳисоби абрии аз 1000 то 100 000 долларро боло бурданд?"}
J -->|"ҲА"| K["Open AWS/GCP Billing Support Case -> Submit Post-Remediation Security Audit + Request One-Time Courtesy Fraud/Leak Bill Forgiveness"]
J -->|"NO"| I
Part 1: Provider-by-Provider Kill-Switch & Forensics Matrix (First 5 Minutes)¶
Use this reference table to locate the exact revocation button, automatic GitHub Secret Scanning behavior, and hidden persistence vector for your leaked credential.
| Credential Type & Prefix Pattern | Does GitHub Secret Scanning Auto-Revoke It? | Immediate 30-Second Kill-Switch Procedure | Hidden Attacker Persistence Vector to Check (Critical.) |
Where to Audit Unauthorized API Calls |
|---|---|---|---|---|
1. Amazon Web Services (AKIA... IAM Key / ASIA... STS Token) |
NO Auto-Revoke: GitHub notifies AWS, which opens an automated AWS Support Case (Compromised Key Quarantine) and attaches AWSCompromisedKeyQuarantineV2, аксар 3 to 15 minutes * пас аз * ботҳо аллакай ҳамла кардаанд. |
1. IAM -> Users -> [User] -> Security credentials -> Deactivate & Delete2. Илова кардани сиёсати дохилӣ: Effect: Deny, Action: "*", Resource: "*" (kills active STS tokens). |
1. Temporary STS нишонаҳо (ASIA...)2. Newly created IAM Users / Access Keys 3. Backdoor IAM Roles with external Principal trust policies4. EC2 Launch Templates / Auto Scaling Groups that respawn terminated miners. |
AWS CloudTrail -> Event history (Filter by User name = compromised IAM user ё Event source = sts.amazonaws.com / iam.amazonaws.com). |
2. Stripe Live Secret / Restricted Key (sk_live_... / rk_live_...) |
YES (Often): Stripe partners with GitHub Secret Scanning to auto-roll sk_live_ keys detected on main, BUT keys hidden inside base64 strings, Gists, or non-standard files can slip past auto-revocation. |
1. Go to dashboard.stripe.com/apikeys2. Click ... -> Roll key3. Select Block old key immediately (Now) (never select a 12h/24h grace period.). |
Malicious Webhook Endpoints: Attackers use your leaked sk_live_ key to call POST /v1/webhook_endpoints, registering their own server URL to silently receive copies of all future customer checkout and card events even after you roll the API key. |
Stripe Dashboard -> Developers -> Logs (filter by IP address and HTTP method POST/DELETE) + Developers -> Webhooks (delete any unrecognized URLs). |
3. Google Cloud Service Account JSON ("private_key_id", AIza... API Key) |
Partial: GCP alerts the project owner (and optionally disables keys if Organization Policy is enabled), but frequently leaves the key active while sending an email warning. |
1. GCP Console -> IAM & Admin -> Service Accounts2. Click the Service Account -> Keys tab -> Delete the leaked Key ID. 3. Disable the entire Service Account temporarily. |
1. New Service Account Keys generated by the leaked key 2. Compute Engine GPU instances ( A100/H100/T4) spun up in foreign zones3. Modified Project IAM Policy bindings ( roles/owner ё roles/editor). |
GCP Cloud Audit Logs (Logs Explorer) using query:protoPayload.authenticationInfo.principalEmail="<service-account-email>" |
4. OpenAI (sk-proj-...), Anthropic (sk-ant-...), & HuggingFace (hf_...) |
OpenAI / Anthropic: Partner with GitHub to auto-revoke standard plaintext pushes (usually within 30 to 120 seconds), during which bots can still fire thousands of parallel gpt-4o / claude-3-5-sonnet дархостҳо. |
1. Калидро дар platform.openai.com/api-keys ё console.anthropic.com/settings/keys2. Поёни Лмити хароҷоти моҳона ( Hard Cap) дар танзимоти ҳисоб барои боздоштани ҷараёни параллелӣ дар парвоз. |
** Калидҳои маъмурии созмон (sk-admin-...):** Агар калиди OpenAI Admin API фош шуда бошад, бот метавонад ба таври барномавӣ занг занад POST /v1/organization/admin_api_keys то калидҳои нави лоиҳаи API пеш аз бекор кардани калидҳои аввал. Ҳама калидҳоро дар созмон тафтиш кунед. |
** Панели идоракунии OpenAI / Антропикӣ ** (check activity by API key and model tier). |
5. Аломати дастрасии шахсии GitHub (ghp_... / github_pat_...) ё аломати NPM (npm_...) |
** ҲА (Instant):** GitHub ба таври худкор ҳама чизро бекор мекунад ghp_ ё github_pat_ як сонияро нишон диҳед, ки он ба анбори оммавии GitHub интиқол дода мешавад. |
Агар ба мизбони ғайри GitHub тела дода шавад (GitLab, Bitbucket, Pastebin, or Slack), дастӣ бекор кардан дар github.com/settings/tokens (or npmjs.com -> Access Tokens). |
**Тазриқи нармафзори зараровар: ** Ҳамлагар бо шумо ghp_ ё npm_ токен фавран як дари шубҳанокро ба репозитории шахсии шумо тела медиҳад, як фиребгарро илова кунед Ҷараёни кории Калиди Ҷойгиркунии Калид / Actions GitHub (pull_request_target), ё версияи троянии бастаи NPM-и худро нашр кунед. |
Танзимоти GitHub -> Сабти амният (audit repo.create, hook.create, org.add_member, and oauth_authorization). |
Қисми 2: Ғавби амиқ: Чӣ гуна ҳамлакунандаро аз ҳисоби AWS-и худ хориҷ кардан мумкин аст (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 калид дар AWS Console муваққатиро **беэътибор намегардонад STS эътимоднома аллакай аз ҷониби sts:GetSessionToken. Барои куштани ҳама чиз фавран тавассути AWS CLI (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: Ҷустуҷӯи корбарон, нақшҳо ва калидҳои дастрасӣ дар CloudTrail Backdoor IAM¶
Ин фармонҳои AWS CLI-ро иҷро кунед, то тафтиш кунед, ки оё бот корбари пинҳонии IAM-ро эҷод кардааст ё калиди дастрасии дуввумро ба яке аз ҳисобҳои коргарии шумо дар давоми тиреза замима кардааст:
# 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+ Минтақаҳои AWS барои мисолҳои Rogue EC2, гурӯҳҳои миқёси худкор ва ҷойҳои кори Bedrock/SageMaker¶
Чаро қурбониён то ҳол а $12,000 вексел дар охири моҳ пас аз он ки онҳо "панели EC2-ро тафтиш карданд ва мисолҳои сифрро диданд"? Азбаски Console AWS танҳо як минтақаро дар як вақт нишон медиҳад (e.g., us-east-1), дар ҳоле ки бот чарх мезанад 20 instances in ap-south-1 (Mumbai), eu-north-1 (Stockholm), and sa-east-1 (Sao Paulo), and hid them inside EC2 Auto Scaling Groups (ASGs) so that if you terminate the EC2 instance manually, the Auto Scaling Group launches a replacement 30 seconds баъдтар.
Run this multi-region bash one-liner to list all running or pending EC2 instances across every active AWS region in 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) дар ҳар як минтақаи зарардида ва Гурӯҳи миқёси худкор / Дархости нуқта АВВАЛ ** нест кунед, пас мисолҳоро қатъ кунед.
- ** AWS Bedrock-ро тафтиш кунед (Model Invocation Logging) ва Amazon SES: Ботҳои муосири ҳосилғундорӣ ҳоло фавран AWS Bedrock (Claude 3.5 Sonnet / Llama 3) бо истифода аз эътимодномаҳои дуздидашудаи AWS барои бозфурӯши аломатҳои LLM (which does not show up under EC2 at all). Санҷед AWS Cost Explorer (Group by: Service ва Group by: Region) барои муайян кардани хар як хӯшаи хидматрасонии ғайримуқаррарӣ.
Қисми 3: Тоза кардани сирри таърихи Git (git-filter-repo) & Тоза кардани кэши пинҳоншудаи GitHub¶
Вақте ки маълумоти эътимоднома дар сатҳи провайдер мурдааст, шумо бояд сатри махфиро аз анбори худ хориҷ кунед .git таърихро анҷом диҳед, то на ҳамкорон ва на скреперҳои оянда онро бубинанд (and so GitHub's Push Protection stops blocking your branches).
1. Чаро git rm .env + git commit Сирри Git-ро нест намекунад¶
Давидан git rm .env && git commit -m "remove env" танҳо файлро аз ** ӯҳдадориҳои охирин хориҷ мекунад (HEAD)**; сирри матни равшан дар дохили ӯҳдадории волидайн ба таври доимӣ хондашаванда боқӣ мемонад (the parent commit) ба ҳар касе, ки дар GitHub "Таҳлил" -ро клик мекунад.
2. Таърихи репозиторийро бо истифода аз тоза нависед git-filter-repo¶
- Агар танҳо охирин ӯҳдадорӣ (
HEAD) сирро дар бар мегирифт (and nobody else has pulled it yet): - Агар сир дафн шуда бошад, дар таърихи шумо якчанд амалҳо бармегарданд (
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. Домаи кеши пинҳонии GitHub (Dangling Commit SHAs)¶
Ҳатто пас аз давидан git filter-repo ва git push --force, Веб-серверҳои GitHub то ҳол SHA-и кӯҳна, истиноднашуда ("овезон") -ро зинда нигоҳ медоранд ва дар дастрасии омма дастрасанд. https://github.com/<owner>/<repo>/commit/<old-40-char-sha> (and in any forks or Pull Requests) то cap шудани чамъоварии хошок.
- Чӣ гуна SHA-и кэшшударо дар GitHub фавран тоза кардан мумкин аст:
1. Нусхабардории пурра 40-character Пеш аз аз нав навиштани таърих, SHA-и ифшошударо иҷро кунед.
2. Кушода https://support.github.com/contact -> хоҳиш кунед, ки "Нест кардани маълумоти ҳассос / Тоза кардани манзараҳои кэш барои SHA-и дастнорас" дар анбор owner/repo ва ӯҳдадории дақиқи SHA (or use the GitHub Support portal's automated cache-purge workflow).
Қисми 4: Чӣ тавр ба даст овардани a $5,000 to $100,000+ Билл аз AWS ё GCP бот даст кашид (The Courtesy Forgiveness Appeal)¶
Чӣ мешавад, агар шумо як тела диҳед .env файл дар нимаи ҷумъа, почтаи электронии худро то субҳи душанбе тафтиш накардед ва бедор шуд $28,400.00 AWS ё Google Cloud bill аз ботҳои крипто-майнинг ё LLM-прокси?
Воҳима нашавед ва корти кредитии худро бекор накунед ё бозпаси бонкиро пешниҳод накунед. Ҳарду Хизматҳои веби Amazon (AWS) ва Платформаи абрии Google (GCP) дорои муқарраршудаи дохилии Тасҳеҳи якдафъаинаи ихроҷи эътимодномаи яквақта / Сиёсати кредитии хушмуомилагӣ барои таҳиягарон, донишҷӯён ва стартапҳои инфиродӣ, **ба шарте, ки шумо анҷом диҳед. 100% Рӯйхати ҳатмии ислоҳи бехатарии онҳо пеш аз он ки гурӯҳи баррасии ҳисобҳои онҳо шикояти шуморо арзёбӣ кунад.
Протоколи 5-қадам аз AWS / GCP озодкунии Билл (90%+ Success Rate for First-Time Leaks)¶
- ** Аввалан ҳар як қадами ислоҳи амниятро анҷом диҳед (
AWS Will Reject Your Waiver Until the Account Is Clean):**- Калиди дастрасии IAM-ро нест кунед (
and the IAM User if possible). - Ҳар як намунаи беиҷозати EC2, гурӯҳи худкори миқёс, ҳаҷми EBS, Elastic IP, мисоли RDS ва сатили S3-ро дар ҳамаи минтақаҳо қатъ кунед (
verify via AWS Cost Explorer and AWS Billing -> Bills -> Charges by Region that daily accrual has dropped back to $0.00). - Фаъолсозии Таҷҳизот ё Барномаи Authenticator MFA (
Multi-Factor Authentication) дар ** Ҳисоби решавӣ AWS** ва ҳар як корбари IAM.
- Калиди дастрасии IAM-ро нест кунед (
- ** Парвандаи дастгирӣро дар зер кушоед
"Account and Billing"(Free for All AWS/GCP Tiers, No Paid Support Plan Required):**- Ба ** равед
console.aws.amazon.com/support/home** -> Эҷод кардани парванда -> Ҳисоб ва биллинг -> Хизматрасонӣ: Биллинг -> Категория: Баҳс дар бораи пардохт / Ҳисоби вайроншуда.
- Ба ** равед
- ** Ин хулосаи дақиқи ислоҳот ва мушкилотро пешниҳод кунед:**
- ** Ҷадвали вақт ва сабабро эътироф кунед: ** Ба таври возеҳ қайд кунед, ки вақте калид дар GitHub тасодуфан фош шудааст (
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векселҳои беиҷозати бот боиси мушкилоти ҷиддии молиявӣ мегардад ва барои истифодаи қаллобӣ кредити якдафъаинаи ҳисоббарорӣ/озоднома талаб кунед.
- ** Ҷадвали вақт ва сабабро эътироф кунед: ** Ба таври возеҳ қайд кунед, ки вақте калид дар GitHub тасодуфан фош шудааст (
- ** Корти пардохтии алоқаманди худро муваққатан иваз кунед ё маҳдуд кунед, агар ҳисобкунии автоматӣ ногузир бошад:**
- Ҳангоме ки парвандаи дастгирии AWS Billing-и шумо мавриди баррасӣ қарор дорад (
which usually takes 5 to 15 business daysҲангоме ки Гурӯҳҳои Хадамоти Амният ва Биллингии AWS тасдиқ мекунанд, ки ҳама захираҳои фиребгарона қатъ карда шудаанд), бо дастгирии AWS дар дохили чипта тамос гиред ва аз онҳо хоҳиш кунед, ки ** нигоҳдории муваққатии биллингро ҷойгир кунед (defer auto-charge)** дар ҳисобнома-фактураи баҳсбарангез, то ин ки ҳангоми коркарди ислоҳи кредит суратҳисоби бонкии шумо аз ҳад зиёд напардозад.
- Ҳангоме ки парвандаи дастгирии AWS Billing-и шумо мавриди баррасӣ қарор дорад (
Warning
** Чаро шумо набояд ҳеҷ гоҳ калидҳои кодро дар коди муштарӣ истифода набаред (NEXT_PUBLIC_, VITE_, REACT_APP_, Барномаҳои мобилӣ ё васеъшавии Chrome).** Ҳатто агар анбори GitHub-и шумо бошад 100% ** Хусусӣ **, гузоштани калиди махфии API (like an OpenAI, Stripe secret, or AWS key) дар дохили як тағирёбандаи муҳити фронталӣ бо пешванди NEXT_PUBLIC_, VITE_, ё REACT_APP_ бастаҳое, ки калиди матни оддиро мустақиман ба JavaScript-и оммавӣ мегузоранд .js файлҳое, ки ба веб-браузери ҳар як меҳмон хизмат мекунанд (where bots scrape it directly from your live production website in seconds). Танҳо калидҳои оммавӣ/интишор (like Stripe pk_live_... ё конфигуратсияи муштарии Firebase, ки аз ҷониби HTTP Referrer / Row-Level Security маҳдуд карда шудааст) метавонад ҳаргиз ба рамзи фронталӣ ламс кунад.
Tip
** Насб кунед gitleaks ё trufflehog ҳамчун қалмоқе пеш аз иҷрои маҳаллӣ дар 60 сония (So git Refuses to Commit a Secret Ever Again).** Барои он ки аз чихати чисмонй имконнопазир гардад, ки тасодуфан содир кардани як .env файл ё калиди API-ро дар ноутбуки худ дубора насб кунед gitleaks (brew install gitleaks) ва илова кунед .pre-commit-config.yaml қалмоқ (or turn on GitHub's free **"Push Protection for yourself"** at **github.com/settings/security_analysis**). Ҳангоми фаъол кардани Push Protection, серверҳои GitHub-и шуморо тафтиш мекунанд git push дар транзит ва пеш аз он ки он ба анбор фуруд ояд рад кунед, вақте ки намунаи калиди шинохташаванда ошкор мешавад.
(Барои ҳодисаҳои марбут ба амнияти таҳиякунанда ва кори дурдаст, нигаред Тарки тасодуфии пойгоҳи додаҳои истеҳсолӣ, git force-push, ихроҷи махфӣ ва триажи ҳодиса, Махзани маълумотҳои истеҳсолӣ партофта шуд ё сатили S3 бе нусхаи охирин тоза карда шуд, Тасодуфан ба почтаи махфии музди меҳнат, PII муштарӣ ё ҷадвали HIPAA фиристода шудааст, ва Амнияти кори дурдаст дар ҳолати фавқулодда ва махфияти маълумот.)
Мақомоти минтақавии вайронкунии маълумот ва амнияти абрии гузоришдиҳӣ¶
| Минтақа / Кишвар | Қонуни огоҳинома дар бораи ҳамлаи абрӣ ва вайронкунии маълумот | Мақомоти расмии киберинцидент ва танзимкунанда | Вақте ки калиди ифшошудаи GitHub гузориши ҳатмии танзимиро талаб мекунад |
|---|---|---|---|
| ** Иёлоти Муттаҳида** | ** Қоидаҳои муҳофизати FTC (16 CFR Part 314)**, Қоидаи киберамнияти SEC (Form 8-K Item 1.05), HIPAA, & 50 Огоҳнома оид ба вайронкунии маълумот |
CISA (cisa.gov/report / 1-844-SAY-CISA), ** FBI IC3 (ic3.gov), HHS OCR, & ** Прокурори генералии давлатӣ |
Агар гузоришҳои CloudTrail ё Stripe нишон диҳанд, ки IP-и беруна калиди ифшошудаи шуморо ба он истифода кардааст GetObject ё содироти муштарии рамзнашуда PII, Рақамҳои амнияти иҷтимоӣ ё сабтҳои пардохт (rather than purely mining crypto on empty EC2 instances), қонунҳо оид ба вайронкунии давлатӣ татбиқ мешаванд. |
** Иттиҳоди Аврупо (EEA)** |
** GDPR (Articles 33 & 34)** & ** Дастури NIS2 (Directive (EU) 2022/2555)** |
Мақомоти миллии ҳифзи маълумот (CNIL, BfDI, DPC) & CSIRT миллӣ (ENISA) |
** Қатъӣ 72-Hour Соат (GDPR Art. 33):** Агар эътимодномаи ифшошуда дастрасии хондан ба маълумоти шахсии ИА дошта бошад ва шумо дастрасии беиҷозатро дар CloudTrail/VPC Flow Logs ба таври судӣ истисно карда наметавонед, мақомоти назоратии худро дар доираи доираи он огоҳ кунед. 72 hours. |
| Инглистон | ** Санади GDPR ва ҳифзи маълумот дар Британияи Кабир 2018** | Дафтари Ваколатдор оид ба иттилоот (ICO: 0303 123 1113) & NCSC (ncsc.gov.uk) |
Дар бораи дастрасии беиҷозати маълумоти шахсӣ ба UK ICO дар дохили худ хабар диҳед 72 hours бо истифода аз портали арзёбии вайронкунии ICO; ротатсияи калидӣ ва қадамҳои карантини IAM-ро ҳуҷҷатгузорӣ кунед. |
| Канада, Австралия ва Зеландияи Нав | Канада PIPEDAАвстралия Privacy Act 1988 (NDB Scheme)** Зеландияи Нав Privacy Act 2020** |
OPC (Canada), OAIC & ACSC (Australia: 1300 CYBER1), & OPC (New Zealand) |
Ҳисобот дода мешавад, ки агар таъсири эътимоднома хатари воқеии зарари назаррасро ба вуҷуд орад (RROSH дар Канада) ё вайрон кардани маълумоти мувофиқ (Australia OAIC) бо назардошти маълумоти шахсӣ. |
Саволҳои зуд-зуд додашаванда¶
Агар ман фаҳмидам, ки ман як тела додам .env ба репои оммавии GitHub файл гузоред ва пас аз 2 дақиқа репо махфӣ кард, оё ба ман лозим аст, ки калидҳои худро гардиш кунам?¶
Бале, 100 фоизи калидҳои ин файл бояд осеб дида ва фавран бекор карда шаванд. Ботҳои автоматии ҳосилғундорӣ интизор нестанд, ки Google анбори шуморо индексатсия кунад; онҳо мустақиман ба ҷамъияти воқеии GitHub обуна мешаванд `Events API` сӯзишворӣ (`and GH Archive`), ки хар як оммаро пахш мекунад `PushEvent` дар саросари ҷаҳон дар давоми 1 то 3 сонияи шумо `git push`. Вақте ки шумо "Танзимотҳо -> Намоиши анборро тағир диҳед -> Махфӣ кунед" -ро клик кардед, пас аз ду дақиқа, даҳҳо ботҳои скреперҳои автоматӣ аллакай фарқияти ӯҳдадории шуморо зеркашӣ карданд ва эътимодномаҳои AWS, Stripe, OpenAI ва пойгоҳи додаҳои шуморо барои истисмор ба навбат гузоштанд.
Чаро ботҳо ҳатто пас аз нест кардани маълумоти ихроҷшуда дар ҳисоби AWS-и ман EC2-ро оғоз мекарданд AKIA калиди дастрасӣ?¶
Нест кардани статикӣ `AKIA...` калиди дастрасӣ дар AWS IAM танҳо он калиди доимии мушаххасро ғайрифаъол мекунад; муваккатиро бекор намекунад `ASIA...` Security Token Service (`STS`) аломатҳои сессия, ки ҳамлакунанда аллакай бо истифода аз он тавлид кардааст `sts:GetSessionToken` ё `sts:AssumeRole` дар давоми чанд сонияи аввал пас аз канда кардани калиди худ (`which remain valid for up to 12 to 36 hours`). Илова бар ин, скриптҳои автоматии ҳамлаи AWS мунтазам занг мезананд `iam:CreateUser` ва `iam:CreateAccessKey` дар лаҳзаи аввалини дастрасӣ ба шинондани ҳисоби дуюми маъмури пушти дари пинҳон. Барои комилан қатъ кардани ҳамлаи фаъоли AWS, шумо бояд `AKIA` калид, возеҳ замима кунед `Deny *` сиёсати inline ба корбари осебдидаи IAM (`which immediately invalidates all minted STS tokens`) ва аудити CloudTrail барои ҳама корбарон ё нақшҳои навтаъсиси IAM.
Оё AWS ё Google Cloud як миқдорро мебахшад $10,000+ ҳисоб агар ҳакерҳо калиди API-и маро аз GitHub дуздида ва крипто истихроҷ карда бошанд?¶
Дар аксари ҳолатҳои ихроҷи тасодуфии бори аввал, бале, ба шарте ки шумо зуд амал кунед, бо гурӯҳи амниятии онҳо комилан ҳамкорӣ кунед ва ҳисобнома-фактураро нодида нагиред. Ҳам AWS ва ҳам Google Cloud сиёсати дохилии якдафъаинаи тасҳеҳи ҳисоббаробаркуниро барои таҳиягарон ва тиҷорати хурд доранд, ки ба ихроҷи маълумоти беиҷозат дучор шудаанд. Пеш аз дархост кардани даст кашидан аз ҳисоб дар доираи дастгирии "Ҳисоб ва ҳисоб", шумо бояд аввал исбот кунед, ки ихроҷ 100% баста аст: калидҳои ошкоршудаи IAM-ро бозхонед, ҳама мисолҳои ҳисоббарории қаллобӣ ва Гурӯҳҳои миқёси худкорро дар тамоми 30+ минтақаҳои ҷаҳонӣ қатъ кунед, аутентификатсияи бисёрфакторро фаъол созед (`MFA`) дар ҳисоби решаи худ ворид кунед ва огоҳиҳои хароҷоти AWS Budgets -ро насб кунед.
Чаро мекунад git rm .env калиди махфии маро аз GitHub хориҷ накунед?¶
Git як дафтарчаи идоракунии тағирнопазири версия аст: вақте ки шумо кор мекунед `git rm .env` ва ӯҳдадории навро тела диҳед, Git танҳо сабт мекунад, ки файл дар акси навтарин мавҷуд нест (`HEAD`), ҳангоми нигоҳ доштани мундариҷаи пурраи матни `.env` ба таври доимӣ дар дохили ӯҳдадории қаблӣ нигоҳ дошта мешавад (`the parent commit`) дар таърихи содироти анбори шумо. Ҳатто агар шумо таърихи худро бо `git filter-repo` ва маҷбуран пахш кунед, ҳар касе метавонад сирро бихонад, агар шумо онро дар консоли провайдер бекор накарда бошед. Аввал ҳамеша калиди махфиро дар панели провайдери абрии худ бозхонд ва гардиш кунед ва сипас истифода баред `git filter-repo` барои тоза кардани сатри мурда аз таърихи содироти худ.
Дастурҳои алоқаманд¶
- Тарки тасодуфии пойгоҳи додаҳои истеҳсолӣ, git force-push, ихроҷи махфӣ ва триажи ҳодиса
- Махзани маълумотҳои истеҳсолӣ партофта шуд ё сатили S3 бе нусхаи охирин тоза карда шуд
- Тасодуфан ба қабулкунандаи нодуруст варақаи махфии музди меҳнат, PII муштарӣ ё ҷадвали HIPAA фиристода шудааст
- Ҳиссаи экрани тасодуфии варақаи махфии музди меҳнат, мудири парол ё рӯйхати бекоркунӣ дар Zoom/Teams
- Амнияти кори дурдаст дар ҳолати фавқулодда ва махфияти маълумот
- Рақамҳои ҳолати фавқулодда
Сарчашмаҳо ва роҳнамоии расмӣ¶
- ** Хидматҳои веби Amazon (
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 (
GitHub Secret Scanning, Push Protection, & "Removing sensitive data from a repository" using git-filter-repo):** *Барномаи худкори бекоркунии шарик (Stripe, AWS, OpenAI, NPM),git-filter-repoНавиштани таърих ва тоза кардани SHA-ҳои кэшшудаи дастнорас. - ** Stripe Inc. (
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) & OWASP (Secrets Management Cheat Sheet): Нигоҳдории эътимоднома, Федератсияи мушаххаси сарбории муваққатии OIDC (replacing static CI/CD keys), ва сканкунии махфии пешакй.