یک کمپین مخرب از نوامبر سال گذشته میلادی تاکنون، توسعهدهندگان پایتون (Python) فعال در زمینه توسعه رباتهای تلگرام را هدف قرار داده است. مهاجمان در این عملیات با انتشار پکیجهای آلوده در PyPI که شامل فورکهای (Fork) آلوده به تروجان از کتابخانه محبوب Pyrogram هستند، زنجیره تأمین نرمافزار را هدف قرار دادهاند. این پکیجهای آلوده در PyPI به مهاجمان اجازه میدهند فایلهای دلخواه را از سرورهای آلوده استخراج کنند.
فورکهای مخرب Pyrogram در قالب پکیجهای آلوده در PyPI منتشر شدند
Pyrogram یک فریمورک مدرن و غیرهمزمان (Asynchronous) برای کار با Telegram MTProto API در زبان پایتون است که برای توسعه رباتها و یوزرباتها (usersbots) مورد استفاده قرار میگیرد. به بیان ساده، این کتابخانه به توسعهدهندگان اجازه میدهد رباتها و یوزرباتهای تلگرام را ایجاد و مدیریت کنند.
بر اساس گزارش پژوهشگران شرکت Checkmarx، عامل این کمپین که Operation Navy Ghost نامگذاری شده، بین نوامبر 2025 تا ژوئن 2026 مجموعهای از پکیجهای آلوده در PyPI را در قالب فورکهای مخرب از پروژه Pyrogram منتشر کرده است. این پکیجها عبارتند از:
- VLifeGram: 9 نسخه، مجموعاً 4,150 بار دانلود
- VLife-Gram: 5 نسخه، 1,030 بار دانلود
- pyrogram-navy: 6 نسخه، 2,530 بار دانلود
- pyrogram-styled: بیش از 16 نسخه، 15,370 بار دانلود
- pyrogram-zeeb: 1 نسخه، 432 بار دانلود
- kelragram: 3 نسخه، 1,041 بار دانلود
- Sepgram: 1 نسخه، 264 بار دانلود
- pyrogram-kelra: 1 نسخه، 672 بار دانلود
بکدور پنهان در فورکهای Pyrogram
تمام پکیجهای منتشرشده، فورکهایی از پروژه قانونی و معتبر Pyrogram هستند و کد منبع اصلی این پروژه را در خود جای دادهاند. با این حال، عامل تهدید فایل مخربی با نام secret.py را بهصورت مخفیانه در ماژول helpers اضافه کرده است؛ این تغییر باعث شده است پکیجهای آلوده در PyPI در ظاهر با نسخه اصلی تفاوتی نداشته باشند، اما در عمل یک بکدور را در خود پنهان کنند.
این فایل مخرب هنگام راهاندازی ربات آلوده، پردازشگرهای دستورات تلگرام (Telegram Command Handlers) را بهصورت مخفیانه ثبت میکند. در نتیجه، مهاجم میتواند با ارسال دستورات اختصاصی، کد پایتون یا دستورات شل (Shell Commands) دلخواه خود را روی سرور قربانی اجرا کند.
اجرای کد و دستورات شل از طریق ربات آلوده
پژوهشگران Checkmarx توضیح میدهند که وقتی مهاجم دستور /asu print(os.environ) را به ربات قربانی ارسال میکند، این تابع، کد پایتون ارسالشده را کامپایل کرده و روی سیستم قربانی اجرا میکند؛ در نتیجه مهاجم به اطلاعات و منابعی مانند کلاینت فعال تلگرام، نشستهای کاربری، چتها، مخاطبان و متغیرهای محیطی دسترسی کامل خواهد داشت.
همچنین محققان اعلام کردهاند که با ارسال دستوری مانند /asi cat /etc/passwd بدافزار دستور /bin/bash -c “cat /etc/passwd” را روی سرور قربانی اجرا کرده و خروجی اجرای آن را برای مهاجم ارسال میکند.
این فرآیند برای هر دستور شل دیگری نیز قابل تکرار است و تمامی دستورات با سطح دسترسی برنامه آلوده اجرا میشوند. به این معنا که بدافزار میتواند به هر دادهای که برنامه آلوده بهصورت قانونی امکان دسترسی به آن را دارد، دسترسی پیدا کرده و آنها را استخراج کند.
سپس خروجی دستورات اجراشده از طریق پیامهای تلگرام برای مهاجم ارسال میشود. اگر حجم خروجی بیشتر از 4096 بایت باشد، دادهها بهصورت یک فایل پیوست برای مهاجمان ارسال خواهند شد.
پکیجهای آلوده در PyPI امکان کنترل مخفی رباتهای تلگرام را فراهم میکنند
این بکدور دارای یک فهرست هاردکدشده با عنوان OWNERS است که شناسههای تلگرام مربوط به مهاجمان را در خود ذخیره میکند و امکان کنترل اختصاصی ربات آلوده را برای عامل تهدید فراهم میسازد. همچنین این فهرست به مهاجم کمک میکند تا در صورت اجرای بکدور روی سیستم خود، آن را غیرفعال کند.
این بدافزار بهطور ویژه حسابهای ربات تلگرام را هدف قرار میدهد و بهگونهای طراحی شده است که بدون جلب توجه فعالیت کند؛ به همین دلیل با پنهان کردن خطاها و غیرفعال کردن ثبت لاگها، تلاش میکند آثار فعالیت مخرب خود را کاهش دهد.
بررسی پژوهشگران Checkmarx نشان میدهد این بکدور تنها روی حسابهای ربات تلگرام فعال میشود؛ حسابهایی که معمولاً در محیطهای عملیاتی مورد استفاده قرار میگیرند. این عملکرد هدفمند نشان میدهد مهاجمان به دنبال دسترسی به منابع حساسی مانند پایگاههای داده، اعتبارنامهها، رابطهای برنامهنویسی ابری (Cloud APIs) و زیرساختهای حساس هستند.
در واقع، پکیجهای آلوده در PyPI با فعالسازی این بکدور، امکان دسترسی گسترده مهاجمان به سرورهای قربانی را فراهم میکنند. پس از فعال شدن ربات آلوده، عامل تهدید میتواند اقدامات مخرب زیر را انجام دهد:
- مشاهده و خواندن فایلهای موجود روی سرور
- استخراج اطلاعات حساس ذخیرهشده
- دسترسی به چتها و دادههای موجود در حساب تلگرام قربانی
- دانلود پایگاه داده از سرور آلوده
- نصب یک بکدور پایدار برای حفظ دسترسی طولانیمدت به سیستم
انتساب حمله به یک عامل تهدید و اقدامات حفاظتی ضروری برای توسعهدهندگان
شواهد موجود نشان میدهد انتشار این پکیجهای آلوده در PyPI بخشی از یک کمپین هماهنگ بوده که توسط یک عامل تهدید مشترک هدایت شده است. این نتیجهگیری بر اساس شواهدی مانند استفاده از فهرست مشترک OWNERS در پکیجهای مختلف، یکسان بودن کد بکدور، شباهت نام دستورات مخرب و زیرساختهای مشترک مورد استفاده در این حملات انجام شده است.
توسعهدهندگانی که هر یک از پکیجهای ذکرشده را نصب کردهاند یا احتمال میدهند سیستم آنها تحت تأثیر این حمله قرار گرفته باشد، باید فوراً این پکیجها را حذف کنند، تمامی اعتبارنامههای موجود در سرورهای آلوده را تغییر دهند و توکنهای ربات تلگرام خود را باطل کنند.