کد مخرب در رجیستری Node.js npm

اعتماد مخصوصاً وقتی پای ماژول های متن باز در میان باشد. به تازگی اتفاقی افتاد که در حکم زنگ خطری برای توسعه دهندگان جاواسکریپت بود زمانی که 39 پکیج بدخواهانه در NPM (مخزن مدیریت پکیج Node.js) شناسایی و از آن حذف شدند.

 

اعتماد مخصوصاً وقتی پای ماژول های متن باز در میان باشد. به تازگی اتفاقی افتاد که در حکم زنگ خطری برای توسعه دهندگان جاواسکریپت بود زمانی که 39 پکیج بدخواهانه در NPM (مخزن مدیریت پکیج Node.js) شناسایی و از آن حذف شدند.

به گفته سی جی سیلوریو مدیر ارشد اجرایی  npm اکانتی به نام hackstack پکیج هایی را در مخزن npm منتشر کرده بود. این پکیج ها دارای اسامی مشابه با پکیج های موجود بوده اند. «هدف جمع آوری داده از کاربران فریب خورده بوده است».

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

به صرف اینکه یک پکیج دارای اسم مشابه با سایر پکیج ها است نمی‌توان آن را بدخواه دانست. اما در این مورد تشابه اسمی عمدی بود. پکیج بدخواه cross-env نام داشت که قابلیت‌های مشابه با پکیج سالم و معروف crossenv را اراءه می‌داد و به علاوه قابلیتی برای دزدی اطلاعات داشت. پکیج بدخواه اطلاعات ذخیره شده در متغیرهای محیطی را به یک سرور ثالث می‌فرستاد.

متغیرهای محیطی اطلاعات مهمی مثل اطلاعات اکانت و توکن های احراز هویت و کلیدهایی را ذخیره می‌کنند که دسترسی به سایر برنامه‌ها سرویس ها و APIها فراهم می‌کنند. بنابراین متغیرهای محیطی منبع باارزشی برای مهاجمان هستند.

برای اطمینان از حذف کامل چنین پکیج هایی باید تمام وابستگی (dependency) های کد به طور بازگشتی بررسی شوند. اگر این پکیج ها در سلسله مراتب کد پیدا شدند همه توکن های مخفی را مجدداً تولید کنید.

در بعضی موارد hackstack از اسامی ای استفاده کرده بود که با پکیج های موجود یکسان بودند اما دارای شماره ورژن متفاوتی بودند که امکان اشتباه را افزایش می داد. Npm در حال کار روی پروژه هایی برای افزایش امنیت است اما آن‌ها در مراحل ابتدایی هستند.

کلمات کلیدی