گزارشهای اخیر روند نگرانکنندهای را برجسته کردهاند که در آن پکیجهای مخرب npm، توسعهدهندگان اتریوم (Ethereum) را به منظور سرقت کلیدهای خصوصی آنها و سایر اطلاعات حساس هدف قرار میدهند. این پکیجها، جعل ابزارهای قانونی هستند و از اعتماد توسعهدهندگان به نرمافزار منبع باز سوءاستفاده میکنند.
تاکنون در مجموع بیست پکیج مخرب شناسایی شده است که بسیاری از آنها از محیط توسعه قانونی Hardhat مورد استفاده توسط توسعه دهندگان اتریوم الگوبرداری میکنند. این پکیجها در مجموع بیش از ۱۰۰۰ بار دانلود شدهاند.
Hardhat یک محیط توسعه Ethereum است که توسط Nomic Foundation نگهداری میشود. Hardhat به منظور توسعه، آزمایش و استقرار قراردادهای هوشمند و برنامههای غیرمتمرکز (dApps) در بلاکچین اتریوم استفاده میشود.
Hardhat به طور کلی توسط توسعه دهندگان نرم افزار بلاکچین، شرکتهای فین تک و استارت آپها و موسسات آموزشی استفاده میشود.
این کاربران اغلب کامپوننتهای پروژه خود را از مخزن npm تهیه میکنند، ابزاری که به طور گسترده در اکوسیستم جاوا اسکریپت استفاده میشود و به توسعه دهندگان کمک میکند تا پیش نیازها، کتابخانهها و ماژولها را مدیریت کنند.
سه اکانت مخرب در npm، بیست پکیج رباینده اطلاعات را آپلود کردهاند که از تکنیک typosquatting برای جعل هویت پکیجهای قانونی و فریب افراد برای نصب آنها استفاده نمودهاند.
Socket نام ۱۶ پکیج مخرب را به اشتراک گذاشته است که عبارتند از:
پس از نصب پکیجها، کد موجود در آنها تلاش میکند تا با استفاده از توابعی مانند hreInit() و hreConfig()، کلیدهای خصوصی Hardhat، فایلهای پیکربندی و mnemonicها را جمعآوری کند، سپس آنها را توسط یک کلید AES هارکد شده رمزگذاری کرده و به یک دامنه تحت کنترل مهاجم ارسال میکند.
خطرات امنیتی این تهدید و مقابله با آنها
به منظور دسترسی به کیف پولهای اتریوم از کلیدهای خصوصی و mnemonic استفاده میشود، بنابراین اولین عواقب احتمالی این حمله از دست دادن سرمایه از طریق آغاز تراکنشهای غیرمجاز است.
علاوه بر این، از آنجایی که بسیاری از سیستمهای آلوده متعلق به توسعهدهندگان هستند، مهاجمان میتوانند به سیستمها دسترسی غیرمجاز داشته باشند و قراردادهای هوشمند را در معرض خطر و نفوذ قرار دهند و یا کلونهای مخرب dAppهای موجود را به کار گیرند تا زمینه را برای حملات تأثیرگذارتر و در مقیاس وسیعتر فراهم کنند.
فایلهای پیکربندی Hardhat میتوانند شامل کلیدهای API برای سرویسهای شخص ثالث و همچنین اطلاعاتی در مورد شبکه توسعه دهنده و endpointها باشند و از آنها در حملات فیشینگ استفاده کرد.
توسعهدهندگان نرمافزار میبایست به هنگام دانلود پکیجهای npm هوشمندانهتر عمل کنند، صحت پکیجها را تأیید نمایند، مراقب typosquatting ها باشند و کد منبع را پیش از نصب بررسی کنند.
به عنوان یک توصیه کلی، کلیدهای خصوصی نباید بصورت هاردکد شده نگهداری شوند، بلکه باید در مکان امن ذخیره گردند.