Skip to content

API कुञ्जी, AWS गोप्य, वा स्ट्राइप लाइभ टोकन सार्वजनिक GitHub रेपोमा प्रतिबद्ध: 60 सेकेन्डमा स्वचालित बट स्क्र्यापिङ, तत्काल कुञ्जी घुमाउने, र बिलिङ किल-स्विच

तुरुन्तै तपाईं दौडिनुहुन्छ git push सार्वजनिक GitHub, GitLab, वा Bitbucket भण्डारमा (or temporarily flip a private repository to "Public" for even 10 seconds) फाइल गर्दा, .env कन्फिगरेसन, Jupyter नोटबुक (.ipynb), वा पुरानो Git कमिट ईतिहासले प्रत्यक्ष गोप्य कुञ्जी समावेश गर्दछ (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), स्वचालित क्रेडेन्सियल-हर्भेस्टिङ्ग बटहरूको विश्वव्यापी नेटवर्कले *२ देखि ६० सेकेन्डमा गोप्य कुराहरू रोक्छ। किनभने GitHub को सार्वजनिक Events API, GH Archive, र वास्तविक-समय वेबहुक फायरहोसहरूले प्रत्येक सार्वजनिक स्ट्रिम गर्दछ PushEvent विश्वव्यापी रूपमा, मालिसियस स्क्र्यापर बटहरूले तपाइँको भिन्नतालाई नियमित अभिव्यक्तिको साथ पार्स गर्दछ र तपाइँ टाइप गर्न सक्नु अघि स्वचालित क्लाउड आदेशहरू कार्यान्वयन गर्न सुरु गर्दछ। git revert।

भित्र 90 seconds एक को AWS वा GCP गोप्य रूपमा सार्वजनिक रिपोमा हिर्काउँदै, स्वचालित बोटनेटहरूले अधिकतम आकारको GPU/CPU उदाहरणहरू स्पिन गर्दछ (such as p4d.24xlarge or c6i.32xlarge जस्तै अस्पष्ट क्षेत्रहरूमा ap-east-1 हङकङ, me-south-1 बहराइन, वा sa-east-1 साओ पाउलो) को माइन मोनेरो (XMR), अनुरोध AWS सरल इमेल सेवा (SES) फिसिङ स्प्याम ब्लास्ट गर्न कोटा बढ्छ, वा आफ्नो निजी क्लोन S3 बाल्टिन र RDS डाटाबेस, उत्पन्न **$5,000 to $80,000+ क्लाउड कम्प्युट बिलहरू रातभर **। त्यस्तै, लीक भएको छ OpenAI वा Anthropic API कुञ्जीलाई तुरुन्तै भूमिगत "रिभर्स-प्रोक्सी" LLM बजारहरूमा बन्डल गरिएको छ जसले प्रति मिनेट हजारौं डलर टोकन क्रेडिटहरू निकाल्छ, जबकि एक लीक भयो। Stripe प्रत्यक्ष गोप्य कुञ्जी (sk_live_...) जालसाजी फिर्ता, निर्यात ग्राहक जारी गर्न आक्रमणकारीहरूलाई पूर्ण प्रोग्रामेटिक पढ्न/लेख्न पहुँच प्रदान गर्दछ। PII, वा अनाधिकृत जडान भुक्तानीहरू ट्रिगर गर्नुहोस्। यदि कुनै आक्रमणकारीले तपाईंको लीक कुञ्जीबाट ग्राहक डाटाबेसहरू बाहिर निकालेपछि सक्रिय रूपमा तपाईंको संगठनलाई लुटिरहेको छ भने, हाम्रो स्थानीय कानून प्रवर्तन र साइबर घटना हटलाइनहरू मार्फत परामर्श गर्नुहोस्। आपतकालीन नम्बरहरू निर्देशिका तुरुन्तै, र हाम्रो सम्बन्धित गाइड समीक्षा गर्नुहोस् आकस्मिक उत्पादन डाटाबेस ड्रप, git बल-पुश, र गुप्त चुहावट ट्राइज, उत्पादन डाटाबेस छोडियो वा S3 बाल्टी हालैको ब्याकअप बिना मेटियो, र आपतकालीन रिमोट काम सुरक्षा र डाटा गोपनीयता।

अब यो गर्नुहोस्

  1. ** आफ्नो पहिलो 60 सेकेन्ड दौड बर्बाद नगर्नुहोस् git rm .env वा git push --force: सिधै प्रदायक कन्सोलमा जानुहोस् (AWS IAM, Stripe, OpenAI, GCP) र कुञ्जीलाई रद्द / निष्क्रिय पार्नुहोस् < 30 SECONDS** नयाँ Git कमिटमा फाइल मेटाउँदै (or even making the GitHub repository Private१० सेकेन्ड पहिले GitHub घटनाहरू फायरहोसबाट तपाईंको कुञ्जी स्क्र्याप गर्ने बटहरूलाई रोक्न केही गर्दैन। कुञ्जी आफैलाई पहिले स्रोतमा मार्नु पर्छ।
  2. ** यदि एक AWS कुञ्जी (AKIA... वा ASIA...) लीक: ** खोल्नुहोस् AWS IAM -> Users -> Security credentials र तुरुन्तै पहुँच कुञ्जीमा निष्क्रिय / मेटाउनुहोस् क्लिक गर्नुहोस्, त्यसपछि ** संलग्न गर्नुहोस्।AWSCompromisedKeyQuarantineV2**(or a blanketअस्वीकार *inline policy) IAM प्रयोगकर्तालाई र प्रयोगकर्ताको वृद्धि 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 अनाधिकृत API कलहरूको लागि।
  4. ** यदि एक OpenAI, Anthropic, Google Gemini, वा SendGrid / Twilio कुञ्जी लीक: ** प्रदायकको ड्यासबोर्डमा रहेको API कुञ्जी तुरुन्तै मेटाउनुहोस् र कडा मासिक खर्च सीमा सेट गर्नुहोस् ($0 वा तपाईंको सामान्य क्याप) इन-फ्लाइट स्ट्रिमिङ अनुरोधहरू काट्न बिलिङ सेटिङहरूमा।
  5. ** सबै क्लाउड क्षेत्रहरू सफा गर्नुहोस् (especially disabled/opt-in regions) दुष्ट EC2 उदाहरणहरू, Lambda प्रकार्यहरू, ECS कार्यहरू, S3 बकेटहरू, र 2-मिनेट एक्सपोजर विन्डोमा बटद्वारा सिर्जना गरिएको ब्याकडोर IAM प्रयोगकर्ताहरूका लागि। ** आक्रमणकारीहरूले विशेष गरी तपाईंले कन्सोलमा क्लिक नगर्ने क्षेत्रहरूमा क्रिप्टो-खनन उदाहरणहरू सुरु गर्नुहुन्छ (like Stockholm eu-north-1, Osaka ap-northeast-3, or Mumbai ap-south-1) र दोस्रो लुकेको IAM प्रयोगकर्ता सिर्जना गर्नुहोस् (or SSH key pair) ताकि तपाईंले लीक कुञ्जी मेटाएपछि तिनीहरू तपाईंको खाता भित्र रहन सक्छन्।
  6. ** गोप्य खारेज गरिएपछि र ब्याकडोर IAM खाताहरू सफा गरिएपछि, Git बाट कमिट स्क्रब गर्नुहोस् (using git-filter-repo) र GitHub समर्थनलाई सम्पर्क गर्नुहोस् (or remove cached PR/commit views) dangling कमिट SHA क्यासहरू सफा गर्न, त्यसपछि AWS / GCP दुर्घटना चुहावट बिलिङ माफी अनुरोध फाइल गर्नुहोस् यदि बटहरूले ठूलो क्लाउड बिल बढाए भने।**

Danger

** किन मेटाउने लीक AKIA AWS IAM मा कुञ्जी पर्याप्त छैन (The STS GetSessionToken Persistence Trap)** भित्र 5 seconds आफ्नो स्थिर स्क्र्यापिंग को AKIA... GitHub बाट AWS IAM पहुँच कुञ्जी, परिष्कृत स्वचालित बोटनेटहरूले तपाइँको साथ EC2 उदाहरणहरू मात्र सुरू गर्दैन। AKIA कुञ्जी; तिनीहरूको पहिलो API कल हो sts:GetSessionToken वा sts:AssumeRole, जसले अस्थायी टकसाल गर्दछ ASIA... सुरक्षा टोकन सेवा (STS) सम्मको लागि मान्य सत्र टोकन 12 to 36 hours। तपाईले मूल मेटाए पछि पनि AKIA... IAM कन्सोलमा पहुँच कुञ्जी, **कुनै पनि अस्थायी ASIA... त्यो पल अघि मिन्ट गरिएको STS टोकनहरू 100% सक्रिय र मान्य रहन्छन् ** जबसम्म तपाईंले स्पष्ट रूपमा संलग्न गर्नुभएन Deny All इनलाइन नीति (with a Condition checking aws:TokenIssueTime < CurrentUTC) सम्झौता गरिएको IAM प्रयोगकर्ता र यो मान्न सक्ने हरेक भूमिका।

निर्णय रूख: लीक गोप्य प्रकार द्वारा 60-सेकेन्ड आपतकालीन प्रतिक्रिया

यो घटना कन्टेनमेन्ट फ्लोचार्टलाई पछ्याउनुहोस् सम्झौता गरिएको प्रमाण, विच्छेद आक्रमणकर्ता दृढता, र रिभर्स रनअवे क्लाउड बिलिङलाई मार्न।

flowchart TD
    A["प्रत्यक्ष गोप्य सार्वजनिक GitHub / GitLab Repo (.env, स्रोत कोड, वा git इतिहास) मा प्रतिबद्ध"] --> B["दोस्रो ० देखि ३०: पहिले git rm नचलाउनुहोस्। क्लाउड/एपीआई प्रदायक कन्सोल खोल्नुहोस् र तुरुन्तै कुञ्जी रद्द गर्नुहोस्"]
    B --> C{"कुन प्रकारको प्रत्यक्ष प्रमाणहरू उजागर गरियो?"}
    C -->|"1. AWS पहुँच कुञ्जी (AKIA... / ASIA...)"| D["1. IAM मा कुञ्जी निष्क्रिय/मेटाउनुहोस् 2. प्रयोगकर्तालाई इनलाइन 'सबै अस्वीकार गर्नुहोस्' नीति संलग्न गर्नुहोस् (मिन्टेड STS टोकनहरू मार्छ) 3. ब्याकडोर IAM प्रयोगकर्ताहरूको लागि क्लाउडट्रेल अडिट गर्नुहोस्"]
    C -->|"2. स्ट्राइप लाइभ गोप्य कुञ्जी (sk_live_... / rk_live_...)"| E["1. समाप्तिको साथ रोल कुञ्जी = 'तुरुन्तै' 2. जाँच गर्नुहोस् /v1/फिरताहरू, /v1/स्थानान्तरणहरू र वेबहुक समापन बिन्दुहरू 3. ग्राहक PII एक्सपोजर मूल्याङ्कन गर्नुहोस्"]
    C -->|"3. OpenAI (sk-proj-...), Anthropic (sk-ant-...), वा Gemini Key"| F["1. विकासकर्ता कन्सोलमा कुञ्जी रद्द गर्नुहोस् 2. तल्लो संगठन हार्ड बिलिङ क्याप $ ० मा अस्थायी रूपमा 3. टोकन ड्रेनको लागि प्रयोग लगहरू जाँच गर्नुहोस्"]
    C -->|"4. डाटाबेस URI (postgres://, mongodb+srv://) वा Redis URL"| G["1. DB पासवर्ड तुरुन्तै घुमाउनुहोस् 2. सक्रिय जडानहरू ड्रप गर्न pg_terminate_backend() / KILL चलाउनुहोस् 3. VPC IP हरूमा मात्र सुरक्षा समूह लक गर्नुहोस्"]
    D --> H["बहु-क्षेत्र कम्प्युट स्वीप चलाउनुहोस् (सबै ३०+ क्षेत्रहरूमा Rogue EC2/EKS/SageMaker/Lambda समाप्त गर्नुहोस्)"]
    E --> I["'git filter-repo' मार्फत Git इतिहास पर्ज गर्नुहोस् + GitHub क्यास कमिट SHA दृश्यहरू खाली गर्नुहोस्"]
    F --> I
    G --> I
    H --> J{"के स्वचालित बटहरूले $1,000 देखि $100,000+ क्लाउड बिल ल्यायो?"}
    J -->|"हो"| K["AWS/GCP बिलिङ सपोर्ट केस खोल्नुहोस् -> पोस्ट-रिमेडिएशन सेक्युरिटी अडिट पेस गर्नुहोस् + एक पटकको सौजन्य ठगी/लीक बिल माफी अनुरोध गर्नुहोस्"]
    J -->|"NO"| I

भाग १: प्रदायक-द्वारा-प्रदायक किल-स्विच र फोरेन्सिक म्याट्रिक्स (First 5 Minutes)

सही रिभोकेसन बटन, स्वचालित GitHub गोप्य स्क्यानिङ व्यवहार, र तपाईंको लीक गरिएको प्रमाणको लागि लुकेको दृढता भेक्टर पत्ता लगाउन यो सन्दर्भ तालिका प्रयोग गर्नुहोस्।

प्रमाणको प्रकार र उपसर्ग ढाँचा के GitHub गोप्य स्क्यानिङले यसलाई स्वत: रद्द गर्छ? तत्काल 30-सेकेन्ड किल-स्विच प्रक्रिया लुकेको आक्रमणकारी दृढता भेक्टर जाँच गर्न (Critical.) कहाँ अनधिकृत API कलहरू लेखा परीक्षा गर्ने
१। अमेजन वेब सेवाहरू (AKIA... IAM कुञ्जी / ASIA... STS टोकन) कुनै स्वत: रद्द गर्नुहोस्: GitHub ले AWS लाई सूचित गर्दछ, जसले स्वचालित AWS समर्थन केस (Compromised Key Quarantine) र संलग्न गर्दछ AWSCompromisedKeyQuarantineV2, अक्सर 3 to 15 minutes * पछि * बट्स पहिले नै आक्रमण गरिसकेका छन्। १. IAM -> Users -> [User] -> Security credentials -> Deactivate & Delete
२. इनलाइन नीति थप्नुहोस्: Effect: Deny, Action: "*", Resource: "*"(kills active STS tokens)।
१. अस्थायी STS टोकन (ASIA...)
2. भर्खरै सिर्जना गरिएको IAM प्रयोगकर्ताहरू / पहुँच कुञ्जीहरू
३. ब्याकडोर IAM भूमिका बाहिरीसँग Principal विश्वास नीतिहरू
4. EC2 ** लन्च टेम्प्लेटहरू / अटो स्केलिंग समूहहरू ** जसले समाप्त भएका खानीहरूलाई पुन: प्राप्त गर्दछ।
AWS CloudTrail -> घटना इतिहास (Filter by User name = compromised IAM user वा Event source = sts.amazonaws.com / iam.amazonaws.com)।
२। स्ट्राइप लाइभ गोप्य / प्रतिबन्धित कुञ्जी (sk_live_... / rk_live_...) हो (प्रायः): स्ट्राइप साझेदारहरू GitHub सेक्रेट स्क्यानिङको साथ स्वत: रोल गर्न sk_live_ कुञ्जीहरू पत्ता लगाइयो main, BUT कुञ्जीहरू base64 स्ट्रिङहरू, Gists, वा गैर-मानक फाइलहरू भित्र लुकेका कुञ्जीहरू विगतको स्वत: खारेज गर्न सक्छन्। 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, तपाईंले API कुञ्जी रोल गरेपछि पनि सबै भविष्यका ग्राहक चेकआउट र कार्ड घटनाहरूको प्रतिलिपिहरू चुपचाप प्राप्त गर्न तिनीहरूको आफ्नै सर्भर URL दर्ता गर्दै। स्ट्राइप ड्यासबोर्ड -> विकासकर्ता -> लगहरू (filter by IP address and HTTP method POST/DELETE) + विकासकर्ता -> वेबहुक्स (delete any unrecognized URLs)।
३। गुगल क्लाउड सेवा खाता JSON ("private_key_id", AIza... API कुञ्जी) आंशिक: GCP ले परियोजना मालिकलाई सचेत गर्दछ (and optionally disables keys if Organization Policy is enabled), तर इमेल चेतावनी पठाउँदा अक्सर कुञ्जी सक्रिय छोड्छ। १. GCP Console -> IAM & Admin -> Service Accounts
२. सेवा खातामा क्लिक गर्नुहोस् -> कुञ्जी ट्याब -> मेट्नुहोस् लीक गरिएको कुञ्जी आईडी।
3. सम्पूर्ण सेवा खाता अस्थायी रूपमा असक्षम पार्नुहोस्।
१. नयाँ सेवा खाता कुञ्जीहरू लीक गरिएको कुञ्जीद्वारा उत्पन्न गरिएको
2. कम्प्युट इन्जिन GPU उदाहरणहरू (A100/H100/T4) विदेशी क्षेत्रहरूमा फैलियो
३. परिमार्जित परियोजना IAM नीति बन्धनहरू (roles/owner वा roles/editor)।
GCP क्लाउड अडिट लगहरू (Logs Explorer) क्वेरी प्रयोग गर्दै:
protoPayload.authenticationInfo.principalEmail="<service-account-email>"
४। OpenAI (sk-proj-...एन्थ्रोपिक (sk-ant-...), र अँगालो फेस (hf_...) ओपनएआई / एन्थ्रोपिक: मानक प्लेनटेक्स्ट पुशहरू स्वत: रद्द गर्न GitHub सँग साझेदार (usually within 30 to 120 seconds), जसको समयमा बटहरूले अझै हजारौं समानान्तर फायर गर्न सक्छन् gpt-4o / claude-3-5-sonnet अनुरोधहरू। 1. मा कुञ्जी मेटाउनुहोस् platform.openai.com/api-keys वा console.anthropic.com/settings/keys
२. तल्लो मासिक खर्च सीमा (Hard Cap) इन-फ्लाइट समानान्तर स्ट्रिमहरू रोक्न बिलिङ सेटिङहरूमा।
** संगठन व्यवस्थापक कुञ्जी (sk-admin-...):** यदि OpenAI Admin API कुञ्जी लीक भयो भने, बोटले प्रोग्रामेटिक रूपमा कल गर्न सक्छ POST /v1/organization/admin_api_keys तपाईंले पहिलो रद्द गर्नु अघि ब्रान्ड-नयाँ परियोजना API कुञ्जीहरू मिन्ट गर्न। संगठनमा सबै कुञ्जीहरू अडिट गर्नुहोस्। ओपनएआई / एन्थ्रोपिक उपयोग ड्यासबोर्ड (check activity by API key and model tier)।
५। GitHub व्यक्तिगत पहुँच टोकन (ghp_... / github_pat_...) वा NPM टोकन (npm_...) हो (Instant): GitHub ले स्वचालित रूपमा कुनै पनि रद्द गर्दछ ghp_ वा github_pat_ स्प्लिट-सेकेन्ड टोकन यसलाई सार्वजनिक GitHub भण्डारमा धकेलिएको छ। यदि गैर-गिटहब होस्टमा धकेलियो (GitLab, Bitbucket, Pastebin, or Slack) मा म्यानुअल रूपमा रद्द गर्नुहोस् github.com/settings/tokens(or npmjs.com -> Access Tokens)। सप्लाई-चेन मालवेयर इन्जेक्शन: तपाईंको साथमा आक्रमणकारी ghp_ वा npm_ टोकनले तुरुन्तै खराब ब्याकडोर कमिटलाई तपाइँको निजी रिपोमा धकेल्नेछ, एक दुष्ट थप्नुहोस् ** कुञ्जी / GitHub कार्य कार्यप्रवाह (डिप्लोय गर्नुहोस्)pull_request_target)**, वा तपाईंको NPM प्याकेजको ट्रोजनाइज्ड संस्करण प्रकाशित गर्नुहोस्। GitHub सेटिङहरू -> सुरक्षा लग (audit repo.create, hook.create, org.add_member, and oauth_authorization)।

भाग २: गहिरो डाइभ: कसरी तपाईंको 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 कन्सोलमा रहेको कुञ्जीले अस्थायी रूपमा अमान्य ** गर्दैन** 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": "*"
    }]
  }'

चरण २: CloudTrail मा ब्याकडोर IAM प्रयोगकर्ताहरू, भूमिकाहरू र पहुँच कुञ्जीहरूको खोजी गर्नुहोस्

बटले लुकेको ब्याकडोर IAM प्रयोगकर्ता सिर्जना गरेको छ वा विन्डोको समयमा तपाईंको अवस्थित कर्मचारी खाताहरू मध्ये एउटामा माध्यमिक पहुँच कुञ्जी संलग्न गरेको छ कि छैन भनी जाँच गर्न यी AWS CLI आदेशहरू चलाउनुहोस्:

# 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+ Rogue EC2 उदाहरणहरू, अटो स्केलिंग समूहहरू, र Bedrock/SageMaker कार्यहरूका लागि AWS क्षेत्रहरू

किन पीडितहरूले अझै पाउँछन् $12,000 महिनाको अन्त्यमा बिल तिनीहरूले "EC2 ड्यासबोर्ड जाँच गरे र शून्य उदाहरणहरू देखे" पछि? किनभने AWS कन्सोलले एक पटकमा एउटा क्षेत्र मात्र देखाउँछ (e.g., us-east-1), बट माथि उठ्दा 20 ** मा उदाहरणहरूap-south-1 (Mumbai), eu-north-1 (Stockholm), र sa-east-1 (Sao Paulo)**, र तिनीहरूलाई भित्र लुकाउनुहोस् EC2 अटो स्केलिंग समूहहरू (ASGs) त्यसैले यदि तपाईंले EC2 उदाहरण म्यानुअल रूपमा समाप्त गर्नुभयो भने, स्वत: स्केलिंग समूहले प्रतिस्थापन सुरु गर्दछ। 30 seconds पछि।

**प्रत्येक सक्रिय AWS क्षेत्रमा **सबै चलिरहेको वा पेन्डिङ EC2 उदाहरणहरू सूचीबद्ध गर्न यो बहु-क्षेत्र ब्यास वन-लाइनर चलाउनुहोस्। 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 उदाहरणहरू समाप्त गर्नु अघि: ** जाँच गर्नुहोस् EC2 -> Auto Scaling Groups(and EC2 Spot Fleet Requests / ECS Clusters / EKS Node Groups / SageMaker Notebook & Training Jobs) प्रत्येक प्रभावित क्षेत्रमा र अटो स्केलिंग समूह / स्पट अनुरोध पहिलो ** मेटाउनुहोस्, त्यसपछि उदाहरणहरू समाप्त गर्नुहोस्। - ** AWS बेडरोक जाँच गर्नुहोस् (Model Invocation Logging) र Amazon SES: ** आधुनिक क्रेडेन्शियल-फसलिङ बटहरूले अब तुरुन्तै AWS Bedrock (Claude 3.5 Sonnet / Llama 3) LLM टोकनहरू पुन: बेच्नको लागि तपाईंको चोरी AWS प्रमाणहरू प्रयोग गर्दै (which does not show up under EC2 at all)। जाँच गर्नुहोस् ** AWS लागत एक्सप्लोरर (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

  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. हिडन GitHub क्यास ट्र्याप (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) फोहोर संकलन नहुँदासम्म । - ** कसरी GitHub मा क्यास गरिएको कमिट SHA लाई तुरुन्तै सफा गर्ने: 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)।


भाग ४: कसरी प्राप्त गर्ने $5,000 to $100,000+ AWS वा GCP बोट बिल माफ गरियो (The Courtesy Forgiveness Appeal)

यदि तपाईंले एक धक्का दिनुभयो भने के हुन्छ .env शुक्रबार दिउँसो फाइल, सोमबार बिहान सम्म आफ्नो इमेल जाँच गरेन, र एक ** मा उठ्यो$28,400.00 AWS वा Google क्लाउड बिल** क्रिप्टो-खनन वा LLM-प्रोक्सी बटहरूबाट?

**आतंकित नहुनुहोस्, र आफ्नो क्रेडिट कार्ड रद्द नगर्नुहोस् वा अझै बैंक चार्जब्याक फाइल नगर्नुहोस्। ** दुबै अमेजन वेब सेवाहरू (AWS) र गुगल क्लाउड प्लेटफर्म (GCP) व्यक्तिगत विकासकर्ताहरू, विद्यार्थीहरू र स्टार्टअपहरूका लागि एक पटकको दुर्घटना प्रमाण चुहावट बिलिङ समायोजन / सौजन्य क्रेडिट नीति स्थापित आन्तरिक प्रदान गरिएको छ 100% तिनीहरूको अनिवार्य सुरक्षा सुधार चेकलिस्टको पहिले तिनीहरूको बिलिङ समीक्षा टोलीले तपाईंको अपीलको मूल्याङ्कन गर्छ।

5-चरण AWS / GCP बिल छूट प्रोटोकल (90%+ Success Rate for First-Time Leaks)

  1. प्रत्येक सुरक्षा सुधारको पहिलो चरण पूरा गर्नुहोस् (AWS Will Reject Your Waiver Until the Account Is Clean:
    • सम्झौता गरिएको IAM पहुँच कुञ्जी मेटाउनुहोस् (and the IAM User if possible)।
    • प्रत्येक अनाधिकृत EC2 उदाहरण, अटो स्केलिङ्ग समूह, EBS भोल्युम, इलास्टिक आईपी, RDS उदाहरण, र S3 बाल्टी सबै क्षेत्रहरूमा समाप्त गर्नुहोस् (verify via AWS Cost Explorer and AWS Billing -> Bills -> Charges by Region that daily accrual has dropped back to $0.00)।
    • सक्षम हार्डवेयर वा प्रमाणक एप MFA (Multi-Factor Authentication) तपाईंको AWS रूट खाता र प्रत्येक IAM प्रयोगकर्तामा।
  2. ** अन्तर्गत एक समर्थन केस खोल्नुहोस् "Account and Billing" (Free for All AWS/GCP Tiers, No Paid Support Plan Required:**
    • जानुहोस् console.aws.amazon.com/support/home -> केस सिर्जना गर्नुहोस् -> खाता र बिलिङ -> सेवा: बिलिङ -> श्रेणी: विवाद शुल्क / सम्झौता खाता।
  3. यो सही तथ्यात्मक उपचार र कठिनाइ सारांश पेश गर्नुहोस्:
    • **टाइमलाइन र कारणलाई स्वीकार गर्नुहोस्: ** 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 अनाधिकृत बोट बिलले गम्भीर आर्थिक कठिनाइ निम्त्याउनेछ, र धोखाधडी प्रयोगको लागि एक पटकको शिष्टाचार बिलिङ क्रेडिट/माफी माग्नुहोस्।
  4. अस्थायी रूपमा आफ्नो लिङ्क गरिएको भुक्तानी कार्ड स्व्याप वा क्याप गर्नुहोस् यदि स्वत: बिलिङ नजिक छ:
    • जब तपाइँको AWS बिलिङ समर्थन मामला समीक्षा अन्तर्गत छ (which usually takes 5 to 15 business days AWS सुरक्षा र बिलिङ सेवा टोलीहरूले सबै दुष्ट स्रोतहरू समाप्त भएको पुष्टि गर्दा, टिकट भित्र AWS समर्थनलाई सम्पर्क गर्नुहोस् र तिनीहरूलाई ** अस्थायी बिलिङ होल्ड (defer auto-charge)** विवादित इनभ्वाइसमा ताकि क्रेडिट समायोजन प्रक्रियामा रहेको बेला यसले तपाईंको बैंक खातालाई ओभरड्राफ्ट गर्दैन।

Warning

किन तपाईंले क्लाइन्ट-साइड कोडमा हार्डकोड कुञ्जीहरू कहिल्यै गर्नु हुँदैन (NEXT_PUBLIC_, VITE_, REACT_APP_, मोबाइल एप्स, वा क्रोम एक्सटेन्सनहरू। ** तपाईंको GitHub भण्डार हो भने पनि 100% निजी, गोप्य API कुञ्जी राख्दै (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_... वा HTTP रेफरर / पङ्क्ति-स्तर सुरक्षा द्वारा प्रतिबन्धित फायरबेस क्लाइन्ट कन्फिगरेसन) कहिले पनि फ्रन्टएन्ड कोड छुन सक्छ।

Tip

** स्थापना गर्नुहोस् gitleaks वा trufflehog 60 सेकेन्डमा स्थानीय पूर्व-कमिट हुकको रूपमा (So git Refuses to Commit a Secret Ever Again) ** शारीरिक रूपमा असम्भव बनाउनको लागि गल्तिले एक गर्न .env फाइल वा API कुञ्जी तपाईंको ल्यापटपमा फेरि स्थापना गर्नुहोस् gitleaks(brew install gitleaks) र थप्नुहोस् a .pre-commit-config.yaml हुक (or turn on GitHub's free **"Push Protection for yourself"** at **github.com/settings/security_analysis**)। पुश संरक्षण सक्षम भएकोले, GitHub को सर्भरहरूले तपाईंको निरीक्षण गर्दछ git push ट्रान्जिटमा र पुश अस्वीकार गर्नुहोस् यो भण्डारमा अवतरण हुनु अघि जब पनि पहिचान योग्य कुञ्जी ढाँचा पत्ता लगाइन्छ।

(सम्बन्धित विकासकर्ता र रिमोट-वर्क सुरक्षा घटनाहरूको लागि, हेर्नुहोस् दुर्घटना उत्पादन डाटाबेस ड्रप, git बल-पुश, गोप्य चुहावट, र घटना triage, हालको ब्याकअप बिना उत्पादन डाटाबेस छोडियो वा 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, र राज्य महान्यायाधिवक्ताहरू यदि क्लाउडट्रेल वा स्ट्राइप लगहरूले बाह्य आईपीले तपाइँको लीक कुञ्जी प्रयोग गरेको देखाउँदछ 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 फ्लो लगहरूमा अनाधिकृत पहुँचलाई फोरेन्सिक रूपमा अस्वीकार गर्न सक्नुहुन्न भने, भित्र आफ्नो पर्यवेक्षक अधिकारीलाई सूचित गर्नुहोस्। 72 hours।
युनाइटेड किंगडम युके GDPR र डेटा संरक्षण ऐन २०१८ ** सूचना आयुक्तको कार्यालय (ICO: 0303 123 1113)** र NCSC (ncsc.gov.uk) ** UK ICO भित्र अनाधिकृत व्यक्तिगत डेटा पहुँच रिपोर्ट गर्नुहोस् 72 hours** ICO को अनलाइन उल्लंघन मूल्याङ्कन पोर्टल प्रयोग गर्दै; तपाईंको कुञ्जी रोटेशन र IAM क्वारेन्टाइन चरणहरू कागजात गर्नुहोस्।
क्यानाडा, अष्ट्रेलिया र न्युजिल्याण्ड ** क्यानाडा PIPEDA
अष्ट्रेलिया Privacy Act 1988 (NDB Scheme)
न्यूजील्याण्ड Privacy Act 2020**
ओपीसी (Canada), OAIC र ACSC (Australia: 1300 CYBER1), र ओपीसी (New Zealand) रिपोर्ट योग्य यदि प्रमाणिक जोखिमले महत्त्वपूर्ण हानिको वास्तविक जोखिम सिर्जना गर्दछ (RROSH क्यानाडामा) वा योग्य डाटा उल्लंघन (Australia OAIC) व्यक्तिगत जानकारी समावेश।

बारम्बार सोधिने प्रश्नहरू

यदि मैले बुझें भने मैले एक धक्का दिए .env सार्वजनिक GitHub रिपोमा फाइल गर्नुहोस् र 2 मिनेट पछि रिपो निजी बनायो, के मैले अझै पनि मेरो कुञ्जीहरू घुमाउन आवश्यक छ?

हो, त्यो फाइलमा भएका कुञ्जीहरूको 100 प्रतिशतलाई सम्झौता गरी तुरुन्तै खारेज गरिनुपर्छ। स्वचालित क्रेडेन्सियल-हर्वेस्टिङ बटहरू गुगलले तपाईंको भण्डार अनुक्रमणिकाको लागि पर्खदैनन्; तिनीहरू सिधै GitHub को वास्तविक-समय सार्वजनिक सदस्यता लिन्छन् `Events API` फायरहोस (`and GH Archive`), जसले हरेक सार्वजनिक प्रसारण गर्दछ `PushEvent` विश्वव्यापी रूपमा तपाइँको 1 देखि 3 सेकेन्ड भित्र `git push`। तपाईंले "सेटिङहरू -> रिपोजिटरी दृश्यता परिवर्तन गर्नुहोस् -> निजी बनाउनुहोस्" क्लिक गर्दा दुई मिनेट पछि, दर्जनौं स्वचालित स्क्र्यापर बटहरूले तपाईंको कमिट डिफ डाउनलोड गरिसकेका थिए र शोषणको लागि तपाईंको AWS, स्ट्राइप, OpenAI, र डाटाबेस प्रमाणहरू लामबद्ध गरिसकेका थिए।

मैले लीक मेटाएपछि पनि किन बटहरूले मेरो AWS खातामा EC2 उदाहरणहरू सुरू गरिरहे? AKIA पहुँच कुञ्जी?

एक स्थिर मेटाउँदै `AKIA...` AWS IAM मा पहुँच कुञ्जीले मात्र त्यो विशिष्ट स्थायी कुञ्जीलाई निष्क्रिय पार्छ; यसले अस्थायी रूपमा अमान्य गर्दैन `ASIA...` सुरक्षा टोकन सेवा (`STS`) सत्र टोकनहरू जुन आक्रमणकारीले पहिले नै प्रयोग गरेर उत्पन्न गरेको छ `sts:GetSessionToken` वा `sts:AssumeRole` तपाईको कुञ्जी स्क्र्याप गरेपछि पहिलो केहि सेकेन्डमा (`which remain valid for up to 12 to 36 hours`)। थप रूपमा, स्वचालित AWS आक्रमण स्क्रिप्टहरू नियमित रूपमा कल गर्दछ `iam:CreateUser` र `iam:CreateAccessKey` तिनीहरूको पहुँचको पहिलो सेकेन्डमा दोस्रो, लुकेको ब्याकडोर प्रशासक खाता रोप्न। सक्रिय AWS घुसपैठ पूर्ण रूपमा रोक्नको लागि, तपाईंले मेटाउनु पर्छ `AKIA` कुञ्जी, स्पष्ट संलग्न गर्नुहोस् `Deny *` सम्झौता IAM प्रयोगकर्तालाई इनलाइन नीति (`which immediately invalidates all minted STS tokens`), र कुनै पनि नयाँ सिर्जना गरिएको IAM प्रयोगकर्ता वा भूमिकाहरूको लागि CloudTrail अडिट गर्नुहोस्।

AWS वा गुगल क्लाउडले ठूलो माफ गर्नेछ $10,000+ यदि ह्याकरहरूले मेरो एपीआई कुञ्जी GitHub बाट चोरे र क्रिप्टो खनन गरे भने?

पहिलो पटकको आकस्मिक चुहावटको विशाल बहुमतमा, हो, यदि तपाईंले छिट्टै कार्य गर्नुभयो भने, तिनीहरूको सुरक्षा टोलीसँग पूर्ण रूपमा सहयोग गर्नुहोस्, र बीजकलाई बेवास्ता नगर्नुहोस्। AWS र गुगल क्लाउड दुबैमा विकासकर्ताहरू र साना व्यवसायहरूका लागि एक-पटके आन्तरिक शिष्टाचार बिलिङ समायोजन नीति छ जुन अनाधिकृत क्रेडेन्सियल-लीक स्पाइकहरूबाट प्रभावित छ। "खाता र बिलिङ" समर्थन अन्तर्गत बिल माफी अनुरोध गर्नु अघि, तपाईंले पहिले चुहावट 100 प्रतिशत बन्द छ भनेर प्रमाणित गर्नुपर्छ: खुला IAM कुञ्जीहरू रद्द गर्नुहोस्, सबै 30+ विश्वव्यापी क्षेत्रहरूमा सबै बदमाश कम्प्युट उदाहरणहरू र अटो स्केलिंग समूहहरू समाप्त गर्नुहोस्, बहु-कारक प्रमाणीकरण सक्षम गर्नुहोस् (`MFA`) तपाईंको रूट खातामा, र AWS बजेट लागत अलर्टहरू सेट अप गर्नुहोस्।

किन गर्छ git rm .env GitHub बाट मेरो गोप्य कुञ्जी हटाउनुहुन्न?

Git एक अपरिवर्तनीय संस्करण-नियन्त्रण खाता हो: जब तपाईं दौडनुहुन्छ `git rm .env` र नयाँ प्रतिबद्धता पुश गर्नुहोस्, Git ले मात्र रेकर्ड गर्दछ कि फाइल नयाँ स्न्यापसटमा अनुपस्थित छ (`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 दस्तावेज (GitHub Secret Scanning, Push Protection, & "Removing sensitive data from a repository" using git-filter-repo):** *साझेदार स्वत: खारेज कार्यक्रम (Stripe, AWS, OpenAI, NPM), git-filter-repo इतिहास पुन:लेखन, र पहुँचयोग्य क्यास कमिट SHAs हटाउने *।
  • ** स्ट्राइप इंक (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), र पूर्व-कमिट गोप्य स्क्यानिङ।