TL; ड
यो जाइजेनी सुरक्षा अनुसन्धान टोली पहिचान दुर्भावनापूर्ण npm प्याकेज, @dappaoffc/baileys-mod, व्यापक रूपमा प्रयोग हुने व्हाट्सएप वेब एपीआई पुस्तकालयको फोर्कको रूपमा प्रकाशित @whiskeysockets/baileys.
संस्करण ८.०.१ बाट सुरु हुँदै, यो दुर्भावनापूर्ण npm प्याकेज भित्र रनटाइम कोड इन्जेक्सन समावेश छ। lib/Socket/newsletter.js। इन्जेक्टेड लजिकले विकासकर्ताको प्रमाणित व्हाट्सएप बट सत्रलाई आक्रमणकारी-नियन्त्रित न्यूजलेटर च्यानलहरूमा चुपचाप सदस्यता दिन्छ।
मोड्युल लोड भएको ८० सेकेन्डमा पेलोड सक्रिय हुन्छ र GitHub बाट यसको लक्ष्य सूची गतिशील रूपमा पुन: प्राप्त गर्दछ, जसले गर्दा व्यवहार स्व-अद्यावधिक हुन्छ र स्थापना-समय विश्लेषण मार्फत पत्ता लगाउन गाह्रो हुन्छ।
प्राविधिक अवलोकन
नयाँ प्रकाशित निर्भरताहरूको नियमित अनुगमनको क्रममा, Xygeni सुरक्षा अनुसन्धान टोलीले असामान्य व्यवहार पत्ता लगायो @dappaoffc/baileys-mod, पछि पुष्टि भयो कि दुर्भावनापूर्ण npm प्याकेज व्हाट्सएप बट इकोसिस्टमलाई लक्षित गर्दै।
क्रेडेन्सियल-स्टिलिङ वर्म्स वा र्यान्समवेयर ड्रपरहरू भन्दा फरक, यो दुर्भावनापूर्ण npm प्याकेजले विकासकर्ता र सामान्यतया फोर्क गरिएको खुला स्रोत पुस्तकालय बीचको विश्वास सम्बन्धको दुरुपयोग गर्दछ।
प्याकेजले आफूलाई परिमार्जित संस्करणको रूपमा प्रस्तुत गर्दछ बेली, एक लोकप्रिय व्हाट्सएप वेब एपीआई कार्यान्वयन जुन स्वचालन बटहरू निर्माण गर्न व्यापक रूपमा प्रयोग गरिन्छ। त्यो इकोसिस्टम भित्र, फोर्कहरू स्थापना गर्नु सामान्य अभ्यास हो। फलस्वरूप, आक्रमणकारीले जोखिमको शोषण गर्नुको सट्टा यथार्थपरक वितरण मोडेलको लाभ उठायो।
महत्त्वपूर्ण कुरा:
- यो प्रि-इन्स्टल स्क्रिप्टले Node.js संस्करणलाई मात्र मान्य गर्दछ
- स्थापनाको समयमा कुनै पनि प्रमाणपत्र एक्सफिल्ट्रेसन हुँदैन।
- स्थापना पछि कुनै शंकास्पद गतिविधि देखा पर्दैन।
- इंजेक्शन रनटाइममा कडाइका साथ कार्यान्वयन हुन्छ।
यस डिजाइनको कारण, स्थापना-समय स्क्यानरहरूले दुर्भावनापूर्ण व्यवहार पत्ता लगाउन सक्दैनन्।
मालिसियस एनपीएम प्याकेज भित्र रनटाइम इन्जेक्सन मेकानिज्म
यो दुर्भावनापूर्ण npm प्याकेज भित्र रहेको दुर्भावनापूर्ण तर्क यहाँ बस्छ lib/Socket/newsletter.js, मोड्युलको कार्यान्वयन सन्दर्भ भित्र सिधै एम्बेड गरिएको।
आक्रमणकारीले इन्जेक्टेड ब्लकलाई इमिडिमेटीली इन्भोक्ड फंक्शन एक्सप्रेशन (IIFE) मा बेर्यो, जसले मोड्युल लोड हुने बित्तिकै कार्यान्वयनको ग्यारेन्टी दिन्छ।
यद्यपि, तुरुन्तै ट्रिगर गर्नुको सट्टा, पेलोडले ढिलाइ भएको कार्यान्वयन संयन्त्र प्रस्तुत गर्दछ:
ढिलाइ समाप्त भएपछि, पेलोडले नियन्त्रित अनुक्रम प्रदर्शन गर्दछ:
- ल्याउँछ JSON GitHub को कच्चा सामग्री URL बाट फाइल।
- व्हाट्सएप न्यूजलेटर आईडीहरूको सूची पार्स गर्दछ।
- सूचीमा दोहोरिन्छ।
- कलहरू
newsletterWMexQuery(id, QueryIds.FOLLOW)प्रत्येक प्रविष्टिको लागि। - दर-सीमा पत्ता लगाउने क्षमता कम गर्न स्पेसले पाँच सेकेन्डको अन्तराल अनुरोध गर्दछ।
- सबै रनटाइम त्रुटिहरूलाई चुपचाप दबाउँछ।
कोडले बाह्य स्क्रिप्टहरूको सट्टा आन्तरिक पुस्तकालय प्रकार्यहरूलाई आह्वान गर्ने भएकोले, परिणामस्वरूप ट्राफिक वैध प्रयोगकर्ता-सुरु गरिएका कार्यहरूबाट अलग गर्न नसकिने देखिन्छ। बाट व्हाट्सएपको प्रोटोकल परिप्रेक्ष्यमा, बोटले स्वेच्छाले ती च्यानलहरूको सदस्यता लिएको थियो।
प्राविधिक तुलना: वैध बनाम इंजेक्टेड व्यवहार
| घटक | वैध व्यवहार | दुर्भावनापूर्ण इंजेक्शन |
|---|---|---|
| स्थापना चरण | Node.js संस्करण मात्र प्रमाणित गर्छ | स्थापनाको समयमा कुनै देखिने दुर्भावनापूर्ण व्यवहार छैन |
| मोड्युल प्रारम्भीकरण | व्हाट्सएप सकेट कारखाना निर्यात गर्दछ | मोड्युल लोड हुँदा IIFE स्वचालित रूपमा कार्यान्वयन हुन्छ |
| कार्यान्वयन समय | ढिलो व्यवहार छैन | ८०-सेकेन्ड ढिलो सक्रियता |
| नेटवर्क संचार | व्हाट्सएप वेबसकेट प्रोटोकल मार्फत मात्र सञ्चार गर्छ | GitHub कच्चा सामग्रीमा आउटबाउन्ड फेच (गतिशील नियन्त्रण च्यानल) |
| समाचारपत्र कार्यहरू | प्रयोगकर्ता-प्रारम्भिक सदस्यता अनुरोधहरू | आन्तरिक पुस्तकालय API मार्फत स्वचालित FOLLOW अनुरोधहरू |
| त्रुटि ह्यान्डलिंग | सञ्चालन त्रुटिहरू प्रचार गर्छ | सबै अपवादहरूलाई चुपचाप दबाउँछ |
GitHub मार्फत गतिशील नियन्त्रण च्यानल
न्यूजलेटर आईडी सूची यहाँ होस्ट गरिएको छ:
यो डिजाइनले धेरै परिचालन फाइदाहरू प्रदान गर्दछ:
- नयाँ npm संस्करण प्रकाशित नगरी गतिशील पेलोड अद्यावधिकहरू
- विश्वसनीय TLS अन्त्यबिन्दु जुन सामान्य विकासकर्ता ट्राफिकमा मिसिन्छ
- कुनै आक्रमणकारी-व्यवस्थित पूर्वाधार आवश्यक छैन
- पहिले नै तैनाथ गरिएका बटहरूमा दृढता
इन्जेक्सन कारखानाको दायरा भित्र कार्यान्वयन हुने भएकोले, यसले आन्तरिक बन्दहरू पुन: प्रयोग गर्दछ जस्तै newsletterWMexQuery र delay बाह्य मोड्युलहरू आयात नगरी। यसले फुटप्रिन्टलाई कम गर्छ र स्टिल्थ बढाउँछ।
प्रभावकारी रूपमा, GitHub ले हल्का कमाण्ड वितरण च्यानलको रूपमा काम गर्दछ।
निर्भरता उपनाम र विशेषता संकेतहरू
प्याकेज मेटाडेटामा निम्न निर्भरता उपनाम समावेश छ:
यसले आक्रमणकारी-नियन्त्रित npm स्कोपमा महत्वपूर्ण क्रिप्टोग्राफिक निर्भरतालाई रिडिरेक्ट गर्छ।
थप रूपमा, मेटाडेटाले मूल लेखक र भण्डारलाई सन्दर्भ गरेर अपस्ट्रीम परियोजनाको प्रतिरूपण गर्दछ। यसले कथित वैधता बढाउँछ र आकस्मिक समीक्षाको समयमा छानबिन कम गर्छ।
यी संकेतहरूले जानाजानी पारिस्थितिक प्रणालीको मिश्रणलाई संकेत गर्छन् अवसरवादी हस्तक्षेप.
यस दुर्भावनापूर्ण npm प्याकेजको लागि सम्झौताका सूचकहरू
यो दुर्भावनापूर्ण npm प्याकेजको अनुसन्धान गर्ने सुरक्षा टोलीहरूले निम्न संकेतहरूको मूल्याङ्कन गर्नुपर्छ:
नेटवर्क सिग्नलहरू
- आउटबाउन्ड GET अनुरोधहरू निम्नमा
raw.githubusercontent.comव्हाट्सएप बोट प्रक्रियाहरूबाट - एप्लिकेसन तर्कले ट्रिगर नगरी हुने न्यूजलेटर फलो कार्यहरू
प्याकेज सिग्नलहरू
@dappaoffc/baileys-modसंस्करण 8.0.1 (र सम्भावित ८.०.०)- निर्भरता उपनाम पुनर्निर्देशन
libsignal - भित्र रनटाइम IIFE इंजेक्शन
newsletter.js
व्यवहार संकेतहरू
- पाँच-सेकेन्ड अन्तरालमा राखिएका FOLLOW अनुरोधहरू
- न्यूजलेटर सदस्यता अघि कुनै प्रयोगकर्ता अन्तरक्रिया छैन
- कोर लाइब्रेरी कोड भित्र मौन त्रुटि दमन
परम्परागत मालवेयर जस्तो नभई, यो आक्रमणलाई प्रमाणपत्रहरू एक्सफिल्टरेशन आवश्यक पर्दैन। दुरुपयोग पूर्ण रूपमा पहिले नै प्रमाणित सत्र सन्दर्भ भित्र हुन्छ।
Xygeni को साथ पत्ता लगाउने र न्यूनीकरण
यो केसले किन स्थापना-समय स्क्यानिङ मात्र अपर्याप्त छ भनेर देखाउँछ। मोड्युल लोड भएपछि दुर्भावनापूर्ण व्यवहार कार्यान्वयन हुन्छ र वैध व्यापार तर्क भित्र लुक्छ।
Xygeni को मालवेयर प्रारम्भिक चेतावनी (MEW) एउटै हस्ताक्षरमा भर पर्नुको सट्टा धेरै संकेतहरू सहसम्बन्धित गरेर यो प्याकेज पत्ता लगाइयो।
पूर्ण-स्रोत स्थिर विश्लेषण
MEW ले जीवनचक्र स्क्रिप्टहरू मात्र नभई पूर्ण प्याकेज स्रोत रूखहरूको निरीक्षण गर्दछ।
यस अवस्थामा, पत्ता लगाउने संकेतहरू समावेश थिए:
- अप्रत्याशित
fetch()व्हाट्सएप कोर मोड्युल भित्र कल गर्नुहोस् - GitHub को कच्चा सामग्रीमा आउटबाउन्ड सञ्चार
- रनटाइम तर्कमा सम्मिलित ढिलाइ भएका कार्यान्वयन ढाँचाहरू
- नेस्टेड साइलेन्ट त्रुटि ह्यान्डलिङ
व्यक्तिगत रूपमा, यी ढाँचाहरू सौम्य देखिन सक्छन्। यद्यपि, संयुक्त विश्लेषणले वैध बेली फोर्कसँग असंगत असामान्य व्यवहार प्रकट गर्दछ।
निर्भरता जोखिम सहसम्बन्ध
यो libsignal संवेदनशील निर्भरतालाई अप्रमाणित स्कोपमा रिडिरेक्ट गर्ने भएकाले उपनामले थप छानबिन सुरु गर्यो।
Xygeni सँग सम्बन्धित छ:
- प्रकाशक प्रतिष्ठाका संकेतहरू
- क्षेत्र स्वामित्व असंगतिहरू
- क्रिप्टोग्राफिक पुस्तकालयहरूमा निर्भरता पुनर्निर्देशन
- मेटाडेटा प्रतिरूपण सूचकहरू
यो स्तरित विश्लेषणले विश्वास दुरुपयोग पहिचान गर्दा झूटा सकारात्मकताहरूलाई कम गर्छ।
रनटाइम-सचेत आपूर्ति श्रृंखला नियन्त्रणहरू
यो दुर्भावनापूर्ण npm प्याकेज रनटाइममा कार्यान्वयन हुने भएकोले, प्रभावकारी रक्षाको लागि व्यवहार-सचेत विश्लेषण आवश्यक पर्दछ।
Xygeni ले मूल्याङ्कन गर्छ:
- ढिलाइ भएको कार्यान्वयन संयन्त्रहरू
- आन्तरिक API दुरुपयोग
- निर्भरता कोड भित्र आउटबाउन्ड नेटवर्क कलहरू
- तेस्रो-पक्ष पुस्तकालयहरू भित्र असामान्य नियन्त्रण प्रवाह
यसबाहेक, Guardrails नीतिहरू CI/CD सक्छ:
- निर्माणको क्रममा अप्रत्याशित आउटबाउन्ड कलहरू रोक्नुहोस्
- शंकास्पद निर्भरता ग्राफ परिवर्तनहरू पत्ता लगाउनुहोस्
- स्कोप रिडिरेक्सनमा प्रतिबन्धहरू लागू गर्नुहोस्
- गतिशील पेलोड पुन: प्राप्ति ढाँचाहरू फ्ल्याग गर्नुहोस्
त्यसकारण, नियन्त्रण केवल रजिस्ट्री टेकडाउनमा मात्र निर्भर हुँदैन।
आपूर्ति श्रृंखला सुरक्षाको लागि यो दुर्भावनापूर्ण npm प्याकेज किन महत्त्वपूर्ण छ?
यो दुर्भावनापूर्ण npm प्याकेजले आपूर्ति श्रृंखला दुरुपयोगमा संरचनात्मक परिवर्तनलाई प्रतिबिम्बित गर्दछ:
- स्थापना-समय पेलोडहरूको सट्टा रनटाइम कार्यान्वयन
- विश्वसनीय प्लेटफर्महरूमा होस्ट गरिएका गतिशील नियन्त्रण च्यानलहरू
- वैध आन्तरिक API हरूको दुरुपयोग
- अपस्ट्रीम मर्मतकर्ताहरूको नक्कल गर्न मेटाडेटा स्पूफिङ
आक्रमणकारीले सफ्टवेयर कमजोरीको फाइदा उठाएन। बरु, आक्रमणकारीले फोर्क र निर्भरता अपडेटहरूमा विश्वासको फाइदा उठायो।
फलस्वरूप, पत्ता लगाउन पूर्ण-स्रोत निरीक्षण, निर्भरता जोखिम सहसम्बन्ध, र रनटाइम-सचेत विश्लेषण आवश्यक पर्दछ, केवल स्क्रिप्ट स्क्यानिङ मात्र होइन।





