QuietPolyfill, NPM dropper, ktorý bol vzkriesený

QuietPolyfill: NPM dropper, ktorý sa vrátil do pôvodného stavu

TL; DR

Dvadsať npm balíkov publikovaných počas dvoch dní koncom júla a začiatkom augusta 2026 sa prezentuje ako interné knižnice komponentov používateľského rozhrania a zdieľané backendové nástroje. Žiaden z nich neimplementuje funkcionalitu, ktorú propaguje. Každý z nich dodáva triedu stub, súbor README, ktorý popisuje balík ako interný, a súbor s názvom _polyfill.js.

Zaujímavé je, odkiaľ sa tento súbor vyvolá. Nie je to inštalačný hook — manifesty nedeklarujú žiadnu predinštaláciu, inštaláciu ani poinštaláciu. Namiesto toho posledný riadok index.js znie: try { require("./_polyfill"); } catch (_) {}. Užitočné zaťaženie sa spustí pri prvom importovaní balíka kódom aplikácie. Inštalácia s --ignore-scriptssa standard rady na zníženie expozície dodávateľskému reťazcu počas inštalácie, nebráni tomu.

Čo _polyfill.js To, čo robí, je načítať spustiteľný súbor špecifický pre platformu z jedného z troch hostiteľov Cloudflare Workers, zapísať ho do dočasného adresára pod náhodným názvom, označiť ho ako spustiteľný súbor a spustiť ho oddelene od nadradeného procesu. Tento spustiteľný súbor je sám o sebe zavádzačom: vymenúva produkty zabezpečenia koncových bodov podľa názvu procesu, kontroluje aktuálne používateľské meno oproti známym účtom analytického prostredia, opravuje telemetrické rozhrania AMSI a ETW v pamäti, inštaluje perzistenciu pod názvom zvukového komponentu systému Windows a načíta tretí binárny súbor s veľkosťou niekoľko megabajtov. Tretia fáza prichádza zašifrovaná a je... dešifrované a vykonané v pamäti, nie zapísané na disk.

1. augusta, približne štyri hodiny po tom, čo bola manuálna kontrola balíkov potvrdila ich škodlivosť, bolo devätnásť z dvadsiatich názvov odstránených z npm ich vlastným vydavateľom v priebehu dvadsiatich piatich sekúnd. 2. augusta bol jeden z týchto názvov znova zaregistrovaný – iným účtom s rovnakým kódom. V čase písania tohto textu infraštruktúra doručovania slúžila všetkým trom fázam.

Balíčky20 názvov npm, ~74 publikovaných verzií
Pomenovanie témbeaver-ui-* (13), accounts-* (3) a navyše afisha-storybook-default, bcore-bravo-eslint-config, arbocrate-sla-prober-arbocrate-sla-prober-core, a.poltoradnev-package-c
spúšťImport modulov (require), nie skript životného cyklu npm
Stage 1_polyfill.js — vyzdvihnutie a spustenie
Stage 2Staticky prepojený zavádzač, UPX-packed na Linuxe; enumerácia endpoint-security, AMSI/ETW patching, perzistencia
Stage 3beacon_linux.bin / beacon_mac.bin / update_win.exe, 4–13 MB; doručené šifrované, spustené v pamäti
PlatformyLinux x64 a arm64, univerzálny macOS, Windows x64
VydavateliaDva účty, jedna kódová základňa
postavenie19 z 20 mien nezverejnených prevádzkovateľom; 1 znovu publikované a spustené; infraštruktúra doručovania spustená

Anatómia útoku

Fáza 1 – balík

Každý člen dodáva rovnaký trojsúborový tvar. index.js exportuje triedu s init() ktorá nastavuje boolovskú hodnotu, verzia(), A konfigurovať() ktorý zlúči objekt možností. Nič iné. README.md poskytuje inštalačný riadok, a vyžadovať riadok a veta „Interný balík. Pokyny nájdete na CONTRIBUTING.md“ — PRISPIEVANIE.md nie je v tarballe.

_polyfill.js má niečo menej ako 5 KB a číta sa ako bežný kód infraštruktúry. Otvorí sa s tromi kontrolami prostredia:

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

Tieto premenné sú konvenčné ovládacie prvky ochrany súkromia. Tu kontrolujú, či sa binárny súbor stiahne a spustí. Počítač, ktorý nastaví NESLEDOVAŤ sa úplne vynecháva.

Nasleduje pečiatka s možnosťou jednorazového spustenia: súbor na adrese /tmp/.analytics_state, Alebo analytický_stav pod % TEMP% vo Windowse, ktorého čas úpravy sa porovnáva s časom 20 357 sekúnd. V rámci tohto času sa modul vráti okamžite, takže opakované importy počas zostavovania vedú k jednému pokusu o načítanie namiesto desiatok.

Cieľové hostiteľské systémy nie sú prítomné ako literály. Sú zostavené za behu z fragmentov:

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

Týmto spôsobom sa zostavia tri hostiteľské počítače, ktoré sa pred použitím premiešajú, takže poradie sa mení podľa vykonania. Načítanie je HTTPS GET pripnutý k IPv4 s User-Agent of načítanie uzlov/2.6 — prijateľná hodnota, ktorú má vydať proces uzla. Odpoveď menšia ako 1 000 bajtov sa zahodí a pokúsi sa o pripojenie k ďalšiemu hostiteľovi.

Ak všetky tri zlyhajú, modul sa vráti k DNS. Vydá TXT dopyt pre cca. na získanie počtu kusov, potom požiadavky 0. cez n. v dávkach po desiatich zreťazuje odpovede a výsledok dekóduje pomocou base64. Táto cesta prenáša rovnaký spustiteľný súbor cez TXT záznamy DNS, ktorý prežije prostredia, kde je odchádzajúci HTTP filtrovaný, ale rozlíšenie DNS nie.

Načítané bajty sa zapisujú do /var/tmp/.cache_<8-hex> na Unixe, alebo %TEMP%\dotnet_diag_<8-hex>.exe v systéme Windows – názov súboru, ktorý sa číta ako diagnostický artefakt .NET. V systéme Unix má súbor priradený režim 0755. Spustenie je poter s oddelený: pravda, stdio: „ignorovať“a unref(), takže potomok prežije proces Node, ktorý ho spustil; vo Windowse volanie pridá windowsHide: true.

Dva detaily dopĺňajú obraz. Pomocník definovaný ako const _l = (…a) => process.stderr.write(“”) volá sa v každom kroku vyhľadávania – zapíše prázdny reťazec a zahodí jeho argumenty, čím obsadí pozíciu, kde by sa nachádzalo protokolovanie. A každý balík dodáva súbor s veľkosťou 81 KB na adrese lib/telemetry.js ktorého komentár v hlavičke popisuje „Analytics SDK“ s „HTTPS transportom s rotáciou koncových bodov a opakovaním“ a „Vyhľadávaním služieb založených na DNS pre záložné prepnutie“. V aktuálnej zostave to nič nevyžaduje.

Fáza 2 – nakladač

Binárny súbor Linuxu x64 je staticky linkovaný ELF komprimovaný pomocou UPX 3.96. Zostavenie pre macOS je univerzálny binárny súbor pokrývajúci x86_64 a arm64; zostavenie pre Windows je orezaný spustiteľný súbor konzoly PE32+. Všetky štyri boli načítané a staticky preskúmané; žiadny nebol spustený.

Importy a tabuľka reťazcov zostavy systému Windows jasne opisujú jeho správanie. Rieši JeDebuggerPresent, CheckRemoteDebuggerPresenta NtQueryInformationProcessa číta SYSTÉM\AktuálnaOvládaciaSada\Služby\Disk\Výčet — cesta k registru, ktorej hodnoty identifikujú radiče virtuálnych diskov. Volá GetDiskFreeSpaceExW a GlobálnyStatusMemoryEx, čo je v súlade s kontrolou, či sa zdroje hostiteľa zhodujú s krátkodobou inštanciou analýzy.

Obsahuje zoznam používateľských mien: Súčasný užívateľ, IT administrátor, Hong Lee, TESTOVACÍ BOX, hapubws, milozs, Timmy, admin, malware, vzorka, vírus, prostredieViaceré z nich sú artefakty verejne zdokumentovaných analytických prostredí.

Taktiež obsahuje zoznam produktov na zabezpečenie koncových bodov a názvov ich procesov, vymenovaných prostredníctvom CreateToolhelp32Snapshot a Process32FirstW/Process32NextW:

  • CrowdStrike Falcon (csfalconservice, CSFalconContainer)
  • Karbónová čierna (cb.exe)
  • Cylance (cylancesvc.exe)
  • BitDefender (bdagent.exe)
  • Kaspersky (avp.exe, kavfs.exe)
  • Trend Micro a Deep Security (coreServiceShell, ds_agent.exe)
  • FireEye/Mriežka (xagt.exe)
  • Tanium (taniumclient.exe)
  • HitmanPro (hmpalert.exe)
  • Elastický (elastic-agent.exe, elastic-endpoint, filebeat.exe, winlogbeat.exe)
  • Wazuh a OSSEC (wazuh-agent.exe, ossec-agent.exe)
  • Check Point
  • Windows Defender

Prítomné sú ďalšie dva symboly: AmsiScanBuffer, vstupný bod, ktorý systém Windows sprístupňuje na skenovanie obsahu v pamäti, a EtwEventWrite, funkcia, prostredníctvom ktorej funkcia Event Tracing for Windows zaznamenáva udalosti. Obe sú bežnými cieľmi úprav v procese, ktoré potláčajú telemetriu, ktorú by tieto rozhrania inak produkovali.

Perzistencia sa vo Windowse objavuje dvakrát. Binárny súbor sa skopíruje do %APPDATA%\Microsoft\Windows\Themes\SystemSoundsService.exea odkazujú naň dva mechanizmy: hodnota pod SOFTVÉR\Microsoft\Windows\Aktuálna verzia\Spustiťa naplánovaná úloha registrovaná ako

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

Cesta k úlohe, názov úlohy a názov spustiteľného súboru zodpovedajú originálnemu zvukovému komponentu systému Windows. /RL NAJVYŠŠIA požaduje najvyššiu dostupnú úroveň privilégií.

Zostavenie macOS sa riadi rovnakým vzorom s názvami vhodnými pre platformu: zapíše zoznam vlastností do ~/Knižnica/LaunchAgents/com.apple.windowserver.helper.plist a umiestni jeho spustiteľný súbor na ~/.local/share/runtime/com.apple.runtimeKontroluje sa /Aplikácie/VMware Fusion.app a /Knižnica/Podpora aplikácií/Nástroje VMware.

Sieťové možnosti zahŕňajú tri druhy prenosu: Súbor WININET.dll pre HTTPS s https://%s:%d%s formátovací reťazec, WS2_32.dll zásuvky a Súbor DNSAPI.dll s DnsQuery_A vedľa a c.%s.%s formátovací reťazec – rovnaký tvar dotazu na počet kusov, aký používa prvá fáza.

Vyššie uvedený popis zobrazuje importy, reťazce a cesty v registri binárneho súboru pri kontrole. Verejná viacúrovňová analýza tej istej vzorky systému Windows pridáva podrobnosti, ktoré statické čítanie importovanej tabuľky samo o sebe nedokáže zistiť, a je tu uvedená ako priame pozorovanie, nie ako prepracované pozorovanie. Táto analýza uvádza, že odkazy na AMSI a ETW nie sú len vyriešené, ale aj opravené – AmsiScanBuffer in Súbor amsi.dll a EtwEventWrite in ntdll.dll — čo potláča skenovanie obsahu v pamäti a sledovanie udalostí pre daný proces. Okrem toho hlási antianalytické kontroly ako založené na čase. CheckRemoteDebuggerPresenta identifikuje GetThreadContext volanie ako kontrola hardvérového prerušenia čítaním ladiacich registrov. Taktiež hlási mutex jednej inštancie, Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}a mená Služba SystemSounds ako hodnota Run-key. Táto hodnota mutexu sa nenachádzala medzi získanými reťazcami – extrakčný filter vylúčil tokeny v zátvorkách s veľkými písmenami v hexadecimálnom tvare – a v tabuľke indikátorov je zaznamenaná na základe tejto verejnej analýzy, a nie priameho pozorovania.

Stage 3

Zavádzač odkazuje na ďalšiu sadu ciest na rovnakých hostiteľoch. Všetky boli počas analýzy dostupné: beacon_linux.bin s veľkosťou 5.3 MB, beacon_mac.bin s veľkosťou 13.3 MB, súbor update_win.exe s veľkosťou 10.3 MB a arm.bin s veľkosťou 4.3 MB. Tieto neboli načítané a ich správanie nie je známe.

V prípade cesty systému Windows verejná analýza zavádzača popisuje, ako sa spracováva tretia fáza: načíta sa cez WinINet, prichádza zašifrovaná, dešifruje sa v pamäti a vykonáva sa reflexívne – alokuje sa pamäť, vyriešia sa importy, spracujú sa premiestnenia a riadenie sa odovzdá novému vláknu prostredníctvom Vytvoriť vláknoZ tohto dôvodu sa tretia fáza nikdy nezapisuje do súborového systému, takže detekcia na základe súborov a forenzná analýza disku po incidente z nej nemajú čo obnoviť. To tiež znamená, že načítanie bajtov z doručovacieho hostiteľa by viedlo k zašifrovanému textu, nie k analyzovateľnému spustiteľnému súboru.

 

časová os

Všetky časové pečiatky sú UTC a pochádzajú z metadát registra npm, ktoré zaznamenávajú vytvorenie a zrušenie publikovania balíkov nezávisle od akéhokoľvek pozorovateľa.

Kedy Čo
2026-07-31 09:25:05 → 09:29:56 Vytvorených desať mien, každé začínajúce na verzii 0.0.1, s odstupom približne trinástich sekúnd.
2026-08-01 09:38 → 11:29 Existujúce názvy sa preháňajú cez nafúknuté čísla verzií, 6.1.9 cez 6.1.12, 9.9.9 cez 9.9.12, 8.9.3 cez 8.9.6, 5.4.6 cez 5.4.9.
2026-08-01 13:04:14 → 13:04:18 Deväť ďalších beaver-ui-* mená vytvorené v štvorsekundovom nábehu, každé publikované priamo vo verzii 12.x bez predchádzajúcej histórie.
2026-08-01 ~13:00–14:30 Verzie klasifikované ako škodlivé pri manuálnej kontrole.
2026-08-01 17:39:49 → 17:40:14 Devätnásť z dvadsiatich mien bolo nezverejnených v priebehu dvadsiatich piatich sekúnd, postupne s odstupom približne 1.2 sekundy.
2026-08-02 18:58:41 a.poltoradnev-package-c znovu vytvorené pod iným účtom správcu, verzia 0.0.2.
2026-08-02 19:20:28 verzia 33.9.5 publikované pod rovnakým názvom.
2026-08-02 20:14 Všetci traja doručovací hostitelia obsluhujúci druhú a tretiu fázu; záložný DNS odpovedá s počtom blokov.

Dva z týchto záznamov stoja za zmienku.

Zásah o 13:04 pridal do registra deväť balíkov za štyri sekundy, každý s jednou verziou v dvanástich a nie 0.0.1 pod ním. Čísla verzií v tomto meradle, s názvami starými jeden deň, nepopisujú históriu vydaní.

Postupnosť odzverejnenia je rovnako mechanická: devätnásť mien, dvadsaťpäť sekúnd, rovnomerné rozostupy. npm ich zaznamenáva ako bežné udalosti odzverejnenia, a nie ako zástupný symbol, ktorý zanecháva odstránenie iniciované registrom, čo umiestňuje akciu na publikačný účet, a nie na register.

 

Indikátory kompromisu

Hostitelia a cesty sú odblokované. Neprekladajte ani nenačítavajte ich z produkčného systému.

Typ Hodnota
Hostiteľ doručenia oob-worker[.]cf99-9b3[.]workers[.]dev
Hostiteľ doručenia oob-worker[.]cf102-baf[.]workers[.]dev
Hostiteľ doručenia oob-worker[.]cf103-070[.]workers[.]dev
Transport DNS tin[.]dl[.]well1[.]site (Linux x64), tina[.] (rameno64), ldr[.] (macOS), win[.] (Windows) – počet blokov na c.<domain>, údaje na <n>.<domain>
Cesty 2. fázy /pkg/package, /pkg/package-arm64, /pkg/loader_mac, /pkg/package.exe
Cesty 3. fázy /pkg/beacon_linux.bin, /pkg/beacon_mac.bin, /pkg/update_win.exe, /pkg/arm.bin
Cesta pre vymazanie (Unix) /var/tmp/.cache_<8-hex>
Cesta pretiahnutia (Windows) %TEMP%\dotnet_diag_<8-hex>.exe
Perzistencia (Windows) %APPDATA%\Microsoft\Windows\Themes\SystemSoundsService.exeúloha \Microsoft\Windows\Multimedia\SystemSoundsServiceHodnota kľúča spustenia SOFTWARE\Microsoft\Windows\CurrentVersion\Run\SystemSoundsService
Mutex (Windows) Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}
Perzistencia (macOS) ~/Library/LaunchAgents/com.apple.windowserver.helper.plistbinárny kód na adrese ~/.local/share/runtime/com.apple.runtime
Pečiatka s jednorazovým spustením /tmp/.analytics_state, %TEMP%\analytics_state (Okno 20 357 s)
Žiadosť o podpis HTTPS GET, pripnutý IPv4, používateľský agent: node-fetch/2.6
Súbor fázy 1 _polyfill.js, SHA-256 392dc9ec85042ce1796bfa9b8c7bf6e05c7710579aab8b7b1eb73788683883af
Neodkazovaný súbor lib/telemetry.js, SHA-256 2266c9b8e199daebe31a9afcb61d9b0d76706b63c92312fc8223d22de42e63c7
Fáza 2 (Linux x64) SHA-256 7e486657f30594afda379b97030252a09a19fe8055e25c9e371544f59bd8e9e3
Fáza 2 (Linux arm64) SHA-256 aafc37589c0d21fb729761a1579ca3b278b95bce152aacfa29243ffd27f5eeb7
2. fáza (macOS) SHA-256 c214746c74cae8ece8bdaf69aa05da4db6ce013f9e77452d1eed1a002fd9ba00
2. fáza (Windows) SHA-256 d632c2c0c7801c3da57cf849fe4b4ca8351d9a7fe73c31050bf5dbcc96a16791

Názvy balíkov

zásuvka beaver-ui tlačidlo-akcie-používateľského-rozhrania-beaver beaver-ui-card-large výber-rozsahu-dátumov-beaver-ui beaver-ui-form beaver-ui-form-modal objekt-formulára-beaver-ui beaver-ui-grid beaver-ui-header bobor-ui-hooks beaver-ui-icon-lock beaver-ui-items-with-more rozloženie-ui-beaver konečný-formulár-účtov stav načítavania účtov časová os účtov afisha-storybook-default bcore-bravo-eslint-config arbocrate-sla-prober-arbocrate-sla-prober-jadro a.poltoradnev-balík-c

Pripisovanie a pozorované správanie

Ide o dva npm účty. Devätnásť nezverejnených mien bolo zverejnených jedným účtom; a.poltoradnev-balík-c bol 2. augusta preregistrovaný pod iným menom účtu a inou e-mailovou doménou. Kód má v oboch rovnaký pôvod a druhá registrácia obsahuje rovnakých doručovacích hostiteľov, rovnaké záložné domény DNS, rovnakú konštrukciu cesty odstraňovania a rovnakú pečiatku run-once.

Znovu publikovaný pár tiež ukazuje, ako bol zostavený. Verzie 0.0.2 a 33.9.5 sú bajtovo identické okrem reťazca verzie v package.json, A index.js dodávané ako 0.0.2 deklaroval konštantná VERZIA = „33.9.5“Oba artefakty boli vyrezané z jedného zdrojového stromu a následne očíslované. Neexistuje žiadny 0.0.2 história vývoja pre 0.0.2 uvoľnenie na zastupovanie.

Číslovanie verzií v celej sade sa riadi rovnakou logikou. Názvy balíkov v tejto kampani sa čítajú ako veci, ktoré by existovali v rámci organizácie, a nie vo verejnom registri: sada komponentov používateľského rozhrania, konfigurácia ESLint, SLA sonda, balík pomenovaný po osobe. Keď zostavenie rieši závislosť podľa názvu a konzultuje verejný register spolu so súkromným, vyhrá verzia s vyšším číslom. Názov vytvorený na 0.0.1 v pondelok a niesol 12.9.6 v utorok je pripravený na toto porovnanie.

Tieto dve publikačné vlny sa tiež líšia spôsobom, ktorý naznačuje iteráciu. Skorší kód pomenoval svoj súbor s užitočným zaťažením setup.js a uvádza päť doručovacích hostiteľov; aktuálny súbor má názov _polyfill.js a uvádza tri. Staršia verzia odstránila odstránený súbor päť sekúnd po spustení, pričom proces bežal z odstráneného inódu; aktuálna verzia to nerobí. Neodkazovaný lib/telemetry.js zostáva v tarballe v oboch, stále dodávaný, už nie je pripojený.

Za zmienku stojí jedno pozorovanie o vypínačoch.cisely, pretože to odporuje bežnému výkladu. ZAKÁZAŤ_TELEMETRIU, ANALYTICS_OPT_OUTa NESLEDOVAŤ sú rešpektované a sú skontrolované predtým, ako sa čokoľvek iné stane. Výskumník, ktorého analytické prostredie nastavuje ktorýkoľvek z nich, pozoruje balík, ktorý nerobí vôbec nič.

Dopad a čo môžu obrancovia urobiť

Praktický dôsledok spúšťača v čase importu je úzky a stojí za to ho uviesť samostatne. npm install –ignore-scripts zabraňuje spusteniu skriptov životného cyklu a je to rozumná rada. V tomto prípade to nemá žiadny účinok, pretože tento kód nepoužíva skript životného cyklu. Účelové zaťaženie sa spustí, keď kód aplikácie, testovací spustenie, bundler alebo linter najprv importuje modul. Na bežiacom prostredí CI, ktoré inštaluje a potom okamžite zostavuje, sú tieto dva kroky od seba vzdialené len niekoľko sekúnd.

Pre lov sú trvalé signály skôr štrukturálne než doslovné. Hostitelia, názov súboru a cesty presúvania sa zmenia; tieto tvary sa ťažšie menia:

  • Vstupný bod modulu, ktorého posledný príkaz je try { require(“./x”); } catch (_) {} okolo súboru, ktorý nie je súčasťou exportovaného API. Balík s originálnym polyfillom ho importuje na začiatku a použije jeho výsledok. Prehltnutie každej chyby z importu zo spodnej časti súboru nie je spracovanie chýb.
  • Hostiteľské reťazce zostavené používateľom .join(“”) z radu fragmentov. Legitímny kód nemá dôvod rozdeľovať názov hostiteľa medzi prvky poľa.
  • Balík, ktorého deklarované závislosti sú prázdne, ale ktorý siaha po https, dnsa child_process v čase dovozu. Celý komplex spočíva v načítaní a vykonaní v balíku, ktorý inzeruje komponent používateľského rozhrania.
  • Čísla verzií nie sú v súlade s vekom balíka. Názov, ktorý bol prvýkrát zverejnený pred niekoľkými dňami s dvojciferným počtom úspešných vydaní, bez akýchkoľvek medziľahlých vydaní, opisuje niečo iné ako jeho vývoj.
  • Píše komu / var / tmp or % TEMP% nasledované a chmod do 07:55 a oddelený trstinový exemplár. Sekvencia je krátka, usporiadaná a zriedkavo spolu benígna.

Na hostiteľoch so systémom Windows existujú dve lacné kontroly s vysokou spoľahlivosťou. Artefakty perzistencie sú fixné reťazce a žiadny z nich nepatrí do čistého systému: naplánovaná úloha o Služba \Microsoft\Windows\Multimédiá\SystemSoundsService, hodnota kľúča Run s názvom Služba SystemSoundsa spustiteľný súbor s týmto názvom pod %APPDATA%\Microsoft\Windows\Témy\Skutočná zvuková služba systému Windows sa nenachádza na žiadnom z týchto miest. Po druhé, zavádzač používa pevný mutex s jednou inštanciou, Global\{7A3B9E1F-C2D4-4F8A-B5E6-D7A1F0C3E2B9}; jeho prítomnosť na hostiteľovi je indikátorom a keďže zavádzač považuje existujúci mutex za „už spustený“, jeho predbežné vytvorenie je schodnou krátkodobou inokuláciou, kým je naplánovaná náprava.

Detekcia v tretej fáze je zložitejší problém a stojí za to si ho ujasniť. Podľa verejnej analýzy sa kód dešifruje a mapuje v pamäti, a nie zapisuje na disk, takže skenovanie súborov a forenzná analýza disku ho nenájdu. Pozorovateľná zostáva len vlastná stopa zavádzača – perzistentné položky, mutex a odchádzajúce požiadavky na doručovacie hostiteľské systémy alebo domény DNS-TXT.

Pre prostredia, ktoré riešia závislosti zo súkromného aj verejného registra, sa zmiernenie rizík nemení ničím z tohto: internými názvami rozsahov, takže verejný názov ich nemôže spĺňať, a pripnutím riešenia k internému registru pre tieto rozsahy. Vyššie opísané správanie pri nafukovaní verzií funguje iba vtedy, keď vyššia verejná verzia môže získať názov.

Nakoniec, nezverejnenie stojí za to si prečítať pozorne, a nie ho považovať za koniec. Devätnásť mien opustilo register za dvadsaťpäť sekúnd a jedno sa vrátilo o deň neskôr pod novým účtom, pričom infraštruktúra doručovania zostala nedotknutá. Odstránenie balíkov nie je odstránením operácie; hostitelia pokračovali v obsluhe každej fázy, kým sa toto písalo. Akýkoľvek strom závislostí, ktorý vyriešil jednu z týchto mien medzi 31. júlom a 1. augustom, by sa mal považovať za strom, ktorý mal možnosť vykonať prvú fázu, bez ohľadu na to, či daná mená stále existujú alebo nie.

Referencie

nástroje na analýzu zloženia softvéru SCA
Stanovte si priority, odstraňujte a zabezpečte svoje softvérové ​​riziká
Získajte svoj bezplatný účet.
Nie je potrebná kreditná karta.

Zabezpečte si vývoj a dodávku softvéru

s produktovým balíkom Xygeni