RuntimeBroker npm Typosquat Plants Crypto Clipper

RuntimeBroker: npm Typosquat 40 чынжырлуу крипто-клипперди ОСтер аралык "Системанын иштөө убактысынын жардамчысы" катары орнотот

TL; DR

2026-жылдын 21-майында npm басмаканасы jaggle тогуз версиясын чыгарды (1.0.0 аркылуу 1.0.8) жөнүндө @jaggle/resizeobserves болжол менен эки сааттык терезеде.

Пакет мыйзамдуу түрдө ката кетирилген @juggle/resize-observer polyfill — жумасына миллиондогон жүктөөлөр менен кеңири колдонулган пакет — бирок ResizeObserverдин иш жүзүндөгү ишке ашыруусун жөнөтпөйт.

Анын ордуна, пакеттин орнотуудан кийинки илмек Python пайдалуу жүктөмүн орнотот, persistence'ти платформага мүнөздүү көрүнгөн иштөө убактысынын брокери катары каттайт жана криптовалюта транзакцияларына багытталган платформалар аралык алмашуу буферин басып алуучуну жайгаштырат.

Linux туруктуулук төмөнкүдөй көрүнөт python3-dbus-helper, MacOS as com.apple.python.runtime, жана Windows as PyRuntimeBroker.

Пайдалуу жүктөө буферди капчыктын даректери боюнча үзгүлтүксүз көзөмөлдөйт 40тан ашык блокчейндер жана көчүрүлгөн даректерди чабуулчу башкарган капчыктар менен үнсүз алмаштырат.

Зыяндуу программа толугу менен жергиликтүү деңгээлде иштейт, тышкы C2 инфраструктурасы жок, бул алмашуу буферинин ордун басуучу эксфильтрация механизмин түзөт.

Негизги IOC - бул пакеттин аталышынын өзү: @jaggle/resizeobserves — “jaggle” сөзүндөгү түшүп калган үндүү тыбышка жана “resizeobserves” сөзүндөгү кошулган “s” тыбышына көңүл буруңуз.

Оордугу: жогору.

Кол салуу: ал кантип иштейт

npm:@jaggle/resizeobserves күнүмдүк түзмөктөрдө зыяндуу программалык камсыздоого окшошпойт npm көрүнүшү. Анын README.md бул сөзмө-сөз README npm:@juggle/size-observer — ошол эле код үлгүлөрү, ошол эле колдонуу боюнча көрсөтмөлөр, ошол эле '@juggle/resize-observer' файлынан {ResizeObserver} импорттоо шилтемелер толугу менен берилген. Плагиат ушунчалык көп болгондуктан, документтерди караган ар бир адам мыйзамдуу пакеттин документтерин окуп жатам деп ойлошу мүмкүн.

The package.jsonтескерисинче, сейрек кездешет: жок жай талаа, бир жатам көрсөтүүчү жазуу bin/clipboard-guardian.jsЖана орнотуудан кийинки иштетилген скрипт npm-install.js түйүнүREADME'нин "Негизги колдонуу" мисалдары tarball файлынын эч бир жеринде жок JavaScript реализациясына шилтеме берет. Пакеттеги жалгыз JavaScript - бул орнотуу скрипти.

1-этап — npm postinstall Python жүктөмүн жүктөйт

npm-install.js платформаны билет. Ал ... жайгашкан жерин аныктайт Жооп жазуу белгиленген издөө жолу боюнча аткарылуучу файл (/usr/bin/pip3, /usr/local/bin/pip, кайра кайтып келүү python3 -m пип), tarball каталогунан бириктирилген Python пакетин орнотот жана — Linux'та — тартат xclip or xsell аркылуу ап-алуу, Pacmanже dnf эгерде экөө тең мурунтан эле жок болсо:

колдонуу –break-system-packages атайылап жасалган: заманбап Linux дистрибутивдери Pythonду PEP 668дин тышкы башкарылуучу чөйрө маркери иштетилген абалда жеткиришет, ал сайт боюнча пип орнотууларын демейки шартта бөгөттөйт. Орнотуу скрипти орнотууну мажбурлайт.

Скрипт ошондой эле sudo-билгич. Иштеп жаткан uid a натыйжасы болгондо sudo npm орнотуу, сценарийде мындай деп айтылат SUDO_USER жана атып чыгат getent passwd издөө чын колдонуучунун үй каталогуна, андан кийин туруктуулук файлдарын ал жерге эмес, ошол жерге жазат / тамырыТуруктуулук система боюнча эмес, ар бир колдонуучу үчүн.

2-этап — Runtime брокеринин аталыштарынын астында ОСтер аралык туруктуулук

Python пакети орнотулгандан кийин, скрипт ар бир операциялык системада ар башка аталыш менен автоматтык түрдө баштоо жазуусун каттайт:

  • Linux — системалык колдонуучу бирдиги ~/.config/systemd/user/python3-dbus-helper.serviceБөлүмдүн баяндоо is Python D-Bus Runtime жардамчысыСкрипт аны аркылуу иштетүүгө да аракет кылат systemctl –колдонуучуну иштетүү, астында кол менен түзүлгөн символдук шилтемеге кайтып келүү демейки.максат.каалайт/ systemctl иштебей калганда. Эгер sudo астында иштеп жатса, скрипт төмөнкүгө которулат: sudo -u systemctl –колдонуучуменен XDG_RUNTIME_DIR колдонуучу-шина чакыруусу иштей тургандай кылып коюңуз.
  • MacOS — LaunchAgent пластинкасы ~/Library/LaunchAgents/com.apple.python.runtime.plist менен RunAtLoad=чын жана KeepAlive=true, андан кийин жүктөлдү launchctl жүктөө.
  • Windows — PyRuntimeBroker деп аталган пландаштырылган тапшырма, AtLogOn иштетилген, аткаруу убактысы нөлгө барабар (б.а., тайм-аутсуз), PowerShell аркылуу катталган.

Бир караганда үч ысым тең ишенимдүү көрүнөт. python3-dbus-жардамчысы Linux жумушчу столдорунда мыйзамдуу Python-D-Bus интеграциясынын аталыш конвенциясын карманат. com.apple.python.runtime Apple компаниясынын өз кызматтары үчүн тескери DNS маркалоосун туурайт. PyRuntimeBroker Windows'ту кайталайт RuntimeBroker.exe — UWP колдонмолору үчүн уруксат суроо-талаптарын ортомчулук кылган чыныгы, кол коюлган Microsoft кызматы. Булардын бири да бул контекстте чыныгы Apple/Microsoft/Python кызматтары эмес, бирок коргоочу тез визуалдык сканерлөөнү жүргүзүп жатат systemctl –колдонуучу тизмеси-бирдиктери or Пландалган тапшырманы алуу чочуп кетиши күмөн.

3-этап — Буферди басып алуучу

Python пайдалуу жүктөмү, орнотулган clipboard_guardian/guardian.py, системанын буферинен ар бир 400 миллисекунд сайын сурамжылоо жүргүзүүчү чексиз циклди иштетет. Ар бир белгилөөдө, ал учурдагы буфердин мазмунун төмөнкү аркылуу алат pyperclip.paste() жана аларды 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 жана башка бир нече демейки конфигурацияда (Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin) капчык дарегинин форматтарын камтыган кырктан ашык алдын ала компиляцияланган кадимки туюнтмалардын тизмесине каршы иштетет.

Дал келген нерсе табылганда, скрипт чабуулчунун ошол чынжырдын дарегин окуйт ~/.config/clipboard-guardian/config.json (же анын платформа эквиваленттерин) жана алмаштырылган текст менен алмашуу буферин кайра жазат:

Тармак маягы жок. Клиппер үйгө телефон чалбайт, инфекцияланган хостторду каттабайт, эч нерсени эксфильтрациялабайт. Эксфильтрация - бул алмаштыруунун өзү: колдонуучу алуучунун дарегин капчыгынын UI'синен көчүрүп, аны жөнөтүү диалогуна чаптаганда, чапталган дарек операторго таандык болот. Каражаттар диапазондо, колдонуучуга ачык-айкын түрдө жоголот.

Бул жерде эмне жаңылык бар

Жалпы крипто-клиппер шаблонуна салыштырмалуу бир нече деталдар айырмаланып турат:

1. npm → Python кроссовери. npmде көргөн крипто-клипперлердин көпчүлүгү таза JavaScript болуп саналат, алар көп учурда ... менен чаташтырылат _0x массивди айландыруу же eval(atob(…)) стектери. Бул үлгү npm tarballду Python пакети үчүн жеткирүү оромосунан башка эч нерсе эмес катары колдонот — таза Python — жана pipке көз карандылыкты орнотууну иштетүүгө мүмкүндүк берет (пиперклип, псутил, кошумча орнотуучу аталыш) топтомдо жарыяланган pyproject.tomlJavaScriptти бурмалоону жокко чыгарууга болбойт. Клиппердин өзү жөнөкөй, окула турган Python.

2. Ишенимдүүлүк үчүн тандалган Tri-OS туруктуулук белгилери. Көптөгөн платформа аралык орнотуучулар туруктуулукту жалпы аталыштар менен катташат (жаңыртуучу.кызмат, жардамчы.плистти). Бул үлгү ар бир ОСте платформага негизделген иштөө убактысынын брокерлерине окшош энбелгилерди тандоого аракет кылат. Аталышы - жашыруундуктун жалгыз аракети — руткит жок, колдонуучу аймагын жашыруу жок, жолду бурмалоо жок. Мүмкүнчүлүк коргоочулар сейрек аудит жүргүзүшөт. ~/.config/systemd/user/ жана аталган кызмат python3-dbus-жардамчысы кокусунан карап чыгууда өзгөчөлөнүп турбайт.

3. Процесстин аталышын жашыруу реалдуу, бирок анти-анализ жок. Python жүктөөчүсү төмөнкүлөрдү аныктайт: _жашыруун_процесс() процесстин аталышын орнотуучу функция орнотуучу аталыш (Linux/macOS) же Консолдун аталышын коюу (Windows) — жана main () аны чакырат. Ошентип ps жардамчы көрсөтөт python3-dbus-жардамчысы ордуна python3 …/guardian.pyБирок, ошол эле модуль ... аныктайт is_monitor_running() белгилүү процесстерди көзөмөлдөө куралдарын санап берген функция (htop, btop, Тапшырмаларды башкаргыч, Иш-аракеттерди көзөмөлдөөчү, Процесстерди хакерлөөчү, Ресурстарды көзөмөлдөөчү, GNOME / KDE / Xfce / MATE системалык мониторлору жана башкалар) — жана main () аны эч качан чакырбайт. Алмаштыруу цикли колдонуучунун процесстин монитору ачыкпы же жокпу, шартсыз иштейт. Функция жөнөтүлгөн версиядагы өлүк код. Бул, кыязы, мурунку итерациядан калган же али туташтырыла элек функция үчүн курулуш материалы. Кандай болгон күндө да, жарыяланган пайдалуу жүктөмдүн анти-анализ бети бир процесстин аталышынын атын өзгөртүү болуп саналат, монитордон активдүү качуу эмес.

4. Бириктирилген конфигурация-бириктирүү жүрүм-туруму. npm-install.js демейки капчык тизмесин жазат ~/.config/clipboard-guardian/config.json жана эгерде конфигурация файлы мурунтан эле бар болсо, анда ал учурдагы мааниси бош болгон ачкычтарга бириктирилет. Бул мурда вирус жуктуруп, конфигурацияны жарым-жартылай тазалаган колдонуучуну билдирет — мисалы, аны бошотуп ethereum мааниси — аны кийинки ар бир зыяндуу пакет орнотуу менен кайра толтурат. Код жолунда туруктуулук файлы тазаланбайт.

Дата / Убакыт (UTC) окуя
2026-05-21 18:50:32 @jaggle/resizeobserves@1.0.0 басылып чыккан.
2026-05-21 19:55:55 1.0.1 жарыяланды — биринчи версия тышкы сканерлөө менен белгиленди.
2026-05-21 19:58:10 1.0.2 басылып чыккан.
2026-05-21 20:05:03 1.0.3 басылып чыккан.
2026-05-21 20:09:24 1.0.4 басылып чыккан.
2026-05-21 20:13:48 1.0.5 басылып чыккан.
2026-05-21 20:41:52 1.0.6 басылып чыккан.
2026-05-21 20:43:56 1.0.7 жарыяланган — кошумчалайт try/catch капчыктын айланасындагы wrapper-config жазуу кадамын киргизүү npm-install.js.
2026-05-21 20:46:15 1.0.8 жарыяланды — орнотуучунун аты өзгөртүлдү npm-install.jsnpm-install.cjs (байттар менен бирдей мазмун).
2026-05-22 Чечимдер жана Эл аралык соттор жарыяланды. Версиялар жарыяланган учурда реестрде дагы эле бар (уланып жатат).

Бир саат элүү алты мүнөттө тогуз версияны жазуу катасы үчүн да тез. Бул үлгү а менен шайкеш келет жарыялоо жана өрттөө өнөктүгү — реестрди бир тутканын астына толтуруу, аныктоону улантуу жана бир версия алынып салынгандан кийин жаңы туткага өтүү. Иштөөдөгү көрүнгөн дельталар косметикалык: 1.0.1 версиясына ачык кошулду /usr/bin/pip3-style жолдору pip издөө тизмесине (sudo-шайкештик), 1.0.7 wallet-config жазуусун try/catch буйругуна ороп, ал эми 1.0.8 орноткучту кайра атады .js үчүн .cjs мазмунун байттары боюнча бирдей сактап калуу менен. .cjs Тректердин атын npm эскертүүлөрү менен өзгөртүү, алар пакеттердеги модулдун чечилиши жөнүндө так эмес. "Type" талаа жана көңүлдү бура турган орнотуу учурундагы ызы-чууну басуу аракети болушу мүмкүн. Pythonдун пайдалуу жүктөмү — чындыгында уурдаган жалгыз бөлүгү — тогуз версиянын баарында өзгөрүүсүз калган.

Компромисс көрсөткүчтөрү

пакеттер

Экосистемалык таңгак туру абал
КЭУБ @jaggle/resizeobserves 1.0.0 аркылуу 1.0.8 Жарыяланган учурда түз эфирде; алып салуу суралган.

Файлдар жана хэштер

жол жазуулар
clipboard_guardian/guardian.py
(md5 f7935c2c82bc881288611ab6cd634f17)
Бардык тогуз жарыяланган версияларында бирдей (1.0.0 аркылуу 1.0.8). Кыркуучу машинанын пайдалуу жүгү.
npm-install.js (1.0.0 – 1.0.7)
npm-install.cjs (1.0.8)
Туруктуу орнотуучу; башынан аягына чейин бирдей жүрүм-турум. 1.0.7's .js жана 1.0.8's .cjs байттар боюнча бирдей.
~/.config/clipboard-guardian/config.json Linux туруктуулук конфигурациясы жана капчык топтому.
~/Library/Application Support/clipboard-guardian/config.json macOS туруктуулук конфигурациясы жана капчык топтому.
%APPDATA%\clipboard-guardian\config.json Windows туруктуулук конфигурациясы жана капчык топтому.
~/.config/systemd/user/python3-dbus-helper.service Linux'тун автоматтык түрдө ишке киришинин туруктуулугу.
~/Library/LaunchAgents/com.apple.python.runtime.plist macOS LaunchAgent туруктуулугу.
~/Library/Logs/com.apple.python.runtime.log Агент үчүн macOS stdout/stderr журналы.
Scheduled Task PyRuntimeBroker Windows автоматтык түрдө баштоо тапшырмасы (AtLogOn, тайм-аут жок).

Жүрүм-турум көрсөткүчтөрү

сигнал баяндоо
pip install --break-system-packages npm postinstall'дан PEP 668 коргоолорун айланып өтүп, сайт боюнча Python орнотуусун мажбурлайт.
apt-get install -y xclip (же Pacman/dnf) Пакетти орнотуу учурунда Linux'та алмашуу буферинин утилиталарын орнотот.
python3-dbus-helper.service systemd колдонуучу бирдиги Туруктуулук ишенимдүү көрүнгөн аткаруу убактысынын жардамчысынын аты менен катталган.
com.apple.python.runtime LaunchAgent Apple системасынын мыйзамдуу жолдорунан тышкары туруктуулук энбелгиси.
PyRuntimeBroker Пландаштырылган тапшырма Мыйзамдуу орнотуучу булагы жок жасалма Windows иштөө убактысынын брокеринин туруктуулугу.
Python процесси деп аталат python3-dbus-helper алып келүү pyperclip жана psutil Көрсөтүлгөн процесстин аталышы менен импорттолгон китепканалардын ортосундагы жүрүм-турумдук дал келбестик.
Капчыктын дареги көчүрүлгөндөн кийин алмашуу буфери ~0.4s өзгөрөт Криптовалюта дарегин алмаштыруунун кол тамга жүрүм-туруму.

Чабуулчу капчык топтому (коргоочуну издөө тизмеси)

Капчык тизмеси катуу коддолгон түрдө жөнөтүлөт npm-install.js жана clipboard_guardian/guardian.pyКоргоочулар тизмени бөгөттөө тизмеси (корпоративдик капчыктардан бул даректерге жасалган ар кандай которууларды шектүү деп эсептешет) жана издөө ачкычы (бул саптардын кайсынысынын болбосун аныктыгы текшерилбеген конфигурация файлында, курулуш артефактында же иштеп чыгуучунун машинасында болушун инфекциянын индикатору катары эсептешет) катары колдоно алышат.

Чабуулчу капчык топтому

чынжыр дарек
Эфириум / BSC 0x450c0E58Fc2ba03632d3F5780ad8C966648B6F18
Ронин (EVM) ronin:450c0E58Fc2ba03632d3F5780ad8C966648B6F18
терминалдарда bc1qs2mpls4p0f7fng073gy2rcdgjpf7la4eugpt6y
Bitcoin Cash bitcoincash:qqmvyxxklzp7l3eslxavhc8phl6hprdf25lwc29nlt
Litecoin ltc1qnefc8x59a9cwtqnflt8hmqvezqw4hc7lt3fkqe
Dogecoin DNEJmYRZtzyK44tZea4S7wV3otTyRk48Fy
Dash XtJ7E6mnhPK93Vib29PGQrTmQjhTTqFwbS
Zcash t1d4hcEnBjdh9X6Wb6R2dxqjnxddJ6ocP8M
DigiByte DPmH2dhiGK3hk3A69tZUMz6tHzGFHBzSrH
Монеро 42zhAidVhP7QETk83JAspS59ASALSHFio44vmu6MdDCz15cSqtqsG4QVyzY8vTrjGrTEA6zMbWW6Yft1Ynz1xLfCN5FVbXf
Солана DWBAmQLi9gP6mk7UfJfQGYTV1UPK32WekLTqg83q1mc5
TRON TVgEgMemmJABYYnbNr1Wi8bSgADEkdEBt2
ТОН UQDTSkvwmptU9eG988KgxS3WjnYAZlXgfpJxnz4mhWZAvULr
Ripple r9tj3cMCiqRijNYqNVYNuwKykkQfS8FE4H
Polkadot 1JSkYqXQE4d28HdcmTPhbgCrdiPFTfSHxD67tam16p53oBG
ЖАКЫНДА 5d6aec44551529e8cd9ebd3aaa84b3832fc3c7463596b2b6e72635b80096a364
Космос cosmos1pzfl3kv5g8g0ernj86rwpar08u2zl9suthx28e
Osmosis osmo1pzfl3kv5g8g0ernj86rwpar08u2zl9surv463t
Celestia celestia1pzfl3kv5g8g0ernj86rwpar08u2zl9su6ah6a5
Инъекциялык inj1g5xquk8u9wsrvvkn74uq4kxfvejgkmccn578gh
káva kava1kjfvgcz4q0y9yae2f3pa33vhj2estxxj3sqqux
гармония one19hn0n7dzkhtl9ta9ekv5592s85jwstpka76t3a
Terra terra1h0dwu8z405jagdlr0fgr9jllac2sxajzlgme5x
Algorand XSAMN3FTB5SUHUQFENBDDRXIMOPNFVLKAWA3RNOU54DWROMDZ6SR7DZ2PI
Жумбак GACNZSV4EQO65NZZUOBS3TMJM7GFTSRNKQBVJOX5P2G7U7SEBQ2ZUDJE
Cardano addr1qyj050vla4cglmyrgm4vzf3dxtn0gynpks4t7vp7s3lg49e9wt0s94hcztzdgecxcz5hu9uk56q60yth6d66w026s2kq3ma56f
MultiversX erd1slvlgqsmwzk0c8xtksm4eq5vdfnc26slpzqsyxhz456zvme5rpasue6ge0
apt 0x580ecda1ebd6ca5a46be2097568d013308bd54ef1d147acb880b59f7709f280e
Sui 0xf7e8a9a970fa65c058745c4b2cf2a856cc0283863e4ed1e142648f26097b0c78
Nano nano_393n56a5pfz8zg3nkzf7mytfgagzhu5mn9i3xiqg54weq8n1u8jgezxas7dn
FileCode f1fypyww3xubopfnv7q6yh5l4bko44wmfktf3ckui
Tezos tz1RccjnorHk61bt73ArLXcdgFjEj6T1ochk
Ошентип, 9g1pNQGnFg7Hk1d9Z66bgHMkguGU7R41btypAnbG1NF5FJoNdBA
Header 0.0.10488092

Бул түзүлүштө кадимки камтуусу бар, бирок демейки конфигурациядагы бош капчык уячалары бар чынжырлар — Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin, Beacon-Chain BNB — активдүү алмаштырылбайт, бирок аныкталат. Аларды алмаштыруу аймагы катары эмес, мониторинг аймагы катары караңыз.

Атрибуция жана мотивация

Өнөктүк жука атрибуция бетин сунуштайт. Биз оператордун инсандыгын тастыктай алган жокпуз. Эмнени жаздыра алабыз:

  • Жарыялоочунун метадайындары. npm аккаунту шылдыңдоо электрондук почтасын төмөнкүдөй тизмелейт olgascarlet@deltajohnsons.comДомен deltajohnsons.com биз текшере ала турган корпоративдик идентификацияны чечпейт. npm аккаунту электрондук почтаны текшерүүнү көрсөтпөйт жана жок SCM текшерүү. GitHub'та эч кандай коомдук катышуу жок.
  • Репозиторий талаасы. The package.json жок алып барат жай талаа. Мыйзамдуу npm:@juggle/size-observer миңдеген жылдыздар жана активдүү маселелери бар чыныгы GitHub репозиторийине көңүл бурат. Репозиторий шилтемесинин жоктугу npm UIдеги эң ылдам визуалдык көрсөткүч болуп саналат.
  • README плагиаты. README пакети мыйзамдуу @juggle/resize-observer README байт сайын, анын ичинде импорт шилтеме берген мисалдар @juggle/resize-observer өзү (басма пакети эмес). Оператор импорттолгон файлдарды кайра жазууга да убара болгон жок — бул readme файлы ыңгайлаштырылган эмес, алынып салынгандыгынын жалпы белгиси.
  • Айланта турган инфраструктура жок. C2 акыркы чекити, DNS издөө, IP жок. Зыяндуу жүрүм-турум толугу менен жергиликтүү клипперде жана катуу коддолгон капчык топтомунда камтылган. Бул доменге же ASNге негизделген айланууну жеткиликсиз кылат. Өнөктүктөрдү айланып өтүүчү коргоочулар капчыктарды мурунку файлдагы клипперлер менен хэш-дал келтириши керек; капчыкты пакеттер арасында кайра колдонуу - бул эң оңой өнөктүк аралык байланыш.
  • Аты-жөнүн тандоо. @jaggle/resizeobserves бир белгиден артта @jouggle жана белгилүү бир бурулуштан бир бурулуш өлчөмүн өзгөртүү-байкоочуБириктирилген түзөтүү аралыгы эки глифтен турат. Бул атайылап жасалган визуалдык кагылышуу, жалпы отуруп калуу эмес.

Пайдалуу жүктөө жүрүм-турумуна негизделген мотивация: оппортунисттик алмашуу буферин алмаштыруу аркылуу таза акча табуу. Маалыматтарды чогултуу, хосттун манжа изин алуу, чөйрөнүн өзгөрмөсүн окуу жок. Оператор жабырлануучу ким экени маанилүү эмес — алар жабырлануучунун кийинки которуусу көрсөтүлгөн даректердин бирине багытталаарына маани беришет. Кырк чынжырлуу камтуу - бул лотереянын иштеп жаткан модели: кеңири ыргытылат, бир N орнотууда бирден жогорку баалуу паста түшөт деп үмүттөнөбүз.

Оператор алып салууга кайдыгер карагандай көрүнөт. Эки сааттын ичинде тогуз версияны бир эле көлөмдө жарыялоо жарыялоо жана күйгүзүү туткасы сыяктуу окулат: алып салуу кечигүүсү жеткенге чейин реестрдин изин максималдуу түрдө көбөйтүп, андан кийин улантыңыз. Биз байкаган жокпуз @jaggle жазып жаткан учурда жаңы чөйрөдө кайра жарыяланып жатат, бирок биз окшош чөйрөлөрдү күтөбүз (@jaggie, @jouggle-, @joggle) эгер оператор дагы эле активдүү болсо, алдыдагы күндөрү пайда болот.

Таасири, тенденциялары жана коргоочулар эмне кылышы керек

 таасири

Учурдагы маалыматтар топтомунан реалдуу акчанын таасирин сандык жактан аныктоо мүмкүн эмес. Клиппер телеметрияны жазбайт жана талдоо аяктаган учурда капчыктар алмаштырылган которууларды алып жатканы байкала элек (биздин тизмеде тизмеленген чынжырлардын кийинки текшерүүсү бар). Мыйзамдуу npm:@juggle/size-observer жумасына жети орундуу жүктөөлөрдөн турат — бул жогорку трафикти талап кылган каталардын бутасына айланат — жана зыяндуу пакет ачыкка чыккан учурда 24 сааттан аз убакыт бою иштеп турган, бул жабыркаган калктын санын чектейт, бирок аны нөлгө түшүрбөйт.

Байкоого арзырлык жарылуу радиусу түз жүктөөлөр эмес @jaggle/resizeobserves — алар, кыязы, кичинекей. Бул **өткөөл орнотуулар**: иштеп чыгуучу пакетти кумкоргон долбооруна кошуп, иштеп жатат npm орнотуу, анан орнотуу илмеги качандыр бир кезде иштегенин унутуп калуу. Postinstall иштеткен ар бир машинада эми долбоор дагы эле дискте болсо да, болбосо да, колдонуучу үчүн автоматтык түрдө баштоо режиминде алмашуу буферин басып алуучу бар. Пакет каталогун алып салуу node_modules туруктуулукту **жок кылбайт**.

Пайда болгон калыптар

Бул өнөктүк эки тенденцияны мисал катары келтирет.

npm Python-жүк жеткирүү оромосу катары. npm tarball - бул 4 саптуу орнотуучу; чыныгы уурдоочу - бул Python, ал система боюнча орнотулган Жооп жазуу топтомдолгон каталогдон. Бул жаңылык эмес — биз npm пакеттеринин Pythonдон чыгып кеткенин мурда көргөнбүз — бирок ал крипто-клиппер кампанияларында өлчөнүүчү кеңири таралган формага айланып баратат. Оператор үчүн эки артыкчылык бар: Python алмашуу буферинин китепканалары (пиперклип алардын ичинен биринчиси) JavaScript эквиваленттерине караганда тазараак жана көп платформалуураак, жана көпчүлүк автоматташтырылган npm сканерлери JavaScript файлдарын оор салмакташат жана Python .py жеңил байлайт. Баасы орнотуунун изи бир топ катуураак — жаңы пип орнотуу адатта эмес, иштеп чыгуучунун машинасында жашыруу кыйын пип орнотуу убагында npm орнотуу.

Платформага таандык аттар жалгыз жашыруун нерсе катары. Акыркы бир нече кыркуучу машиналар жана кичинекей пайдалуу жүктөрдү уурдагандар код деңгээлиндеги бурмалоону толугу менен таштап, мыйзамдуу көрүнгөн туруктуулук белгилерин колдонушту. python3-dbus-жардамчысы, com.apple.python.runtime, жана PyRuntimeBroker окуу китебиндеги мисалдар — коргоочунун көзү кырк колдонуучу кызматынын тизмесинен өткөрүп жибере турган аттары. Бул жашыруундуктун арзан, бышык түрү: алып салуу ар бир пакетке бөлүнөт, бирок туруктуу файлдар алып салуудан кийин сакталып калат, ал эми чыныгы көрүнгөн платформа компонентинин атынан аталган кызмат ачык аудиттен башка эч нерсе менен тазаланбайт.

Коргоочулар эмне кылышы керек

  • ~/.config/systemd/user/, ~/Library/LaunchAgents/ жана Get-ScheduledTask файлдарын аудиттен өткөрүү продукция IOC'лордо көрсөтүлгөн жазуулар үчүн иштеп чыгуучу машиналарда. npm пакетин алып салуу буларды ордунда калтырат; аларды кол менен алып салуу керек.
  • Көрсөтүлгөн капчык даректерине которууларды бөгөттөө даректерди уруксат берүү тизмеси жеткиликтүү болгон корпоративдик казыналык жана DeFi капчык чек араларында.
  • ~/.config/clipboard-guardian/config.json издөө (жана платформанын эквиваленттери) иштеп чыгуучу-машиналык флотто. Файлдын болушу, аны кайсы пакеттин версиясы жеткиргенине карабастан, жогорку ишенимдүүлүктөгү инфекция болуп саналат.
  • clipboard_guardian/guardian.py үчүн node_modules/ издеңиз алып салуудан мурун жасалган build-cache сүрөттөрүндө. Файлдын md5 файлы бардык каралып чыккан версияларда туруктуу.
  • Lockfile-pin @juggle/resize-observer (мыйзамдуу пакет), ошондуктан келечектеги орнотуулар бир белгиден турган ката менен башка эч нерсени чече албайт, айрыкча кулпу файлы жок жумуш агымдарында npx.
  • npm пост-орнотууну чакырган ар кандай pip орнотуусун иштетүү жогорку деңгээлдеги курулушта-pipeline саясат. npm пакетинин орнотуу учурунда pip талап кылышына эч кандай мыйзамдуу себеп жок — Python tooling Python toolingди таратат.
  • pyperclip импорттогон python3-dbus-helper деп аталган процесстер үчүн process_iter()-салыштырмалуу мониторинг маалыматтарын издөө — маскировка дал келбестиги (буфер китепканасын кармап турган D-Bus жардамчысы) биздеги эң таза жүрүм-турумдук көрсөткүч.
  • Инфекцияланган машиналардан чапталган капчык даректерин айландырыңыз. Алмашуу буферин басып алуучу капчыктын колдонуучу интерфейси менен чаптоо бутасынын ортосундагы жолду бузуп салат; инфекция жуккан учурда көчүрүлгөн даректер тымызын өзгөртүлүшү мүмкүн. Инфекция терезеси учурунда жөнөтүлгөн бардык нерселер туура эмес багытталышы мүмкүн деп эсептелиши керек.

Жыйынтык: туруктуулук жок кылуудан да узак жашайт. Акыры реестр жок кылынат @jaggle/resizeobserves тогуз версиянын баарында; systemd бирдиги, LaunchAgent жана Scheduled Task өздөрүн алып салбайт.

шилтемелер

sca-tools-программалык-композициялык-талдоо-куралдары
Программалык камсыздооңуздун тобокелдиктерин артыкчылыктуу деп эсептеңиз, оңдоңуз жана коопсуздугун камсыз кылыңыз
Акысыз аккаунтуңузду алыңыз.
Насыя картасы талап кылынбайт.

Программалык камсыздоону иштеп чыгууну жана жеткирүүнү камсыз кылыңыз

Xygeni Product Suite менен