API Key, AWS Secret, ຫຼື Stripe Live Token ມຸ່ງຫມັ້ນໃຫ້ກັບ GitHub Repo ສາທາລະນະ: ການຂູດ Bot ອັດຕະໂນມັດໃນ 60 ວິນາທີ, ການຫມຸນລະຫັດທັນທີ, ແລະ Billing Kill-Switch¶
ທັນທີທີ່ທ່ານແລ່ນ git push ໄປຫາບ່ອນເກັບມ້ຽນ GitHub, GitLab, ຫຼື Bitbucket ສາທາລະນະ (or temporarily flip a private repository to "Public" for even 10 seconds) ໃນຂະນະທີ່ໄຟລ໌, .env ການຕັ້ງຄ່າ, ປື້ມບັນທຶກ Jupyter (.ipynb), ຫຼືເກົ່າກວ່າ Git commit history ມີກະແຈລັບສົດ (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), ເຄືອຂ່າຍທົ່ວໂລກຂອງ bots ການເກັບກ່ຽວຂໍ້ມູນຮັບຮອງອັດຕະໂນມັດຈະຂັດຂວາງຄວາມລັບນັ້ນພາຍໃນ 2 ຫາ 60 ວິນາທີ. ເນື່ອງຈາກວ່າ GitHub ສາທາລະນະ Events API, GH Archive, ແລະ firehoses webhook ໃນເວລາຈິງ stream ທຸກສາທາລະນະ PushEvent ໃນທົ່ວໂລກ, scraper bots ທີ່ເປັນອັນຕະລາຍຈະວິເຄາະຄວາມແຕກຕ່າງຂອງທ່ານດ້ວຍການສະແດງອອກເປັນປົກກະຕິແລະເລີ່ມຕົ້ນປະຕິບັດຄໍາສັ່ງຟັງອັດຕະໂນມັດກ່ອນທີ່ທ່ານຈະສາມາດພິມໄດ້. git revert.
ພາຍໃນ 90 seconds ຂອງ AWS ຫຼື GCP ການຕີຄວາມລັບຂອງ repo ສາທາລະນະ, botnets ອັດຕະໂນມັດ spin up ຂະຫນາດສູງສຸດຂອງ GPU / CPU instances (such as p4d.24xlarge or c6i.32xlarge ໃນທົ່ວພາກພື້ນທີ່ບໍ່ຊັດເຈນເຊັ່ນ ap-east-1 ຮົງກົງ, me-south-1 ບາເຣນ, ຫຼື sa-east-1 Sao Paulo) ເພື່ອຂຸດຄົ້ນບໍ່ແຮ່ Monero (XMR), ຂໍ AWS Simple Email Service (SES) ໂຄຕ້າເພີ່ມຂຶ້ນເພື່ອລະເບີດ spam phishing, ຫຼື clone ສ່ວນຕົວຂອງທ່ານ S3 ຄຸ ແລະ RDS ຖານຂໍ້ມູນ, ການຜະລິດ **$5,000 to $80,000+ ໃນໃບບິນຄ່າຄອມພິວເຕີໃນຕອນກາງຄືນ **. ເຊັ່ນດຽວກັນ, ມີການຮົ່ວໄຫຼ OpenAI ຫຼື Anthropic ລະຫັດ API ທັນທີຖືກມັດເຂົ້າໄປໃນຕະຫຼາດ LLM "reverse-proxy" ໃຕ້ດິນເຊິ່ງເຮັດໃຫ້ສິນເຊື່ອ token ຫຼາຍພັນໂດລາຕໍ່ນາທີ, ໃນຂະນະທີ່ມີການຮົ່ວໄຫຼ. Stripe ກະແຈລັບສົດ (sk_live_...) ໃຫ້ຜູ້ໂຈມຕີເຂົ້າເຖິງການອ່ານ/ຂຽນໂປຣແກຣມເຕັມຮູບແບບເພື່ອອອກເງິນຄືນທີ່ຫຼອກລວງ, ສົ່ງອອກລູກຄ້າ PII, ຫຼືກະຕຸ້ນການຈ່າຍ Connect ທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ. ຖ້າຜູ້ໂຈມຕີກໍາລັງດຶງເອົາອົງກອນຂອງເຈົ້າອອກຢ່າງຈິງຈັງ ຫຼັງຈາກການຂຸດຄົ້ນຖານຂໍ້ມູນລູກຄ້າດ້ວຍກະແຈທີ່ຮົ່ວໄຫຼຂອງເຈົ້າ, ໃຫ້ປຶກສາການບັງຄັບໃຊ້ກົດໝາຍທ້ອງຖິ່ນຂອງເຈົ້າ ແລະສາຍດ່ວນເຫດການທາງອິນເຕີເນັດຜ່ານທາງພວກເຮົາ. ຕົວເລກສຸກເສີນ ໄດເລກະທໍລີທັນທີ, ແລະທົບທວນຄືນຄູ່ມືທີ່ກ່ຽວຂ້ອງຂອງພວກເຮົາກ່ຽວກັບ ການຫຼຸດລົງຖານຂໍ້ມູນການຜະລິດໂດຍບັງເອີນ, git force-push, ແລະ triage ຮົ່ວລັບ, ຖານຂໍ້ມູນການຜະລິດຫຼຸດລົງຫຼື S3 bucket ຖືກລົບໂດຍບໍ່ມີການສໍາຮອງຂໍ້ມູນທີ່ຜ່ານມາ, ແລະ ຄວາມປອດໄພບ່ອນເຮັດວຽກທາງໄກສຸກເສີນ ແລະຄວາມເປັນສ່ວນຕົວຂອງຂໍ້ມູນ.
ເຮັດອັນນີ້ດຽວນີ້¶
- ** ຢ່າເສຍເວລາແລ່ນ 60 ວິນາທີທຳອິດຂອງເຈົ້າ
git rm .envຫຼືgit push --force: ໄປຫາ CONSOLE ຜູ້ໃຫ້ບໍລິການໂດຍກົງ (AWS IAM,Stripe,OpenAI,GCP) ແລະຖອນຄືນ / ຍົກເລີກກະແຈໃນ< 30 SECONDS.** ການລຶບໄຟລ໌ໃນ Git commit ໃໝ່ (or even making the GitHub repository Private) ບໍ່ ** ບໍ່ມີຫຍັງ ** ເພື່ອຢຸດ bots ທີ່ຂູດລະຫັດຂອງເຈົ້າຈາກ GitHub Events firehose 10 ວິນາທີກ່ອນ. ກຸນແຈຂອງມັນເອງຕ້ອງຖືກຂ້າຢູ່ແຫຼ່ງກ່ອນ. - ** ຖ້າຫາກວ່າ
AWSກະແຈ (AKIA...ຫຼືASIA...) ຮົ່ວ:** ເປີດAWS IAM -> Users -> Security credentialsແລະໃຫ້ຄລິກໃສ່ **Deactivate / Delete ** ກ່ຽວກັບລະຫັດການເຂົ້າເຖິງທັນທີທັນໃດ, ຫຼັງຈາກນັ້ນຄັດຕິດAWSCompromisedKeyQuarantineV2(or a blanketປະຕິເສດ *inline policy) ໃຫ້ກັບຜູ້ໃຊ້ IAM ແລະເພີ່ມຜູ້ໃຊ້RevokeOldSessionsນະໂຍບາຍທີ່ຈະຂ້າຊົ່ວຄາວSTStokens ຜູ້ໂຈມຕີໄດ້ minted ແລ້ວ (see the exact STS bypass trap below). - ** ຖ້າ ກ
StripeLive Secret Key (sk_live_...ຫຼືrk_live_...) leaked:** Go todashboard.stripe.com/apikeys, click...-> Roll key, and set the expiration of the old key to "Now (Immediately)" (NOT "in 24 hours"). Immediately checkStripe Dashboard -> LogsແລະBalance -> Payouts / Refundsfor unauthorized API calls. - ** ຖ້າຫາກວ່າ
OpenAI,Anthropic,Google Gemini, ຫຼືSendGrid / Twiliokey leaked:** Delete the API key in the provider dashboard immediately and set a Hard Monthly Spend Limit ($0or your normal cap) in the Billing settings to cut off in-flight streaming requests. - 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... access key in the IAM console, any temporary ASIA... STS tokens minted before that moment remain 100% active and valid unless you also attach an explicit Deny All inline policy (with a Condition checking aws:TokenIssueTime < CurrentUTC) to the compromised IAM User and every Role it could assume.
Decision tree: 60-Second Emergency Response by Leaked Secret Type¶
Follow this incident containment flowchart to kill the compromised credential, sever attacker persistence, and reverse runaway cloud billing.
flowchart TD
A["Live Secret Committed to Public GitHub / GitLab Repo (.env, Source Code, or git History)"] --> B["SECOND 0 TO 30: DO NOT Run git rm First. Open Cloud/API Provider Console & REVOKE Key Immediately"]
B --> C{"Which type of live credential was exposed?"}
C -->|"1. AWS Access Key (AKIA... / ASIA...)"| D["1. Deactivate/Delete Key in IAM 2. Attach Inline 'Deny All' Policy to User (Kills Minted STS Tokens) 3. Audit CloudTrail for Backdoor IAM Users"]
C -->|"2. Stripe Live Secret Key (sk_live_... / rk_live_...)"| E["1. Roll Key with Expiration = 'Immediately' 2. Check /v1/refunds, /v1/transfers & Webhook Endpoints 3. Assess Customer PII Exposure"]
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. Rotate DB Password Immediately 2. Run pg_terminate_backend() / KILL to Drop Active Connections 3. Lock Down Security Group to VPC IPs Only"]
D --> H["Run Multi-Region Compute Sweep (Terminate Rogue EC2/EKS/SageMaker/Lambda in All 30+ Regions)"]
E --> I["Purge Git History via 'git filter-repo' + Clear GitHub Cached Commit SHA Views"]
F --> I
G --> I
H --> J{"Did automated bots rack up a $1,000 to $100,000+ cloud bill?"}
J -->|"ແມ່ນແລ້ວ"| K["Open AWS/GCP Billing Support Case -> Submit Post-Remediation Security Audit + Request One-Time Courtesy Fraud/Leak Bill Forgiveness"]
J -->|"ບໍ່"| 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 after bots have already attacked. |
1. IAM -> Users -> [User] -> Security credentials -> Deactivate & Delete2. Add Inline Policy: Effect: Deny, Action: "*", Resource: "*" (kills active STS tokens). |
1. Temporary STS tokens (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) ການນໍາໃຊ້ແບບສອບຖາມ:protoPayload.authenticationInfo.principalEmail="<service-account-email>" |
4. OpenAI (sk-proj-...), Anthropic (sk-ant-...), & HuggingFace (hf_...) |
OpenAI / Anthropic: ຮ່ວມມືກັບ GitHub ເພື່ອຖອນຄືນອັດຕະໂນມັດການຊຸກຍູ້ຂໍ້ຄວາມທໍາມະດາ (usually within 30 to 120 seconds), ໃນໄລຍະທີ່ bots ຍັງສາມາດຍິງພັນຂະຫນານ 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 ເພື່ອ mint ລະຫັດ API ໂຄງການຍີ່ຫໍ້ໃຫມ່ ກ່ອນທີ່ທ່ານຈະຖອນຄືນອັນທໍາອິດ. ກວດສອບຄີທັງໝົດໃນອົງການ. |
** OpenAI / Anthropic Usage Dashboard ** (check activity by API key and model tier). |
5. GitHub Personal Access Token (ghp_... / github_pat_...) ຫຼື NPM Token (npm_...) |
ແມ່ນ (Instant): GitHub ຖອນອັດຕະໂນມັດໃດໆ ghp_ ຫຼື github_pat_ token ການແບ່ງປັນວິນາທີມັນຖືກ pushed ໄປຫາບ່ອນເກັບມ້ຽນ GitHub ສາທາລະນະ. |
ຖ້າ pushed ກັບ host ທີ່ບໍ່ແມ່ນ GitHub (GitLab, Bitbucket, Pastebin, or Slack), ຖອດຖອນດ້ວຍຕົນເອງຢູ່ທີ່ github.com/settings/tokens (or npmjs.com -> Access Tokens). |
Supply-Chain Malware Injection: ຜູ້ໂຈມຕີກັບເຈົ້າ ghp_ ຫຼື npm_ token ທັນທີຈະຊຸກດັນໃຫ້ຄໍາຫມັ້ນສັນຍາ backdoor malicious ກັບ repos ສ່ວນຕົວຂອງທ່ານ, ເພີ່ມ rogue ** Deploy Key / GitHub Actions Workflow (pull_request_target)**, ຫຼືເຜີຍແຜ່ສະບັບ Trojanized ຂອງແພັກເກດ NPM ຂອງທ່ານ. |
** ການຕັ້ງຄ່າ GitHub -> ບັນທຶກຄວາມປອດໄພ ** (audit repo.create, hook.create, org.add_member, and oauth_authorization). |
ສ່ວນທີ 2: Deep Dive: ວິທີການຂັບໄລ່ຜູ້ໂຈມຕີອອກຈາກບັນຊີ AWS ຂອງທ່ານ (The 4-Step Cloud Eviction Protocol)¶
ເນື່ອງຈາກວ່າຮົ່ວ AWS ຂໍ້ມູນປະຈຳຕົວມີລັດສະໝີລະເບີດທາງການເງິນສູງສຸດ (up to $50,000+ per day in EC2/SageMaker/Bedrock bills), ທ່ານຕ້ອງປະຕິບັດທັງສີ່ຂັ້ນຕອນຂ້າງລຸ່ມນີ້ທຸກຄັ້ງທີ່ AKIA... ຫຼື ASIA... ຄີ hits a public repository:
+-----------------------------------------------------------------------------+
| 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: ຂ້າທັງສອງ Static ໄດ້ AKIA ຄີ AND ທັງຫມົດ minted ASIA Session Token¶
ການລຶບ 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: ລ່າສັດຜູ້ໃຊ້ Backdoor IAM, ບົດບາດ, ແລະກະແຈການເຂົ້າເຖິງໃນ CloudTrail¶
ດໍາເນີນການຄໍາສັ່ງ AWS CLI ເຫຼົ່ານີ້ເພື່ອກວດເບິ່ງວ່າ bot ສ້າງຜູ້ໃຊ້ IAM backdoor ທີ່ເຊື່ອງໄວ້ຫຼືແນບລະຫັດການເຂົ້າເຖິງຂັ້ນສອງໃສ່ຫນຶ່ງໃນບັນຊີພະນັກງານທີ່ມີຢູ່ຂອງທ່ານໃນລະຫວ່າງປ່ອງຢ້ຽມ:
# 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 Instances, Auto Scaling Groups, ແລະວຽກ Bedrock/SageMaker¶
ເປັນຫຍັງຜູ້ເຄາະຮ້າຍຍັງໄດ້ຮັບ ກ $12,000 ໃບບິນໃນທ້າຍເດືອນຫຼັງຈາກທີ່ພວກເຂົາ "ກວດເບິ່ງ dashboard EC2 ແລະເຫັນວ່າບໍ່ມີຕົວຢ່າງ"? ເນື່ອງຈາກວ່າ AWS Console ພຽງແຕ່ສະແດງ ** ພາກພື້ນຫນຶ່ງຕໍ່ເວລາ ** (e.g., us-east-1), ໃນຂະນະທີ່ bot spun ເຖິງ 20 ຕົວຢ່າງໃນ ap-south-1 (Mumbai), eu-north-1 (Stockholm), ແລະ sa-east-1 (Sao Paulo), ແລະເຊື່ອງພວກມັນໄວ້ພາຍໃນ EC2 Auto Scaling Groups (ASGs) ເພື່ອວ່າຖ້າທ່ານປິດຕົວຢ່າງ EC2 ດ້ວຍຕົນເອງ, Auto Scaling Group ເປີດຕົວການທົດແທນ. 30 seconds later.
ແລ່ນ bash one-liner ຫຼາຍພາກພື້ນນີ້ເພື່ອລາຍຊື່ ** EC2 ທັງຫມົດທີ່ກໍາລັງແລ່ນຫຼືລໍຖ້າຢູ່ໃນທຸກໆພາກພື້ນ AWS ທີ່ໃຊ້ວຽກ ** ໃນ 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) ໃນແຕ່ລະພາກພື້ນທີ່ໄດ້ຮັບຜົນກະທົບແລະ ລຶບກຸ່ມການຂະຫຍາຍອັດຕະໂນມັດ / Spot Request FIRST, ຫຼັງຈາກນັ້ນຢຸດການຍົກຕົວຢ່າງ.
- ** ກວດສອບ AWS Bedrock (Model Invocation Logging) ແລະ Amazon SES:** ບອທ໌ເກັບກ່ຽວຂໍ້ມູນປະຈຳຕົວທີ່ທັນສະ ໄໝ ດຽວນີ້ເອີ້ນ ** AWS Bedrock (Claude 3.5 Sonnet / Llama 3)** ການນໍາໃຊ້ຂໍ້ມູນຢັ້ງຢືນ AWS ຂອງທ່ານຖືກລັກເພື່ອຂາຍຕໍ່ LLM tokens (which does not show up under EC2 at all). ກວດເບິ່ງ AWS Cost Explorer (Group by: Service ແລະ Group by: Region) ເພື່ອກວດກາເບິ່ງການບໍລິການທີ່ຜິດປົກກະຕິເພີ່ມຂຶ້ນ.
ສ່ວນທີ 3: Scrubbing ຄວາມລັບຈາກປະຫວັດສາດ Git (git-filter-repo) & Purging GitHub's Hidden Commit Cache¶
ເມື່ອຂໍ້ມູນປະຈໍາຕົວຕາຍຢູ່ໃນລະດັບຜູ້ໃຫ້ບໍລິການ, ທ່ານຕ້ອງເອົາສາຍລັບອອກຈາກບ່ອນເກັບມ້ຽນຂອງເຈົ້າ. .git ປະຫວັດສາດເພື່ອບໍ່ວ່າເພື່ອນຮ່ວມງານຫຼື scrapers ໃນອະນາຄົດບໍ່ສາມາດເບິ່ງມັນ (and so GitHub's Push Protection stops blocking your branches).
1. Why git rm .env + git commit ບໍ່ເອົາຄວາມລັບອອກຈາກ Git¶
ແລ່ນ git rm .env && git commit -m "remove env" ພຽງແຕ່ເອົາໄຟລ໌ອອກຈາກ ** ຄໍາຫມັ້ນສັນຍາຫຼ້າສຸດ (HEAD)**; ຄວາມລັບຂອງຂໍ້ຄວາມທໍາມະດາຍັງຄົງສາມາດອ່ານໄດ້ຢ່າງຖາວອນພາຍໃນຄໍາຫມັ້ນສັນຍາຂອງພໍ່ແມ່ (the parent commit) ກັບທຸກຄົນທີ່ຄລິກໃສ່ "Commits" ໃນ GitHub.
2. Rewrite the Repository History Cleanly using 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 Cache Trap ທີ່ເຊື່ອງໄວ້ (Dangling Commit SHAs)¶
ເຖິງແມ່ນວ່າຫຼັງຈາກທ່ານແລ່ນ git filter-repo ແລະ git push --force, ** ເຊີບເວີເວັບຂອງ GitHub ຍັງຄົງຮັກສາແບບເກົ່າ, ບໍ່ມີການອ້າງອີງ ("dangling") ຫມັ້ນສັນຍາ SHA ມີຊີວິດຢູ່ແລະສາທາລະນະສາມາດເຂົ້າເຖິງໄດ້ຢູ່ທີ່ https://github.com/<owner>/<repo>/commit/<old-40-char-sha>** (and in any forks or Pull Requests) ຈົນກ່ວາການເກັບຂີ້ເຫຍື້ອແລ່ນ.
- ** ວິທີການລົບລ້າງ Cached ຄໍາຫມັ້ນສັນຍາ 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 Bot Bill Waived (The Courtesy Forgiveness Appeal)¶
ຈະເປັນແນວໃດຖ້າຫາກວ່າທ່ານ pushed .env ໄຟລ໌ໃນຕອນບ່າຍວັນສຸກ, ບໍ່ໄດ້ກວດເບິ່ງອີເມວຂອງເຈົ້າຈົນກ່ວາຕອນເຊົ້າວັນຈັນ, ແລະຕື່ນຂຶ້ນເປັນ $28,400.00 ໃບບິນ AWS ຫຼື Google Cloud ຈາກ crypto-mining ຫຼື LLM-proxy bots?
ຢ່າຕົກໃຈ, ແລະຢ່າຍົກເລີກບັດເຄຣດິດຂອງທ່ານ ຫຼືຍື່ນໃບແຈ້ງເງິນຄືນຈາກທະນາຄານເທື່ອ. ທັງສອງ ** Amazon Web Services (AWS)** ແລະ Google Cloud Platform (GCP) ມີການສ້າງຕັ້ງຂຶ້ນພາຍໃນ ການປັບໃບບິນໃບຢັ້ງຢືນການຮົ່ວໄຫລໂດຍບັງເອີນຄັ້ງດຽວ / ນະໂຍບາຍການປ່ອຍສິນເຊື່ອ ສໍາລັບຜູ້ພັດທະນາບຸກຄົນ, ນັກສຶກສາ, ແລະການເລີ່ມຕົ້ນ, ** ສະຫນອງໃຫ້ ** ທ່ານເຮັດສໍາເລັດ 100% ຂອງລາຍການກວດສອບການແກ້ໄຂຄວາມປອດໄພທີ່ບັງຄັບຂອງພວກເຂົາ ກ່ອນ ທີມງານກວດສອບການຮຽກເກັບເງິນຂອງພວກເຂົາຈະປະເມີນການອຸທອນຂອງທ່ານ.
5 ຂັ້ນຕອນ AWS / GCP Bill Waiver Protocol (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 ທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ, Auto Scaling Group, EBS volume, Elastic IP, RDS instance, ແລະ S3 bucket ທົ່ວ ທຸກຂົງເຂດ (
verify via AWS Cost Explorer and AWS Billing -> Bills -> Charges by Region that daily accrual has dropped back to $0.00). - ເປີດໃຊ້ ** ຮາດແວ ຫຼື Authenticator App MFA (
Multi-Factor Authentication)** ຢູ່ໃນ AWS Root Account ຂອງເຈົ້າ ແລະຜູ້ໃຊ້ 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"). - ເຮັດລາຍການຄ່າບໍລິການທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດຕາມພາກພື້ນ ແລະການບໍລິການ: ບອກຈຳນວນເງິນໂດລາທີ່ແນ່ນອນຂອງການເຄື່ອນໄຫວ bot ທີ່ມີການສໍ້ໂກງທຽບກັບບັນຊີລາຍການປະຈຳເດືອນປະຫວັດສາດປົກກະຕິຂອງເຈົ້າ (
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% ການແກ້ໄຂ: Bullet-point ຂັ້ນຕອນທີ່ແນ່ນອນທີ່ທ່ານໄດ້ສໍາເລັດແລ້ວ (
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ບັນຊີລາຍການ bot ທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດຈະເຮັດໃຫ້ເກີດຄວາມຫຍຸ້ງຍາກທາງດ້ານການເງິນທີ່ຮ້າຍແຮງ, ແລະຂໍໃຫ້ ** ເຄດິດການເອີ້ນເກັບເງິນ / ການຍົກເວັ້ນຄັ້ງດຽວ ** ສໍາລັບການນໍາໃຊ້ທີ່ສໍ້ໂກງ.
- ** ຮັບຮູ້ກໍານົດເວລາແລະເຫດຜົນ: ** ບອກຢ່າງຊັດເຈນໃນເວລາທີ່ກະແຈໄດ້ຖືກເປີດເຜີຍໂດຍບັງເອີນກ່ຽວກັບ GitHub (
- ** ແລກປ່ຽນ ຫຼືໃສ່ບັດການຈ່າຍເງິນທີ່ເຊື່ອມຕໍ່ຂອງເຈົ້າເປັນການຊົ່ວຄາວ ຖ້າການຮຽກເກັບເງິນອັດຕະໂນມັດແມ່ນກຳລັງເກີດຂຶ້ນ:**
- ໃນຂະນະທີ່ກໍລະນີສະຫນັບສະຫນູນການເອີ້ນເກັບເງິນ AWS ຂອງທ່ານຢູ່ໃນການກວດສອບ (
which usually takes 5 to 15 business daysໃນຂະນະທີ່ທີມບໍລິການຄວາມປອດໄພ ແລະ ການຮຽກເກັບເງິນຂອງ AWS ກວດສອບວ່າຊັບພະຍາກອນທີ່ຮ້າຍກາດທັງໝົດຖືກຢຸດຕິ), ຕິດຕໍ່ຝ່າຍຊ່ວຍເຫຼືອ AWS ພາຍໃນປີ້ ແລະຂໍໃຫ້ພວກເຂົາ ** ວາງການເອີ້ນເກັບເງິນຊົ່ວຄາວ (defer auto-charge)** ຢູ່ໃນໃບແຈ້ງໜີ້ທີ່ມີການໂຕ້ແຍ້ງ ເພື່ອບໍ່ໃຫ້ບັນຊີທະນາຄານຂອງທ່ານເກີນບັນຊີ ໃນຂະນະທີ່ການປັບສິນເຊື່ອກຳລັງດຳເນີນຢູ່.
- ໃນຂະນະທີ່ກໍລະນີສະຫນັບສະຫນູນການເອີ້ນເກັບເງິນ AWS ຂອງທ່ານຢູ່ໃນການກວດສອບ (
Warning
** ເປັນຫຍັງທ່ານຕ້ອງບໍ່ໄດ້ກະແຈ Hardcode ໃນລະຫັດຂ້າງລູກຄ້າ (NEXT_PUBLIC_, VITE_, REACT_APP_, ແອັບຯມືຖື ຫຼື Chrome Extensions).** ເຖິງແມ່ນວ່າບ່ອນເກັບມ້ຽນ 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 client config ຖືກຈໍາກັດໂດຍ HTTP Referrer / Row-Level Security) ອາດຈະແຕະລະຫັດ frontend.
Tip
** ການຕິດຕັ້ງ gitleaks ຫຼື trufflehog ເປັນ Hook Pre-Commit ທ້ອງຖິ່ນໃນ 60 ວິນາທີ (So git Refuses to Commit a Secret Ever Again)** ເພື່ອ ເຮັດ ໃຫ້ ມັນ ເປັນ ໄປ ບໍ່ ໄດ້ ທາງ ດ້ານ ຮ່າງ ກາຍ ທີ່ ຈະ ເຮັດ ໃຫ້ ອຸ ບັດ ຕິ ເຫດ .env file ຫຼື API key ເທິງແລັບທັອບຂອງເຈົ້າອີກຄັ້ງ, ໃຫ້ຕິດຕັ້ງ gitleaks (brew install gitleaks) ແລະເພີ່ມ a .pre-commit-config.yaml hook (or turn on GitHub's free **"Push Protection for yourself"** at **github.com/settings/security_analysis**). ດ້ວຍການເປີດໃຊ້ Push Protection, ເຊີບເວີຂອງ GitHub ກວດເບິ່ງຂອງທ່ານ git push ໃນລະຫວ່າງການເດີນທາງແລະ **ປະຕິເສດການຊຸກຍູ້ກ່ອນທີ່ຈະລົງຈອດໃນບ່ອນເກັບຮັກສາ ** ເມື່ອໃດກໍຕາມທີ່ມີການກວດພົບຮູບແບບທີ່ສໍາຄັນ.
(ສຳລັບຜູ້ພັດທະນາທີ່ກ່ຽວຂ້ອງ ແລະເຫດການຄວາມປອດໄພທີ່ເຮັດວຽກທາງໄກ, ເບິ່ງ ການຫຼຸດລົງຂອງຖານຂໍ້ມູນການຜະລິດໂດຍບັງເອີນ, git force-push, ຮົ່ວລັບ, ແລະ triage ເຫດການ, ຖານຂໍ້ມູນການຜະລິດຫຼຸດລົງຫຼື S3 bucket ຖືກລົບໂດຍບໍ່ມີການສໍາຮອງຂໍ້ມູນທີ່ຜ່ານມາ, ອີເມວບັນຊີເງິນເດືອນເປັນຄວາມລັບ, ລູກຄ້າ PII, ຫຼື HIPAA spreadsheet, ແລະ ຄວາມປອດໄພບ່ອນເຮັດວຽກສຸກເສີນທາງໄກ ແລະຄວາມເປັນສ່ວນຕົວຂອງຂໍ້ມູນ.)
ການລະເມີດຂໍ້ມູນພາກພື້ນ ແລະເຈົ້າໜ້າທີ່ລາຍງານຄວາມປອດໄພຄລາວ¶
| ພາກພື້ນ / ປະເທດ | ກົດໝາຍວ່າດ້ວຍການແຈ້ງເຕືອນການລ່ວງລະເມີດໃນຄລາວ ແລະຂໍ້ມູນ | ເຈົ້າຫນ້າທີ່ Cyber Incident & Regulatory Authority | ເມື່ອ GitHub Key ຮົ່ວໄຫຼຮຽກຮ້ອງໃຫ້ມີການລາຍງານກົດລະບຽບບັງຄັບ |
|---|---|---|---|
| ** ສະຫະລັດ ** | ** ກົດລະບຽບການປົກປ້ອງ FTC (16 CFR Part 314)**, ກົດລະບຽບ SEC Cybersecurity (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):** ຖ້າຂໍ້ມູນປະຈຳຕົວທີ່ຮົ່ວໄຫຼມີການເຂົ້າເຖິງຂໍ້ມູນສ່ວນຕົວຂອງ EU ແລະທ່ານບໍ່ສາມາດປະຕິເສດການເຂົ້າເຖິງທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດໃນ CloudTrail/VPC Flow Logs, ແຈ້ງໃຫ້ເຈົ້າໜ້າທີ່ຄວບຄຸມຂອງທ່ານພາຍໃນ 72 hours. |
| ** ສະຫະປະຊາຊະອານາຈັກ ** | GDPR & ກົດໝາຍວ່າດ້ວຍການປົກປ້ອງຂໍ້ມູນຂອງອັງກິດ 2018 | ** ຫ້ອງການຂໍ້ມູນຂ່າວສານ (ICO: 0303 123 1113)** ແລະ NCSC (ncsc.gov.uk) |
ລາຍງານຂໍ້ມູນສ່ວນບຸກຄົນທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດເຂົ້າເຖິງ ICO UK ພາຍໃນ 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 ຍື່ນໄປຫາ repo ສາທາລະນະ GitHub ແລະເຮັດໃຫ້ repo ເປັນສ່ວນຕົວ 2 ນາທີຕໍ່ມາ, ຂ້ອຍຍັງຈໍາເປັນຕ້ອງໄດ້ຫມຸນລະຫັດຂອງຂ້ອຍບໍ?¶
ແມ່ນແລ້ວ, 100 ເປີເຊັນຂອງກະແຈໃນໄຟລ໌ນັ້ນຕ້ອງຖືກພິຈາລະນາວ່າຖືກປະນີປະນອມ ແລະຖືກຖອນຄືນທັນທີ. bots ການຂຸດຄົ້ນຂໍ້ມູນການຢັ້ງຢືນອັດຕະໂນມັດບໍ່ໄດ້ລໍຖ້າໃຫ້ Google ດັດສະນີບ່ອນເກັບມ້ຽນຂອງທ່ານ; ພວກເຂົາເຈົ້າສະຫມັກໂດຍກົງກັບສາທາລະນະໃນເວລາຈິງຂອງ GitHub `Events API` ທໍ່ດັບເພີງ (`and GH Archive`), ເຊິ່ງອອກອາກາດທຸກສາທາລະນະ `PushEvent` ທົ່ວໂລກພາຍໃນ 1 ຫາ 3 ວິນາທີຂອງເຈົ້າ `git push`. ເມື່ອເວລາທີ່ທ່ານຄລິກ "Settings -> Change repository visibility -> Make private" ສອງນາທີຕໍ່ມາ, bots scraper ອັດຕະໂນມັດຫຼາຍສິບໂຕໄດ້ດາວໂຫລດ commit diff ຂອງເຈົ້າແລ້ວ ແລະຈັດຄິວກັບ AWS, Stripe, OpenAI, ແລະຖານຂໍ້ມູນຖານຂໍ້ມູນຂອງເຈົ້າເພື່ອການຂຸດຄົ້ນ.
ເປັນຫຍັງ bots ຈຶ່ງສືບຕໍ່ເປີດຕົວຢ່າງ EC2 ໃນບັນຊີ AWS ຂອງຂ້ອຍເຖິງແມ່ນວ່າຫຼັງຈາກທີ່ຂ້ອຍລຶບການຮົ່ວໄຫຼ AKIA ກະແຈການເຂົ້າເຖິງ?¶
ການລຶບສະຖິດ `AKIA...` ກະແຈການເຂົ້າເຖິງໃນ AWS IAM ພຽງແຕ່ປິດການນຳໃຊ້ລະຫັດຖາວອນສະເພາະນັ້ນເທົ່ານັ້ນ; ມັນບໍ່ໄດ້ເຮັດໃຫ້ບໍ່ຖືກຕ້ອງຊົ່ວຄາວ `ASIA...` Security Token Service (`STS`) session tokens ທີ່ຜູ້ໂຈມຕີສ້າງແລ້ວໂດຍໃຊ້ `sts:GetSessionToken` ຫຼື `sts:AssumeRole` ໃນລະຫວ່າງສອງສາມວິນາທີທໍາອິດຫຼັງຈາກຂູດກະແຈຂອງເຈົ້າ (`which remain valid for up to 12 to 36 hours`). ນອກຈາກນັ້ນ, ອັດຕະໂນມັດ AWS attack scripts ປົກກະຕິໂທຫາ `iam:CreateUser` ແລະ `iam:CreateAccessKey` ໃນວິນາທີທໍາອິດຂອງພວກເຂົາໃນການເຂົ້າເຖິງການປູກທີສອງ, ບັນຊີຜູ້ເບິ່ງແຍງ backdoor ທີ່ເຊື່ອງໄວ້. ເພື່ອຢຸດການບຸກລຸກຂອງ AWS ທີ່ເຄື່ອນໄຫວຢ່າງສົມບູນ, ທ່ານຕ້ອງລຶບ `AKIA` ຄີ, ຄັດຕິດຢ່າງຈະແຈ້ງ `Deny *` ນະໂຍບາຍໃນແຖວຕໍ່ຜູ້ໃຊ້ IAM ທີ່ຖືກເຄາະຮ້າຍ (`which immediately invalidates all minted STS tokens`), ແລະກວດສອບ CloudTrail ສໍາລັບຜູ້ໃຊ້ ຫຼືບົດບາດ IAM ທີ່ສ້າງຂຶ້ນໃໝ່.
AWS ຫຼື Google Cloud ຈະໃຫ້ອະໄພອັນໃຫຍ່ຫຼວງ $10,000+ ໃບບິນຖ້າແຮກເກີລັກລະຫັດ API ຂອງຂ້ອຍຈາກ GitHub ແລະ crypto ຂຸດຄົ້ນບໍ່?¶
ໃນສ່ວນໃຫຍ່ຂອງການຮົ່ວໄຫຼໂດຍບັງເອີນຄັ້ງທໍາອິດ, ແມ່ນແລ້ວ, ໃຫ້ທ່ານປະຕິບັດຢ່າງໄວວາ, ຮ່ວມມືຢ່າງເຕັມທີ່ກັບທີມງານຄວາມປອດໄພຂອງພວກເຂົາ, ແລະບໍ່ສົນໃຈໃບແຈ້ງຫນີ້. ທັງ AWS ແລະ Google Cloud ມີນະໂຍບາຍການປັບການເອີ້ນເກັບເງິນຕາມມາລະຍາດພາຍໃນຄັ້ງດຽວສຳລັບນັກພັດທະນາ ແລະ ທຸລະກິດຂະໜາດນ້ອຍທີ່ໄດ້ຮັບຜົນກະທົບຈາກການຮົ່ວໄຫຼຂອງຂໍ້ມູນຮັບຮອງທີ່ບໍ່ໄດ້ຮັບອະນຸຍາດ. ກ່ອນທີ່ຈະຮ້ອງຂໍການຍົກເວັ້ນໃບບິນພາຍໃຕ້ການສະຫນັບສະຫນູນ "ບັນຊີແລະການເອີ້ນເກັບເງິນ", ກ່ອນອື່ນ ໝົດ ທ່ານຕ້ອງພິສູດວ່າການຮົ່ວໄຫຼຖືກປິດລົງ 100 ເປີເຊັນ: ຖອນລະຫັດ IAM ທີ່ຖືກເປີດເຜີຍ, ຍົກເລີກການຄິດໄລ່ທີ່ຫຼອກລວງທັງຫມົດແລະກຸ່ມການຂະຫຍາຍອັດຕະໂນມັດໃນທົ່ວພາກພື້ນທົ່ວໂລກ 30+, ເປີດໃຊ້ການພິສູດຄວາມຖືກຕ້ອງຫຼາຍປັດໃຈ (`MFA`) ໃນບັນຊີຮາກຂອງທ່ານ, ແລະຕັ້ງຄ່າການແຈ້ງເຕືອນຄ່າໃຊ້ຈ່າຍ AWS Budgets.
ເປັນຫຍັງ git rm .env ບໍ່ເອົາກະແຈລັບຂອງຂ້ອຍອອກຈາກ GitHub ບໍ?¶
Git ແມ່ນບັນຊີລາຍການຄວບຄຸມເວີຊັນທີ່ບໍ່ປ່ຽນແປງໄດ້: ເມື່ອທ່ານແລ່ນ `git rm .env` ແລະຊຸກຍູ້ໃຫ້ຄໍາຫມັ້ນສັນຍາໃຫມ່, Git ພຽງແຕ່ບັນທຶກວ່າໄຟລ໌ແມ່ນບໍ່ມີຢູ່ໃນຮູບຖ່າຍໃຫມ່ຫຼ້າສຸດ (`HEAD`), ໃນຂະນະທີ່ຮັກສາເນື້ອໃນ plaintext ເຕັມຂອງ `.env` ເກັບຮັກສາໄວ້ຢ່າງຖາວອນພາຍໃນຄໍາຫມັ້ນສັນຍາທີ່ຜ່ານມາ (`the parent commit`) ໃນປະຫວັດສາດຄໍາຫມັ້ນສັນຍາຂອງ repository ຂອງທ່ານ. ເຖິງແມ່ນວ່າທ່ານຈະຂຽນປະຫວັດສາດຂອງທ່ານກັບ `git filter-repo` ແລະ force-push, ທຸກຄົນຍັງສາມາດອ່ານຄວາມລັບຖ້າທ່ານບໍ່ໄດ້ຖອນຄືນມັນຢູ່ທີ່ console ຜູ້ໃຫ້ບໍລິການ. ຖອນຄືນ ແລະໝຸນລະຫັດລັບຢູ່ໃນ dashboard ຂອງຜູ້ໃຫ້ບໍລິການຄລາວທຸກຄັ້ງກ່ອນ, ແລ້ວໃຊ້ `git filter-repo` ເພື່ອຂັດສາຍທີ່ຕາຍແລ້ວຈາກປະຫວັດຄໍາຫມັ້ນສັນຍາຂອງເຈົ້າ.
ຄູ່ມືທີ່ກ່ຽວຂ້ອງ¶
- ການຫຼຸດລົງຂອງຖານຂໍ້ມູນການຜະລິດໂດຍບັງເອີນ, git force-push, ຮົ່ວລັບ, ແລະ triage ເຫດການ
- ຖານຂໍ້ມູນການຜະລິດຫຼຸດລົງຫຼື S3 bucket ຖືກລົບໂດຍບໍ່ມີການສໍາຮອງຂໍ້ມູນທີ່ຜ່ານມາ
- ອີເມວບັນຊີເງິນເດືອນເປັນຄວາມລັບ, ລູກຄ້າ PII, ຫຼື HIPAA spreadsheet ໄປຫາຜູ້ຮັບຜິດ
- ການແບ່ງປັນຫນ້າຈໍອຸບັດຕິເຫດຂອງເອກະສານເງິນເດືອນທີ່ເປັນຄວາມລັບ, ຜູ້ຈັດການລະຫັດຜ່ານ, ຫຼືລາຍຊື່ການຢຸດຢູ່ໃນ 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ພຶດຕິກໍານະໂຍບາຍ, ບໍ່ຖືກຕ້ອງຊົ່ວຄາວSTSSession Token (RevokeOldSessions), ແລະການກວດສອບຊັບພະຍາກອນຫຼາຍພາກພື້ນ. - ** ເອກະສານ GitHub (
GitHub Secret Scanning, Push Protection, & "Removing sensitive data from a repository" using git-filter-repo):** ໂຄງການຖອນຄືນອັດຕະໂນມັດຂອງຄູ່ຮ່ວມງານ (Stripe, AWS, OpenAI, NPM),git-filter-repoປະຫວັດການຂຽນຄືນໃຫມ່, ແລະການກໍາຈັດ Cached Unreachable commit SHAs. - *Stripe Inc. (
Stripe Developer Security Guide: API Key Rotation & Compromised Key Incident Triage): ** * ທັນທີsk_live_ການຫມົດອາຍຸທີ່ສໍາຄັນ, ການກວດສອບ/v1/eventsແລະ/v1/webhook_endpoints, ແລະຈໍາກັດຄີໂດຍຜ່ານrk_live_ຂອບເຂດ. - NIST (
Special Publication 800-61 Rev. 2 / Rev. 3: Computer Security Incident Handling Guide) ແລະ OWASP (Secrets Management Cheat Sheet): ການບັນຈຸຂໍ້ມູນປະຈຳຕົວ, ສະຫະພັນກຳມະກອນ ODC ຊົ່ວຄາວ (replacing static CI/CD keys), ແລະ Pre-Commit Secret Scanning.