TL; DR
2026-05-21న, npm పబ్లిషర్ jaggle తొమ్మిది వెర్షన్లు విడుదలయ్యాయి (1.0.0 ద్వారా 1.0.8) యొక్క @jaggle/resizeobserves సుమారు రెండు గంటల వ్యవధిలో.
ఈ ప్యాకేజీ చట్టబద్ధమైన దాని యొక్క అక్షరదోషం. @juggle/resize-observer పాలిఫిల్ — వారానికి లక్షలాది డౌన్లోడ్లతో విస్తృతంగా ఉపయోగించబడే ప్యాకేజీ — కానీ ఇది అసలైన రీసైజ్ అబ్జర్వర్ ఇంప్లిమెంటేషన్ను అందించదు.
బదులుగా, ప్యాకేజీ యొక్క పోస్ట్ఇన్స్టాల్ హుక్ బండిల్ చేయబడిన పైథాన్ పేలోడ్ను ఇన్స్టాల్ చేస్తుంది, పర్సిస్టెన్స్ను ప్లాట్ఫారమ్-నేటివ్ లాగా కనిపించే రన్టైమ్ బ్రోకర్గా నమోదు చేస్తుంది, మరియు క్రిప్టోకరెన్సీ లావాదేవీలను లక్ష్యంగా చేసుకుని క్రాస్-ప్లాట్ఫారమ్ క్లిప్బోర్డ్ హైజాకర్ను అమలు చేస్తుంది.
linux పట్టుదల ఇలా కనిపిస్తుంది python3-dbus-helper, MacOS as com.apple.python.runtimeమరియు విండోస్ as PyRuntimeBroker.
పేలోడ్ వాలెట్ చిరునామాల కోసం క్లిప్బోర్డ్ను నిరంతరం పర్యవేక్షిస్తుంది. 40 కంటే ఎక్కువ బ్లాక్చెయిన్లు మరియు కాపీ చేసిన చిరునామాలను దాడి చేసేవారి నియంత్రణలో ఉన్న వాలెట్లతో నిశ్శబ్దంగా భర్తీ చేస్తుంది.
ఈ మాల్వేర్ ఎటువంటి అవుట్బౌండ్ C2 మౌలిక సదుపాయాలు లేకుండా పూర్తిగా స్థానికంగా పనిచేస్తుంది, దీనివల్ల క్లిప్బోర్డ్ ప్రతిస్థాపనే సమాచార లీకేజీ యంత్రాంగంగా మారుతుంది.
ప్రాథమిక IOC అనేది ప్యాకేజీ పేరు: @jaggle/resizeobserves — “jaggle”లో వదిలివేయబడిన అచ్చును మరియు “resizeobserves”లో జోడించబడిన “s”ను గమనించండి.
తీవ్రత: అధికం.
దాడి: అది ఎలా పనిచేస్తుంది
npm:@jaggle/resizeobserves మామూలుగా చూసినప్పుడు మాల్వేర్లా కనిపించదు npm వీక్షణ. దీని README.md ఇది యొక్క యథాతథ README npm:@juggle/resize-observer అవే కోడ్ నమూనాలు, అవే వినియోగ సూచనలు, అవే import { ResizeObserver } from '@juggle/resize-observer' అంతటా రిఫరెన్సులు ఉన్నాయి. ఈ సాహిత్య చోరీ ఎంత సంపూర్ణంగా ఉందంటే, డాక్యుమెంటేషన్ను ఒక్కసారి చూసిన ఎవరైనా, తాము అసలైన ప్యాకేజీ యొక్క డాక్యుమెంటేషన్నే చదువుతున్నామని అనుకుంటారు.
మా ప్యాకేజీ.జాసన్దీనికి విరుద్ధంగా, విరళంగా ఉంది: లేదు రిపోజిటరీ క్షేత్రం, ఒకే ఒక్క బిన్ ప్రవేశ ద్వారం వైపు చూపిస్తోంది bin/clipboard-guardian.js, మరియు ఒక పోస్ట్ ఇన్స్టాల్ నడిచే స్క్రిప్ట్ నోడ్ npm-install.jsREADMEలోని “ప్రాథమిక వినియోగం” ఉదాహరణలు, టార్బాల్లో ఎక్కడా లేని ఒక జావాస్క్రిప్ట్ ఇంప్లిమెంటేషన్ను సూచిస్తున్నాయి. ఆ ప్యాకేజీలో ఉన్న ఏకైక జావాస్క్రిప్ట్, ఇన్స్టాల్ స్క్రిప్ట్ మాత్రమే.
దశ 1 — npm postinstall ఒక పైథాన్ పేలోడ్ను బూట్స్ట్రాప్ చేస్తుంది
npm-install.js ప్లాట్ఫారమ్ గురించి తెలుసు. ఇది ఒక విత్తనము స్థిరమైన శోధన మార్గంలో అమలు చేయగలది (/usr/bin/pip3, /usr/local/bin/pipతిరిగి పడిపోవడం పైథాన్3 -m పిప్), టార్బాల్ డైరెక్టరీ నుండి బండిల్ చేయబడిన పైథాన్ ప్యాకేజీని ఇన్స్టాల్ చేస్తుంది మరియు — లైనక్స్లో — లాగుతుంది ఎక్స్క్లిప్ or xsel ద్వారా వర్ణనాత్మక పొందండి, ప్యాక్మ్యాన్లేదా DNF రెండూ ఇప్పటికే లేకపోతే:
దాని యొక్క ఉపయోగం –బ్రేక్-సిస్టమ్-ప్యాకేజెస్ ఇది ఉద్దేశపూర్వకమే: ఆధునిక లైనక్స్ డిస్ట్రిబ్యూషన్లు పైథాన్ను PEP 668 యొక్క ఎక్స్టర్నల్లీ-మేనేజ్డ్-ఎన్విరాన్మెంట్ మార్కర్తో అందిస్తాయి, ఇది డిఫాల్ట్గా సైట్-వైడ్ పిప్ ఇన్స్టాల్లను నిరోధిస్తుంది. ఇన్స్టాల్ స్క్రిప్ట్ ఇన్స్టాల్ను బలవంతంగా పూర్తి చేస్తుంది.
ఈ స్క్రిప్ట్ సూడో-అవేర్ కూడా. రన్నింగ్ యూఐడి అనేది ఒక దాని ఫలితం అయినప్పుడు sudo npm installస్క్రిప్ట్ ఇలా చదువుతుంది SUDO_USER మరియు డబ్బులు బయటకు ఇస్తుంది getent passwd కనుగొనడానికి నిజమైన వినియోగదారుడి హోమ్ డైరెక్టరీలోకి వెళ్లి, ఆ తర్వాత దాని పర్సిస్టెన్స్ ఫైళ్లను అక్కడికి రాస్తుంది, లోపలికి కాదు. / రూట్. నిలకడ అనేది ప్రతి వినియోగదారునికి వర్తిస్తుంది, వ్యవస్థంతటా కాదు.
దశ 2 — రన్టైమ్-బ్రోకర్ పేర్ల క్రింద క్రాస్-OS పర్సిస్టెన్స్
పైథాన్ ప్యాకేజీని ఇన్స్టాల్ చేసిన తర్వాత, స్క్రిప్ట్ ప్రతి ఆపరేటింగ్ సిస్టమ్లో వేరొక పేరుతో ఒక ఆటో-స్టార్ట్ ఎంట్రీని నమోదు చేస్తుంది:
- linux — ఒక systemd యూజర్ యూనిట్ వద్ద ~/.config/systemd/user/python3-dbus-helper.serviceయూనిట్ యొక్క వివరణ is పైథాన్ డి-బస్ రన్టైమ్ హెల్పర్. స్క్రిప్ట్ కూడా దీని ద్వారా దాన్ని ఎనేబుల్ చేయడానికి ప్రయత్నిస్తుంది systemctl –user enableమాన్యువల్ సిమ్లింక్కు తిరిగి వెళ్లడం డిఫాల్ట్.టార్గెట్.వాంట్స్/ systemctl విఫలమైనప్పుడు. sudo తో నడుపుతున్నట్లయితే, స్క్రిప్ట్ దీనికి మారుతుంది sudo -u systemctl –userతో XDG_RUNTIME_DIR యూజర్-బస్ కాల్ పనిచేసేలా సెట్ చేయండి.
- MacOS — ఒక లాంచ్ ఏజెంట్ ప్లిస్ట్ వద్ద ~/Library/LaunchAgents/com.apple.python.runtime.plist తో RunAtLoad=true మరియు KeepAlive=true, ఆపై దీని ద్వారా లోడ్ చేయబడింది లాంచ్సిటిఎల్ లోడ్.
- విండోస్ — PowerShell ద్వారా రిజిస్టర్ చేయబడిన, AtLogOn వద్ద ట్రిగ్గర్ అయ్యే, సున్నా అమలు సమయ పరిమితి (అంటే, టైమ్అవుట్ లేదు) గల PyRuntimeBroker అనే షెడ్యూల్డ్ టాస్క్.
చూడగానే మూడు పేర్లూ నమ్మదగినవిగా అనిపిస్తున్నాయి. పైథాన్3-డిబస్-హెల్పర్ Linux డెస్క్టాప్లలో చట్టబద్ధమైన Python-D-Bus ఇంటిగ్రేషన్ యొక్క నామకరణ సంప్రదాయాన్ని అనుసరిస్తుంది. com.apple.python.runtime ఇది ఆపిల్ తన సొంత సేవల కోసం ఉపయోగించే రివర్స్-DNS లేబులింగ్ను అనుకరిస్తుంది. పైరన్టైమ్బ్రోకర్ విండోస్ యొక్క ప్రతిధ్వనిస్తుంది RuntimeBroker.exe — UWP యాప్ల కోసం అనుమతి అభ్యర్థనలను మధ్యవర్తిత్వం చేసే ఒక నిజమైన, సంతకం చేయబడిన మైక్రోసాఫ్ట్ సేవ. ఈ సందర్భంలో ఇవేవీ నిజమైన Apple/Microsoft/Python సేవలు కావు, కానీ ఒక డిఫెండర్ త్వరిత దృశ్య పరిశీలన చేస్తున్నాడు systemctl –user list-units or గెట్-షెడ్యూల్డ్ టాస్క్ బెదరకపోవచ్చు.
దశ 3 — క్లిప్బోర్డ్ హైజాకర్
పైథాన్ పేలోడ్, ఇక్కడ ఇన్స్టాల్ చేయబడింది క్లిప్బోర్డ్_గార్డియన్/గార్డియన్.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 → పైథాన్ కలయిక. npmలో మనం చూసే చాలా క్రిప్టో-క్లిప్పర్లు పూర్తిగా జావాస్క్రిప్ట్తో ఉంటాయి, తరచుగా అస్పష్టంగా ఉంటాయి _0x శ్రేణి భ్రమణం లేదా eval(atob(…)) స్టాక్స్. ఈ నమూనా npm టార్బాల్ను పైథాన్ ప్యాకేజీకి (క్లీన్ పైథాన్) కేవలం ఒక డెలివరీ వ్రాపర్గా మాత్రమే ఉపయోగిస్తుంది మరియు డిపెండెన్సీ ఇన్స్టాలేషన్ను pip నిర్వహించేలా చేస్తుంది (పైపర్క్లిప్, psutil, ఐచ్ఛికం సెట్ప్రోక్టైటిల్) బండిల్లో ప్రకటించబడింది pyproject.tomlఅధిగమించడానికి జావాస్క్రిప్ట్ అస్పష్టత ఏమీ లేదు. క్లిప్పర్ స్వయంగా స్పష్టమైన, చదవగలిగే పైథాన్ కోడ్.
2. విశ్వసనీయత కోసం ట్రై-OS పర్సిస్టెన్స్ లేబుల్లు ఎంపిక చేయబడ్డాయి. అనేక క్రాస్-ప్లాట్ఫారమ్ ఇన్స్టాలర్లు పర్సిస్టెన్స్ను సాధారణ పేర్లతో నమోదు చేస్తాయి (అప్డేటర్.సర్వీస్, సహాయకుడు.ప్లిస్ట్ఈ నమూనా ప్రతి OS లోని ప్లాట్ఫారమ్-నేటివ్ రన్టైమ్ బ్రోకర్లను పోలి ఉండే లేబుల్లను ఎంచుకోవడానికి శ్రమిస్తుంది. ఈ నామకరణం మాత్రమే రహస్యంగా ఉంచడానికి చేసే ఏకైక ప్రయత్నం — ఇందులో రూట్కిట్ లేదు, యూజర్ల్యాండ్ను దాచడం లేదు, పాత్ను అస్పష్టం చేయడం లేదు. రక్షకులు అరుదుగా ఆడిట్ చేస్తారనేది ఇక్కడి అంచనా. ~/.config/systemd/user/ మరియు ఆ పేరుగల ఒక సేవ పైథాన్3-డిబస్-హెల్పర్ సాధారణ సమీక్షలో ప్రత్యేకంగా కనిపించదు.
3. ప్రక్రియ-శీర్షిక మారువేషం నిజమే, కానీ విశ్లేషణ వ్యతిరేకత నిద్రాణంగా ఉంది. పైథాన్ పేలోడ్ నిర్వచిస్తుంది _disguise_process() దీని ద్వారా ప్రాసెస్ శీర్షికను సెట్ చేసే ఫంక్షన్ సెట్ప్రోక్టైటిల్ (లైనక్స్/మాకోస్) లేదా సెట్ కన్సోల్ టైటిల్ డబ్ల్యూ (విండోస్) — మరియు main () దాన్ని పిలుస్తుంది. కాబట్టి ps aux నీకు చూపెడుతా పైథాన్3-డిబస్-హెల్పర్ బదులుగా పైథాన్3 …/గార్డియన్.పైఅయితే, అదే మాడ్యూల్ ఒక is_monitor_running() తెలిసిన ప్రక్రియ-పర్యవేక్షణ సాధనాలను జాబితా చేసే ఫంక్షన్ (htop, బిటాప్, టాస్క్ మేనేజర్, యాక్టివిటీ మానిటర్, ప్రాసెస్ హ్యాకర్, రిసోర్స్ మానిటర్, గ్నోమ్ / కెడిఇ / ఎక్స్ఎఫ్సిఇ / మేట్ సిస్టమ్ మానిటర్లు, మరియు మొదలైనవి) — మరియు 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 wallet-config write step చుట్టూ ఉన్న వ్రాపర్ npm-install.js. |
2026-05-21 20:46:15 | 1.0.8 ప్రచురించబడింది — ఇన్స్టాలర్ పేరు మార్చబడింది npm-install.js → npm-install.cjs (బైట్-సమానమైన కంటెంట్). |
2026-05-22 | తీర్పులు మరియు IOCలు ప్రచురించబడ్డాయి. ప్రచురణ సమయంలో వెర్షన్లు ఇప్పటికీ రిజిస్ట్రీలో అందుబాటులో ఉన్నాయి (కొనసాగుతోంది). |
ఒక గంట యాభై ఆరు నిమిషాలలో తొమ్మిది వెర్షన్లు చేయడం అనేది టైపోస్క్వాట్కు కూడా చాలా వేగమైనది. ఈ నమూనా దీనికి అనుగుణంగా ఉంది ప్రచురించి-దహనం చేసే ప్రచారం — రిజిస్ట్రీని ఒకే హ్యాండిల్ కిందకు చేర్చండి, డిటెక్షన్ దాని పనిని చేయనివ్వండి, మరియు ఒక వెర్షన్ తొలగించబడిన తర్వాత కొత్త హ్యాండిల్కు మారండి. రన్ అంతటా కనిపించే డెల్టాలు కేవలం ప్రదర్శనపరమైనవి: 1.0.1 స్పష్టంగా జోడించబడింది /usr/bin/pip3pip శోధన జాబితాకు -శైలి మార్గాలు (sudo-అనుకూలత), 1.0.7 wallet-config రైట్ను try/catchలో చుట్టింది మరియు 1.0.8 ఇన్స్టాలర్ను నుండి పేరు మార్చింది JS, కు .cjs దాని కంటెంట్ను బైట్-ఐడెంటికల్గా ఉంచుతూ. .cjs స్పష్టమైన సూచన లేకుండా ప్యాకేజీలలో అస్పష్టమైన మాడ్యూల్ రిజల్యూషన్ గురించి npm హెచ్చరికలతో ట్రాక్లను పేరు మార్చండి “రకం” ఇది ఫీల్డ్కు సంబంధించిన విషయం, మరియు దృష్టిని ఆకర్షించగల ఇన్స్టాల్-సమయపు గందరగోళాన్ని అణచివేసే ప్రయత్నం కావచ్చు. పైథాన్ పేలోడ్ — వాస్తవానికి దొంగిలించే ఏకైక భాగం — తొమ్మిది వెర్షన్లలోనూ మార్పు లేకుండా ఉంది.
రాజీ సూచికలు
ప్యాకేజీలు
| పర్యావరణ వ్యవస్థ | ప్యాకేజీ | సంస్కరణలు | స్థితి |
|---|---|---|---|
| npm | @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 | లినక్స్ పర్సిస్టెన్స్ కాన్ఫిగ్ మరియు వాలెట్ బండిల్. |
~/Library/Application Support/clipboard-guardian/config.json | macOS పర్సిస్టెన్స్ కాన్ఫిగ్ మరియు వాలెట్ బండిల్. |
%APPDATA%\clipboard-guardian\config.json | విండోస్ పర్సిస్టెన్స్ కాన్ఫిగ్ మరియు వాలెట్ బండిల్. |
~/.config/systemd/user/python3-dbus-helper.service | లినక్స్ ఆటో-స్టార్ట్ పర్సిస్టెన్స్. |
~/Library/LaunchAgents/com.apple.python.runtime.plist | macOS లాంచ్ ఏజెంట్ నిలకడ. |
~/Library/Logs/com.apple.python.runtime.log | ఏజెంట్ కోసం macOS stdout/stderr లాగ్. |
Scheduled Task PyRuntimeBroker | విండోస్ ఆటో-స్టార్ట్ టాస్క్ (AtLogOn, టైమ్అవుట్ లేదు). |
ప్రవర్తనా సూచికలు
| సిగ్నల్ | వివరణ |
|---|---|
pip install --break-system-packages npm postinstall నుండి | PEP 668 రక్షణలను దాటవేస్తూ, సైట్ అంతటా పైథాన్ ఇన్స్టాలేషన్ను బలవంతం చేస్తుంది. |
apt-get install -y xclip (లేదా పాక్మ్యాన్/డిఎన్ఎఫ్) | ప్యాకేజీ ఇన్స్టాలేషన్ సమయంలో లైనక్స్లో క్లిప్బోర్డ్ యుటిలిటీలను ఇన్స్టాల్ చేస్తుంది. |
python3-dbus-helper.service సిస్టమ్డి యూజర్ యూనిట్ | సహేతుకంగా కనిపించే రన్టైమ్-హెల్పర్ పేరుతో పెర్సిస్టెన్స్ నమోదు చేయబడింది. |
com.apple.python.runtime లాంచ్ ఏజెంట్ | చట్టబద్ధమైన ఆపిల్ సిస్టమ్ మార్గాల వెలుపల పెర్సిస్టెన్స్ లేబుల్. |
PyRuntimeBroker షెడ్యూల్ చేయబడిన పని | సరైన ఇన్స్టాలర్ సోర్స్ లేకుండా నకిలీ విండోస్ రన్టైమ్ బ్రోకర్ పర్సిస్టెన్స్. |
పైథాన్ ప్రాసెస్ శీర్షిక python3-dbus-helper దిగుమతి pyperclip మరియు psutil | ప్రదర్శించబడిన ప్రాసెస్ పేరు మరియు దిగుమతి చేసుకున్న లైబ్రరీల మధ్య ప్రవర్తనాపరమైన అసంగతత్వం. |
| వాలెట్ చిరునామా కాపీ చేసిన సుమారు 0.4 సెకన్ల తర్వాత క్లిప్బోర్డ్ మారుతుంది | క్రిప్టోకరెన్సీ చిరునామా ప్రత్యామ్నాయం యొక్క సంతకం ప్రవర్తన. |
దాడి చేసేవారి వాలెట్ బండిల్ (రక్షకులను వేటాడే జాబితా)
వాలెట్ జాబితా హార్డ్-కోడ్ చేయబడి వస్తుంది npm-install.js మరియు క్లిప్బోర్డ్_గార్డియన్/గార్డియన్.pyడిఫెండర్లు ఈ జాబితాను బ్లాక్లిస్ట్గా (కార్పొరేట్ వాలెట్ల నుండి ఈ చిరునామాలకు జరిగే ఏ బదిలీనైనా అనుమానాస్పదంగా పరిగణించడం) మరియు హంటింగ్ కీగా (అనధికారిక కాన్ఫిగ్ ఫైల్, బిల్డ్ ఆర్టిఫ్యాక్ట్ లేదా డెవలపర్ మెషీన్లో ఈ స్ట్రింగ్లలో ఏదైనా ఉనికిని ఇన్ఫెక్షన్ సూచికగా పరిగణించడం) రెండింటిగానూ ఉపయోగించవచ్చు.
దాడి చేసేవారి వాలెట్ బండిల్
| చైన్ | చిరునామా |
|---|---|
| ఎథేరియం / బీఎస్సీ | 0x450c0E58Fc2ba03632d3F5780ad8C966648B6F18 |
| రోనిన్ (EVM) | ronin:450c0E58Fc2ba03632d3F5780ad8C966648B6F18 |
| Bitcoin | bc1qs2mpls4p0f7fng073gy2rcdgjpf7la4eugpt6y |
| వికీపీడియా నగదు | bitcoincash:qqmvyxxklzp7l3eslxavhc8phl6hprdf25lwc29nlt |
| Litecoin | ltc1qnefc8x59a9cwtqnflt8hmqvezqw4hc7lt3fkqe |
| Dogecoin | DNEJmYRZtzyK44tZea4S7wV3otTyRk48Fy |
| డాష్ | XtJ7E6mnhPK93Vib29PGQrTmQjhTTqFwbS |
| Zcash | t1d4hcEnBjdh9X6Wb6R2dxqjnxddJ6ocP8M |
| DigiByte | DPmH2dhiGK3hk3A69tZUMz6tHzGFHBzSrH |
| Monero | 42zhAidVhP7QETk83JAspS59ASALSHFio44vmu6MdDCz15cSqtqsG4QVyzY8vTrjGrTEA6zMbWW6Yft1Ynz1xLfCN5FVbXf |
| SOLANA | DWBAmQLi9gP6mk7UfJfQGYTV1UPK32WekLTqg83q1mc5 |
| ట్రోన్ | TVgEgMemmJABYYnbNr1Wi8bSgADEkdEBt2 |
| TON | UQDTSkvwmptU9eG988KgxS3WjnYAZlXgfpJxnz4mhWZAvULr |
| Ripple | r9tj3cMCiqRijNYqNVYNuwKykkQfS8FE4H |
| పోల్కాడోట్ | 1JSkYqXQE4d28HdcmTPhbgCrdiPFTfSHxD67tam16p53oBG |
| NEAR | 5d6aec44551529e8cd9ebd3aaa84b3832fc3c7463596b2b6e72635b80096a364 |
| కాస్మోస్ | cosmos1pzfl3kv5g8g0ernj86rwpar08u2zl9suthx28e |
| ఓస్మోసిస్ | osmo1pzfl3kv5g8g0ernj86rwpar08u2zl9surv463t |
| సెలెస్టియా | celestia1pzfl3kv5g8g0ernj86rwpar08u2zl9su6ah6a5 |
| ఇంజెక్టివ్ | inj1g5xquk8u9wsrvvkn74uq4kxfvejgkmccn578gh |
| కవా | kava1kjfvgcz4q0y9yae2f3pa33vhj2estxxj3sqqux |
| హార్మొనీ | one19hn0n7dzkhtl9ta9ekv5592s85jwstpka76t3a |
| టెర్రా | terra1h0dwu8z405jagdlr0fgr9jllac2sxajzlgme5x |
| Algorand | XSAMN3FTB5SUHUQFENBDDRXIMOPNFVLKAWA3RNOU54DWROMDZ6SR7DZ2PI |
| నక్షత్ర | GACNZSV4EQO65NZZUOBS3TMJM7GFTSRNKQBVJOX5P2G7U7SEBQ2ZUDJE |
| Cardano | addr1qyj050vla4cglmyrgm4vzf3dxtn0gynpks4t7vp7s3lg49e9wt0s94hcztzdgecxcz5hu9uk56q60yth6d66w026s2kq3ma56f |
| మల్టీవర్స్ ఎక్స్ | erd1slvlgqsmwzk0c8xtksm4eq5vdfnc26slpzqsyxhz456zvme5rpasue6ge0 |
| ఆప్టోస్ | 0x580ecda1ebd6ca5a46be2097568d013308bd54ef1d147acb880b59f7709f280e |
| సుయి | 0xf7e8a9a970fa65c058745c4b2cf2a856cc0283863e4ed1e142648f26097b0c78 |
| నానో | nano_393n56a5pfz8zg3nkzf7mytfgagzhu5mn9i3xiqg54weq8n1u8jgezxas7dn |
| Filecoin | f1fypyww3xubopfnv7q6yh5l4bko44wmfktf3ckui |
| Tezos | tz1RccjnorHk61bt73ArLXcdgFjEj6T1ochk |
| ergo | 9g1pNQGnFg7Hk1d9Z66bgHMkguGU7R41btypAnbG1NF5FJoNdBA |
| శీర్షిక | 0.0.10488092 |
డిఫాల్ట్ కాన్ఫిగ్లో రెగెక్స్ కవరేజ్ ఉండి, వాలెట్ స్లాట్లు ఖాళీగా ఉన్న చైన్లు — Sei, IOTA, Kaspa, Flow, Nervos, Decred, Ravencoin, Beacon-Chain BNB — ఈ బిల్డ్లో చురుకుగా ప్రతిస్థాపించబడవు కానీ గుర్తించబడతాయి. వాటిని ప్రతిస్థాపన పరిధిగా కాకుండా పర్యవేక్షణ పరిధిగా పరిగణించండి.
ఆపాదించడం & ప్రేరణ
ఈ ప్రచారం పరిమిత గుర్తింపు అవకాశాన్ని అందిస్తుంది. మేము ఆపరేటర్ గుర్తింపును నిర్ధారించలేకపోయాము. మేము నమోదు చేయగలిగినది:
- ప్రచురణకర్త మెటాడేటా. npm ఖాతా జాగల్ దాని ఇమెయిల్ను ఇలా జాబితా చేస్తుంది olgascarlet@deltajohnsons.comడొమైన్ డెల్టాజాన్సన్స్.కామ్ మేము ధృవీకరించగల కార్పొరేట్ గుర్తింపుగా ఇది తేలడం లేదు. npm ఖాతాలో ఇమెయిల్ ధృవీకరణ మరియు మరేమీ కనిపించడం లేదు. SCM ధృవీకరణ. దీనికి సంబంధించిన పబ్లిక్ గిట్హబ్ ఉనికి లేదు.
- రిపోజిటరీ ఫీల్డ్. మా ప్యాకేజీ.జాసన్ మోయదు రిపోజిటరీ క్షేత్రం. చట్టబద్ధమైన npm:@juggle/resize-observer వేల కొద్దీ స్టార్లు మరియు యాక్టివ్ ఇష్యూలతో ఉన్న నిజమైన గిట్హబ్ రిపోజిటరీని ఇది సూచిస్తుంది. npm UIలో రిపోజిటరీ లింక్ లేకపోవడమే దీనిని దృశ్యమానంగా సూచించే అత్యంత వేగవంతమైన సంకేతం.
- README సాహిత్య చోరీ. ప్యాకేజీ README చట్టబద్ధమైనది @juggle/resize-observer README బైట్-బైట్, సహా దిగుమతి సూచించే ఉదాహరణలు @juggle/resize-observer అది స్వయంగానే (పబ్లిషింగ్ ప్యాకేజీ కాదు). ఆపరేటర్ ఇంపోర్ట్లను తిరిగి వ్రాయడానికి కూడా శ్రమించలేదు — ఇది రీడ్మీని యథాతథంగా తీసుకున్నారే తప్ప, మార్పులు చేయలేదని సూచించే ఒక సాధారణ సంకేతం.
- ఆధారపడటానికి మౌలిక సదుపాయాలు లేవు. C2 ఎండ్పాయింట్, DNS లుకప్, IP ఏవీ లేవు. హానికరమైన ప్రవర్తన పూర్తిగా లోకల్ క్లిప్పర్ మరియు హార్డ్-కోడెడ్ వాలెట్ బండిల్లో నిక్షిప్తమై ఉంటుంది. దీనివల్ల డొమైన్ లేదా ASN ఆధారిత పివోటింగ్ అందుబాటులో ఉండదు. క్యాంపెయిన్ల మధ్య పివోటింగ్ చేసే డిఫెండర్లు, తమ వద్ద ఫైల్లో ఉన్న ఏదైనా పాత క్లిప్పర్తో వాలెట్లను హ్యాష్-మ్యాచ్ చేయాలి; ప్యాకేజీల మధ్య వాలెట్ను తిరిగి ఉపయోగించడమే క్యాంపెయిన్ల మధ్య అత్యంత సులభంగా నిర్వహించగల అనుసంధానం.
- పేరు ఎంపిక. @jaggle/resizeobserves ఒక అక్షరం తేడా ఉంది @జగ్గిల్ మరియు సుప్రసిద్ధమైన దాని నుండి ఒక స్వరభేదం పరిమాణాన్ని మార్చే పరిశీలకుడుసంయుక్త ఎడిట్-డిస్టెన్స్ రెండు గ్లిఫ్లు. ఇది ఉద్దేశపూర్వక దృశ్య ఘర్షణ, సాధారణ స్క్వాట్ కాదు.
పేలోడ్ ప్రవర్తనపై ఆధారపడిన ప్రేరణ: అవకాశవాద క్లిప్బోర్డ్ ప్రత్యామ్నాయం ద్వారా స్వచ్ఛమైన ద్రవ్యోత్పత్తి. ఇందులో క్రెడెన్షియల్ హార్వెస్టింగ్, హోస్ట్ ఫింగర్ప్రింటింగ్, లేదా ఎన్విరాన్మెంట్-వేరియబుల్ రీడింగ్ ఉండవు. బాధితుడు ఎవరనేది ఆపరేటర్కు పట్టింపు లేదు — బాధితుని తదుపరి బదిలీ, జాబితాలో ఉన్న చిరునామాలలో ఒకదానిని సూచిస్తుందా లేదా అనేదే వారికి ముఖ్యం. నలభై-చైన్ కవరేజ్ అనేది ఆచరణలో ఉన్న లాటరీ నమూనా: విస్తృతంగా పంపడం, ప్రతి N ఇన్స్టాల్స్కు ఒకసారి ఒకే ఒక్క అధిక-విలువ గల పేస్ట్ చేరుతుందని ఆశించడం.
ఆపరేటర్ తొలగింపు గురించి పట్టించుకోనట్లుగా కనిపిస్తున్నాడు. ఒకే పరిధిలో రెండు గంటల వ్యవధిలో తొమ్మిది వెర్షన్లను ప్రచురించడం అనేది, 'ప్రచురించి తరిమివేయండి' అనే వ్యూహంలా అనిపిస్తుంది: తొలగింపు జాప్యం పెరిగేలోపు రిజిస్ట్రీ ఫుట్ప్రింట్ను గరిష్ఠ స్థాయికి పెంచి, ఆ తర్వాత ముందుకు సాగడం. మేము గమనించలేదు @jaggle ఈ రచన చేసే సమయంలో కొత్త పరిధి కింద తిరిగి ప్రచురిస్తున్నాము, కానీ మేము ఒకేలాంటి పరిధులను ఆశిస్తున్నాము (@jaggie, @జగ్గిల్-, @జోగల్ఆపరేటర్ ఇంకా యాక్టివ్గా ఉంటే, రాబోయే రోజుల్లో కనిపించవచ్చు.
ప్రభావం, ధోరణులు మరియు డిఫెండర్లు ఏమి చేయాలి
ఇంపాక్ట్
ప్రస్తుత డేటాసెట్ నుండి నిజమైన డబ్బులో ప్రభావాన్ని లెక్కించడం సాధ్యం కాదు. క్లిప్పర్ ఎటువంటి టెలిమెట్రీని రాయదు మరియు విశ్లేషణ గడువు ముగిసే సమయానికి వాలెట్లు ప్రత్యామ్నాయ బదిలీలను స్వీకరించినట్లు ఇంకా గమనించబడలేదు (జాబితా చేయబడిన చైన్ల తదుపరి పరిశీలన మా జాబితాలో ఉంది). చట్టబద్ధమైన npm:@juggle/resize-observer వారానికి సగటున ఏడు అంకెల సంఖ్యలో డౌన్లోడ్లు జరుగుతాయి — ఇది అధిక ట్రాఫిక్ ఉండే టైపోస్క్వాట్ లక్ష్యం — మరియు ఈ విషయం బయటపడే సమయానికి ఆ హానికరమైన ప్యాకేజీ 24 గంటల కంటే తక్కువ సమయం మాత్రమే అందుబాటులో ఉంది, ఇది దీని బారిన పడిన వారి సంఖ్యను పరిమితం చేస్తుంది కానీ పూర్తిగా సున్నా చేయదు.
ట్రాక్ చేయదగిన విస్ఫోటన వ్యాసార్థం అనేది ప్రత్యక్ష డౌన్లోడ్లు కాదు @jaggle/resizeobserves — అవి బహుశా చిన్నవి. ఇది **ట్రాన్సిటివ్ ఇన్స్టాల్స్**: ఒక డెవలపర్ ప్యాకేజీని శాండ్బాక్స్ ప్రాజెక్ట్కు జోడించి, రన్ చేయడం. npm సంస్థాపన, ఆపై ఇన్స్టాల్ హుక్ అసలు రన్ అయిందనే విషయాన్ని మర్చిపోవడం. ప్రాజెక్ట్ ఇంకా డిస్క్లో ఉందా లేదా అనే దానితో సంబంధం లేకుండా, పోస్ట్ఇన్స్టాల్ను ప్రాసెస్ చేసిన ప్రతి మెషీన్లో ఇప్పుడు ఆటో-స్టార్ట్లో ప్రతి-వినియోగదారు క్లిప్బోర్డ్ హైజాకర్ ఉంటుంది. ప్యాకేజీ డైరెక్టరీని తీసివేయడం నోడ్_మాడ్యూల్స్ నిలకడను తొలగించదు.
ఉద్భవిస్తున్న నమూనాలు
ఈ ప్రచారం రెండు ధోరణులకు నిదర్శనంగా నిలుస్తుంది.
పైథాన్-పేలోడ్ డెలివరీ వ్రాపర్గా npm. npm tarball అనేది 4-లైన్ల ఇన్స్టాలర్; అసలైన దొంగ పైథాన్, ఇది సిస్టమ్ అంతటా ఇన్స్టాల్ చేయబడుతుంది. విత్తనము బండిల్ చేయబడిన డైరెక్టరీ నుండి. ఇది కొత్తేమీ కాదు — ఇంతకుముందు కూడా npm ప్యాకేజీలు పైథాన్ను వదిలివేయడం మనం చూశాం — కానీ క్రిప్టో-క్లిప్పర్ ప్రచారాలలో ఇది గణనీయంగా సర్వసాధారణ రూపంగా మారుతోంది. ఈ ఆపరేటర్కు రెండు రకాల ప్రయోజనాలు ఉన్నాయి: పైథాన్ క్లిప్బోర్డ్ లైబ్రరీలు (పైపర్క్లిప్ వాటిలో మొదటివి) జావాస్క్రిప్ట్ సమానమైన వాటి కంటే శుభ్రంగా మరియు మరింత క్రాస్-ప్లాట్ఫారమ్గా ఉంటాయి, మరియు చాలా ఆటోమేటెడ్ npm స్కానర్లు జావాస్క్రిప్ట్ ఫైల్స్కు మరియు పైథాన్కు అధిక ప్రాధాన్యతనిస్తాయి. ఉంది .Py తేలికగా కట్టలు కడుతుంది. దీనివల్ల కలిగే నష్టం ఏమిటంటే, ఇన్స్టాల్ చేసే ప్రదేశం చాలా శబ్దంతో ఉంటుంది — ఒక కొత్త పిప్ ఇన్స్టాల్ సాధారణంగా లేని డెవలపర్ మెషీన్లో దాచడం కష్టం పిప్ ఇన్స్టాల్ సమయంలో npm సంస్థాపన.
ప్లాట్ఫారమ్కు ప్రత్యేకమైన పేర్లు మాత్రమే రహస్యంగా ఉంటాయి. ఇటీవలి అనేక క్లిప్పర్లు మరియు చిన్న-పేలోడ్ స్టీలర్లు, చట్టబద్ధంగా కనిపించే పర్సిస్టెన్స్ లేబుల్లకు అనుకూలంగా, కోడ్-స్థాయి అస్పష్టతను పూర్తిగా వదిలివేశాయి. పైథాన్3-డిబస్-హెల్పర్, com.apple.python.runtimeమరియు పైరన్టైమ్బ్రోకర్ ఇవి పాఠ్యపుస్తక ఉదాహరణలు — నలభై యూజర్ సర్వీసుల జాబితాలో రక్షకుడి కన్ను దాటవేసే పేర్లు. ఇది ఒక చవకైన, మన్నికైన రహస్య రూపం: తొలగింపు ప్రతి ప్యాకేజీకి జరుగుతుంది, కానీ పర్సిస్టెన్స్ ఫైల్స్ తొలగింపు తర్వాత కూడా నిలిచి ఉంటాయి, మరియు నిజమైన ప్లాట్ఫారమ్ కాంపోనెంట్ పేరుతో ఉన్న సర్వీస్ను స్పష్టమైన ఆడిట్ తప్ప మరేదీ శుభ్రపరచదు.
రక్షకులు ఏమి చేయాలి
- ~/.config/systemd/user/, ~/Library/LaunchAgents/, మరియు Get-ScheduledTask లను ఆడిట్ చేయండి అవుట్పుట్ IOCలలో జాబితా చేయబడిన ఎంట్రీల కోసం డెవలపర్ మెషీన్లలో. npm ప్యాకేజీని తీసివేసినా ఇవి అలాగే ఉంటాయి; వాటిని చేతితో తీసివేయాలి.
- జాబితా చేయబడిన వాలెట్ చిరునామాలకు బదిలీలను నిరోధించండి కార్పొరేట్-ట్రెజరీ మరియు డీఫై-వాలెట్ సరిహద్దుల వద్ద, అడ్రస్-అలౌలిస్టింగ్ అందుబాటులో ఉన్నచోట.
- ~/.config/clipboard-guardian/config.json కోసం వెతకండి డెవలపర్-మెషీన్ ఫ్లీట్ అంతటా (మరియు ప్లాట్ఫారమ్ సమానమైనవి). ఏ ప్యాకేజీ వెర్షన్ దానిని అందించినప్పటికీ, ఫైల్ ఉనికి అనేది అధిక విశ్వసనీయత గల ఇన్ఫెక్షన్.
- node_modules/ లో clipboard_guardian/guardian.py కోసం వెతకండి తొలగింపుకు ముందు తీసిన బిల్డ్-కాష్ స్నాప్షాట్లలో ఉండవచ్చు. సమీక్షించిన అన్ని వెర్షన్లలో ఫైల్ యొక్క md5 స్థిరంగా ఉంది.
- లాక్ఫైల్-పిన్ @జగ్గిల్/రీసైజ్-అబ్జర్వర్ (అసలైన ప్యాకేజీ) కాబట్టి భవిష్యత్ ఇన్స్టాల్లు ఒక అక్షరం తప్పుగా టైప్ చేయడం వల్ల మరేదైనా పరిష్కరించబడవు, ప్రత్యేకించి లాక్ఫైల్ లేని వర్క్ఫ్లోలలో. npx.
- pip installను పిలిచే ఏదైనా npm postinstallను పరిగణించండి అధిక తీవ్రతగా నిర్మాణంలో-pipeline విధానం. ఇన్స్టాల్ చేసే సమయంలో ఒక npm ప్యాకేజీకి pip అవసరం కావడానికి సరైన కారణం ఏదీ లేదు — పైథాన్ టూలింగ్, పైథాన్ టూలింగ్ను పంపిణీ చేస్తుంది.
- pyperclipను దిగుమతి చేసుకునే python3-dbus-helper అనే పేరు గల ప్రాసెస్ల కోసం process_iter()తో పోల్చదగిన పర్యవేక్షణ డేటాను శోధించండి — మారువేషంలో తేడా (D-Bus హెల్పర్ క్లిప్బోర్డ్ లైబ్రరీని కలిగి ఉండటం) అనేది మనకున్న అత్యంత స్పష్టమైన ప్రవర్తనా సూచిక.
- ఇన్ఫెక్ట్ అయిన మెషీన్ల నుండి పేస్ట్ చేసిన వాలెట్ అడ్రస్లను రొటేట్ చేయండి. క్లిప్బోర్డ్ హైజాకర్ వాలెట్ UI మరియు పేస్ట్ టార్గెట్ మధ్య ఉన్న మార్గాన్ని దెబ్బతీస్తుంది; ఇన్ఫెక్షన్ సోకినప్పుడు కాపీ చేసిన అడ్రస్లు నిశ్శబ్దంగా మార్చబడవచ్చు. ఇన్ఫెక్షన్ సోకిన సమయంలో పంపిన దేనినైనా, అది తప్పుగా పంపబడి ఉండవచ్చని భావించాలి.
సారాంశం: తొలగింపు తర్వాత కూడా పట్టుదల నిలుస్తుంది. రిజిస్ట్రీ చివరికి తొలగిస్తుంది. @jaggle/resizeobserves తొమ్మిది వెర్షన్లలోనూ; systemd యూనిట్, LaunchAgent మరియు Scheduled Task వాటంతట అవే తొలగించబడవు.
ప్రస్తావనలు
- npmలో @juggle/resize-observer — ఈ టైపోస్క్వాట్ నకిలీగా నటిస్తున్న అసలైన ప్యాకేజీ; బైట్-టు-బైట్ README సాహిత్య చోరత్వానికి ఒక ప్రామాణికంగా ఉపయోగపడుతుంది.
- @jaggle/resizeobserves రిజిస్ట్రీ మెటాడేటా — తొమ్మిది హానికరమైన వెర్షన్ల కోసం టైమ్స్టాంప్లను ప్రచురించండి, ఇది ఫోరెన్సిక్ టైమ్లైనింగ్కు ఉపయోగపడుతుంది.





