بوينت بلانك: برنامج PyPI RAT يخفي خادم التحكم والسيطرة في خدمة JSON-Bin

بوينت بلانك: برنامج تحكم عن بعد (RAT) كامل الميزات مكتوب بلغة بايثون، وكان يُشغّل قناة الأوامر الخاصة به من خلال خدمة استضافة ملاحظات مجانية.

TL؛ DR

حزمة PyPI باسم gcli-control أصدرت الشركة أداةً كاملةً للوصول عن بُعد إلى نظام ويندوز: تسجيل ضغطات المفاتيح، والتقاط بيانات كاميرا الويب والميكروفون، ومراقبة الحافظة، والوصول إلى بيانات اعتماد المتصفح، والتحكم في الشاشة، والاستمرارية، ورفع مستوى الصلاحيات، بالإضافة إلى ما وصفته الشركة نفسها بـ "أكثر من 140 أمرًا". لم تُخفِ الشركة ماهيتها: فقد وصفها ملخصها على موقع PyPI بأنها "أداة وصول عن بُعد عبر npoint.io".

التفاصيل التي تستحق التوقف عندها هي تلك العبارة "عبر npoint.io." بدلاً من الاتصال بخادم مخصص، استخدم الزرع npoint[.]io (خدمة مجانية وشرعية لاستضافة ملفات JSON صغيرة) كخادم وسيط للتحكم. يقوم المشغل بكتابة الأوامر في حاوية JSON؛ يقوم البرنامج الخبيث باستطلاع تلك الحاوية، وتنفيذ الأوامر، وإعادة كتابة النتائج. لا حاجة لحظر نطاق مملوك للمهاجم، ولا حاجة لرصد عنوان IP جديد: فالحركة المرورية تذهب إلى خدمة يستخدمها المطورون يوميًا.

تم نشر ست نسخ في غضون ثلاثة عشر ساعة ونصف تقريبًا، وكانت كل نسخة أكثر كفاءة من سابقتها. وقد تم تقييم كل نسخة منها. آمن متوقع من قبل ml قام مصنف آلي، قبل المراجعة اليدوية، بإعادة تصنيف العائلة على أنها خبيثة.

تشريح الهجوم

gcli-control يقوم بتثبيت حزمة الاستيراد gcli، قاعدة بيانات برمجية بلغة بايثون تتكون من 35 وحدة. لا توجد متطلبات تثبيت مسبقة. hooks — لا شيء يعمل خلال تثبيت نقطةتكمن هذه الإمكانية في الوحدات النمطية نفسها، ويتم استدعاؤها بمجرد تشغيل الأداة، ويشبه تصميم الوحدة النمطية ورقة مواصفات المنتج:

مجال القدراتالأقسام
مراقبة المضيفkeylog, webcam, audio, clipboard, desktop, monitoring
بيانات الاعتماد والوصول إلى البياناتbrowser, forensics, fileops, transfer, users
موطئ قدم وتصعيدpersistence, elevator, registry, security
استطلاع المضيف والشبكةsystem, processes, network_config, wifi, bluetooth, netutils
القيادة والسيطرةclient, host, session, protocol, npoint, crypto, encrypt

تُعد قناة التحكم الجزء المثير للاهتمام. تصل معظم أدوات الوصول عن بُعد إلى خادم يتحكم فيه المشغل - عنوان IP، أو نطاق، أو مزود استضافة يمكن الإبلاغ عنه وإيقافه عن العمل. gcli-control بدلاً من ذلك، يعالج خدمة JSON-bin المجانية كموقع تسليم سري. نقطة تقوم الوحدة بقراءة وكتابة مستندات JSON صغيرة على npoint[.]io عبر بروتوكول HTTPS العادي؛ التشفير/تشفير تقوم الوحدات بتغليف البيانات المتبادلة بحيث لا تكون محتويات الحاوية أوامر نصية عادية. والنتيجة هي عملية ترحيل مشفرة ووسيطة.

  • يقوم المشغل بإسقاط تعليمات (مشفرة) في حاوية JSON.
  • يقوم البرنامج الخبيث، الذي يعمل على جهاز الضحية، باستطلاع هذا الملف الثنائي، وفك تشفيره، وتنفيذ أحد معالجات الأوامر الخاصة به، وكتابة النتيجة (المشفرة) مرة أخرى.
  • بالنسبة لمراقب الشبكة، فإن الضحية ببساطة تتحدث إلى npoint[.]io — خدمة لها سبب مشروع للظهور في حركة مرور المطورين.

لا يوجد تنزيل من المرحلة الثانية ولا يوجد برنامج تحميل مشفر هنا: تأتي الإمكانية كاملة، بلغة بايثون قابلة للقراءة، و"الإخفاء" الوحيد هو اختيار المرحل وتشفير الحمولات المرحّلة.

من الجدير بالذكر توضيح سبب جاذبية استخدام JSON-bin كنقطة تسليم سرية من الناحية التشغيلية، لأنه يفسر سبب توقعنا رؤية هذا النمط مرة أخرى:

  • لا توجد نقطة نهاية مملوكة للمشغل. لا يوجد نطاق C2 للتسجيل، ولا خادم افتراضي خاص للإيجار، ولا شيء يمكن للمدافع أو المسجل الاستيلاء عليه. إزالة صفقة لا يمس القناة؛ إزالة قناة يعني ذلك مطالبة برنامج SaaS متعدد الأغراض بمراقبة وثيقة واحدة من بين ملايين الوثائق.
  • تبييض السمعة. لا يترتب على استخدام بروتوكول HTTPS الصادر إلى خدمة مطورين معروفة أي عقوبات تتعلق بسمعة الموقع، كما هو الحال مع نطاق جديد أو عنوان IP خام. وتسمح العديد من إعدادات تصفية حركة البيانات الصادرة بذلك ضمنيًا.
  • عدم التزامن وإمكانية الإنكار. نموذج الاستقصاء - حيث يقوم الجهاز المزروع بجلب مستند على فترات زمنية محددة بدلاً من إبقاء منفذ مفتوح - ينتج عنه حركة بيانات تبدو وكأنها استقصاء دوري لواجهة برمجة التطبيقات، وليست جلسة تفاعلية. تشفير محتويات المستند يعني أن حتى المحلل الذي يعثر على الجهاز المزروع سيرى نصًا مشفرًا، وليس قائمة أوامر.
  • دوران بسيطإن نقل الملفات إلى حاوية مختلفة، أو إلى خدمة ملاحظات/لصق مختلفة تمامًا، لا يتطلب من المشغل سوى تغيير بسيط في الإعدادات. أي قائمة حظر مرتبطة بالمرحل المحدد تصبح قديمة بمجرد شحنها.

المقايضة التي يقبلها المشغل هي بين سرعة نقل البيانات وزمن الاستجابة: فالمرحل غير المباشر أبطأ وأقل عرض نطاق من الاتصال المباشر. بالنسبة لزرعة مراقبة وتحكم تُصدر في الغالب أوامر قصيرة وتجمع النتائج بمرور الوقت، فإن هذه المقايضة سهلة التنفيذ.

الخط الزمني

تصاعدت الأمور بسرعة. تشير الطوابع الزمنية لإنشاء التذاكر للإصدارات التي تم وضع علامة عليها إلى أن المسار المرصود بأكمله استغرق حوالي ثلاثة عشر ساعة ونصف، كما ازداد عدد الأدلة التي جمعها الماسح الضوئي بالتوازي مع نمو الكود - من موقعين تم وضع علامة عليهما في الإصدار الأول إلى أربعة عشر موقعًا في الإصدار الأخير.

التجريبيةأول ظهور (UTC)ملاحظات
0.1.02026-07-21 12:59التحميل الأولي؛ الحد الأدنى من المساحة المحددة
0.5.02026-07-21 18:01تتوسع القدرات
0.2.02026-07-21 18:03(ترقيم الإصدارات ليس متناسبًا مع ترتيب التحميل)
0.6.02026-07-22 00:44مجموعة وحدات أوسع
0.7.02026-07-22 01:58مجموعة أدوات شبه كاملة
0.7.12026-07-22 02:28أحدث إصدار؛ 35 وحدة، قدرات كاملة

لم تُنشر أرقام الإصدارات بترتيب دقيق، لكن الاتجاه واضح: إصدار أولي صغير، ثم تكرار سريع نحو الإصدار 0.7.1 كامل الميزات. هذا هو شكل مشروع قيد التطوير النشط يتم دفعه إلى سجل عام مع نموه، وليس إصدارًا لمرة واحدة.

مؤشرات التسوية

تم تأكيد جميع المؤشرات أدناه مقابل محتويات الحزمة الموجودة على القرص وفحص المؤشر الحتمي للإصدار 0.7.1؛ لا يوجد أي منها تخميني.

النوعمؤشر
حزمة (PyPI)gcli-control، الإصدارات 0.1.0، 0.2.0، 0.5.0، 0.6.0، 0.7.0، 0.7.1
حزمة الاستيرادgcli
مرحل C2npoint[.]io (JSON-bin dead-drop; encrypted payloads)
المستودع المذكورgithub[.]com/gcli-control/gcli
البصمة السلوكيةوحدات مراقبة متجاورة: keylog, webcam, audio, clipboard, browserبالإضافة إلى خاصية الثبات، وخاصية المصعد، وطبقة أوامر العميل/المضيف/البروتوكول في حزمة واحدة
تثبيت hooksلا شيء: تعمل هذه الخاصية أثناء تشغيل الأداة، وليس أثناء التثبيت.

ملاحظة للمدافع: إن أقوى إشارة دائمة ليست النطاق (حيث يدور جهاز الترحيل بشكل بسيط) بل شكلحزمة واحدة تضم ثلاثة أو أكثر من العناصر الأساسية المتميزة لمراقبة المضيف و يوجّه حلقة الأوامر/الاستجابات عبر خدمة استضافة محتوى عامة. حظر npoint[.]io إن التنبيه المباشر غير عملي بالنسبة لمعظم المتاجر؛ أما التنبيه بشأن عملية غير متوقعة تقوم بالتقاط أجهزة الإدخال والتواصل مع خدمة JSON-bin فهو أكثر قوة بكثير.

السلوك الملاحظ والتأطير

هناك شيئان يجعلان هذه العينة غير عادية، وكلاهما حقائق يمكن ملاحظتها بدلاً من استنتاجات حول الدافع.

لقد روّج لنفسه. لخصت نشرة الحزمة على PyPI إمكانياتها بلغة واضحة، وهي: الوصول عن بُعد، والتحكم في سطح المكتب، وإدارة المستخدمين، وكاميرا الويب، والصوت، ومسجل ضغطات المفاتيح، وحفظ البيانات، وبيانات المتصفح، وشبكة Wi-Fi، وسجل النظام، و"أكثر من 140 أمرًا". لم يكن هناك أي محاولة لتسويق الشفرة على أنها أداة مساعدة في البناء، أو غلاف سطر أوامر، أو أداة ذكاء اصطناعي، وهو التمويه الأكثر شيوعًا في سجلات الأنظمة العامة. يبقى السؤال مطروحًا: هل تعكس هذه الشفافية أداة فريق هجومي نُشرت دون ضوابط وصول، أم أنها شيء آخر؟ لا تُجيب محتويات الحزمة وحدها على هذا السؤال؛ لكن المؤكد هو أن أي شخص لديه صلاحية الوصول عن بُعد يمكنه تثبيت مجموعة أدوات عامة وفعّالة للوصول عن بُعد والمراقبة. بذرة.

لقد اعتمد ذلك على الثقة في خدمة حميدة. باستخدام npoint[.]io لأن الترحيل هو الأسلوب المحدد. وهو مثال على نمط أوسع نطاقًا - توجيه C2 من خلال SaaS شرعي (مواقع لصق، صناديق JSON، شبكة دردشة)hooks(وثائق السحابة) بحيث يندمج الترافيك الخبيث مع نشاط المطور العادي، ولا توجد نقطة نهاية مملوكة للمشغل يمكن الاستيلاء عليها. تم تشفير الحمولات على المرحل، بحيث لا يمكن قراءة محتويات الحاوية كأوامر من قبل مراقب عادي.

إشارات الناشر ضعيفة وعامة. أعلنت الحزمة المعلن / كاتب التعليق من "مساهمي gcli" ورخصة MIT، ووجهت صفحتها الرئيسية وحقول المستودع إلى github[.]com/gcli-control/gcliلا يُعدّ أيٌّ من ذلك توثيقًا: فاسم المؤلف نصٌّ حرّ، وعنوان ترخيص MIT مجانيّ، ورابط المستودع في بيانات تعريف الحزمة مجرّد ادّعاء، وليس دليلًا على المصدر. هذا النمط - اسم جديد تمامًا، ومؤلف جماعي عام، ومستودع/مؤسسة مرجعية ذاتية مُنشأة حول الحزمة - هو ما يبدو عليه المشروع عندما يُنشأ خصيصًا لحمل الكود، بدلًا من كونه أداة راسخة أُضيفت إليها ميزة التحكّم عن بُعد. نُشير إلى هذه الملاحظات؛ فهي تتوافق مع التوزيع المُصمّم لهذا الغرض، ولكنها لا تُثبته بحدّ ذاتها.

نصف هذا السلوك بأنه خبيث استنادًا إلى قدراته وطريقة تنفيذه: فهو عبارة عن برنامج تجسس وتحكم عن بُعد كامل وقابل للتشغيل، يتم توزيعه على فهرس حزم بيانات عام مع وسيط سري. ولا نحدد هدفًا أو دافعًا وراءه.

التأثير والاتجاهات وما يمكن للمدافعين فعله

نقطة عمياء في الفرز الموجه نحو التمويه. تعتمد العديد من مفاتيح الفرز الآلي للطرود على تمويه إشارات البرامج الضارة النموذجية في سجل النظام — كتل مشوشة، وقت التثبيت hooksعبارات موجزة لجمع بيانات الاعتماد. حزمة بسيطة جرذ علانيةبفضل شفرتها النظيفة سهلة القراءة وعدم وجود خطاف تثبيت، لا تُظهر هذه الفئة أيًا من تلك المؤشرات، ويمكنها التسلل عبر أساليب الكشف التي تتوقع التخفي. الإشارات التي تكشف هذه الفئة بشكل موثوق هي إشارات هيكلية وليست قائمة على التمويه: إحصاء القدرات (عدد عناصر مراقبة المضيف المختلفة الموجودة في حزمة واحدة) وتحليل شكل C2 (حلقة أوامر/استجابات موجهة عبر خدمة استضافة محتوى عامة). يتم تفعيل هذه الفحوصات بغض النظر عن مدى نزاهة أو غموض التغليف هو.

اتجاه SaaS كـ C2. إن استغلال خدمة استضافة شرعية كنقطة تسليم سرية ليس بالأمر الجديد، ولكنه لا يزال فعالاً لأن تكلفة حظر الخدمة مرتفعة، بينما تكلفة تغيير الخدمة شبه معدومة. توقعوا المزيد من ذلك. تتلاشى حماية الشبكة الموجهة لنطاقات ضارة محددة فورًا، بينما تبقى قواعد السلوك ("هذه العملية تقرأ الحافظة وكاميرا الويب ثم تتصل بواجهة برمجة تطبيقات استضافة الملاحظات") فعّالة.

رسم تخطيطي للكشف عن الخرسانة. القاعدة الدائمة لا تُسمّي npoint[.]io على الإطلاق. فهو يجمع بين ملاحظتين شائعتين بشكل فردي ولكنهما نادرتان معًا لدى مطور عادي أو مضيف تكامل مستمر:

تنبيه عند قيام عملية واحدة، ضمن جلسة واحدة، بما يلي:
(أ) الوصول إلى عنصر أساسي لمراقبة المضيف - جهاز إدخال (خطاف لوحة المفاتيح/الماوس)، أو كاميرا، أو ميكروفون، أو التقاط الشاشة، أو حلقة قراءة الحافظة، أو مخزن بيانات اعتماد المتصفح ("Login البيانات" / "الولاية المحلية" / DPAPI)؛ و
(ب) يقوم بإجراء طلبات خارجية إلى خدمة استضافة المحتوى العامة / لصق / JSON-bin / chat-webhook ثم يرفعها للمراجعة، بغض النظر عن الخدمة المحددة في (ب).

لا يُثير أيٌّ من الطرفين الشك بمفرده: فكثير من الأدوات المشروعة تقوم بتصوير الشاشة، وكثير منها يرسل بيانات JSON إلى واجهة برمجة تطبيقات الاستضافة. إنّ الاقتران داخل عملية واحدة قصيرة الأجل هو الإشارة، وهو يبقى فعّالاً حتى بعد تغيير المرحل.

خطوات عملية للفرق:

  • تعامل مع عمليات تثبيت الحزم العامة على مضيفات المطورين و CI كحدود تنفيذ، وليس كأمر مريح - إن RAT على وكيل البناء هو RAT مع أسرارك.
  • يفضل استخدام المرايا الداخلية المدرجة في القائمة المسموح بها؛ لا ينبغي أبدًا أن يتم حل حزمة تحمل اسمًا حرفيًا للتحكم عن بعد وتصف برنامج تسجيل ضغطات المفاتيح على فهرس الشركة.
  • تنبيه بشأن مجموعة — جهاز الإدخال أو التقاط الشاشة بالإضافة إلى حركة المرور الصادرة إلى خدمة المحتوى/اللصق/JSON-bin — بدلاً من أي عنصر بدائي واحد، والذي له استخدامات حميدة في العزلة.
  • لا تعتمد على درجة "آمنة" آلية كحكم نهائي للحزم ذات القدرة الواسعة على الوصول إلى المضيف؛ قم بتوجيهها إلى مراجعة بشرية.

صُنفت هذه الحزمة البرمجية بأنها خبيثة، وأُحيلت لإزالتها من سجل النظام. ولأن نظام التحكم والسيطرة القائم على الترحيل لا يترك أي مضيف مملوك للمشغل عرضة للاختراق، فإن القيمة الدفاعية الدائمة تكمن في البصمة السلوكية المذكورة أعلاه، وليس في أي إدخال منفرد في قائمة الحظر.

أدوات تحليل التركيبات البرمجية sca
إعطاء الأولوية للمخاطر التي تتعرض لها برامجك، ومعالجتها، وتأمينها
احصل على حسابك المجاني.
أي بطاقة ائتمان.

قم بتأمين تطوير البرامج الخاصة بك وتسليمها

مع مجموعة منتجات Xygeni