JA_NPM को बारेमा

NPM बाढीको केस-स्टडी: “खरायोको प्वालमा चिया खोज्दै”

At जाइगेनी, हामी विगत एक वर्षदेखि सार्वजनिक खुला स्रोत प्याकेज रजिस्ट्रीहरूलाई शंकास्पद गतिविधि वा स्वाभाविक रूपमा दुर्भावनापूर्ण कोडको लागि निगरानी गर्ने व्यापक प्रणाली कार्यान्वयन गर्न व्यस्त छौं।

यो पूर्वाधारले हामीलाई दैनिक प्रकाशित सबै प्याकेजहरूको वास्तविक समयमा विश्लेषण गर्न अनुमति दिन्छ। साथै, यसले हामीलाई असामान्य प्रयोगकर्ता व्यवहारहरूको निगरानी गर्न अनुमति दिन्छ।

प्याकेज रजिस्ट्रीहरूमा मालिसियस कोडको उपस्थिति राम्ररी थाहा भए पनि, त्यहाँ अन्य अनौठा वा असामान्य व्यवहारहरू छन् जुन यी रजिस्ट्रीहरूको नियमित प्रयोगकर्ताहरूले पूर्ण रूपमा बेवास्ता गर्छन्। हामीमध्ये जो तिनीहरूमाथि नजिकबाट निगरानी राख्छौं, तिनीहरूको लागि पनि यस्तो व्यवहारको कारण वा व्याख्या पत्ता लगाउन सजिलो छैन।

समस्याको सामना गर्दा हाम्रो दृढता नै जाइजेनी टोलीको विशेषता हो, त्यसैले हामीले यसमा गहिरिएर अध्ययन गर्यौं।

यो सबै तथ्याङ्कको उछालबाट सुरु भयो।

मैले पहिले उल्लेख गरेझैं, हाम्रो पूर्वाधारको भागको रूपमा, हामी सार्वजनिक खुला स्रोत प्याकेज रजिस्ट्रीहरूमा धेरै गतिविधि मेट्रिक्सको निगरानी गर्छौं।

मार्चको अन्तिम दिनहरूमा, मेरो काम गर्ने सहकर्मी कार्मेनले अलार्म उठाए। हामीले यसमा ठूलो विचलन देख्न थाल्यौं NPM मा प्रकाशित प्याकेजहरूको संख्या। प्रारम्भिक समीक्षा पछि, हामीले पत्ता लगायौं कि यो विचलन मुख्यतया अपेक्षाकृत कम संख्यामा प्रयोगकर्ताहरूको कारणले भएको थियो जसको प्याकेज प्रकाशन दर अचानक बढेको थियो।

यसले हामीलाई प्लेटफर्म भित्र हाम्रो प्रक्रिया र यससँग सम्बन्धित डेटा समीक्षा गर्न प्रेरित गर्‍यो। सौभाग्यवश, हाम्रो समीक्षाले डेटा सही देखिन्थ्यो भन्ने निर्धारण गर्‍यो, तर यो पनि केही हदसम्म अचम्मलाग्दो थियो!

थप निरीक्षण पछि, हामीले यी प्याकेजहरूमा धेरै सामान्य विशेषताहरू साझा गरेको पायौं:

  • प्रकाशकहरू नयाँ सिर्जना गरिएका प्रयोगकर्ताहरू थिए, बढीमा एक वा दुई महिनाभन्दा पुरानो थिएनन्।
  • प्याकेजहरूको नाम अनियमित जस्तो देखिन्थ्यो, सम्भवतः शब्दकोश प्रयोग गरेर उत्पन्न गरिएको। हामी अनौठो नामहरू भएका प्याकेज नामहरू फेला पार्न सक्छौं जस्तै enormous_mite-smiletea, एरिक-मंगुट९४-सुकिविर, विदेशी_सरीसृप-एप्टेडभ or स्पष्ट_टुना-एप्टिडेभहामीले फेला पारेका सम्पत्तिहरूको केही उदाहरणहरू सहितको परिशिष्ट समावेश गर्नेछौं।
  • यी प्याकेजहरूको सामग्री धेरै समान थियो, प्रायः उस्तै।

यस सन्दर्भमा, हामीले देख्यौं कि प्याकेजहरू मध्ये एकमा पाइथन स्क्रिप्ट समावेश थियो, सम्भवतः दुर्घटनावश, जुन प्याकेजहरू स्वचालित रूपमा प्रकाशित गर्न प्रयोग गरिएको देखिन्छ।

npm

जाल खोल्दै

गत महिनामा यी मध्ये केही प्रकाशकहरूको प्रकाशन गतिविधि निम्न समयरेखा चार्ट अनुसार गरिएको छ:

 

npm आक्रमण

यस घटनासँग सम्बन्धित पूर्ण तथ्याङ्कहरू यहाँ दिइएका छन् जुन हामी साझा गर्न सक्छौं:

npm जाँच

यी प्रयोगकर्ताहरूसँग सम्बन्धित केही प्याकेजहरूको व्यक्तिगत समीक्षाबाट केही पनि सान्दर्भिक कुरा निस्किएन। यसले हामीलाई यी सबैको समग्र तस्वीरको विश्लेषण गर्न, यो सफलताको बारेमा सुराग प्रदान गर्न सक्ने ढाँचाहरू खोज्न प्रेरित गर्‍यो।

आखिर, हामीसँग विश्लेषण गर्नका लागि राम्रा मुट्ठीभर प्याकेजहरू छन्:

npm आक्रमण ४

विश्लेषणबाट हामीले हाइलाइट गर्न सक्ने मुख्य बुँदाहरू यी हुन्:

  • धेरै NPM प्याकेजहरू अन्तरसम्बन्धित छन्। केहीलाई अरूको निर्भरताको रूपमा सन्दर्भ गरिएको छ।
  • अनौठा प्याकेजहरू भए तापनि र सायद कसैलाई पनि तिनीहरूको अस्तित्वको बारेमा थाहा नभए पनि, केहीमा साप्ताहिक रूपमा धेरै डाउनलोडहरू हुन्छन्। सामान्य प्रयोगकर्ताले जस्तै प्याकेजहरू डाउनलोड गर्न चाहन्छन् भन्ने कुरा स्वीकार गर्न गाह्रो छ। ०mc०३esid. 
  • कतिपयसँग सम्बद्ध भण्डारहरू छन्। कहिलेकाहीँ यी भण्डारहरूका मालिकहरू npm मा भएका जस्तै डमी खाताहरू जस्तो देखिन्छन्।

नोट: प्रयोगकर्ताहरूले अतिरिक्त प्याकेजहरू तरंगहरूमा अपलोड गर्छन्, त्यसैले प्रदान गरिएको डेटा थोरै फरक हुन सक्छ।

npm आक्रमण ४

यो सम्बन्धित भण्डारहरू मध्ये एकको उदाहरण हो। यसमा केही प्रकाशित प्याकेजहरूको कोड समावेश छ। साथै केही अन्य फाइलहरू, जस्तै चिया.यामल फाइल।

अभिनेता(हरू) लाई भेट्दै

यो एकल लेखकको काम हो वा धेरै सहयोगीहरूको काम हो भनेर निर्धारण गर्न गाह्रो छ। यद्यपि, हामीसँग यस गतिविधिको उत्पत्तिलाई संकुचित गर्ने केही प्रमाणहरू छन्:

  • भाषा: कोडमा भएका केही टिप्पणीहरू इन्डोनेसियाली भाषामा छन्।
npm आक्रमण ४
  • स्थान: सम्बन्धित भण्डारहरूका केही मालिकहरूले इन्डोनेसियामा आफ्नो स्थान संकेत गर्छन्।
  • GitHub मा रहेको गतिविधि मेटाडेटा मार्फत हामीले पहिचान गर्न सक्ने स्थानले इन्डोनेसियालाई पनि औंल्याउँछ।
NPM_JA ले

पाँच बजेको चिया

इन्डोनेसिया बेलायती उपनिवेश भएकोले, यहाँ चिया पिउनको लागि पूर्ण रूपमा उपयुक्त हुन्छ। यद्यपि, यस अवस्थामा, यो एकदमै विशेष प्रकारको चिया हो।

के तपाई सम्झनुहुन्छ चिया.यामल सुरुमा हामीले कस्ता फाइलहरू देख्यौं? त्यतिबेला, हामीले तिनीहरूको सामग्री देखाएका थिएनौं, तर यो यस्तो देखिन्थ्यो:

npm आक्रमण ४

यी फाइलहरू सम्बन्धित देखिन्छन् चिया प्रोटोकलतर वास्तवमा यो के हो? हामी पुग्यौं https://tea.xyz/blog/250k-grant-for-open-source-developers, जसले उद्देश्यको बारेमा कुरा गर्छ:

खुला स्रोत विकासकर्ताहरूको लागि अपर्याप्त क्षतिपूर्तिको लामो समयदेखिको मुद्दालाई सम्बोधन गरेर चियाले डिजिटल संसारलाई हल्लाइरहेको छ। यो समस्या समाधान गर्नु पहिलेभन्दा बढी जरुरी छ, त्यसैले हामीले प्रोटोकल सुरु हुनुभन्दा अगाडि $२५० हजार अनुदान परिचालन गर्ने निर्णय गरेका छौं। यो प्रारम्भिक चरणको उद्देश्य खुला स्रोत सफ्टवेयर इकोसिस्टममा भौतिक प्रभाव पार्ने खुला स्रोत परियोजनाहरूको मर्मतकर्ताहरूलाई समर्थन गर्नु र चिया प्रोटोकल इन्सेन्टिभाइज्ड टेस्टनेटभन्दा ३० भन्दा बढी टी-रैंक अगाडि राख्नु हो।"

चिया प्रोटोकल कागजातहरू अनुसार: 

"चिया प्रोटोकलमा दर्ता हुनको लागि परियोजनालाई tea.yaml फाइल चाहिन्छ जसले परियोजनाको संविधानको रूपमा काम गर्दछ जसले यसको योगदानकर्ताहरूको संख्या र निश्चित कार्यहरू गर्न आवश्यक पर्ने मतहरूको संख्यालाई नियन्त्रण गर्दछ।"

 

चिया नेटवर्कमा पहुँच गरेपछि हामीले एउटा प्याकेज खोज्ने प्रयास गर्यौं जुन हाम्रो प्रतिष्ठा बढाइरहेको शंका थियो। हामीले यो फेला पार्यौं:

यसले यहाँ के भइरहेको छ भनेर व्याख्या गर्छ जस्तो देखिन्छ: केही प्रयोगकर्ताहरूले teaRank लाई अपहरण गर्न र चिया संघले प्रदान गर्ने फाइदाहरू प्राप्त गर्न आफ्नो खुला स्रोत परियोजनाहरूलाई काल्पनिक लोकप्रियताले बढावा दिइरहेका छन्। आखिर, पैसा सबैभन्दा पुरानो चालक शक्ति हो, यौनसँगै। 

निष्कर्ष र अन्तिम विचार

यद्यपि यी NPM प्याकेजहरूमा दुर्भावनापूर्ण कोडको कुनै प्रमाण फेला परेको छैन, र तिनीहरूले सम्भवतः कसैलाई पनि प्रयोग गर्ने उद्देश्य राखेका थिएनन्, तिनीहरूले सम्भावित रूपमा NPM, GitHub, वा चिया संघका धेरै सेवा सर्तहरू (TOS) उल्लङ्घन गर्न सक्छन्। यद्यपि, यो हाम्रो कामको दायरा बाहिर पर्छ (यद्यपि तिनीहरूलाई सूचित गरिएको छ र तिनीहरूले उपयुक्त ठानेका कारबाहीहरू गरिनेछ)। यी प्लेटफर्महरूको दुरुपयोगले हामी र हाम्रा संस्थाहरूलाई कुनै न कुनै रूपमा असर गर्नेछ।

स्पष्ट कुरा के छ भने कुनै पनि निर्दोष देखिने खुला स्रोत प्याकेजले पूर्ण प्रासंगिक जानकारी बिना बुझ्न गाह्रो व्यवहारहरू राख्न सक्छ।

एक विकासकर्ताको रूपमा, हामीले विकास गर्ने र कायम राख्ने अनुप्रयोगहरूमा प्रयोग हुने सबै खुला-स्रोत प्याकेजहरूलाई निश्चित स्तरको आश्वासनका साथ म्यानुअल रूपमा नियन्त्रण गर्न मलाई चुनौतीपूर्ण लाग्छ। यो नियन्त्रणलाई स्वचालित गर्ने उपकरणको मद्दत बिना, कार्यले हाम्रा टोलीहरूको अनगिन्ती घण्टा खपत गर्न सक्छ।

खुला स्रोत क्षेत्रहरू सुरक्षित ठाउँहरू हुन् भन्ने विश्वास गर्दै, अर्को तरिकाले हेर्ने विकल्प सधैं हुन्छ। सौभाग्यवश, मलाई विश्वास छ कि यो मानसिकता आज धेरै व्यापक छैन; यो केस व्यावहारिक रूपमा हानिरहित भएको छ, तर हामीले हालसालै धेरै गम्भीर घटना अनुभव गरेका छौं। XZ ब्याकडोर, र यो भएको छैन एक मात्र.

यदि तपाईंले यहाँसम्म पढ्नुभएको छ भने, मलाई आशा छ कि तपाईंले यो जिज्ञासु कार्यक्रमको सबै जटिलताहरूको आनन्द लिनुभएको छ। तपाईंको संस्थाको सुरक्षामा Xygeni ले के योगदान गर्न सक्छ भनेर समीक्षा गर्न केही मिनेट बिताउन नबिर्सनुहोस्।

परिशिष्ट: अन्तिम लेखमा समावेश गर्नुपर्ने सम्बन्धित सम्पत्तिहरूको सूची बनाउनुहोस्

प्रकाशित प्याकेजहरूको संख्याको आधारमा NPM थप सान्दर्भिक प्रयोगकर्ताहरू: vndra, wanzaty, artknight404, seblakkuah, Mikrositer, kellyman17

तिनीहरूको सम्बन्धित प्याकेजहरूको सानो नमूना: mikrositer, cryndex, arts-dao, seblakkuah, vndrabnb, vndrave, depfif, depsik, depeit, depnin, Dopon, kellymanteasproject।

tea.yml फाइलहरू भएका केही सम्बन्धित GitHub भण्डारहरू:

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

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

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