QuietPolyfill, diferwr NPM a atgyfododd

QuietPolyfill: Gollyngwr NPM a atgyfododd

TL; DR

Mae ugain o becynnau npm a gyhoeddwyd dros ddau ddiwrnod ddiwedd mis Gorffennaf a dechrau mis Awst 2026 yn cyflwyno eu hunain fel llyfrgelloedd cydrannau UI mewnol a chyfleustodau backend a rennir. Nid oes yr un ohonynt yn gweithredu'r swyddogaeth y maent yn ei hysbysebu. Mae pob un yn cludo dosbarth stub, README sy'n disgrifio'r pecyn fel un mewnol, a ffeil o'r enw _polyfill.js.

Y rhan ddiddorol yw o ble mae'r ffeil honno'n cael ei galw. Nid bachyn gosod mohono — nid yw'r maniffestau'n datgan unrhyw ragosod, gosod, nac ôl-osod o gwbl. Yn lle hynny, llinell olaf index.js yn darllen: try { require("./_polyfill"); } catch (_) {}Mae'r llwyth tâl yn rhedeg y tro cyntaf y bydd cod y rhaglen yn mewnforio'r pecyn. Gosod gyda --ignore-scripts, standard cyngor ar gyfer lleihau amlygiad i'r gadwyn gyflenwi yn ystod amser gosod, nid yw'n ei atal.

Beth _polyfill.js ei fod yn nôl ffeil weithredadwy benodol i'r platfform o un o dri gwesteiwr Cloudflare Workers, ei hysgrifennu i gyfeiriadur dros dro o dan enw ar hap, ei farcio'n weithredadwy, a'i lansio ar wahân i'r broses rhiant. Mae'r ffeil weithredadwy honno ei hun yn llwythwr: mae'n rhestru cynhyrchion diogelwch pwynt terfynol yn ôl enw proses, yn gwirio'r enw defnyddiwr cyfredol yn erbyn cyfrifon amgylchedd dadansoddi hysbys, yn clytio'r rhyngwynebau telemetreg AMSI ac ETW yn y cof, yn gosod persistence o dan enw cydran sain Windows, ac yn nôl trydydd ffeil ddeuaidd sawl megabyte o faint. Mae'r trydydd cam yn cyrraedd wedi'i amgryptio ac mae wedi'i ddadgryptio a'i weithredu yn y cof yn hytrach na'i ysgrifennu i ddisg.

Ar 1 Awst, tua phedair awr ar ôl i'r pecynnau gael eu cadarnhau'n faleisus ar ôl adolygiad â llaw, tynnwyd un deg naw o'r ugain enw oddi ar npm gan eu cyhoeddwr eu hunain mewn dilyniant o bum eiliad ar hugain. Ar 2 Awst cofrestrwyd un o'r enwau hynny eto - gan gyfrif gwahanol, yn cario'r un cod. Roedd y seilwaith dosbarthu yn gwasanaethu'r tri cham pan ysgrifennwyd hwn.

Pecynnau20 enw npm, ~74 o fersiynau cyhoeddedig
Enwi themâubeaver-ui-* (13), accounts-* (3), ynghyd â afisha-storybook-default, bcore-bravo-eslint-config, arbocrate-sla-prober-arbocrate-sla-prober-core, a.poltoradnev-package-c
sbardunMewnforio modiwl (require), nid sgript cylch bywyd npm
Cam 1_polyfill.js — adfer a lansio
Cam 2Llwythwr wedi'i gysylltu'n statig, wedi'i bacio â UPX ar Linux; cyfrifo diogelwch pwynt terfyn, clytio AMSI/ETW, dyfalbarhad
Cam 3beacon_linux.bin / beacon_mac.bin / update_win.exe, 4–13 MB; wedi'i ddanfon wedi'i amgryptio, wedi'i weithredu yn y cof
LlwyfannauLinux x64 ac arm64, macOS cyffredinol, Windows x64
CyhoeddwyrDau gyfrif, un sylfaen cod
Statws19 o 20 enw heb eu cyhoeddi gan y gweithredwr; 1 wedi'i ailgyhoeddi ac yn fyw; seilwaith dosbarthu yn fyw

Anatomeg ymosod

Cam 1 — y pecyn

Mae pob aelod yn cludo'r un siâp tair ffeil. mynegai.js yn allforio dosbarth gyda ynddo() sy'n gosod boolean, a fersiwn(), a ffurfweddu() sy'n uno gwrthrych opsiynau. Dim byd arall. DARLLENWCH.md yn rhoi llinell osod, a ei gwneud yn ofynnol llinell, a'r frawddeg “Pecyn mewnol. Gweler CONTRIBUTING.md am ganllawiau” — CYFRANNU.md nid yw yn y tarball.

_polyfill.js ychydig o dan 5 KB ac mae'n darllen fel cod seilwaith cyffredin. Mae'n agor gyda thri gwiriad amgylchedd:

if (process.env.DISABLE_TELEMETRY ||
    process.env.ANALYTICS_OPT_OUT ||
    process.env.DO_NOT_TRACK)
  return;

Rheolyddion preifatrwydd confensiynol yw'r newidynnau hynny. Yma maen nhw'n porthi a yw ffeil ddeuaidd yn cael ei lawrlwytho a'i gweithredu. Peiriant sy'n gosod PEIDIWCH_Â_OLRHAIO yn cael ei hepgor yn llwyr.

Nesaf daw stamp rhedeg unwaith: ffeil yn /tmp/.cyfnodolyn_dadansoddeg, neu cyflwr_dadansoddeg dan % TEMP% ar Windows, y mae ei amser addasu yn cael ei gymharu â ffenestr o 20,357 eiliad. O fewn y ffenestr honno mae'r modiwl yn dychwelyd ar unwaith, felly mae mewnforio dro ar ôl tro yn ystod adeiladu yn cynhyrchu un ymgais adfer yn hytrach na dwsinau.

Nid yw'r gwesteiwyr cyrchfan yn bresennol fel llythrennol. Maent yn cael eu cydosod yn ystod amser rhedeg o ddarnau:

["oob-worker.cf102-","baf.workers.d","ev"].join("") 

Mae tri gwesteiwr yn cael eu hadeiladu fel hyn ac yn cael eu cymysgu cyn eu defnyddio, felly mae'r drefn yn amrywio fesul gweithrediad. Mae adferiad yn HTTPS GET wedi'i binio i IPv4 gyda Asiant Defnyddiwr of nod-nôl/2.6 — gwerth credadwy i broses Node ei allyrru. Caiff ymateb o dan 1,000 beit ei daflu a cheisir y gwesteiwr nesaf.

Os bydd y tri yn methu, mae'r modiwl yn dychwelyd i DNS. Mae'n anfon ymholiad TXT ar gyfer c. i gael cyfrif darnau, yna ceisiadau 0. drwy n. mewn sypiau o ddeg, yn cyfosod yr atebion, ac yn datgodio'r canlyniad gyda base64. Mae'r llwybr hwn yn cario'r un ffeil weithredadwy dros gofnodion DNS TXT, sy'n goroesi amgylcheddau lle mae HTTP allanol yn cael ei hidlo ond nid yw datrys DNS.

Mae'r beitiau a adferwyd yn cael eu hysgrifennu i /var/tmp/.cache_<8-hex> ar Unix, neu %TEMP%\dotnet_diag_<8-hex>.exe ar Windows — enw ffeil sy'n darllen fel arteffact diagnostig .NET. Ar Unix rhoddir modd 0755 i'r ffeil. Lansio yw silio gyda datgysylltiedig: gwir, stdio: “anwybyddu”, a unrefer(), felly mae'r plentyn yn goroesi'r broses Node a'i dechreuodd; ar Windows mae'r galwad yn ychwanegu ffenestriCuddio: gwir.

Mae dau fanylyn yn cwblhau'r darlun. Diffinnir cynorthwyydd fel const _l = (…a) => proses.stderr.ysgrifennu(“”) yn cael ei alw ym mhob cam o'r adferiad — mae'n ysgrifennu llinyn gwag ac yn taflu ei ddadleuon, gan feddiannu'r safle lle byddai logio yn eistedd. Ac mae pob pecyn yn anfon ffeil 81 KB yn lib/telemetry.js y mae ei sylw pennawd yn disgrifio “Analytics SDK” gyda “chludo HTTPS gyda chylchdroi a hail-geisio pwynt terfyn” a “darganfod gwasanaeth seiliedig ar DNS ar gyfer methiant drosodd”. Yn yr adeiladwaith cyfredol nid oes dim yn ei gwneud yn ofynnol.

Cam 2 — y llwythwr

Mae'r ffeil ddeuaidd Linux x64 yn ffeil ELF sydd wedi'i chysylltu'n statig ac wedi'i chywasgu gyda UPX 3.96. Mae'r adeiladwaith macOS yn ffeil ddeuaidd gyffredinol sy'n cwmpasu x86_64 ac arm64; mae'r adeiladwaith Windows yn ffeil weithredadwy consol PE32+ wedi'i stripio. Cafodd y pedwar eu hadalw a'u harchwilio'n statig; ni chafodd yr un ohonynt eu gweithredu.

Mae mewnforion a thabl llinynnau'r adeiladwaith Windows yn disgrifio ei ymddygiad yn glir. Mae'n datrys IsDebuggerPresent, GwirioDadfygiwrPellPresent, a ProsesGwybodaethNtQuery, ac yn darllen SYSTEM\CurrentControlSet\Services\Disk\Enum — llwybr cofrestrfa y mae ei werthoedd yn nodi rheolwyr disg rhithwir. Mae'n galw GetDiskFreeSpaceExW ac StatwsMemoryGlobalEx, yn gyson â gwirio a yw adnoddau'r gwesteiwr yn cyfateb i enghraifft dadansoddi byrhoedlog.

Mae'n cynnwys rhestr o enwau defnyddwyr: Defnyddiwr Cyfredol, Gweinyddwr TG, Hong Lee, BLWCH PROFI, hapubws, milozs, Timmy, admin, malware, sampl, firws, amgylcheddMae nifer o'r rhain yn arteffactau o amgylcheddau dadansoddi sydd wedi'u dogfennu'n gyhoeddus.

Mae hefyd yn cynnwys rhestr o gynhyrchion diogelwch pwynt terfynol a'u henwau prosesau, wedi'u rhestru drwodd CreateToolhelp32 Ciplun ac Proses32Yn GyntafW/Proses32NesafW:

  • Hebog CrowdStrike (csfalconservice, CSFalconContainer)
  • Carbon Du (cb.exe)
  • Cychwyn (cylancesvc.exe)
  • BitDefender (bdagent.exe)
  • Kaspersky (avp.exe, kavfs.exe)
  • Trend Micro a Diogelwch Dwfn (coreServiceShell, ds_agent.exe)
  • Llygad Tân/Trellix (xagt.exe)
  • Taniwm (taniumclient.exe)
  • Hitmanpro (hmpalert.exe)
  • Elastig (elastic-agent.exe, elastic-endpoint, filebeat.exe, winlogbeat.exe)
  • Wazuh ac OSSEC (wazuh-agent.exe, ossec-agent.exe)
  • Gwiriwch Point
  • Ffenestri Amddiffynnwr

Mae dau symbol arall yn bresennol: AmsiScanBuffer, y pwynt mynediad y mae Windows yn ei ddatgelu ar gyfer sganio cynnwys yn y cof, a YsgrifennuDigwyddiad Etw, y swyddogaeth y mae Olrhain Digwyddiadau ar gyfer Windows yn cofnodi digwyddiadau drwyddi. Mae'r ddau yn dargedau cyffredin ar gyfer addasu yn ystod y broses sy'n atal y telemetreg y byddai'r rhyngwynebau hynny'n ei chynhyrchu fel arall.

Mae Persistence yn ymddangos ddwywaith ar Windows. Mae'r ffeil ddeuaidd yn cael ei chopïo i %APPDATA%\Microsoft\Windows\Themes\SystemSoundsService.exe, ac mae dau fecanwaith yn cyfeirio ato: gwerth o dan MEDDALWEDD\Microsoft\Windows\FersiwnGyfredol\Rhedeg, a thasg wedi'i hamserlennu wedi'i chofrestru fel

schtasks /Create /F /SC ONLOGON
  /TN "\Microsoft\Windows\Multimedia\SystemSoundsService"
  /TR "\"%s\""
  /RL HIGHEST

Mae llwybr y dasg, enw'r dasg, a'r enw gweithredadwy i gyd yn adlewyrchu cydran sain Windows ddilys. /RL UCHAF yn gofyn am y lefel breintiau uchaf sydd ar gael.

Mae'r adeiladwaith macOS yn dilyn yr un patrwm gydag enwau sy'n briodol i'r platfform: mae'n ysgrifennu rhestr eiddo i ~/Llyfrgell/LaunchAgents/com.apple.windowserver.helper.plist ac yn gosod ei weithredadwy yn ~/.lleol/rhannu/amserrhedeg/com.apple.rhedegMae'n gwirio am /Cymwysiadau/VMware Fusion.app ac /Llyfrgell/Cymorth Cymwysiadau/Offer VMware.

Mae gallu'r rhwydwaith yn cwmpasu tri chludiant: WININET.dll ar gyfer HTTPS gyda https://%s:%d%s llinyn fformatio, WS2_32.dll socedi, a DNSAPI.dll gyda DnsQuery_A ochr yn ochr â c.%s.%s llinyn fformat — yr un siâp ymholiad cyfrif-darnau y mae'r cam cyntaf yn ei ddefnyddio.

Y disgrifiad uchod yw'r hyn y mae mewnforion, llinynnau a llwybrau cofrestrfa'r ffeil ddeuaidd yn ei ddangos wrth archwilio. Mae dadansoddiad aml-beiriant cyhoeddus o'r un sampl Windows yn ychwanegu manylion na all darlleniad statig o dabl mewnforio eu sefydlu ar ei ben ei hun, ac fe'i priodolir yma yn hytrach na'i ailadrodd fel arsylwad uniongyrchol. Mae'r dadansoddiad hwnnw'n adrodd nad yw'r cyfeiriadau AMSI ac ETW wedi'u datrys yn unig ond wedi'u clytio — AmsiScanBuffer in amsi.dll ac YsgrifennuDigwyddiad Etw in ntdll.dll — sy'n atal sganio cynnwys yn y cof ac olrhain digwyddiadau ar gyfer y broses. Mae'n adrodd bod y gwiriadau gwrth-ddadansoddi yn seiliedig ar amseru yn ogystal â GwirioDadfygiwrPellPresent, ac yn nodi'r Cyd-destun CaelEdau galw fel gwiriad torri-pwynt caledwedd yn darllen y cofrestri dadfygio. Mae hefyd yn adrodd am mutex un enghraifft, Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}, ac enwau GwasanaethSainSystem fel y gwerth allwedd-Rhedeg. Nid oedd y gwerth mutex hwnnw ymhlith y llinynnau a adferwyd yma — roedd yr hidlydd echdynnu a ddefnyddiwyd yn eithrio tocynnau hecsagon llythrennau mawr wedi'u bracedu — ac mae wedi'i gofnodi yn y tabl dangosyddion ar gryfder y dadansoddiad cyhoeddus hwnnw yn hytrach nag arsylwi uniongyrchol.

Cam 3

Mae'r llwythwr yn cyfeirio at set bellach o lwybrau ar yr un gwesteiwyr. Roedd modd cyrraedd pob un yn ystod y dadansoddiad: beacon_linux.bin ar 5.3 MB, beacon_mac.bin ar 13.3 MB, diweddariad_win.exe ar 10.3 MB, a braich.bin ar 4.3 MB. Ni chafwyd y rhain, ac nid yw eu hymddygiad yn hysbys.

Ar gyfer llwybr Windows, mae dadansoddiad cyhoeddus o'r llwythwr yn disgrifio sut mae'r trydydd cam hwnnw'n cael ei drin: mae'n cael ei nôl dros WinINet, yn cyrraedd wedi'i amgryptio, ac yn cael ei ddadgryptio yn y cof a'i weithredu'n fyfyriol — cof wedi'i ddyrannu, mewnforion wedi'u datrys, adleoliadau wedi'u prosesu, a rheolaeth wedi'i throsglwyddo i edau newydd drwy CreuEdau. Am y rheswm hwnnw, nid yw'r trydydd cam byth yn cael ei ysgrifennu i'r system ffeiliau, felly nid oes gan ganfod sy'n seiliedig ar ffeiliau a fforensig disg ôl-ddigwyddiad ddim i'w adfer ohono. Mae hefyd yn golygu y byddai adfer y beitiau o'r gwesteiwr dosbarthu yn cynhyrchu testun amgryptio, nid ffeil weithredadwy y gellir ei dadansoddi.

 

Llinell Amser

Mae pob stamp amser yn UTC ac yn dod o fetadata'r gofrestrfa npm, sy'n cofnodi creu a dadgyhoeddi pecynnau yn annibynnol ar unrhyw arsylwr.

Pryd Beth
2026-07-31 09:25:05 → 09:29:56 Deg enw wedi'u creu, pob un yn dechrau gyda fersiwn 0.0.1, tua tair eiliad ar ddeg ar wahân.
2026-08-01 09:38 → 11:29 Mae enwau presennol yn dringo trwy rifau fersiwn chwyddedig, 6.1.9 drwy 6.1.12, 9.9.9 drwy 9.9.12, 8.9.3 drwy 8.9.6, 5.4.6 drwy 5.4.9.
2026-08-01 13:04:14 → 13:04:18 Naw pellach beaver-ui-* enwau wedi'u creu mewn byrst o bedair eiliad, pob un wedi'i gyhoeddi'n uniongyrchol ar fersiwn 12.x heb unrhyw hanes blaenorol.
2026-08-01 ~13:00–14:30 Fersiynau a ddosbarthwyd fel rhai maleisus ar ôl adolygiad â llaw.
2026-08-01 17:39:49 → 17:40:14 Naw ar bymtheg o'r ugain enw heb eu cyhoeddi mewn pump ar hugain eiliad, yn olynol, tua 1.2 eiliad ar wahân.
2026-08-02 18:58:41 a.poltoradnev-package-c wedi'i greu eto o dan gyfrif cynhaliwr gwahanol, fersiwn 0.0.2.
2026-08-02 19:20:28 fersiwn 33.9.5 wedi'i gyhoeddi i'r un enw.
2026-08-02 20:14 Pob un o'r tri gwesteiwr dosbarthu sy'n gwasanaethu camau dau a thri; DNS wrth gefn yn ateb gyda chyfrifon darnau.

Mae dau o'r cofnodion hyn yn werth eu trafod.

Rhoddodd y ffrwydrad 13:04 naw pecyn ar y gofrestrfa mewn pedair eiliad, pob un ag un fersiwn yn y deuddeg a dim 0.0.1 oddi tano. Nid yw rhifau fersiwn ar y raddfa hon, ar enwau sydd un diwrnod oed, yn disgrifio hanes rhyddhau.

Mae'r dilyniant dadgyhoeddi yr un mor fecanyddol: un deg naw o enwau, pump ar hugain eiliad, bylchau cyfartal. Mae npm yn cofnodi'r rhain fel digwyddiadau dadgyhoeddi cyffredin yn hytrach na'r llefydd y mae dileu a gychwynnwyd gan y gofrestrfa yn eu gadael ar ôl, sy'n gosod y weithred gyda'r cyfrif cyhoeddi yn hytrach na gyda'r gofrestrfa.

 

Dangosyddion cyfaddawd

Mae gwesteiwyr a llwybrau wedi'u dad-fangio. Peidiwch â'u datrys na'u hadfer o system gynhyrchu.

math Gwerth
Gwesteiwr dosbarthu oob-worker[.]cf99-9b3[.]workers[.]dev
Gwesteiwr dosbarthu oob-worker[.]cf102-baf[.]workers[.]dev
Gwesteiwr dosbarthu oob-worker[.]cf103-070[.]workers[.]dev
Cludiant DNS tin[.]dl[.]well1[.]site (Linux x64), tina[.] (arm64), ldr[.] (macOS), win[.] (Windows) — cyfrif darnau yn c.<domain>, data yn <n>.<domain>
Llwybrau Cam-2 /pkg/package, /pkg/package-arm64, /pkg/loader_mac, /pkg/package.exe
Llwybrau Cam-3 /pkg/beacon_linux.bin, /pkg/beacon_mac.bin, /pkg/update_win.exe, /pkg/arm.bin
Llwybr gollwng (Unix) /var/tmp/.cache_<8-hex>
Llwybr gollwng (Windows) %TEMP%\dotnet_diag_<8-hex>.exe
Parhad (Windows) %APPDATA%\Microsoft\Windows\Themes\SystemSoundsService.exe; tasg \Microsoft\Windows\Multimedia\SystemSoundsService; Gwerth allwedd rhedeg SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SystemSoundsService
Mutex (Windows) Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}
Parhad (macOS) ~/Library/LaunchAgents/com.apple.windowserver.helper.plist; deuaidd yn ~/.local/share/runtime/com.apple.runtime
Stamp rhedeg unwaith /tmp/.analytics_state, %TEMP%\analytics_state (Ffenestr 20,357 eiliad)
Cais am lofnod HTTPS GET, wedi'i binio gan IPv4, Asiant Defnyddiwr: node-fetch/2.6
Ffeil Cam-1 _polyfill.js, SHA-256 392dc9ec85042ce1796bfa9b8c7bf6e05c7710579aab8b7b1eb73788683883af
Ffeil heb ei chyfeirio lib/telemetry.js, SHA-256 2266c9b8e199daebe31a9afcb61d9b0d76706b63c92312fc8223d22de42e63c7
Cam 2 (Linux x64) SHA-256 7e486657f30594afda379b97030252a09a19fe8055e25c9e371544f59bd8e9e3
Cam 2 (Linux arm64) SHA-256 aafc37589c0d21fb729761a1579ca3b278b95bce152aacfa29243ffd27f5eeb7
Cam 2 (macOS) SHA-256 c214746c74cae8ece8bdaf69aa05da4db6ce013f9e77452d1eed1a002fd9ba00
Cam 2 (Ffenestri) SHA-256 d632c2c0c7801c3da57cf849fe4b4ca8351d9a7fe73c31050bf5dbcc96a16791

Enwau pecynnau

beaver-ui-drawor botwm-camau-ui-beaver cerdyn-ui-afanc-mawr dewiswr-ystod-dyddiadau-ui-beaver ffurf-ui-afanc beaver-ui-form-modal gwrthrych ffurf-ui-afanc beaver-ui-grid pennawd-ui-beaver beaver-ui-hooks clo eiconau ui beaver eitemau-ui-beaver-gyda-mwy cynllun-ui-beaver ffurflen-derfynol-gyfrifon cyflwr-llwytho-cyfrifon llinell amser cyfrifon llyfr-stori-afisha-diofyn ffurfweddu bcore-bravo-eslint arbocrate-sla-prober-arbocrate-sla-prober-craidd a.poltoradnev-pecyn-c

Priodoliad ac ymddygiad a welwyd

Mae dau gyfrif npm yn gysylltiedig. Cyhoeddwyd y pedwar ar bymtheg o enwau heb eu cyhoeddi gan un cyfrif; a.poltoradnev-pecyn-c ailgofrestrwyd ar 2 Awst o dan enw cyfrif gwahanol a pharth e-bost gwahanol. Mae'r cod yr un llinach yn y ddau, ac mae'r ail gofrestriad yn cario'r un gwesteiwyr dosbarthu, yr un parthau DNS wrth gefn, yr un adeiladwaith llwybr gollwng, a'r un stamp rhedeg unwaith.

Mae'r pâr a ailgyhoeddwyd hefyd yn dangos sut y cafodd ei gydosod. 0.0.2 ac 33.9.5 yn union yr un fath â beit ar wahân i'r llinyn fersiwn yn pecyn.json, a mynegai.js wedi'i gludo fel 0.0.2 datgan FERSIWN cyson = “33.9.5”Torrwyd y ddau arteffact o un goeden ffynhonnell a'u rhifo wedyn. Nid oes 0.0.2 hanes datblygu ar gyfer y 0.0.2 rhyddhau i gynrychioli.

Mae rhifo'r fersiynau ar draws y set gyfan yn dilyn yr un rhesymeg. Mae enwau pecynnau yn yr ymgyrch hon yn darllen fel pethau a fyddai'n bodoli y tu mewn i sefydliad yn hytrach nag ar gofrestrfa gyhoeddus: set gydrannau UI, ffurfweddiad ESLint, chwiliedydd SLA, pecyn wedi'i enwi ar ôl person. Pan fydd adeiladwaith yn datrys dibyniaeth yn ôl enw ac yn ymgynghori â chofrestrfa gyhoeddus ochr yn ochr ag un breifat, y rhif fersiwn uwch yw'r un sy'n ennill. Enw a grëwyd yn 0.0.1 ddydd Llun ac yn cario 12.9.6 ddydd Mawrth wedi'i leoli ar gyfer y gymhariaeth honno.

Mae'r ddau don gyhoeddi hefyd yn wahanol mewn ffordd sy'n awgrymu ailadrodd. Enwodd y cod cynharach ei ffeil llwyth tâl gosod.js ac wedi rhestru pum gwesteiwr dosbarthu; enw'r ffeil gyfredol yw _polyfill.js ac yn rhestru tri. Tynnodd y fersiwn gynharach y ffeil a gollyngwyd bum eiliad ar ôl ei lansio, gan adael y broses yn rhedeg o inode wedi'i ddileu; nid yw'r fersiwn gyfredol yn gwneud hynny. Y rhai heb gyfeiriad lib/telemetry.js yn parhau yn y tarball ar draws y ddau, wedi'i gludo o hyd, heb ei wifro i mewn mwyach.

Mae un sylwadaeth am y switshis lladd yn werth ei nodi ymlaen llaw.cisely, oherwydd ei fod yn torri yn erbyn darlleniad cyffredin. ANALLUOGI_TELEMETRY, DADANSODDIADAU_OPT_ALLAN, a PEIDIWCH_Â_OLRHAIO yn cael eu hanrhydeddu, ac maent yn cael eu gwirio cyn i unrhyw beth arall ddigwydd. Mae ymchwilydd y mae ei amgylchedd dadansoddi yn gosod unrhyw un ohonynt yn arsylwi pecyn nad yw'n gwneud dim o gwbl.

Effaith a'r hyn y gall amddiffynwyr ei wneud

Mae canlyniad ymarferol y sbardun amser-mewnforio yn gul ac yn werth ei nodi ar ei ben ei hun. gosod npm –anwybyddu-sgriptiau yn atal sgriptiau cylch bywyd rhag rhedeg, ac mae'n gyngor cadarn. Nid oes ganddo unrhyw effaith yma, oherwydd nid yw'r cod hwn yn defnyddio sgript cylch bywyd. Mae'r llwyth tâl yn rhedeg pan fydd cod cymhwysiad, rhediad prawf, bwndelwr, neu linter yn mewnforio'r modiwl yn gyntaf. Ar redwr CI sy'n gosod ac yna'n adeiladu ar unwaith, mae'r ddau eiliadau ar wahân.

Ar gyfer hela, mae'r signalau gwydn yn strwythurol yn hytrach nag yn llythrennol. Bydd y gwesteiwyr, enw'r ffeil, a'r llwybrau gollwng yn newid; mae'r siapiau hyn yn anoddach i'w hamrywio:

  • Pwynt mynediad modiwl y mae ei ddatganiad terfynol yn ceisiwch { gofyn am(“./x”); } dal (_) {} o amgylch ffeil nad yw'n rhan o'r API a allforiwyd. Mae pecyn gyda polyfill dilys yn ei fewnforio ar y brig ac yn defnyddio ei ganlyniad. Nid yw llyncu pob gwall o fewnforio ar waelod y ffeil yn drin gwallau.
  • Llinynnau gwesteiwr wedi'u cydosod gan .ymuno(“”) o gyfres o ddarnau. Nid oes gan god cyfreithlon unrhyw reswm i rannu enw gwesteiwr ar draws elfennau arae.
  • Pecyn y mae ei ddibyniaethau datganedig yn wag ond sy'n estyn am https, Dns, a proses_children ar adeg mewnforio. Adalw ynghyd â gweithredu mewn pecyn sy'n hysbysebu cydran UI yw'r canfyddiad cyfan.
  • Rhifau fersiwn yn anghyson ag oedran pecyn. Mae enw a gyhoeddwyd gyntaf ddyddiau yn ôl mewn fersiwn fawr dwy ddigid, heb unrhyw ryddhadau yn y cyfamser, yn disgrifio rhywbeth heblaw ei ddatblygiad.
  • Yn ysgrifennu at / var / tmp or % TEMP% ddilyn gan chmod i 0755 a silio datgysylltiedig. Mae'r dilyniant yn fyr, yn drefnus, ac anaml yn ddiniwed gyda'i gilydd.

Ar westeiwyr Windows mae dau wiriad rhad, hyder uchel. Mae'r arteffactau parhad yn llinynnau sefydlog ac nid yw'r un ohonynt yn perthyn i system lân: tasg wedi'i hamserlennu yn \Microsoft\Windows\Amlgyfrwng\GwasanaethSainSystem, gwerth allwedd-rhedeg o'r enw GwasanaethSainSystem, a ffeil weithredadwy o'r enw hwnnw o dan %APPDATA%\Microsoft\Windows\Themâu\Nid yw'r gwasanaeth sain Windows dilys yn byw yn yr un o'r lleoedd hynny. Yn ail, mae'r llwythwr yn defnyddio mutex un enghraifft sefydlog, Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}; mae ei bresenoldeb ar westeiwr yn ddangosydd, ac oherwydd bod y llwythwr yn trin mutex presennol fel un sydd "eisoes yn rhedeg", mae ei greu ymlaen llaw yn frechiad tymor byr hyfyw tra bod adferiad wedi'i drefnu.

Mae canfod ar y trydydd cam yn broblem anoddach ac mae'n werth bod yn glir yn ei chylch. Ar y cyfrif a roddir gan ddadansoddiad cyhoeddus, caiff ei ddadgryptio a'i fapio yn y cof yn hytrach na'i ysgrifennu i ddisg, felly ni fydd sganio ffeiliau a fforensig disg yn ei weld. Yr hyn sy'n parhau i fod yn weladwy yw ôl troed y llwythwr ei hun - y cofnodion parhad, y mutex, a cheisiadau allanol i'r gwesteiwyr dosbarthu neu'r parthau DNS-TXT.

Ar gyfer amgylcheddau sy'n datrys dibyniaethau o gofrestrfa breifat ac un gyhoeddus, nid yw'r lliniaru wedi'i newid gan unrhyw beth yma: enwau mewnol cwmpasu fel na all enw cyhoeddus eu bodloni, a phinio datrysiad i'r gofrestrfa fewnol ar gyfer y cwmpasau hynny. Dim ond lle gall fersiwn gyhoeddus uwch ennill enw y mae'r ymddygiad chwyddo fersiynau a ddisgrifir uchod yn gweithio.

Yn olaf, mae'r dadgyhoeddiad yn werth ei ddarllen yn ofalus yn hytrach nag fel diweddglo. Gadawodd un deg naw enw'r gofrestrfa mewn pymtheg eiliad a dychwelodd un ddiwrnod yn ddiweddarach o dan gyfrif newydd, gyda'r seilwaith dosbarthu heb ei gyffwrdd drwyddo draw. Nid yw tynnu pecynnau yn golygu tynnu'r llawdriniaeth; parhaodd y gwesteiwyr i wasanaethu pob cam tra bod hyn yn cael ei ysgrifennu. Dylid trin unrhyw goeden ddibyniaeth a ddatrysodd un o'r enwau hyn rhwng 31 Gorffennaf ac 1 Awst fel pe bai wedi cael y cyfle i weithredu cam un, p'un a yw'r enw'n dal i fodoli ai peidio.

Cyfeiriadau

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