برمجية "Rondo" الخبيثة (Rootkit) لتعدين العملات على أنظمة Linux

حجم الخط:
وضع القراءة:
برمجية "Rondo" الخبيثة (Rootkit) لتعدين العملات على أنظمة Linux

ملخص التقرير

في السابع من ديسمبر 2025، قمنا بالتحقيق في حالة اختراق معقدة أصابت خادماً يعمل بنظام Linux. البرمجية الخبيثة، التي أطلقنا عليها اسم "Rondo"، لم تكن مجرد أداة عادية لتعدين العملات الرقمية، بل كانت "Rootkit" متطوراً جداً.

استخدمت هذه البرمجية حيلًا ذكية للبقاء داخل النظام (Persistence)، مثل التلاعب بـ LD_PRELOAD، وحقن خدمات في systemd، واستخدام مهام cron. هذا الهجوم يثبت لنا أن الفيروسات على Linux تطورت وأصبحت بارعة في إخفاء نفسها واستهلاك موارد الجهاز دون أن يتم كشفها بسهولة.

كيف اكتشفنا المشكلة؟

بدأت القصة بملاحظة سلوك غريب جداً؛ أوامر النظام الأساسية كانت تفشل فجأة. عند محاولة تشغيل أدوات مثل htop أو passwd، كان النظام ينهي العملية فوراً وتظهر رسالة "Killed".

Bash

root@ubuntu-8gb-fsn1-1:~# htop
Killed
root@ubuntu-8gb-fsn1-1:~# pm2
Killed

هذا السلوك يعني غالباً شيئاً من اثنين: إما أن الذاكرة (RAM) ممتلئة تماماً، أو أن هناك برمجية خبيثة تمنع أدوات المراقبة من العمل حتى لا يتم كشفها.

كيف دخلوا إلى النظام؟ (نقطة الدخول)

تشير الأدلة إلى أن الاختراق تم بالطريقة الكلاسيكية عبر خدمة SSH:

  • كلمات مرور ضعيفة: سجلات النظام أظهرت محاولات دخول فاشلة كثيرة.
  • دخول الـ Root مفعل: كان مسموحاً للمهاجم بالدخول مباشرة بحساب الـ root.
  • غياب الحماية: لم تكن هناك أداة مثل fail2ban لحظر العناوين التي تكرر محاولة الدخول الخاطئ.

مكونات البرمجية الخبيثة (كيف تعمل؟)

1. تقنية LD_PRELOAD (الأخطر)

هذا هو الجزء الأكثر خبثاً في الهجوم. قام المخترق بوضع مكتبة برمجية خبيثة في المسار /etc/data/libsystem.so، ثم عدّل الملف /etc/ld.so.preload ليجبر النظام على تحميل هذه المكتبة مع كل برنامج يتم تشغيله.

هذا يعطي الفيروس قدرة على:

  • اعتراض أوامر النظام.
  • إخفاء ملفاته وعملياته من الظهور.
  • التسبب في رسائل الخطأ "Killed" التي رأيناها عند محاولة تشخيص المشكلة.

2. استبدال أداة curl

وجدنا ملف curl مزيفاً في المسار /etc/data/curl. حجمه ضخم (3.4 ميجابايت) مقارنة بالنسخة الأصلية. هذا الملف يُستخدم غالباً للتواصل مع خوادم المهاجمين (C2) وتنزيل المزيد من الأدوات.

3. خدمات Systemd الخبيثة

لضمان عمل الفيروس دائماً، تم إنشاء عدة خدمات وهمية بأسماء مضللة:

  • alive.service و lived.service: تشغل سكربتات خبيثة.
  • nginxd.service: تحاول انتحال اسم خادم الويب الشهير Nginx.
  • rondo.service: الخدمة الرئيسية للبرمجية.

4. مهام Cron المجدولة

حتى لو أعدت تشغيل الخادم، سيعود الفيروس للعمل عبر مهام مجدولة في cron. إحدى المهام كانت تقوم بتنزيل سكربت من عنوان IP خارجي (80.64.16.241) كل دقيقة، مما يسمح للمهاجم بإعادة اختراق الجهاز إذا قمت بتنظيفه جزئياً.

تأثير الهجوم على الخادم

الوضع كان كارثياً من ناحية الأداء والأمان:

  • استهلاك الموارد: البرمجية استهلكت 4.8 جيجابايت من الرام (63% من الذاكرة)، وتسببت في استنفاد المعالج (CPU).
  • مستوى الخطورة (10/10): المهاجم حصل على صلاحيات root كاملة، وسيطر على النظام من مستوى منخفض جداً (Kernel hooks)، ولديه القدرة على تنفيذ أي كود عن بعد.

خطوات التنظيف والتعافي

ملاحظة هامة: في حالات الاختراق العميق هذه (حيث وصل المهاجم للـ Root واستخدم LD_PRELOAD)، الحل الأكثر أماناً هو مسح الخادم بالكامل وإعادة بنائه. لا يمكن الوثوق بالنظام مرة أخرى بنسبة 100%.

ولكن، إذا كنت مضطراً للتنظيف اليدوي كحل مؤقت، اتبع الترتيب التالي بدقة:

1. إجراءات فورية

يجب أولاً إيقاف آلية LD_PRELOAD لأنها تحمي الفيروس.

Bash

rm -f /etc/ld.so.preload
ldconfig
# إيقاف الخدمات الخبيثة
systemctl stop rondo.service nginxd.service alive.service lived.service
systemctl disable rondo.service nginxd.service alive.service lived.service

2. إزالة الثبات (Persistence)

احذف المهام المجدولة وملفات التشغيل التلقائي.

Bash

rm -f /etc/cron.d/rondo
# تنظيف ملف crontab من أي سطر يحتوي على rondo
sed -i '/@reboot.*rondo/d' /etc/crontab
# حذف ملفات الخدمات
rm -f /etc/systemd/system/{alive,lived,rondo,nginxd}.service
systemctl daemon-reload

3. حذف ملفات الفيروس

Bash

rm -rf /etc/rondo/
rm -rf /etc/data/
rm -rf /tmp/runnv/
rm -f /tmp/kdevtmpfsi
# إعادة تثبيت curl الأصلي
apt install --reinstall curl

4. قتل العمليات النشطة

Bash

pkill -9 -f "rondo"
pkill -9 -f "react.x86_64"
pkill -9 -f "kdevtmpfsi"

5. تأمين الخادم (خطوة لا غنى عنها)

  • غيّر جميع كلمات المرور فوراً.
  • عطل الدخول المباشر للـ root في إعدادات SSH.
  • استخدم مفاتيح SSH Keys بدلاً من كلمات المرور.
  • قم بتثبيت fail2ban وتفعيل الجدار الناري (UFW).

الخلاصة

برمجية "Rondo" تعتبر مثالاً متقناً لكيفية تحول برمجيات التعدين من مجرد إزعاج بسيط إلى تهديد أمني خطير يسيطر على كامل الخادم. المهاجم استغل إهمالاً بسيطاً (كلمة مرور ضعيفة) ليقوم بزرع نفسه في أعماق النظام.

النصيحة الذهبية: الوقاية هنا ليست مجرد عبارة تقليدية. استخدام مفاتيح SSH، وتفعيل الجدار الناري، وعدم استخدام الـ root مباشرة، هي إجراءات كفيلة بمنع 99% من هذه الهجمات قبل أن تبدأ.