PyPI اقدامات امنیتی جدید برای مقابله با حملات Domain Resurrection اجرا کرد
شاخص بستههای پایتون (PyPI) مکانیزمهای حفاظتی جدیدی را در برابر حملات domain resurrection معرفی کرده است؛ حملاتی که از طریق فرآیند بازیابی رمز عبور، امکان تصاحب حسابهای کاربری را فراهم میکنند.
PyPI مخزن رسمی برای بستههای متنباز پایتون است که توسط توسعهدهندگان نرمافزار، نگهدارندگان پروژهها و شرکتهایی که با کتابخانهها، ابزارها و فریمورکهای پایتون کار میکنند مورد استفاده قرار میگیرد.
حسابهای کاربری مربوط به نگهدارندگان پروژهها در PyPI به آدرسهای ایمیل متصل هستند. در برخی پروژهها، این آدرسها به یک domain name وابستهاند. در صورتی که یک domain name منقضی شود، مهاجم میتواند آن را دوباره ثبت کرده و با راهاندازی یک email server و ارسال درخواست بازیابی رمز عبور، کنترل حساب کاربری در PyPI را در دست بگیرد.
این مسئله خطر بروز یک supply-chain attack را به همراه دارد؛ جایی که پروژههای بهتصرفدرآمده نسخههای مخرب بستههای پرکاربرد پایتون را منتشر میکنند. در بسیاری از موارد، این بستهها بهصورت خودکار از طریق pip نصب میشوند.
نمونهای شاخص از چنین حملهای، نفوذ به بستهی ctx در ماه مه ۲۰۲۲ بود که طی آن یک عامل تهدید، کدی مخرب را اضافه کرد که کلیدها و اطلاعات کاربری Amazon AWS را هدف قرار میداد.
برای مقابله با این تهدید، PyPI اکنون بررسی میکند که آیا domainهای مرتبط با آدرسهای ایمیل تأییدشده در حال انقضا هستند یا منقضی شدهاند و در صورت شناسایی، آنها را بهعنوان unverified علامتگذاری میکند.
از نظر فنی، PyPI برای تعیین وضعیت چرخهی عمر یک domain (active، grace period، redemption period، pending deletion) از Domainr Status API استفاده میکند تا در صورت لزوم اقدامات لازم روی حساب کاربری انجام گیرد.
زمانی که آدرسهای ایمیل به این وضعیت وارد شوند، دیگر امکان استفاده از آنها برای password reset یا سایر اقدامات بازیابی حساب وجود نخواهد داشت؛ بنابراین حتی اگر مهاجم domain را دوباره ثبت کند، فرصت سوءاستفاده بسته میشود.
اقدامات جدید از آوریل آغاز شد؛ در آن زمان اسکنهای آزمایشی برای بررسی وضعیت انجام گرفت. در نهایت، این مکانیزمها از ژوئن ۲۰۲۵ با اجرای اسکنهای روزانه بهطور رسمی اعمال شدند. از آن زمان تاکنون، بیش از ۱,۸۰۰ آدرس ایمیل در این سامانه بهعنوان unverified علامتگذاری شدهاند.
اگرچه این تدابیر بهطور کامل تمام سناریوهای حمله را پوشش نمیدهند، اما خطر تصاحب حسابهای PyPI از طریق سوءاستفاده از expired domains را به میزان قابل توجهی کاهش میدهند.
PyPI به کاربران توصیه میکند برای جلوگیری از اختلال، یک ایمیل پشتیبان از یک non-custom domain به حساب خود اضافه کنند و همچنین two-factor authentication را برای محافظت قویتر در برابر تصاحب حساب فعال سازند.