بسته پایتون نخ روان، کشف شده در PyPI، به عنوان مخرب، حاوی یک بدافزار سرقت اطلاعات مرسوم است. با این حال، ویژگی بارز آن استفاده از تکنیکهای پیشرفتهی مبهمسازی کد است که بار دادهی آن را مبهم میکند و تجزیه و تحلیل را به طور ویژهای چالشبرانگیز میکند. این بدافزار از سه لایه مبهمسازی به طور مکرر در سراسر زنجیرهی حملهی خود استفاده میکند و موانع قابل توجهی را برای رمزگشایی دستی ایجاد میکند.
تیم هشدار زودهنگام بدافزار ما این بسته را به تیم امنیتی PyPI گزارش داد که به سرعت آن را حذف کردند. در این مقاله، مراحل آن را توضیح میدهیم. نخ روانحملهی [اینترنت] و روشهایی که برای پنهان کردن هدف خود استفاده میکند، با تمرکز بر چگونگی همکاری بدافزار سرقت اطلاعات و مبهمسازی کد.
برگه تقلب: بدافزار سرقت اطلاعات و مبهمسازی کد
بدافزار سرقت اطلاعات چیست؟
بدافزار Infostealer مانند یک دزد موذی در دنیای دیجیتال شما عمل میکند. این بدافزار بیسروصدا اطلاعات حساس مانند رمزهای عبور، شماره کارتهای اعتباری یا اطلاعات شخصی شما را بدون اینکه متوجه شوید، میدزدد. این برنامهها آنچه را که تایپ میکنید (keylogging) ضبط میکنند، مرورگر شما را میربایند یا فایلهای دستگاه شما را برای جمعآوری دادههای ارزشمند اسکن میکنند. ترسناکترین بخش ماجرا؟ آنها در پنهان ماندن از دید رادار مهارت دارند.
مبهمسازی کد چیست؟
مبهمسازی کد اساساً هنر پنهان کردن چیزها در معرض دید است که اغلب توسط هکرها برای دشوارتر کردن تشخیص یا درک کد مخرب خود استفاده میشود. تصور کنید کسی کدی را به روشی بنویسد که عمداً گیجکننده باشد، بخشهایی از آن را رمزگذاری کند یا ظاهر آن را به هم بریزد تا ابزارهای آنتیویروس یا محققان را از کار بیندازد. این یک تاکتیک هوشمندانه اما ناامیدکننده است که به بدافزار کمک میکند تا مدت بیشتری فعال بماند و از شناسایی شدن جلوگیری کند.
لایههای مبهمسازی بدافزار سارق اطلاعات ThreadFluent
۱. رمزگذاری سهگانه
فرآیند مبهمسازی با یک payload رمزگذاریشدهی سنگین که در ... جاسازی شده است، آغاز میشود. fluent.py فایل. فرآیند رمزگذاری و رمزگشایی اولیه را میتوان به شرح زیر خلاصه کرد:
encoded_data = base64_module.b64decode("... BASE-6 with encrypted payload, IV and RSA-encrypted keys…”); # … Sequential decryption: ChaCha20, Blowfish and AES … encrypted_payload = AES_Cipher.new(aes_key, AES_Cipher.MODE_CBC, iv=aes_iv).decrypt(encrypted_payload[16:]) final_payload = unpad_function(encrypted_payload, AES_Cipher.block_size) exec( zlib_module.decompress(bz2_module.decompress(final_payload)) ) این فرآیند مبهمسازی شامل موارد زیر است:
- فشرده سازی: استفاده از gzip و bzip.
- رمزگذاری متقارنرمزگذاری زنجیرهای با ChaCha20، Blowfish و AES.
- رمزگذاری نامتقارنRSA برای رمزگذاری کلیدهای متقارن استفاده میشود.
نتیجه در Base64 کدگذاری شده و به صورت زیر درج میشود. دادههای رمزگذاری شدههر تکرار بر اساس تکرار قبلی ساخته میشود و یک ساختار رمزگذاری تو در تو ایجاد میکند که کشف محتوای واقعی را بدون مهندسی معکوس فوقالعاده دشوار میکند.
۲. رفع فشار با Gzip
در بسیاری از مراحل میانی، این بدافزار از یک روش مبهمسازی ساده اما مؤثر استفاده میکند: فشردهسازی Gzip همراه با کدگذاری Base64.
import base64, zlib; eval(zlib.decompress(base64.b64decode(<STR>).decode('utf-8')) این تکنیک تضمین میکند که بار دادهی مبهمسازیشده در طول مراحل پنهان باقی بماند.
۳. الحاق کد و کامپایل پویا
لایه آخر شامل تقسیم بار داده مبهمسازیشده بین چندین متغیر است که به صورت پویا در حین اجرا به هم متصل و رمزگشایی میشوند:
import base64, zlib FEQXCBDOZKHVIhT = '...' # ....(111 other variables with base-64 encoded values) ... zZytWuvuEdBXSrO = eval(<FEQXCBDOZKHVIhT' encoded with '\x>) + eval(<next variable, encoded>) + eval( ' zlib.decompress(base64.b64decode(<VAR>)).decode('utf-8') ') + ... eval(compile(base64.b64decode(eval(zZytWuvuEdBXSrO)).decode('utf-8'), ‘<app>', 'exec')) این مرحله به ویژه برای مهندسی معکوس دستی دشوار است، زیرا هر متغیر باید رمزگشایی و دوباره ترکیب شود تا محموله بعدی آشکار شود.
با ترکیب این تکنیکهای مبهمسازی، بدافزار infostealer in نخ روان از تشخیص فرار میکند و نقش حیاتی آن را نشان میدهد مبهم سازی کد در حملات سایبری مدرن
زنجیره حمله چند مرحلهای ThreadFluent
La نخ روان بدافزار infostealer شامل چهار مرحله مجزا است که هر کدام لایههای اضافی از مبهم سازی کداین مراحل نه تنها برای تحویل بار داده، بلکه برای محافظت از آن در برابر شناسایی و تجزیه و تحلیل نیز به کار میروند.

مرحله ۰: اجرای اولیه کد
نقطه ورود عبارت است از __init__.py فایلی که اجرای پیلود مبهمسازیشده را آغاز میکند. fluent.pyاین فایل از مبهمسازی چندلایه (مطابق مراحل ۱ تا ۳) برای تولید دراپر مرحله ۱ استفاده میکند:
import os,threading def main(): if os.name == 'nt': from . import fluent fluent.main() thread = threading.Thread(target=main , daemon=True) thread.start() مرحله ۱: قطرهچکان اولیه
اولین قطرهچکان، پس از رفع ابهام، کد مخرب دیگری را دانلود و جاسازی میکند، puts.py، از مخزن گیتهاب ساق پای مو قرمز-۱۳۳۷/بازنشر (هشدار: احتمال وجود کد مخرب در اینجا وجود دارد).
قطرهچکان جاسازی شده puts.py به نصب محلی محبوب درخواست کتابخانه، اصلاح آن __init__.py فایل را برای اجرای deobfuscation و اجرای مرحله بعدی باز کنید. این deobfuscation شامل معکوس کردن بسیاری از کاربردهای لایههای obfuscation 1 … 3 است.
مرحله ۲: قطرهچکان دوم
دومین دراپر، پس از رفع ابهام با طی همان فرآیند، یک بدافزار دیگر را دانلود میکند. ssl.py از مخزن گیتهاب، نام آن را به صورت زیر تغییر میدهد udp.pyو یک فایل قفل ایجاد میکند تا اطمینان حاصل شود که بدافزار به طور مکرر دوباره نصب نمیشود. سپس برای رفع ابهام آن اجرا میشود که منجر به اجرای آخرین payload دزد اطلاعات میشود.
مرحله ۳: دزد اطلاعات نهایی
مرحله آخر، یک دزد اطلاعات کاملاً کاربردی است که از تکنیکهای پیشرفته فرار استفاده میکند:
- ویژگیهای ضد تجزیه و تحلیل:
- ابزارهای ضد بدافزار را شناسایی کرده و در صورت شناسایی هرگونه فرآیند، IP، نام میزبان یا محیط مجازی که در لیست سیاه قرار گرفته باشد، آنها را خاتمه میدهد.
- استخراج داده ها:
- اطلاعات جامعی را ثبت میکند. از جمله IP، آدرس مک، دادههای VPN، کوکیها/تاریخچه مرورگر، دادههای کارت اعتباری و اعتبارنامههای کیف پول رمزنگاریشده و موارد دیگر، از جمله اسکرینشات.
- دادههای دزدیده شده (رمزگذاری شده) را از طریق کانال تلگرام، با استفاده از الگوی نشان داده شده در اینجا، ارسال میکند:

استراتژی رفع ابهام
برای تجزیه و تحلیل بستههای مشابه، محققان باید لایههای مبهمسازی آن را به طور سیستماتیک معکوس کنند:
- مراحل مبهمسازی را شبیهسازی کنید: اسکریپتهایی بنویسید که تبدیلها (مثلاً رمزگشایی، رفع فشردهسازی) را بدون اجرای فایل مخرب شبیهسازی کنند.
- لایههای رمزگذاری معکوس: با استفاده از کلیدها و الگوریتمهای تعبیهشده، فایل مخرب را استخراج و رمزگشایی کنید.
- تحلیل تکراری: هر مرحله میانی را به صورت تکراری پردازش کنید تا محموله نهایی بازسازی شود.
ابزارهای خودکار و محیطهای سندباکس برای سادهسازی این تحلیل ضروری هستند.
آیا میخواهید درباره پیشگیری از تهدیدها در زمان واقعی اطلاعات بیشتری کسب کنید؟
گزارش ما با عنوان «هشدار زودهنگام: تشخیص و اولویتبندی تهدید در لحظه» را دانلود کنید و نحوهی محافظت از زنجیرهی تأمین نرمافزار خود را بیاموزید.
بازیگر تهدید
ظاهراً این بسته از دو حساب کاربری PyPI منتشر شده است، ابیحسین۱۰ و anomilano785، فعلاً حذف شده است.
یک حساب کاربری گیتهاب (در حال حاضر فعال) با نام زیر وجود دارد: ابیحسین۱۰، که میتواند مربوط به کمپین باشد. ساق پای مو قرمز-۱۳۳۷ کاربر GitHub که مخزن مورد استفاده برای دانلود پیلودهای مرحله ۲ و ۳ را در اختیار دارد نیز تحت تجزیه و تحلیل است.
اگرچه انتساب همیشه پیچیده است و عضویت در یک تیم قرمز محتمل است، نوع و حجم اطلاعات استخراجشده، به یک عامل مخرب اشاره دارد.
نتیجهگیری: نقش مبهمسازی کد در تکامل بدافزارها
La نخ روان این بسته، نمونهای از مبهمسازی بدافزارهای مدرن در تحویل چندمرحلهای آن است. این بسته، همراه با تکنیکهای گریز به کار رفته، تلاش آشکاری را برای فرار از تشخیص و مقاومت در برابر تجزیه و تحلیل نشان میدهد.
این تحلیل بر اهمیت تلاشهای مشترک و ابزارهای خودکار در مبارزه با چنین تهدیدهایی تأکید میکند. با تشریح و درک این روشها، متخصصان امنیتی میتوانند در آینده دفاع بهتری در برابر بدافزارهای مشابه ایجاد کنند.
چگونه سیستم MEW شرکت Xygeni از رسیدن بستهی مخرب threadfluent به محیط عملیاتی جلوگیری کرد؟
شیگنی هشدار زودهنگام بدافزار (MEW) این سیستم در متوقف کردن [این روند] نقش مهمی داشت. نخ روان بسته پایتون، یک وابستگی مخرب حاوی پیشرفته مبهمسازی کد و چند مرحلهای بدافزار infostealerقبل از اینکه بتواند محیطهای تولید را به خطر بیندازد. در اینجا نحوهی انجام آن آمده است:
- تشخیص از طریق تحلیل استاتیک
MEW مشاهده شد نخ روانکد مخفی، یافتن نشانههای مشکوکی مانند رمزگذاری لایهای و فعالیت وابستگی غیرمعمول. - ارزیابی دسترسیپذیری در زمان اجرا
سیستم متوجه شد که کد بسته میتواند در حین استفاده اجرا شود و آن را بدون اجرای واقعی به عنوان یک تهدید جدی علامتگذاری کرد. - CI/CD Pipeline حفاظت
مسدود شدن MEW نخ روان به صورت بلادرنگ، مانع از قرار گرفتن آن در نسخههای ساخت و رسیدن به مرحله تولید شد. این برنامه به توسعهدهندگان هشدارهای لازم را ارسال میکرد و در زمان ارزشمند صرفهجویی میکرد. - به اشتراک گذاری اطلاعات تهدید
Xygeni به سرعت این بسته را به PyPI گزارش داد و یافتههای خود را با شبکه امنیتی جهانی خود به اشتراک گذاشت و از گسترش بیشتر آن جلوگیری کرد.
با گرفتن نخ روان در اوایل، سیستم MEW شرکت Xygeni اطمینان حاصل کرد که کد مخرب به زنجیرههای تأمین نرمافزار آسیبی نمیرساند یا CI/CD گردش کار.
از خودت محافظت کن CI/CD Pipelines به صورت رایگان
جلوگیری از تهدیداتی مانند نخ روان با سیستم هشدار زودهنگام بدافزار Xygeni. شروع کنید امتحان رایگان همین امروز زنجیره تامین نرمافزار خود را ایمن کنید.
لوئیس رودریگز
لوئیس رودریگز یک فیزیوتراپ استcisریاضیدان + و CISSP. در حال حاضر یکی از بنیانگذاران و مدیر ارشد فناوری در Xygeni Security است. او بیش از 20 سال تجربه در امنیت نرمافزار دارد و در پروژههایی مانند SAST و SCAاو در حال حاضر بر روی ... تمرکز دارد. software supply chain security.
دانیل مارتین
دنیل مارتین، متخصص امنیت سایبری و عضو تیم امنیتی تحقیقاتی Xygeni است که در زمینههای SDLC کاهش آسیبپذیری امنیتی و برنامههای کاربردی.






