شناسایی بسته‏‌های مخرب در npm

شناسایی بسته‏‌های مخرب در npm

تاریخ ایجاد

چندین بسته‌ی مخرب در مخزن NPM شناسایی شده‌اند که پس از نصب، اقدام به جمع‌آوری اطلاعات حساس از میزبان و شبکه می‌کنند. بر اساس گزارش شرکت Socket، این 60 بسته مخرب از تاریخ 12 مه توسط سه حساب کاربری مختلف در مخزن NPM منتشر شده‌اند.
هر یک از این بسته‌ها دارای یک اسکریپت post-install هستند که به‌طور خودکار هنگام اجرای دستور npm install فعال می‌شود و اطلاعاتی مانند مشخصات سیستم میزبان و داده‌های شبکه را جمع‌آوری کرده و به یک وب‌هوک Discord که تحت کنترل مهاجم قرار دارد ارسال می‌کند.

موارد زیر توسط اسکریپت مخرب جمع‌آوری می‌شوند:

  • نام میزبان (Hostname)
  • آدرس IP داخلی
  • مسیر پوشه خانگی کاربر (User home directory)
  • مسیر کاری فعلی (Current working directory)
  • نام کاربری (Username)
  • سرورهای DNS سیستم

همچنین این اسکریپت با بررسی نام میزبان‌های مربوط به ارائه‌دهندگان خدمات ابری و رشته‌های DNS معکوس، تلاش می‌کند تشخیص دهد که آیا در یک محیط تحلیل مانند سندباکس اجرا می‌شود یا خیر.

Socket اشاره کرده که در این حملات، هیچ‌گونه پیلود مخرب، افزایش سطح دسترسی یا مکانیزم ماندگاری مشاهده نشده است. با این حال، با توجه به نوع داده‌هایی که جمع‌آوری می‌شود، خطر حملات هدفمند به شبکه بسیار جدی و قابل توجه است.
عوامل تهدید برای فریب توسعه‌دهندگان، از نام‌هایی استفاده کرده‌اند که بسیار شبیه به بسته‌های معتبر و شناخته‌شده در مخزن NPM هستند؛ از جمله: flipper-plugins ،react-xterm2 و hermes-inspector-msggen. همچنین از نام‌هایی استفاده شده که مرتبط با ابزارهای تست هستند تا به‌طور خاص زیرساخت‌های CI/CD را هدف قرار دهند.

 

فهرست کامل 60 بسته‌ی مخرب:

  1. e-learning-garena
  2. inhouse-root
  3. event-sharing-demo
  4. hermes-inspector-msggen
  5. template-vite
  6. flipper-plugins
  7. appium-rn-id
  8. bkwebportal
  9. gop_status_frontend
  10. index_patterns_test_plugin
  11. seatable
  12. zdauth
  13. mix-hub-web
  14. chromastore
  15. performance-appraisal
  16. choosetreasure
  17. rapper-wish
  18. 12octsportsday
  19. credit-risk
  20. raffle-node
  21. coral-web-be
  22. garena-react-template-redux
  23. sellyourvault
  24. admin-id
  25. seacloud-database
  26. react-xterm2
  27. bkeat-pytest
  28. mysteryicons
  29. mshop2
  30. xlog-admin-portal
  31. datamart
  32. garena-admin
  33. estatement-fe
  34. kyutai-client
  35. tgi-fe
  36. gacha-box
  37. tenslots
  38. refreshrewards
  39. codeword
  40. sps
  41. seatalk-rn-leave-calendar
  42. netvis
  43. input_control_vis
  44. env-platform
  45. web-ssar
  46. hideoutpd
  47. arcademinigame
  48. customer-center
  49. team-portal
  50. dof-ff
  51. seamless-sppmy
  52. accumulate-win
  53. sfc-demo
  54. osd_tp_custom_visualizations
  55. routing-config
  56. gunbazaar
  57. mbm-dgacha
  58. wsticket
  59. all-star-2019
  60. data-portal-dwh-apps-fe

اگر هر یک از این بسته‌ها را نصب کرده‌اید، توصیه می‌شود فوراً آن‌ها را حذف کرده و یک اسکن کامل از سیستم انجام دهید تا هرگونه باقی‌مانده از آلودگی شناسایی و پاک‌سازی شود.

کمپین مخرب دیگری که توسط شرکت Socket شناسایی شد، شامل هشت بسته‌‌ی مخرب در مخزن NPM بود که با استفاده از تایپواسکواتینگ (typosquatting) خود را مشابه ابزارهای معتبر جلوه می‌دادند، اما در واقع می‌توانستند فایل‌ها را حذف کنند، داده‌ها را خراب کنند و سیستم‌ها را از کار بیندازند.
این بسته‌ها که اکوسیستم‌های React ،Vue.js ،Vite ،Node.js و Quill را هدف قرار داده بودند، طی دو سال گذشته در NPM وجود داشتند و در مجموع حدود 6200 بار دانلود شده‌اند.
دلیل اینکه این بسته‌ها توانسته‌اند مدت طولانی بدون شناسایی باقی بمانند، تا حدی به این خاطر است که پیلود مخرب آن‌ها بر اساس تاریخ‌های مشخص‌شده در کد فعال می‌شده و به‌صورت تدریجی اقدام به تخریب فایل‌های فریم‌ورک‌ها، خراب‌کردن متدهای اصلی جاوااسکریپت و ایجاد اختلال در سازوکار ذخیره‌سازی مرورگر می‌کرده‌اند.

 

توصیه‌های امنیتی

  • توصیه می‌شود فوراً بسته‌ها را حذف کرده و یک اسکن کامل از سیستم انجام شود تا هرگونه باقی‌مانده از آلودگی شناسایی و پاک‌سازی شود.

 

منابع خبر:

[1]https://www.bleepingcomputer.com/news/security/dozens-of-malicious-packages-on-npm-collect-host-and…

[2]https://socket.dev/blog/60-malicious-npm-packages-leak-network-and-host-data