فريتزفروج - الجيل القادم من الروبوتات

ملخص



  • اكتشفت Guardicore الروبوتات المعقدة من نظير إلى نظير (P2P) FritzFrog ، والتي تعمل بنشاط على اختراق خوادم SSH منذ يناير 2020.
  • البرامج الضارة على Golang : يقوم FritzFrog بتشغيل تعليمات برمجية ضارة معيارية ومتعددة الخيوط وبدون ملفات على Golang والتي لا تترك أي أثر على القرص الصلب لجهاز مصاب.
  • الاستهداف النشط للموارد الحكومية والتعليمية والمالية وغيرها : حاول FritzFrog استخدام القوة الغاشمة وتوزيعها على عشرات الملايين من عناوين IP للمكاتب الحكومية والمؤسسات التعليمية والمراكز الطبية والبنوك والعديد من شركات الاتصالات. من بينها ، تمت مهاجمة أكثر من 500 خادم بنجاح ، بما في ذلك جامعات مشهورة في الولايات المتحدة وأوروبا ، وشركة سكك حديدية واحدة.
  • التعقيد : FritzFrog مملوك بالكامل ، تطبيق P2P مكتوب من الصفر ، مما يشير إلى مستوى عالٍ من الاحتراف لمنشئيها في مجال تطوير البرمجيات.
  • الاعتراض : طورت Guardcore Labs برنامج عميل Golang قادرًا على اعتراض اتصالات P2P الخاصة بـ FritzFrog والاتصال بالشبكة مثل النظير.
  • الانتماء : لم نتمكن من تحديد المجموعة المحددة المسؤولة عن إنشاء FritzFrog ، لكن الروبوتات الحالية تشبه جزئيًا شبكة Rakos الروبوتية المعروفة سابقًا.


المقدمة



FritzFrog عبارة عن روبوت متطور للغاية من نوع نظير إلى نظير ، والذي يقتحم بنشاط خوادم SSH حول العالم. بفضل هيكله اللامركزي ، فإنه يوزع التحكم عبر جميع عقده. لا تحتوي هذه الشبكة على نقطة فشل واحدة ، ويتواصل الأقران باستمرار مع بعضهم البعض للحفاظ على استقرارها وتحديثها ونشاطها باستمرار. يتم إجراء اتصالات P2P عبر قناة مشفرة باستخدام AES للتشفير المتماثل و Diffie-Hellman لتبادل المفاتيح.



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



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



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



أتاحت Guardicore Labs مستودع Github مع برنامج نصي لاكتشاف هذه البرامج الضارة وقائمة بمؤشرات الاختراق (IoC) لنشاطها.





التوزيع الجغرافي للمضيفين المصابين. كانت الدول الأكثر ضعفاً هي الولايات المتحدة والصين وكوريا الجنوبية.



أبحاث فريتزفروج



نظرت Guardcore Labs لأول مرة في FritzFrog في دراسة موسوعة Botnet . في 9 يناير ، تم تنفيذ هجمات جديدة مع عمليات خبيثة ifconfigو nginx. بدأنا في تتبع زيادة مطردة وكبيرة في النشاط الضار ، والتي سرعان ما وصلت إلى 13000 هجوم على شبكة Guardcore Global Sensors Network (GGSN). قمنا بتتبع 20 نسخة مختلفة من ثنائيات FritzFrog على مر السنين.





يوضح الرسم البياني عدد هجمات FritzFrog على GGSN.



والمثير للدهشة أن الشفرة الخبيثة لا يبدو أنها تتواصل مع أي خادم أوامر وتحكم (CNC) للوهلة الأولى. فقط عندما بدأنا في التحقيق بجدية في الروبوتات ، أدركنا أنه لا يوجد خادم على الإطلاق.



لاعتراض شبكة الروبوتات ، طورت Guardcore Labs عميلاً على Golang يمكنه تبادل المفاتيح مع البرامج الضارة ، فضلاً عن إرسال الأوامر وتلقي الردود. سمح لنا هذا البرنامج ، الذي أطلقنا عليه اسم "frogger" ، بالتحقيق في طبيعة الشبكة والغرض منها ، وبفضل Frogger ، "أضفنا" العقد الخاصة بنا إلى الشبكة ، وتمكننا من الاتصال بشبكة الروبوتات ، وشاركنا في نقل بيانات حركة مرور P2P النشطة.



قام FritzFrog بإجبار الملايين من عناوين IP ، بما في ذلك المكاتب الحكومية والمؤسسات التعليمية والمراكز الطبية والبنوك والعديد من شركات الاتصالات. من بين هؤلاء ، تمت مهاجمة أكثر من 500 خادم بنجاح ، بما في ذلك جامعات مشهورة في الولايات المتحدة وأوروبا ، وشركة واحدة للسكك الحديدية.



الجيل القادم P2P



لماذا الجيل الجديد؟



FritzFrog , :



  • : FritzFrog , (BLOB).
  • : .
  • : . , P2P DDG «root».
  • : .
  • : P2P - P2P , μTP.


بمجرد اختراق الضحية بنجاح ، يتم تشغيل رمز خبيث معبأ بـ UPX ، والذي يقوم بعد ذلك بحذف نفسه على الفور. لتقليل الشك ، يتم تنفيذ العمليات الضارة تحت اسمي ifconfig و nginx. في بداية عملها ، تستمع الشفرة الضارة إلى المنفذ 1234 ، في انتظار الأوامر. تم تلقي الأوامر الأولى لمزامنة الضحية مع قاعدة بيانات أقران الشبكة وأهداف القوة الغاشمة.





الكتلة المضيفة FritzFrog. كل عقدة عبارة عن خادم SSH مصاب. يوضح حجم العقد اتصالها ببقية الشبكة.



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





يقوم FritzFrog بنقل أوامر P2P الخاصة به عبر منفذ SSH الكلاسيكي باستخدام عميل netcat المحلي للجهاز المصاب.



نشر مهاجمو FritzFrog قناة قيادة مشفرة تحتوي على أكثر من 30 أمرًا مختلفًا. يتم تمرير معلمات الأوامر والاستجابات في هياكل بيانات محددة ويتم إصدارها ("معبأة") بتنسيق JSON. يتم تشفير البيانات باستخدام تشفير AES المتماثل وتشفيرها في Base64 قبل إرسالها. تستخدم العقد المشاركة في نقل البيانات بروتوكول Diffie-Hellman لتبادل المفاتيح.







تحافظ العقد الموجودة في شبكة FritzFrog على اتصال وثيق ، وتتواصل مع بعضها البعض باستمرار للتحقق من الاتصال وتبادل الأقران والهدف والمزامنة المتبادلة. تشارك العقد أيضًا في عملية انتخابية ذكية تؤثر على توزيع أهداف القوة الغاشمة عبر الشبكة. تؤكد الملاحظات من Guardcore Labs أن الأهداف موزعة بالتساوي عبر الشبكة ولن تحاول عقدتان اختراق نفس الهدف.



الغوص في التعليمات البرمجية الخبيثة



ثنائي FritzFrog هو رمز خبيث متقدم في Golang. إنه يعمل بشكل كامل في الذاكرة ، فكل عقدة بها شفرة خبيثة تخزن قاعدة البيانات الكاملة للأهداف والنظراء في الذاكرة. تنشئ الشفرة الخبيثة مؤشرات ترابط متعددة لمعالجة المهام المختلفة في وقت واحد ، كما هو موضح في الجدول أدناه.



يحدد FritzFrog حالات التحكم في الجهاز الضحية والهدف على النحو التالي:



  1. الهدف : سيتم بعد ذلك تمرير الجهاز من الطلب المستهدف إلى وحدة Cracker ، والتي بدورها ستحاول مسحها ضوئيًا وكسرها.
  2. النشر : يتم وضع جهاز تم اختراقه بنجاح في قائمة انتظار للإصابة بالبرامج الضارة عبر الوحدة النمطية DeployMgmt.
  3. Owned (): P2P Owned.






كل عقدة بها شفرة ضارة لها مؤشر ترابط عامل مسؤول عن تلقي الأوامر وتحليلها وتمريرها إلى الوظائف المناسبة في الكود.





وظيفة عمل في المفكك. يتوافق كل فرع مع وظيفة P2P المدعومة.



الشفرة الخبيثة مؤقتة بطبيعتها: على الرغم من أنها تحاول النجاة من إعادة تمهيد النظام ، للوصول المستقبلي إلى الهدف المخترق ، يتم حفظ باب خلفي ، يتم تخزين تسجيل الدخول وكلمة المرور الخاصة به بواسطة أقرانهم على الشبكة. تضيف الشفرة الخبيثة مفتاح SSH-RSA العام إلى الملف authorized_keys. يسمح هذا الباب الخلفي البسيط للمهاجم - بمفتاح خاص وخاص - بالمصادقة بدون كلمة مرور ، في حالة تغيير كلمة المرور الأصلية. يتم عرض المفتاح العمومي الوحيد الذي يستخدمه FritzFrog أدناه.



ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJYZIsncBTFc+iCRHXkeGfFA67j+kUVf7h/IL+sh0RXJn7yDN0vEXz7ig73hC//2/71sND+x+Wu0zytQhZxrCPzimSyC8FJCRtcqDATSjvWsIoI4j/AJyKk5k3fCzjPex3moc48TEYiSbAgXYVQ62uNhx7ylug50nTcUH1BNKDiknXjnZfueiqAO1vcgNLH4qfqIj7WWXu8YgFJ9qwYmwbMm+S7jYYgCtD107bpSR7/WoXSr1/SJLGX6Hg1sTet2USiNevGbfqNzciNxOp08hHQIYp2W9sMuo02pXj9nEoiximR4gSKrNoVesqNZMcVA0Kku01uOuOBAOReN7KJQBt


يقوم الملف الضار بتشغيل جميع أنواع أوامر shell على الجهاز المحلي ، عدة مرات ، لمراقبة حالة النظام. على سبيل المثال ، يتم تشغيله free –mللتحقق من ذاكرة الوصول العشوائي المتاحة uptime، journalctl –s @0 –u sshdلتتبع عمليات تسجيل دخول SSH ، والأوامر الأخرى لعرض إحصائيات تحميل وحدة المعالجة المركزية. تتوفر هذه الإحصائيات للعقد الأخرى على الشبكة ويتم استخدامها لاتخاذ قرارات مختلفة ، على سبيل المثال ، ما إذا كنت تريد تشغيل أداة التشفير على الجهاز أم لا. إذا تم اتخاذ قرار ، فإن الشفرة الخبيثة تبدأ عملية منفصلة libexecلتعدين Monero. يعتمد عامل التعدين هذا على عامل التعدين الشهير XMRig ويتواصل مع التجمع العام web.xmrpool.euعبر المنفذ 5555.



شبكة شبيهة بالتورنت



يعتمد FritzFrog على القدرة على مشاركة الملفات عبر الشبكة بأكملها ، لإصابة أجهزة جديدة وإطلاق عناصر ضارة مثل Monero cryptominer.



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



عندما تريد العقدة A تلقي ملف من نظيرتها ، العقدة B ، يمكنها إرسال طلب getblobstatsإلى العقدة B لمعرفة المصفوفات التي تمتلكها. بعد ذلك ، يمكن للعقدة A الحصول على مصفوفة معينة من خلال التجزئة الخاصة بها ، إما باستخدام أمر P2P getbinأو باستخدام HTTP في العنوان http://1234/. بمجرد استلام العقدة A لجميع المصفوفات ، فإنها تبني الملف من خلال وحدة التجميع وتقوم بتشغيله.





getblolbstats. , .





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



حتى عند مقارنتها بشبكات P2P الأخرى ، يظل FritzFrog فريدًا: فهو لا يستخدم IRC مثل IRCflu ، على عكس DDG ، فهو يعمل مباشرة في الذاكرة ، ويعمل على أجهزة Unix بدلاً من شبكة InterPlanetary Storm. إذا كان يبدو مثل أي شخص ، خاصة فيما يتعلق بتسمية الميزات وترقيم الإصدار ، فهو موجود على Rakos ، وهو روبوت P2P على Golang تم تحليله بواسطة ESET مرة أخرى في عام 2016.



تتبع النشاط والتخفيف منه



قدمت Guardcore Labs برنامج تتبع FritzFrog للتشغيل على خوادم SSH. يبحث عن مؤشرات الروبوتات التالية:



  • بدء العمليات nginx، ifconfigأو libexecملفه القابل للتنفيذ لم يعد موجودًا على النظام (كما ترى أدناه).
  • الاستماع إلى المنفذ 1234.


بالإضافة إلى ذلك ، يمكن أن تشير حركة مرور TCP على المنفذ 5555 إلى حركة مرور الشبكة إلى تجمع Monero.



ubuntu@ip-111-11-11-11:~$ ./detect_fritzfrog.sh
FritzFrog Detection Script by Guardicore Labs
=============================================
 
[*] Fileless process nginx is running on the server.
[*] Listening on port 1234
[*] There is evidence of FritzFrog's malicious activity on this machine.


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



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



All Articles