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.js → npm-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 өздөрүн алып салбайт.
шилтемелер
- @juggle/resize-observer on npm — бул ката кетирүү туураган мыйзамдуу пакет; байт сайын README плагиаты үчүн негиз катары пайдалуу.
- @jaggle/resizeobserves реестрдин метадайындары — криминалистикалык убакытты эсептөө үчүн пайдалуу болгон тогуз зыяндуу версия үчүн убакыт белгилерин жарыялоо.





