برنامج LinkPro Linux Rootkit

كشف اختراق حديث لبيئة خدمات أمازون ويب (AWS) عن برنامج روتكيت (rootkit) يعمل بنظام جنو/لينكس، لم يُوثّق سابقًا، ويُتبّع باسم LinkPro. يتميز هذا الباب الخلفي باستخدامه المزدوج لوحدات eBPF: مجموعة لإخفاء الآثار، وأخرى تعمل كمُحفّز خفي - "نقرة" تُفعّل وظيفة الأوامر عن بُعد فقط بعد رؤية حزمة TCP مُصمّمة خصيصًا. تُظهر سلسلة الهجمات وآليات البرنامج الخبيث مُشغّلًا مُتطوّرًا يمزج بين إساءة استخدام الحاويات، والإخفاء على مستوى النواة، والتنشيط المرن للشبكة لإحباط الكشف والارتباط الجنائي.

ناقل العدوى والنشر الأولي

بدأ الاختراق باستغلال نسخة مكشوفة من Jenkins معرضة للثغرة CVE‑2024‑23897 (CVSS 9.8). ومن هذا المنطلق، وزّع المهاجمون نسخة Docker خبيثة (kvlnt/vv، التي أُزيلت من Docker Hub) على عدة مجموعات Kubernetes. استخدمت النسخة نظام Kali Linux، وحملت مجلد تطبيق صغيرًا يهدف إلى تثبيت الثبات، والوصول عن بُعد، وتنزيل باب خلفي على مراحل.

داخل صورة Docker الخبيثة

يحتوي مجلد تطبيق الصورة على ثلاثة ملفات رئيسية ذات أدوار مميزة:

start.sh — برنامج نصي يقوم بتشغيل خدمة SSH وتنفيذ المكونين الآخرين.

رابط - برنامج مفتوح المصدر (vnt) مُجمّع/مُجمّع ليعمل كعميل VPN/وكيل، ويتصل بالبيانات الصادرة إلى vnt.wherewego[.]top:29872. يتيح هذا للمهاجم الوصول إلى المضيف المُخترق من أي مكان، والتحول إلى أهداف أخرى من خلاله.

التطبيق - أداة تنزيل تعتمد على Rust (يشار إليها باسم vGet) تقوم بجلب حمولة vShell مشفرة من دلو S3، ثم تقوم بإنشاء رابط WebSocket إلى خادم الأوامر والتحكم (C2) الخاص بها على 56.155.98[.]37.

الحمولات الإضافية المُسلَّمة إلى عُقد Kubernetes

إلى جانب الصورة الخبيثة، أسقط المُشغِّلون أيضًا مُكوِّنَين آخرين على العُقَد: مُرسِل يُثبِّت بابًا خلفيًا آخر لـ vShell، وLinkPro، وهو برنامج روتكيت مكتوب بلغة Golang. صُمِّمَ LinkPro للعمل بأحد وضعَي التشغيل - سلبي (عكسي) أو نشط (أمامي) - حسب تكوينه. في الوضع السلبي، ينتظر تفعيله بواسطة حزمة شبكة خاصة؛ وفي الوضع النشط، يُنشئ اتصالًا بوحدة التحكم والقيادة (C2) نفسها. يدعم الوضع الأمامي خمسة بروتوكولات نقل (HTTP، وWebSocket، وUDP، وTCP، وDNS)، بينما يقتصر الوضع العكسي على HTTP.

كيف يستمر LinkPro

يتبع سلوك التنفيذ والاستمرار الشامل للبرامج الضارة تسلسلًا واضحًا:

  • ثبّت وحدة إخفاء eBPF. تتضمن هذه الوحدة برامج Tracepoint وKretprobe eBPF المستخدمة لإخفاء عمليات LinkPro ونشاط الشبكة.
  • إذا فشل تثبيت وحدة إخفاء eBPF — أو إذا تم تعطيلها — فقم بتثبيت مكتبة مشتركة في /etc/libld.so وأضف هذا المسار إلى /etc/ld.so.preload كآلية إخفاء بديلة.
  • للتشغيل العكسي (السلبي)، ثبّت وحدة Knock eBPF. تحتوي Knock على برنامج XDP وبرنامج TC، لذا لا تُفعّل قناة C2 إلا بعد استلام "حزمة سحرية" محددة.
  • إنشاء الثبات عن طريق إنشاء خدمة systemd.
  • تنفيذ الأوامر الواردة من C2.
  • عند إيقاف التشغيل أو عند الإشارة (SIGHUP، SIGINT، SIGTERM)، قم بإلغاء تثبيت وحدات eBPF وإزالة/استعادة تعديل التحميل المسبق /etc/libld.so حتى يعود النظام إلى حالته السابقة.

الحزمة السحرية وآلية التنشيط بالطرق

يعتمد التنشيط السلبي لـ LinkPro على حزمة TCP دقيقة: تُعامل أي حزمة TCP حجم نافذتها 54321 على أنها "حزمة سحرية". عندما يكتشف Knock تلك الحزمة، يُخزّن عنوان IP المصدر ويُعلّمه بفترة صلاحية مدتها ساعة واحدة. تُراقب حزم TCP اللاحقة من ذلك المصدر، وعند الاقتضاء، يُعيد Knock كتابة الرؤوس لإعادة توجيه حركة مرور المُشغّل إلى منفذ الاستماع الخاص بـ LinkPro (2333). تُعدّل الحزم الصادرة لعرض المنفذ الأصلي على الشبكة (تُعاد كتابة منفذ المصدر إلى 2233). الهدف واضح ولكنه فعّال: السماح للمهاجم بالوصول إلى LinkPro عبر أي منفذ يسمح به جدار الحماية الأمامي، مع صعوبة ربط سجلات جدار الحماية الخارجية بنشاط الشبكة الداخلية للمُضيف.

كيف يخفي LinkPro نفسه

يستخدم LinkPro استراتيجية إخفاء ذات مستويين:

إخفاء النواة/eBPF : تُثبّت وحدة إخفاء eBPF برامج Tracepoint وKretprobe التي تعترض استدعاءات النظام، مثل getdents (لإخفاء الملفات/المجلدات) وsys_bpf (لإخفاء برامج BPF الخاصة بها). يتطلب هذا النهج نواة مُفعّل عليها CONFIG_BPF_KPROBE_OVERRIDE.

خيار بديل لـ LD_PRELOAD في مساحة المستخدم : إذا لم تكن إمكانية النواة موجودة، يكتب LinkPro مكتبة مشتركة (libld.so) ويضع مسارها في /etc/ld.so.preload. لأن /etc/ld.so.preload يُحمّل المكتبة المحددة في كل عملية مرتبطة ديناميكيًا (تلك التي تستخدم /lib/ld-linux.so وglibc)، فإن libld.so المزروعة تُربط دوال libc مبكرًا (قبل سلوك glibc نفسه) وتُغيّر بيانات الإرجاع من استدعاءات libc لإخفاء أي آثار قد تكشف عن وجودها.

قدرات Rootkit ومجموعة الأوامر

يدعم LinkPro الإجراءات التفاعلية والآلية عن بُعد. تشمل ميزاته المُطبّقة ما يلي:

  • بدء تشغيل محطة طرفية وهمية /bin/bash وتشغيل جلسات shell التفاعلية.
  • تنفيذ أوامر shell عشوائية.
  • إحصاء الملفات والدلائل وإجراء عمليات على الملفات.
  • تنزيل الملفات وكتابتها على القرص.
  • إنشاء نفق وكيل SOCKS5 للمحور والتوكيل المباشر.

دعم بروتوكول الشبكة وسلوك C2

في الوضع النشط (الأمامي)، يتميز LinkPro بالمرونة: إذ يمكنه التواصل باستخدام بروتوكولات HTTP، أو WebSocket، أو UDP، أو TCP، أو DNS. أما في الوضع السلبي (العكسي)، فيقتصر تواصله على HTTP، ولكنه يستفيد من ميزة التخفي لأنه لا يستمع إلا بعد أن تفتح حزمة Knock magic نافذة أوامر مؤقتة لمدة ساعة.

سلوك التنظيف وإلغاء التثبيت

إذا تلقت العملية إشارات إنهاء، يهدف LinkPro إلى إزالة الآثار: فهو يلغي تثبيت وحدات eBPF المثبتة، ويحذف أو يستعيد ملف /etc/libld، ويعيده إلى حالته السابقة ليبدو النظام كما هو. يشير هذا الإجراء المتعمد للتنظيف إلى حرص المشغل على تجنب الأخطاء وتقليل آثار التحليل الجنائي طويلة المدى.

السياق التشغيلي والإسناد

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

تبعية النواة وسلوكياتها البديلة

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

ملاحظة ختامية

يوضح LinkPro كيف يمكن لعمليات الاختراق الحديثة الجمع بين اختراق الحاويات، والمُحمّلات المرحلية، وأدوات التحكم بالنواة (eBPF)، وحيل الشبكة الذكية (تنشيط الحزمة السحرية وإعادة كتابة المنافذ) للحفاظ على السرية والمرونة. يتطلب الكشف عن الثغرات وإصلاحها فحصًا دقيقًا لبرامج eBPF غير المصرح بها، والإدخالات غير المتوقعة في /etc/ld.so.preload، وخدمات systemd غير المعتادة، واتصالات الشبكة بالبنية التحتية المشار إليها (تشمل مؤشرات التحليل الجنائي عنوان IP 56.155.98[.]37، والمنافذ 29872، و2333، و2233، واسم صورة Docker المُزال kvlnt/vv).

الشائع

الأكثر مشاهدة

جار التحميل...