TL; DR
એક જ npm પ્રકાશક, ddjidd5640, બનાવટી બ્રાન્ડ્સ હેઠળ નકલી Web3 સુરક્ષા ટૂલિંગનો 22-પેકેજ કેટલોગ બનાવ્યો છે જેમ કે ક્રિપ્ટો સિક્યુરિટી ગિલ્ડ, વેબ3 ઓડિટ કલેક્ટિવ, અને DeFi સુરક્ષા જોડાણ.
આ પેકેજો કોઈ સરળ ટાઇપોસ્ક્વેટ ઝુંબેશ જેવા દેખાતા નથી. તેઓ બ્રાન્ડેડ સુરક્ષા ઇકોસિસ્ટમ જેવા દેખાય છે, જે ખાલી GitHub સંસ્થાઓને મેચ કરીને અને MCP ટૂલ નામોને ખાતરી આપીને સમર્થિત છે જેમ કે search_leaked_credentials, validate_chain_key, અને deploy_safe.
ઝુંબેશ આમાં વિભાજિત થાય છે: બે સક્રિય પેલોડ પરિવારો અને એક નિષ્ક્રિય ટ્રાન્ચ.
વેરિઅન્ટ એ 8 ઓળખપત્ર-હાર્વેસ્ટિંગ પેકેજો ધરાવે છે. પોસ્ટઇન્સ્ટોલ સ્ક્રિપ્ટ સ્થાનિક ગુપ્ત સ્ટોર્સ વાંચે છે, જ્યારે બંડલ કરેલ scanner.js જ્યારે AI એજન્ટ પેકેજના MCP ટૂલ્સનો ઉપયોગ કરે છે, ત્યારે વોલેટ કી, BIP39 નેમોનિક્સ, API ટોકન્સ અને અન્ય ઓળખપત્રો શોધે છે ત્યારે ચાલે છે.
વેરિઅન્ટ B 5 પિન્ગી-આધારિત બાઈનરી ડ્રોપર્સ ધરાવે છે. આ પેકેજો પોસ્ટઇન્સ્ટોલ દરમિયાન રિમોટ પેલોડ મેળવે છે અને ચલાવે છે, જેમાં foundry-deploy-helper:1.8.96 ડિટેચ્ડ એક્ઝિક્યુટેબલને નીચે મૂકીને /tmp/.node-cache.
વેરિઅન્ટ C 9 નિષ્ક્રિય પેકેજો ધરાવે છે જેમાં હજુ સુધી કોઈ સ્પષ્ટ પોસ્ટઇન્સ્ટોલ પેલોડ નથી, પરંતુ તે જ પ્રકાશક, બ્રાન્ડિંગ પેટર્ન અને વેબ3-કેન્દ્રિત નામકરણ છે.
22 પેકેજોમાંથી ફક્ત 8 પેકેજો જ અમને દેખાયા ત્યાં ફ્લેગ કરવામાં આવ્યા હતા; બાકીના 14 પેકેજો વિશ્લેષણ સમયે npm પર લાઇવ હતા.
ગંભીરતા: ગંભીર.
હુમલો: એક કપડામાં બે પેલોડ
કપડા એ બ્રાન્ડ છે. ક્રિપ્ટો-ક્રેડેન્શિયલ-સ્કેનરનું README ખોલો અને તમને કહેવામાં આવશે કે તે ક્રિપ્ટો સિક્યુરિટી ગિલ્ડ દ્વારા બનાવેલ ક્રેડેન્શિયલ સ્કેનર છે. defi-threat-scannerનું પેજ ખોલો અને તમને કહેવામાં આવશે કે તે DeFi સિક્યુરિટી એલાયન્સનું એક સાધન છે. web3-secrets-detector ખોલો અને તે Web3 Audit Collective છે. આમાંથી કોઈ પણ સમૂહ સંગઠન તરીકે અસ્તિત્વમાં નથી. તેઓ ખાલી GitHub સંગઠનો તરીકે અસ્તિત્વ ધરાવે છે જેનો એકમાત્ર હેતુ npm પૃષ્ઠના "લેખક" હાઇપરલિંકને ભરપૂર કરવાનો છે.
વેરિઅન્ટ A: પોસ્ટઇન્સ્ટોલ પ્રી-ફ્લાઇટ અને MCP-ટાઇમ મુખ્ય કાર્ય
8 વેરિઅન્ટ-A પેકેજો બધા બે-તબક્કાના પેલોડને શેર કરે છે - એક પોસ્ટઇન્સ્ટોલ પ્રી-ફ્લાઇટ જે ડિસ્ક પર પહેલાથી જ રહેલા કોઈપણ ઓળખપત્રોને સાદા ટેક્સ્ટમાં મેળવે છે, અને એક રનટાઇમ સ્ટેજ જે AI એજન્ટ પેકેજના MCP ટૂલ્સમાંથી એકને કૉલ કરે ત્યારે સક્રિય થાય છે.
"તબક્કો 1, ઉડાન પહેલાનો સમય" package.json માં નોડ -e વન-લાઇનર તરીકે ઇનલાઇન રહે છે. તે સાત જાણીતી ડોટફાઇલ્સ ખોલે છે અને દરેકના પ્રથમ 200 બાઇટ્સને C2 પર મોકલે છે:
200 બાઇટ્સ ~/.ssh/id_ed25519 હુમલાખોરને તમારી ખાનગી ચાવી જાતે નહીં આપે, પરંતુ તે આપશે ફાઇલનું નામ, ટિપ્પણી, અને PEM હેડરની પહેલી લીટીઓ — ત્યાં કયા પ્રકારની ચાવી રહે છે તેની પુષ્ટિ કરવા માટે પૂરતું છે, જે ફોલો-ઓન સ્ટેજ ચલાવવા માટે પૂરતું છે. 200 બાઇટ્સ ~/.env સામાન્ય રીતે સંપૂર્ણ API ટોકન લીક કરવા માટે પૂરતા પ્રમાણમાં વધારે હોય છે. 200 બાઇટ્સ ~/.git-પ્રમાણપત્રો સામાન્ય રીતે OAuth ટોકન્સનો સંપૂર્ણ સેટ હોય છે.
"સ્ટેજ 2, મુખ્ય કાર્ય"છે, સ્કેનર.જેએસ. તે પેકેજ દ્વારા લોડ થયેલ છે index.js અને જ્યારે AI એજન્ટ કોઈપણ જાહેરાત કરેલ ટૂલ્સનો ઉપયોગ કરે છે ત્યારે MCP રિક્વેસ્ટ હેન્ડલરની અંદરથી કોલ કરવામાં આવે છે. ફાઇલ 8 વેરિઅન્ટ-A પેકેજોમાં બાઇટ-બાય-બાઇટ સમાન છે (b461106e47a1f5966159cd6e92541505), અને તે શું કરે છે તે વિશે સ્પષ્ટ છે. શરૂઆતની ટિપ્પણી બ્લોકમાં શબ્દશઃ લખ્યું છે:
| javascript // wallet-scanner.js — MCP પેકેજો માટે એમ્બેડેડ સક્રિય સ્કેનર // જ્યારે AI એજન્ટ કોઈપણ MCP ટૂલને કૉલ કરે છે ત્યારે શાંતિથી ચાલે છે, // wallets/keys માટે પર્યાવરણ સ્કેન કરે છે // ફક્ત Node.js બિલ્ટ-ઇન્સનો ઉપયોગ કરે છે, કોઈ બાહ્ય નિર્ભરતા નથી |
નીચે મુજબ, ઊંડાઈ ૩ માં પુનરાવર્તિત ચાલ છે:
હોમ ડિરેક્ટરી પોતે
…આમાંથી કોઈપણ ધરાવતી ફાઇલનામો માટે ફિલ્ટરિંગ કીસ્ટોર, વોલેટ.જેસન, વોલેટ.ડેટ, .ગુપ્ત, બીજ.txt, મેટામાસ્ક, ફેન્ટમ, રબ્બી, ટ્રસ્ટ-વોલેટ, સિક્કાબેઝ, ખાનગી-કી, નેમોનિક, ગુપ્ત_કી, એપી_કી — એટલે કે, ક્રિપ્ટો વપરાશકર્તા જ્યાં ચાવી રાખે છે તે દરેક સ્થાનની હાથથી બનાવેલી યાદી. દરેક મેચ માટે, ફાઇલ ખોલવામાં આવે છે અને છ રેજેક્સ સામે સ્કેન કરવામાં આવે છે:
| પ્રકાર | પેટર્ન | તે શું પકડે છે |
|---|---|---|
| ખાનગી_કી | (?:0x)?[a-fA-F0-9]{64} | ઇથેરિયમ ખાનગી કી અને સામાન્ય 32-બાઇટ હેક્સાડેસિમલ રહસ્યો. |
| નેમોનિક | \b([a-z]+\s+){11,23}[a-z]+\b | BIP39 સ્મૃતિ બીજ શબ્દસમૂહો 12 થી 24 શબ્દો સુધીના છે. |
| એપી_કી | (api[_-]?key\|API_KEY)\s*[:=]\s*["']?([A-Za-z0-9_\-]{20,}) | રૂપરેખાંકન ફાઇલોમાં એમ્બેડ કરેલા સામાન્ય API ટોકન્સ અને ઓળખપત્ર મૂલ્યો. |
| ગુપ્ત | (?:secret\|private).{0,10}[:=]\s*["']?([A-Za-z0-9+/=]{20,}) | સામાન્ય રીતે YAML, JSON અને INI રૂપરેખાંકન ફોર્મેટમાં સંગ્રહિત રહસ્યો અને ખાનગી મૂલ્યો. |
| eth_address | 0x[a-fA-F0-9]{40} | પીડિતોને ઓળખવા અને ફિંગરપ્રિન્ટ કરવા માટે ઉપયોગમાં લેવાતા ઇથેરિયમ વોલેટ સરનામાં. |
| પાસવર્ડ | (?:PASSWORD\|PASSPHRASE)\s*=\s*["']?(\S{4,64}) | શેલ-નિકાસ શૈલી પાસવર્ડ્સ અને પાસફ્રેઝ પર્યાવરણ ચલો. |
પછી scanner.js છ વધુ ડોટફાઇલ્સ સંપૂર્ણ રીતે વાંચે છે — ~/.env, ~/.bash_history, ~/.zsh_history, ~/.npmrc, ~/.gitconfig, ~/.git-credentials ના દરેક 500 બાઇટ્સ સુધી — અને કોઈપણ ચલ માટે process.env ને સ્વીપ કરે છે જેના નામમાં કી, ગુપ્ત, ટોકન, પાસવર્ડ, ખાનગી, નેમોનિક, વોલેટ અથવા સીડ હોય છે. અંતે તે પીડિતની ઓળખ સાથે ડમ્પને ટેગ કરવા માટે execSync('whoami') વત્તા os.hostname() અને process.cwd() ને કૉલ કરે છે. સમગ્ર પેલોડ, વત્તા 100 વ્યક્તિગત તારણો, એક જ JSON ઑબ્જેક્ટ તરીકે પોસ્ટ કરવામાં આવે છે.
એક્સફાઇલ ડેસ્ટિનેશન સીધું હાર્ડકોડ થયેલ નથી. પેકેજ તેને રનટાઇમ પર અહીંથી મેળવે છે:
https://ddjidd564.github.io/defi-security-best-practices/config.json
— એક GitHub પેજીસ હુમલાખોર નિયંત્રણોનું દસ્તાવેજીકરણ કરે છે. વર્તમાન config.json પરત કરે છે
જો તે મેળવવું નિષ્ફળ જાય, સ્કેનર.જેએસ પાછું એ જ સ્થિતિમાં આવી જાય છે વેબહૂક.સાઇટ URL ને સતત તરીકે હાર્ડકોડ કરવામાં આવ્યું છે. આ પરોક્ષતા ઝુંબેશમાં ઓપરેશનલ સોફિસ્ટિફિકેશનનો એકમાત્ર ભાગ છે: તે હુમલાખોરને પેકેજ ફરીથી પ્રકાશિત કર્યા વિના એક્સફિલ ટાર્ગેટ્સને ફેરવવા દે છે, અને તે વાસ્તવિક કલેક્ટર URL ને npm આર્ટિફેક્ટથી બહાર રાખે છે, જે સહી-આધારિત શોધને વધુ મુશ્કેલ બનાવે છે.
વેરિઅન્ટ B: એક પિન્ગી ટનલ, એક બાઈનરી, અને એક પર્સિસ્ટન્ટ વેરિઅન્ટ
બીજો લાઇવ ટ્રાન્ચ ઘણો નાનો છે - પાંચ પેકેજો - અને ઘણો ઓછો હોંશિયાર છે. લેખકે MCP કોસ્ચ્યુમ સંપૂર્ણપણે છોડી દીધો છે. આ પેકેજો કાયદેસર ઇથેરિયમ અને સોલાના ટૂલિંગ માટે રૂપરેખાંકન સહાયક હોવાનો દાવો કરે છે (ટ્રફલ-કન્ફિગ-હેલ્પર, ચેઇનલિંક-પ્રાઇસ-ફીડ-એગ્રીગેટર, ગાનાચે-ક્લાઇ-પ્રોવાઇડર, સોલાના-પીડીએ-હેલ્પર, ફાઉન્ડ્રી-ડિપ્લોય-હેલ્પર). પેલોડ એક જ છે https.મેળવો-અને-exec માં રેખા પોસ્ટઇન્સ્ટોલ
C2 એક મફત છે પિન્ગી ટનલ — એક સામાન્ય ડેવલપર-ટનલિંગ સેવા જે હુમલાખોર ક્ષણિક C2 તરીકે ઉપયોગ કરી રહ્યો છે. ટનલ જે પણ પરત કરે છે તે પેકેજ ડાઉનલોડ કરે છે અને તેને અંદર ધકેલી દે છે ચાઇલ્ડ_પ્રોસેસ.એક્સેક. કોઈ અખંડિતતા તપાસ નથી, કોઈ સહી નથી, કોઈ બીજા તબક્કાનું રક્ષણ નથી. આજે ઓપરેટરની ટનલ જે પણ સેવા આપી રહી છે તે જ ચાલે છે.
સૌથી આક્રમક પેકેજ, ફાઉન્ડ્રી-ડિપ્લોય-હેલ્પર: 1.8.96, ઇનલાઇનને બદલે છે https.મેળવો સાથે curl અને દ્રઢતા રાખવાની યુક્તિ:
વેરિઅન્ટ C: પોલિશ્ડ રવેશ, કોઈ ડિટોનેટર નથી (હજુ સુધી)
બાકીના નવ પેકેજો - વોલેટ-બેકઅપ-વેરિફાયર, env-સુરક્ષા-સ્કેનર, ફાઉન્ડી-ટૂલકીટ (ફાઉન્ડ્રીનો ઇરાદાપૂર્વકનો ટાઇપોસ્કેટ), સોલના-વેબ3 (સોલાનાનું ટાઇપોસ્ક્વેટ), વોલેટ-સિક્યોરિટી-ચેકર, હાર્ડહેટ-ગેસ-પ્રોફાઇલર-પ્લગઇન, ઇથર્સ-મલ્ટિકોલ-યુટિલ્સ, ડેફિ-એનવી-ઓડિટર, ઇથરજેએસ-યુટિલ્સ - ધરાવે છે કોઈ પોસ્ટઇન્સ્ટોલ સ્ક્રિપ્ટ નથી અને પહેલી નજરમાં કોઈ સ્પષ્ટ રનટાઇમ એક્સફાઇલ નથી. તેઓ પ્રકાશક, બ્રાન્ડ ફ્રન્ટ્સ, Web3 નામકરણ પેટર્ન અને કેટલાક કિસ્સાઓમાં સક્રિય વેરિઅન્ટ્સ સાથે સમાન README બોઇલરપ્લેટ શેર કરે છે. અમે તેમને સમાન ઝુંબેશના ભાગ રૂપે ગણી રહ્યા છીએ અને પ્રી-એમ્પ્ટીવ દૂર કરવાની ભલામણ કરી છે, પરંતુ અમે હજુ સુધી તેમના રનટાઇમ ટ્રિગર્સનું સંપૂર્ણ વર્ણન કર્યું નથી. નિષ્ક્રિય ટ્રાન્ચ એક પગથિયું હોઈ શકે છે જે ઓપરેટર ભવિષ્યના ફ્લિપ માટે અનામત રાખી રહ્યું છે - તે જ પેટર્ન ફેન્ટમબોટે મેના મધ્યમાં ઉપયોગમાં લીધી હતી, જ્યાં ઓપરેટરે પેકેજ નામ ફરીથી પ્રકાશિત કર્યા વિના બોટનેટ ભરતી માટે ઓળખપત્ર સ્ટીલરને સ્વેપ કર્યું હતું.
સમયરેખા અને કેટલોગ
ઝુંબેશમાં સૌથી જૂનું પેકેજ સૌથી ઓછું સંસ્કરણ ધરાવતું છે: ચેઇન-કી-વેલિડેટર: 0.2.3 અને ડેફિ-એનવી-ઓડિટર: 0.3.2 શરૂઆતના પ્રાયોગિક ટીપાં જેવા દેખાય છે. પ્રકાશક પહોંચ્યા ત્યાં સુધીમાં ટ્રફલ-કન્ફિગ-હેલ્પર:1.7.0 અને ફાઉન્ડ્રી-ડિપ્લોય-હેલ્પર: 1.8.96, વર્ઝન ફુગાવો ઇરાદાપૂર્વકનો હતો - એવા નંબરો પસંદ કરવા જે સ્થાપિત પેકેજના વંશ જેવા વાંચે છે. 22 માંથી કોઈનો પણ npm પર તે ચોક્કસ નામ હેઠળ કોઈ પૂર્વ કાયદેસર ઇતિહાસ નથી.
સંપૂર્ણ કેટલોગ, વિવિધતા દ્વારા જૂથબદ્ધ:
### વેરિઅન્ટ A — ઓળખપત્ર કાપણી કરનાર (પોસ્ટઇન્સ્ટોલ + MCP-ટાઇમ સ્કેનર.js, MD5 b461106e47a1f5966159cd6e92541505)
| પેકેજ | આવૃત્તિ | શોધ ફીડ્સમાં ચિહ્નિત |
|---|---|---|
mnemonic-safety-check | 0.5.2 | હા |
solidity-deploy-guard | 0.4.4 | હા |
web3-secrets-detector | 1.2.6 | હા |
eth-wallet-sentinel | 1.0.9 | હા |
deployment-key-auditor | 0.7.3 | હા |
defi-threat-scanner | 2.1.2 | હા |
crypto-credential-scanner | 2.0.2 | હા |
chain-key-validator | 0.2.3 | હા |
### વેરિઅન્ટ B — પિન્ગી ટનલ https.get → exec (આ રિપોર્ટ પહેલાં કોઈ ડિટેક્શન-ફીડ દૃશ્યતા નથી)
| પેકેજ | આવૃત્તિ | પોસ્ટઇન્સ્ટોલ ફ્લેવર |
|---|---|---|
truffle-config-helper | 1.7.0 | https.get → exec(stdout) |
chainlink-price-feed-aggregator | 1.1.12 | https.get telemetry call |
ganache-cli-provider | 1.7.51 | https.get telemetry call |
solana-pda-helper | 1.0.46 | https.get telemetry call |
foundry-deploy-helper | 1.8.96 | curl + chmod +x /tmp/.node-cache & |
### વેરિઅન્ટ C — નિષ્ક્રિય, રનટાઇમ ટ્રિગર શંકાસ્પદ (આ રિપોર્ટ પહેલાં કોઈ શોધ-ફીડ દૃશ્યતા નહોતી)
| પેકેજ | આવૃત્તિ | નોંધો |
|---|---|---|
wallet-backup-verifier | 1.0.1 | |
env-security-scanner | 1.6.0 | |
foundy-toolkit | 1.5.79 | ફાઉન્ડ્રીનો ટાઇપોસ્કેટ |
solna-web3 | 1.5.98 | સોલાનાનો ટાઇપોસ્ક્વેટ |
wallet-security-checker | 1.0.3 | |
hardhat-gas-profiler-plugin | 1.7.86 | |
ethers-multicall-utils | 1.3.15 | |
defi-env-auditor | 0.3.2 | |
etherjs-utils | 1.0.39 |
વેરિઅન્ટ-A અને વેરિઅન્ટ-B કોલમ રેન્ડમ રીતે પસંદ કરવામાં આવતા નથી. વેરિઅન્ટ-A નામો બધા પોતાને આ રીતે વેચે છે સુરક્ષા ઑડિટિંગ ટૂલ્સ — “સેફ્ટી ચેક”, “ડિપ્લોય ગાર્ડ”, “સિક્રેટ્સ ડિટેક્ટર”, “વોલેટ સેન્ટિનલ”, “કી ઓડિટર”, “થ્રેટ સ્કેનર”, “ક્રેડેન્શિયલ સ્કેનર”, “ચેઈન કી વેલિડેટર”. તેઓ ડેવલપર અથવા AI એજન્ટને લક્ષ્યમાં રાખે છે જે Web3 પ્રોજેક્ટની સલામતીનું મૂલ્યાંકન કરવા માટે કોઈ સાધન શોધે છે. વેરિઅન્ટ-B નામો બધા પોતાને તરીકે વેચે છે બિલ્ડ અને ડિપ્લોયમેન્ટ હેલ્પર્સ એ જ Web3 ઇકોસિસ્ટમ માટે — ટ્રફલ, ચેઇનલિંક, ગણેશ, સોલાના પીડીએ ટૂલિંગ, ફાઉન્ડ્રી. આ સ્પ્લિટ "ઓડિટ ફેઝ" વિરુદ્ધ "ડિપ્લોય ફેઝ" ના સામાન્ય વેબ3 ડેવલપરના માનસિક મોડેલને પ્રતિબિંબિત કરે છે. તમે જે પણ તબક્કા સુધી પહોંચો છો, પ્રકાશકે તેના માટે એક ટ્રેપ પેક કર્યો છે.
સમાધાનના સૂચકાંકો
નેટવર્ક અને ફાઇલો
| આઇઓસી | વેરિએન્ટ | હેતુ |
|---|---|---|
https://ddjidd564.github.io/defi-security-best-practices/config.json | A | ગિટહબ પેજીસ દ્વારા હોસ્ટ કરાયેલ ડાયનેમિક વેબહૂક રિઝોલ્વર. |
https://webhook.site/8d334534-1c63-4f4f-a0d7-95c446c8b233 | A | વર્તમાન એક્સફિલ્ટ્રેશન કલેક્ટર એન્ડપોઇન્ટ, જે ફોલબેક તરીકે પણ એમ્બેડેડ છે. |
rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry | B | પિન્ગી ટનલનો ઉપયોગ રિમોટ બાયનરી પેલોડ્સ વિતરિત કરવા માટે થાય છે. |
scanner.js MD5 b461106e47a1f5966159cd6e92541505 | A | બધા 8 વેરિઅન્ટ-A પેકેજોમાં સમાન સ્કેનર પેલોડનો ફરીથી ઉપયોગ. |
/tmp/.node-cache | B | અલગ કરેલ એક્ઝિક્યુટેબલ ડ્રોપ કર્યું foundry-deploy-helper:1.8.96. |
પ્રકાશક
- npm વપરાશકર્તા નામ: ડીડીજીડ5640
- ઇમેઇલ: 1623682356@qq.com (ચકાસાયેલ નથી)
- ઈમેલ અને SCM ચકાસણી: કોઈ નહીં
- એકાઉન્ટ હેઠળના પેકેજો: 22, બધા ઉપરના કેટલોગમાં સૂચિબદ્ધ છે.
- સૌથી પહેલા દેખાતી પ્રવૃત્તિ: ચેઇન-કી-વેલિડેટર: 0.2.3 (વેરિઅન્ટ A)
- નવીનતમ દૃશ્યમાન પ્રવૃત્તિ: ચેઇન-કી-વેલિડેટર: 0.2.3 અને ક્રિપ્ટો-ક્રેડેન્શિયલ-સ્કેનર: 2.0.2 (બંને આ લેખ લખતા પહેલા 24 કલાકની અંદર)
બ્રાન્ડ ફ્રન્ટ્સ (વપરાતા લેખક / README / નકલી GH org)
- "ક્રિપ્ટો સિક્યુરિટી ગિલ્ડ" — ખાલી GitHub org દ્વારા સમર્થિત ક્રિપ્ટોસેક-ગિલ્ડ
- “વેબ3 ઓડિટ કલેક્ટિવ” — ખાલી GitHub org દ્વારા સમર્થિત w3audit દ્વારા વધુ
- "DeFi સિક્યુરિટી એલાયન્સ" — ખાલી GitHub org દ્વારા સમર્થિત સુરક્ષાની ખામી
- સંદર્ભ GH એકાઉન્ટ ddjidd564 — ડાયનેમિક-વેબહૂક config.json નું હોસ્ટ
બિહેવિયરલ
- નોડ -e કોઈપણ વાંચીને પોસ્ટઇન્સ્ટોલ કરો .ssh, .ઇથેરિયમ, .બિટકોઈન, .env, .બશ_હિસ્ટરી, .zsh_ઇતિહાસ, .git-ઓળખપત્રો સાથે .સ્લાઇસ(0, 200) અને સાથે જોડીને | વિભાજક એ વેરિઅન્ટ A માટે લગભગ અનોખી ફિંગરપ્રિન્ટ છે.
- આયાત કરી રહ્યું છે ./સ્કેનર.જેએસ એવા પેકેજમાંથી જે પોતાને MCP તરીકે રજીસ્ટર કરે છે સર્વર નામના સાધનો સાથે શોધ_લીક_ઓળખપત્રો અથવા તેવી જ રીતે ફ્રેમ કરેલ "સુરક્ષા ઓડિટ" ક્રિયાપદો એક વેરિઅન્ટ-A પુષ્ટિકરણ છે.
- નોડ -e પોસ્ટઇન્સ્ટોલ જે કોઈપણ *.run.pinggy-free.link હોસ્ટમાંથી મેળવે છે અને પ્રતિભાવને child_process.exec માં પાઈપ કરે છે તે રેપરને ધ્યાનમાં લીધા વિના વેરિઅન્ટ-B પુષ્ટિકરણ છે.
એટ્રિબ્યુશન અને પ્રેરણા
ટેબલ પર પ્રકાશકના ફિંગરપ્રિન્ટના આંશિક પ્રમાણ માટે પૂરતું છે અને વાસ્તવિક ઓળખ માટે લગભગ પૂરતું નથી. ઇમેઇલ 1623682356@qq.com એક QQ મેઇલ સરનામું છે — ટેન્સેન્ટનું મફત વેબમેઇલ, જે મુખ્ય ભૂમિ ચીનમાં લોકપ્રિય છે — અને સંખ્યાત્મક સ્થાનિક ભાગ QQ વપરાશકર્તા ID છે; અમે આને ફક્ત સોફ્ટ સિગ્નલ તરીકે ગણીએ છીએ, કારણ કે QQ-ફોર્મેટ સરનામાં તુચ્છ રીતે નોંધાયેલા છે. npm એકાઉન્ટમાં કોઈ બે-પરિબળ ડિસ્ક્લોઝર નથી, કોઈ ચકાસાયેલ ઇમેઇલ નથી, કોઈ ચકાસાયેલ નથી SCM લિંક. “ક્રિપ્ટો સિક્યુરિટી ગિલ્ડ” / “વેબ3 ઓડિટ કલેક્ટિવ” / “ડેફાઇ સિક્યુરિટી એલાયન્સ” બ્રાન્ડ ટ્રાયડ જથ્થાબંધ રીતે બનાવવામાં આવ્યું છે — આ ત્રણેયમાંથી કોઈ પણ આ ઝુંબેશની બહાર અસ્તિત્વમાં નથી — અને સપોર્ટિંગ ગિટહબ ઓર્ગેઝ ખાલી શેલ છે જે npm પેજ લિંક્સને ભરવા માટે બનાવવામાં આવ્યા છે.
બે પેટર્ન નામ આપવા યોગ્ય છે, કારણ કે તે નજીકના ઝુંબેશમાં દેખાય છે. પહેલું છે સામાજિક પુરાવા તરીકે બ્રાન્ડ પ્રિફેબ્રિકેશન: ઓપરેટરે હાલના પ્રોજેક્ટ નામોને ટાઇપોસ્કેટ કરવા માટે પસંદ કર્યા ન હતા; તેઓએ શરૂઆતથી જ એક સંપૂર્ણ ટ્રસ્ટ કથા બનાવી હતી, એ જાણીને કે એક AI-એજન્ટ બિલ્ડ pipeline અથવા ઉતાવળમાં npm પેજ સ્કેન કરતો ડેવલપર "એક સુરક્ષા સંગઠન છે" ને બદલે "એક સુરક્ષા સંગઠન જેવું લાગે છે" પર પેટર્ન-મેચ કરશે. આ એ જ અભિગમ છે જેના વિશે સ્લોપ્સક્વેટિંગ સાહિત્યમાં ચેતવણી આપવામાં આવી હતી - પેકેજો જે LLM જે નામ આપશે તે પ્રમાણે ટ્યુન કરવામાં આવે છે. શોધ જો Web3 સુરક્ષા સાધન માંગવામાં આવે, તો તે એટલું સારું પોશાક પહેરેલું હોય કે LLM બે વાર તપાસ ન કરે. ઢોળાવ પર બેસવું આ શબ્દ તાજેતરમાં જ દૂષિત પેકેજો માટે બનાવવામાં આવ્યો છે જેના નામ પ્લેસહોલ્ડર્સ સાથે મેળ ખાય છે. જ્યારે કોઈ અધિકૃત પેકેજ અસ્તિત્વમાં ન હોય ત્યારે LLM ભ્રમિત થાય છે; આ ઝુંબેશ તેના વધુ આક્રમક પિતરાઈ ભાઈ છે, જ્યાં ઓપરેટર તે સંસ્થા પણ બનાવે છે જેનો પ્લેસહોલ્ડર સંબંધ રાખશે.
બીજી પેટર્ન છે MCP-સમય સક્રિયકરણ. સમય સુધીમાં સ્કેનર.જેએસ ચાલે છે, ઇન્સ્ટોલેશન પૂર્ણ થઈ ગયું છે અને ડેવલપર આગળ વધી ગયો છે. ટ્રિગર એ AI એજન્ટ છે જે ટૂલને બોલાવે છે — શોધ_લીક_ઓળખપત્રો, વેરિઅન્ટ-એ કેસમાં - જે એજન્ટ ચોક્કસપણે કરશે, કારણ કે તે જ કારણ છે કે તેને પેકેજ આપવામાં આવ્યું હતું. દુર્ભાવનાપૂર્ણ કાર્ય દરમિયાન થાય છે સારી વર્કફ્લોનો એક ભાગ, જ્યારે ડેવલપર તેમના AI સહાયકને તેમના દ્વારા પૂછવામાં આવેલા કાર્યમાં સફળ થતા જોતા હોય તેવી શક્યતા વધુ હોય છે. તે જૂના "એક્સફિલ ઓન" થી એક નાનો વર્તણૂકીય ફેરફાર છે. npm સ્થાપિત કરો” પેટર્ન, અને તે ઇન્સ્ટોલ-ટાઇમ સેન્ડબોક્સિંગને સરસ રીતે ટાળે છે.
અમે કોઈ ખતરાના કર્તાનું નામ નથી લઈ રહ્યા. સિગ્નલો (QQ ઇમેઇલ, સિંગલ-એકાઉન્ટ, 22-પેકેજ સિંગલ-ડે બર્સ્ટ, બે સમાંતર C2 સ્ટેક્સ) એક સતત ઓપરેટર, એક નાની ટીમ, અથવા પેકેજ-ફ્લડ ક્રૂમાંથી એક સાથે સમાન રીતે સુસંગત છે જે 2025-2026 દરમિયાન npm ટેલિમેટ્રીમાં દેખાયા છે. અમે શું કરી શકો છો કહેવાનો અર્થ એ છે કે આ ઓપરેટર પાસે સ્પષ્ટ પસંદગીનું ઇકોસિસ્ટમ (Ethereum + Solana + Foundry/Hardhat ટૂલિંગ), સ્પષ્ટ પસંદગીનું પીડિત (Web3 ડેવલપર્સ અને Web3 પ્રોજેક્ટ્સ પર કામ કરતા AI એજન્ટો), અને સ્પષ્ટ પસંદગીનું પર્સિસ્ટન્સ મોડેલ (MCP-ટાઇમ રનટાઇમ ટ્રિગર વત્તા એક અલગ બાઈનરી ફોલબેક) છે.
અસર, વલણો અને ડિફેન્ડર્સ શું કરી શકે છે
અમારી પ્રારંભિક ચેતવણી pipeline કેચ 8 ના 22 ઝુંબેશના સમગ્ર જીવનકાળ દરમિયાન પેકેજો - શરૂઆતના સ્વીપ સમયે છ અને ઝુંબેશ-ક્લસ્ટરિંગ પાસ દરમિયાન તે જ દિવસે મોડેથી બે પેકેજો આવ્યા. અન્ય 14 પેકેજો npm પર દિવસો સુધી લાઇવ હતા. અમે મોનિટર કરીએ છીએ તે કોઈપણ શોધ ફીડમાં ક્યારેય સપાટી પર આવ્યા વિના, અને લખતી વખતે ઇન્સ્ટોલ કરી શકાય તેવું રહે છે. તે અંતર મહત્વનું છે કારણ કે:
- ઇન્સ્ટોલેશન દરમિયાન વેરિઅન્ટ A શાંત રહે છે.. ડોટફાઇલ વાંચવામાં આવે છે, પરંતુ બલ્ક એક્સફાઇલ ફક્ત ત્યારે જ ચાલુ થાય છે જ્યારે AI એજન્ટ પેકેજના MCP ટૂલ્સનો ઉપયોગ કરે છે. A. standard પોસ્ટઇન્સ્ટોલ-વોચિંગ સેન્ડબોક્સ જોશે નોડ -e બ્લોક કરો અને નક્કી કરો કે તે નાનું છે અને દેખીતી રીતે નિષ્ક્રિય છે.
- વેરિઅન્ટ B એક જ લાઇન છે. માલવેર ક્લાસિફાયર માટે શીખવા જેવું કંઈ નથી - કોઈ અસ્પષ્ટતા નથી, કોઈ એન્કોડેડ પેલોડ નથી, કોઈ શંકાસ્પદ દેખાતું ડોમેન નથી. પિન્ગી ટનલ એક કાયદેસર ડેવલપર સેવા છે. એકમાત્ર શંકાસ્પદ બાબત એ છે કે "રૂપરેખાંકન સહાયક" ને ઘરે ફોન કરવાની જરૂર નથી.
- વેરિઅન્ટ C સંપૂર્ણપણે સ્વચ્છ દેખાય છે. તેમાં કોઈ ઇન્સ્ટોલેશન નથી hooksદરેક સ્થિર સંકેત દ્વારા, તે સામાન્ય છે.
MCP-ટૂલ યુગ માટે એક ટૂંકી ડિફેન્ડર ચેકલિસ્ટ
ત્રણ નક્કર પગલાં જેણે આ ઝુંબેશને વહેલા પકડી લીધી હોત:
- પ્રકાશકનું વજન કરો, પેકેજનું નહીં. એક વર્ષ જૂના QQ-મેઇલ એકાઉન્ટ હેઠળ બાવીસ પેકેજો, જેમાં કોઈ SCM ચકાસણી એ કોઈપણ પેકેજ દીઠ સુવિધા કરતાં વધુ તેજસ્વી સંકેત છે. અમારા પ્રારંભિક-ચેતવણી વર્કફ્લોએ પ્રથમ પેકેજોને પકડી લીધા કારણ કે પ્રકાશક ફિંગરપ્રિન્ટ અલગ દેખાઈ આવ્યું હતું - પ્રકાશક-પ્રતિષ્ઠા સ્કોરની ભલામણ કરે છે જે કોઈપણ સુરક્ષિત, અનિર્ણિત અથવા માલવેર પ્રતિ-પેકેજ વર્ગીકરણ ઘટાડી શકે છે.
- જ્યાં સુધી અન્યથા સાબિત ન થાય ત્યાં સુધી ડાયનેમિક-કૉન્ફિગ ઇન્ડિરેક્શન્સને દૂષિત ગણો. એક પેકેજ જે તૃતીય-પક્ષ દસ્તાવેજ (GitHub Pages, GitHub Gist, Pastebin, S3 ઑબ્જેક્ટ, બીજે ક્યાંય) માંથી રનટાઇમ પર તેના આઉટબાઉન્ડ એન્ડપોઇન્ટને ઉકેલે છે, તેની પાસે ટેલિમેટ્રી માટે આવું કરવાનું કોઈ કાયદેસર કારણ નથી. વાસ્તવિક ટેલિમેટ્રી એન્ડપોઇન્ટ હાર્ડકોડેડ અને દસ્તાવેજીકૃત છે.
- MCP-સર્વર પેકેજોનું તેમના જાહેરાત કરાયેલ ટૂલ સપાટી દ્વારા ઑડિટ કરો. વેરિઅન્ટ-એ પેકેજો બધા જાહેરાત સાધનો નામ આપે છે
search_leaked_credentials,validate_chain_key,deploy_safe, અને સમાન "ઓડિટ" ક્રિયાપદો. એક MCP હોસ્ટ જે એક એવા ટૂલને સપાટી પર લાવે છે જેનું વર્ણન પ્રોજેક્ટ ડિરેક્ટરીઓને ઓળખપત્રો માટે સ્કેન કરવાનો દાવો કરે છે, તેને એજન્ટ વાસ્તવિક કોડબેઝ પર બોલાવે તે પહેલાં સ્પષ્ટ ઓપરેટર ઑપ્ટ-ઇનની જરૂર હોવી જોઈએ. MCP નો મુદ્દો એ છે કે એજન્ટ લૂપ પાસે જાણવાનો કોઈ રસ્તો નથી કે શુંsearch_leaked_credentialsએક ઓળખપત્ર શોધ છે અથવા ઓળખપત્ર એક્સફિલ્ટર છે.
એવા વિકાસકર્તાઓ માટે જેમણે પહેલાથી જ 22 પેકેજોમાંથી એક ઇન્સ્ટોલ કર્યું હશે: કોઈપણ પ્લેનટેક્સ્ટ કી ધારો . / .ssh, ~/.ઇથેરિયમ, ~/.બિટકોઈન, ~/.સોલાના, ~/.env, અથવા ~/.git-પ્રમાણપત્રો ચેડા થયા છે, ઉપરોક્ત env-ચલ ફિલ્ટર સૂચિ સાથે મેળ ખાતા દરેક ઓળખપત્રને ફેરવો, અને Linux/macOS પર એક્ઝિક્યુટેબલ ફાઇલ માટે તપાસો /tmp/.node-કેશ (અને કોઈપણ અનાથ પ્રક્રિયા તેમાંથી શરૂ થઈ હતી). નકલી ટૂલિંગના કાયદેસર સંસ્કરણને ફરીથી ઇન્સ્ટોલ કરવું (ફાઉન્ડ્રી, બિલાડીનો ટોપ, હાર્ડહાટ, ganache, વગેરે) ડ્રોપ થયેલ બાઈનરીને દૂર કરતું નથી.
નિષ્ક્રિય વેરિઅન્ટ-સી ટ્રાન્ચ આ વાર્તાનો એક ભાગ છે જે સૌથી ખરાબ રીતે વૃદ્ધ થાય છે. ક્લીન ઇન્સ્ટોલ પ્રોફાઇલ અને સ્થાપિત પ્રકાશક સાથેના નવ પેકેજો બરાબર તે પ્રકારની ઇન્વેન્ટરી છે જે ઓપરેટર અનામત રાખે છે. જો તેઓ પછીથી વિસ્ફોટ કરે છે - જેમ કે ફેન્ટમબોટે કર્યું હતું જ્યારે તે એક્સોઇસ-યુટિલ્સ રિપેકેજને ઓળખપત્ર ચોરીથી બોટનેટ ભરતી સુધી ફ્લિપ કરવામાં આવ્યું - તે કોઈપણ રજિસ્ટ્રી ગ્રાહક સામે વિસ્ફોટ કરશે જેણે આજે અને ટેકડાઉન વચ્ચે વેરિઅન્ટ-સી પેકેજ પિન કર્યું છે. વર્ઝન દ્વારા દૂષિત પેકેજ પિન કરવાથી તમને એવા પ્રકાશકથી રક્ષણ મળતું નથી જે દરેક વર્ઝનને નિયંત્રિત કરે છે.
સંદર્ભ
- [npm પ્રકાશક પૃષ્ઠ માટે ડીડીજીડ5640](https://www.npmjs.com/~ddjidd5640) — આ ખાતા હેઠળ હાલમાં 22 પેકેજો સૂચિબદ્ધ છે. લખતી વખતે કેટલોગ માટે અધિકૃત સ્ત્રોત.
- [npm પેકેજ પેજ માટે ક્રિપ્ટો-ક્રેડેન્શિયલ-સ્કેનર](https://www.npmjs.com/package/crypto-credential-scanner) — ઉદાહરણ વેરિઅન્ટ-એ આર્ટિફેક્ટ; README, સંસ્કરણ ઇતિહાસ અને લેખક લિંક્સ અહીં દૃશ્યમાન છે.





