لقد طور باحثو الأمن rootkit لينكس متقدم يُدعى Singularity يتجاوز آليات الكشف والاستجابة عند نقاط النهاية في Elastic Security. تُظهر الأداة ثغرات في أنظمة الكشف الثابتة والسلوكية من خلال تقنيات التشويش المتقدمة. تم الكشف عنه على GitHub من قبل الباحث 0xMatheuZ، مما يبرز التحديات المستمرة في تحديد التهديدات على مستوى النواة.
لقد أصدر باحثو الأمن، بقيادة الاسم المستعار 0xMatheuZ، Singularity، وهو rootkit لنواة لينكس على GitHub، مصمم لتجنب الكشف بواسطة حل EDR لـ Elastic Security، المعروف باسم Elastic Defend. عادةً، يُطلق Elastic Security أكثر من 26 تنبيهاً لتنفيذات rootkit القياسية، بما في ذلك الحجر الصحي للملفات وإنهاء العمليات، لكن Singularity يتجاوز هذه من خلال أربع استراتيجيات رئيسية للتهرب.
تشمل التقنية الأولى تشويش السلاسل في وقت الترجمة، حيث تُقسم السلاسل الحساسة مثل “GPL” و“kallsyms_lookup_name” إلى ثوابت منفصلة، مثل MODULE_LICENSE(“G” “P” “L”)، والتي يقوم مترجم C بتسلسلها. هذا يمنع ماسحات توقيعات YARA من تحديد السلاسل الضارة المتصلة في الثنائي مع الحفاظ على الوظيفة.
ثانياً، يتم استبدال أنماط الأسماء الرمزية العشوائية بأنماط يمكن التنبؤ بها، مثل “hook_getdents,” “fake_tcp4_seq_show,” و“hide_module,” بأسماء عامة تشبه النواة مسبوقة بـ “sys,” “kern,” أو “dev.” يحمي قائمة بيضاء APIs النواة الأساسية، وأنماط regex تضمن إعادة التسمية المتسقة دون أخطاء.
ثالثاً، تقسيم الوحدة يقسم ملف .ko المترجم إلى شرائح مشفرة بـ XOR بحجم 64KB باستخدام مفتاح عشوائي طوله 16 بايت. تُعاد تجميع هذه في الذاكرة عبر محمل مخصص و memfd_create، مما يتجنب الآثار على القرص للتحليل الثابت. يحدث التحميل من خلال استدعاءات نظام مباشرة مع تجميع داخلي، متجاوزاً غلافات libc المراقبة، مدعوماً لكل من أنظمة 64 بت و32 بت عبر int $0x80.
رابعاً، تُعاد تسمية وظائف مساعدة ftrace مثل “fh_install_hook” و“fh_remove_hook” إلى معرفات عشوائية، متجنبة القواعد التي تُحدد عدة حالات من هذا النوع.
يشمل Singularity أيضاً وظائف لإخفاء العمليات من نظام الملفات /proc، وإخفاء الملفات والدلائل التي تطابق “singularity” أو “matheuz,” وإخفاء اتصالات TCP على المنفذ 8081، وتمكين تصعيد الامتيازات عبر إشارات مخصصة أو متغيرات بيئة. يحتوي على باب خلفي قائم على ICMP لـ shells عكسية يُفعلها تسلسلات حزم محددة، مع إجراءات مضادة للتحليل تعيق التتبع وتنظف السجلات.
للتهرب السلوكي، ينشر سكريبت bash متدرج إلى /singularity، يُنفذ بخطوط أوامر نظيفة لتجنب كشف shells عكسية. يستخدم السكريبت kill -59 لإخفاء PID والتصعيد، مترجم المحملات في /tmp بدلاً من الدلائل المراقبة. في الاختبارات، تم تحميل Singularity دون تنبيهات، أخفى العمليات، وأقام shells root.
تكشف هذه البحوث عن ضعف في الكشف القائم على التوقيعات والسلوكي لتهديدات النواة، مشددة على الحاجة إلى التحديثات المستمرة، ومراقبة سلامة النواة، وفحص الذاكرة، واستراتيجيات الدفاع في العمق التي تجمع نهجاً متعددة.