پکیج پایتون با ۱ میلیون دانلود ماهانه، اطلاعات کاربران رو دزدید
خلاصهٔ کاملتر
پکیج متنباز elementary-data که برای مانیتورینگ عملکرد و شناسایی ناهنجاری در سیستمهای یادگیری ماشین استفاده میشه، اخیراً هک شد. این پکیج ماهانه بیش از یک میلیون بار دانلود میشه و توی اکوسیستم پایتون جایگاه قابل توجهی داره. نسخه مخرب با شماره 0.23.3 به ایندکس پکیج پایتون (PyPI) و مخزن Docker مربوطه منتشر شد.
مهاجمان از یه آسیبپذیری در GitHub Actions توسعهدهندگان سوءاستفاده کردن. روش کار اینجوری بود که یه pull request مخرب فرستادن که یه bash script رو داخل محیط اکانت توسعهدهنده اجرا کرد. این اسکریپت تونست کلیدهای امضا و توکنهای حساس حساب کاربری رو بدزده.
با در دست داشتن این اطلاعات، مهاجم یه نسخه جعلی از elementary-data ساخت که از نظر ظاهری تقریباً هیچ فرقی با نسخه اصلی نداشت. این نسخه آلوده وقتی اجرا میشد، سیستم قربانی رو برای پیدا کردن اطلاعات حساس زیر و رو میکرد؛ از جمله پروفایلهای کاربری، کردنشالهای دیتابیس و data warehouse، کلیدهای ارائهدهندگان ابری، توکنهای API، کلیدهای SSH و محتوای فایلهای .env.
نسخه مخرب حدود ۱۲ ساعت بعد از انتشار حذف شد. تیم توسعه از طریق یه گزارش خارجی از ماجرا باخبر شد و ظرف سه ساعت پکیج آلوده رو از دسترس خارج کرد. بعد از اون هم تمام کردنشالهایی که کد مخرب بهشون دسترسی داشت رو تغییر دادن و آسیبپذیری GitHub Actions رو هم برطرف کردن.
هر کسی که نسخه 0.23.3 رو نصب کرده یا Docker image آلوده رو اجرا کرده، باید فرض کنه که تمام اطلاعات حساس موجود در اون محیط لو رفته. سرورهای CI/CD به خاطر اینکه معمولاً به حجم زیادی از secret ها دسترسی دارن، در معرض خطر بیشتری هستن.
HD Moore، بنیانگذار و مدیرعامل runZero با بیش از چهار دهه تجربه در حوزه امنیت، میگه که workflows ساختهشده توسط کاربران در GitHub Actions به خاطر آسیبپذیریهای رایجشون شهرت بدی دارن. به گفته اون، جلوگیری از ساختن یه workflow خطرناک که توسط pull request مهاجم قابل بهرهبرداری باشه، واقعاً سخته.
این رویداد یه نمونه دیگه از حملات زنجیره تامین نرمافزار (Supply Chain Attack) هست که طی یه دهه گذشته به شدت رایجتر شده. در این نوع حملات، مهاجم به جای هدف قرار دادن مستقیم قربانی، ابزاری که قربانی ازش استفاده میکنه رو آلوده میکنه و از طریق اون به سیستمهای بزرگتر نفوذ میکنه.
نکات کلیدی:
- نسخه آلوده elementary-data با شماره 0.23.3 بود که باید فوری حذف و با نسخه 0.23.4 جایگزین بشه
- مهاجمان از GitHub Actions برای دزدیدن کلیدهای امضا و توکنها استفاده کردن
- اطلاعات سرقتشده شامل کلیدهای SSH، توکنهای API، کردنشالهای ابری و فایلهای .env میشه
- سرورهای CI/CD به خاطر دسترسی گستردهشون به secret ها بیشتر در معرض خطرند
- وجود فایل .trinny-security-update در پوشه tmp نشون میده که پیلود اجرا شده
- این حمله نمونهای از Supply Chain Attack هست که در اکوسیستمهای متنباز رو به افزایشه
- تیم توسعهدهنده آسیبپذیری رو برطرف کرده و تمام GitHub Actions رو بررسی کرده




