Rilide، والمعروف أيضًا باسم LumaC2 و CookieGenesis، هو برنامج ضار متطور يستهدف المتصفحات المستندة إلى Chromium لاختطاف نشاط المستخدم وسرقة البيانات الحساسة. تم اكتشاف Rilide في عام 2023، وهو يعمل من خلال الاستفادة من ملحقات المتصفح لتنفيذ هجماته. يسيء Rilide استخدام عنصر ملحق المتصفح الخاص به لحقن نصوص برمجية خبيثة في صفحات الويب. بالإضافة إلى قدراته على نقل غير مصرح للبيانات، يتميز أيضاً بميزة القدرات المتقدمة لسرقة العملات الرقمية، مع تلاعب بالتحقق بخطوتين (2FA) للمحافظ وعملاء البريد الشهيرة.
منذ بداية عام 2025، شهد مختبر أبحاث Trusteer أكثر من 50000 جلسة مستخدم مصابة، مما يشير إلى حجم نشاط التهديد. لدى Rilide حملة مستمرة في جميع أنحاء العالم اكتشفها مختبر Trusteer تهاجم أمريكا الشمالية وأمريكا الجنوبية وأوروبا واليابان.
سنستكشف في هذا المنشور كيفية عمل Rilide داخل المتصفح من خلال ملحقه وندرس التقنيات التي يستخدمها لتنفيذ هجماته، لا سيما تأثيره على المنصات المالية.
تسلط قدرات Rilide الضوء على التحول في مشهد التهديدات من عمليات حقن الويب التقليدية باستخدام رمز JavaScript واحد داخل الصفحة إلى ملحقات المتصفح. تسهل ملحقات المتصفح العديد من الوظائف التي يكون من الصعب تحقيقها بدونها. التحليل التالي يوضح مدى قوة الملحق ولماذا تميل البرمجيات الخبيثة الحديثة إلى استخدامها.
في الماضي، كانت معظم هجمات "الرجل في المتصفح" تنفذ عن طريق مسح ذاكرة المتصفح من البرمجيات الخبيثة لتحديد أنماط HTML محددة وحقن وسم <script> مباشرة في محتوى الذاكرة للصفحة. وعلى الرغم من النوايا الخبيثة، إلا أن هذه النصوص البرمجية لا تزال خاضعة لآليات أمان المتصفح، مثل العمل داخل بيئة آلية تحديد الوصول، والالتزام بسياسة الأصل نفسه، والارتباط بدورة حياة الصفحة التي جرى إدخالها فيها.
على سبيل المثال، لم يكن بإمكان البرامج النصية التي يتم حقنها الوصول إلى ملفات تعريف الارتباط أو الموارد من مصادر أخرى، ولا يمكنها الاستمرار أو التنفيذ بعد إغلاق الصفحة.
وفي المقابل، تغلبت الهجمات الحديثة التي تستخدم ملحقات المتصفح الضارة على معظم هذه القيود. تعمل الملحقات بشكل مستقل عن أي صفحة ويب محددة، مما يسمح لها بالعمل باستمرار في الخلفية. كما أن لديها صلاحيات مرتفعة، مما يمكّنها من تجاوز قيود المصدر نفسه، والوصول إلى موارد على مستوى المتصفح مثل ملفات تعريف الارتباط أو التخزين، والبقاء نشطة حتى عندما لا تكون هناك صفحات مفتوحة. وقد جعل هذا التحول ملحقات المتصفح أداة قوية للمهاجمين، مما يوفر مستوى من المثابرة والتحكم يتجاوز طرق الحقن التقليدية على الويب.
كما أدخلت الملحقات تغييراً في سياق تنفيذ JavaScript، والذي له فوائد خبيثة خاصة به. تم تشغيل عمليات حقن الويب التقليدية في نفس سياق رمز تطبيق الويب، بما في ذلك أدوات الأمان. يمكن أن يؤدي ترك أي دليل (مثل عناصر البرنامج النصي وطلبات الشبكة ومتغيرات js وما إلى ذلك) إلى جعل البرنامج الضار قابلاً للاكتشاف.
الآن، هناك بيئتا JavaScript مختلفتان بالإضافة إلى سياق الصفحة:
تحدث جميع الاتصالات بين هذه السياقات من خلال واجهات متصفح محددة وغير مرئية للصفحة أو لمطوريها. معظم سلوك التوسعة والأدلة معزولة عن طريق التصميم، وتصعب كشفها خاصةً إذا لم يكن هناك تغيير في المستند الرئيسي.
إلى جانب تقديم تجنب محسّن، يعد تطوير ملحقات المتصفح أمرًا سهلاً للغاية، بفضل الوظائف والأذونات المضمنة الشاملة التي توفرها واجهات برمجة التطبيقات الحديثة للمتصفح. يوضح التحليل التالي كيف تسهل الملحقات تطوير الهجمات المعقدة.
ونظراً لزيادة التحكم والمثابرة والقدرات على التهرب وسهولة التطوير التي توفرها الملحقات، فإن التحول من تقنيات "الرجل في المتصفح" التقليدية إلى الهجمات القائمة على الملحقات ليس مفهوماً فحسب، بل إنه أمر لا مفر منه، في تطور التهديدات القائمة على المتصفح.
سنبدأ تحليلنا لبرنامج Rilide بملف البيان — وهو مكون حيوي يوضح وظائف الملحق ومستويات الوصول، مقدماً أولى الأدلة لفهم قدرات Rilide الخبيثة.
يقدم أحد المتغيرات التي تم تحليلها نفسه على أنه ملحق لـ Google Drive:
وفي وقت لاحق، هناك قائمة بالأذونات المطلوبة. تحتوي القائمة على العديد من وظائف المتصفح الحساسة، بما في ذلك، على سبيل المثال لا الحصر:
ضمن "Host_permission"، يُسمح للملحق بالوصول والتفاعل مع <all_ urls>، وهو ما يعني أي مخطط ونطاق ومسار ومنفذ يدعمه المتصفح.
يتم أيضًا تعيين "النصوص البرمجية للمحتوى" للتشغيل على جميع عناوين URL في Document_start، مما يعني أنها تُنفذ بمجرد أن يبدأ المتصفح في تحميل الصفحة، قبل أن يُعرض أي محتوى بالكامل.
يتضمن البرنامج النصي main.js قدرات سرقة المعلومات العامة، بينما يستهدف النص البرمجي gmail.js صفحة عميل بريد Gmail. ومع ذلك، يتم حقن جميع النصوص البرمجية في كل صفحة.
ضمن "Discative_net_request"، يقوم الملحق بتكوين القواعد لإزالة عدة عناوين سياسة أمن المحتوى (CSP). يسمح هذا لـ Rilide بتجاوز القيود الأمنية وضخ محتوى مضمّن.
ضمن "background"، يتم تكوين عامل الخدمة الخاص بالملحق. هذا هو المكان الذي يراقب فيه البرنامج الضار أحداث المتصفح وتنشئ اتصالاً مع خادم C2. بعد ذلك، سنتعمق في تحليل البرامج النصية الخلفية لفهم أفضل لكيفية استماع البرنامج الضار لأحداث المتصفح وتنفيذ استراتيجيته.
يحتوي Background.js على رمز التهيئة الذي تم تكوينه للتنفيذ عند حدث تثبيت الملحق. يقوم بجلب معلومات الجهاز، مثل تفاصيل وحدة المعالجة المركزية والتخزين، باستخدام استدعاءات chrome.system وبيانات الملحقات المثبتة باستخدام chrome.mangement. يتم إنشاء معرف فريد باستخدام وحدة npm uuid (المستوردة عبر jspm) وحفظها في التخزين. وأخيرًا، يتم جلب جميع ملفات تعريف الارتباط باستخدام Chrome.cookies.getAll مع معلمة مرشح فارغة.
يتم إرسال هذه البيانات إلى خادم C2، ويمكن للرد تمكين قدرات الوكيل الخاص بالملحق. يتم أيضًا جلب عمليات الحقن والأوامر وإعدادات البرنامج الضار أثناء تهيئة الملحق.
يتمثل الجزء الأخير من التهيئة في تمكين قواعد إزالة CSP، وبعد ذلك يكون البرنامج الضار جاهزًا لإعداد ومراقبة أحداث المتصفح. مرة أخرى، يمكننا أن نرى بوضوح فوائد استخدام ملحق متصفح مقارنة بتقنيات حقن الويب التقليدية، مما يجعل جمع كل هذه المعلومات سهلاً.
كانت الإصدارات السابقة من Rilide تحتوي على مجالات C2 مشفرة بشكل ثابت مباشرةً في ملفات JavaScript. استخرجت المتغيرات الأخرى المجالات عن طريق استرداد تفاصيل المعاملات من محفظة بيتكوين محددة.
يتضمن المتغير الجديد الذي تم تحليله هنا رمزًا مصممًا لجلب المجالات من روبوت Telegram. تم تعيين الاستدعاءات الدورية لجلب المجالات كل دقيقة باستخدام إنذارات Google Chrome.
يمكّن هذا الأسلوب البرنامج الضار من تبديل المجالات بسهولة إذا تم اكتشاف أحدها وحظره.
على الرغم من أن هذا البديل لا يحتوي على رموز مميزة، فمن المحتمل أن تظهر هذه الطريقة في الإصدارات المستقبلية.
يرسل البرنامج النصي للمحتوى جميع قيم عناصر وقت التشغيل في الصفحة باستخدام chrome.runtime.sendMessage مع نوع رسالة "new-grabber-info".
أداة السجيل التالية معينة في background.js لتمرير البيانات إلى خادم C2.
بالإضافة إلى ذلك، الخلفية في انتظار رسائل "set-screenshot-result".
تعمل هذه الرسائل على تشغيل التقاط لقطة شاشة باستخدام chrome.tabs.captureVisibleTab وإعادة إرسال البيانات إلى C2.
من خلال استخدام هذه الطرق، يمكن سرقة مجموعة من البيانات الحساسة إذا قام المستخدم بتسجيل الدخول إلى موقع مصرفي. ويتضمن ذلك أسماء المستخدمين وكلمات المرور وأرقام الحسابات ورموز PIN وتفاصيل بطاقة الائتمان وإجابات سؤال الأمان ومعلومات مستلم التحويل.
في الجزء الأخير من النصوص البرمجية في الخلفية، يتم تعيين الاستدعاءات الدورية لجلب الأوامر وعمليات فحص لوكيل باستخدام "Chrome.alarms". يقوم أمر التنبيه بجلب قائمة من الأوامر من C2 ويقوم بتنفيذها واحدًا تلو الآخر.
يتحقق إنذار فحص الوكيل من حالة اتصال الوكيل ويبدأ اتصالًا جديدًا إذا لزم الأمر. بمجرد تعيين أدوات التسجيل، ينتهي التنفيذ المتزامن للبرنامج النصي في الخلفية.
يحتوي cmds.js على رمز يسهّل تلقي أمر (من قائمة محددة مسبقًا) مع معلمات من C2 وإرسال أي نتائج، إن وجدت.
تتضمن بعض الأوامر المثيرة للاهتمام ما يلي:
تتيح الأوامر الأخرى تغيير تكوين الملحق، وجلب معلومات الجهاز، وعنوان URL الحالي، وما إلى ذلك. تسمح هذه المجموعة من الأوامر بإجراء تغييرات ديناميكية في سير عمل البرنامج الضار وتنفيذه، مما يجعلها أكثر قدرة على جذب تفاعل المستخدم. معظم هذه الأوامر تستخدم وظائف الملحق المدمجة في Chrome، مما يجعل التطوير سهلاً على مؤلفي البرنامج الضار.
يبدأ النص البرمجي للمحتوى Main.js بمكتبة jQuery المهيأة داخل دالة مجهولة المصدر، ومضمنة بشكل مضمّن بالكامل دون الحاجة إلى عمليات استيراد خارجية. يتبع ذلك رمز برمجي مشوش ينفذ وظائف خبيثة.
تسمح بنية ملحقات Chromium للملحقات بفصل مسؤوليات الحقن وجعل الكشف أكثر صعوبة. يقوم عامل الخدمة بتنزيل عمليات الحقن وتخزينها أثناء خطوة التهيئة، بينما يقوم البرنامج النصي للمحتوى بقراءتها وتنفيذها. لم يتم إرسال أي طلبات ويب في سياق الصفحة، مما يساعد على عدم اكتشاف البرنامج الضار. يكرر main.js جميع الحقن التي يتم جلبها، وإذا كان عنوان URL الحالي يتطابق مع عنوان URL للحقن، فإنه يقوم بحقنه.
يستخدم Rilide طريقة ذكية لحقن النصوص البرمجية في DOM.
يقوم بإنشاء سمة مستند "onreset" مع الإدخال كمعالج للحدث. ثم يرسل على الفور حدث "reset" مخصص، والذي ينفذ الحقن، وأخيرًا يزيل السمة.
يتم تعيين هذه السمة في وقت محدد بين استدعاء "setAttribute" واستدعاء "removeAttribute"، مما يجعل من الصعب على أدوات الأمان كشف ذلك.
يؤدي استدعاء الوظيفة الأخير إلى إعداد أداة تسجيل سارق البيانات العام.
باستخدام محدد jQuery، يتم تحديد جميع عناصر الإدخال، ويتم تعيين أداة تسجيل حدث "change".
يحدث حدث "change" في كل مرة يتم فيها تغيير قيمة حقل الإدخال ويفقد التركيز (ينقر المستخدم على عنصر آخر). على سبيل المثال، عندما يسجل الضحية الدخول إلى حسابه البنكي، يتم جمع اسم المستخدم الخاص به عند النقر على حقل كلمة المرور، ويتم سرقة إدخال كلمة المرور عند إرسال المستخدم للنموذج. تُرسل البيانات إلى عامل الخدمة عبر chrome.runtime.sendMessage، والتي تقوم بإعادة توجيهها بعد ذلك إلى خوادم C2.
الهدف من هذا البرنامج النصي هو استبدال طلب المصادقة الثنائية للسحب بطلب تفويض جهاز جديد. ونتوقع أن يجعل هذا النهج العملاء غير مدركين لعمليات السحب غير المصرح بها، حيث من المرجح أن ينظروا إلى إذن الجهاز الجديد على أنه أقل إثارة للريبة من عمليات السحب.
يبدأ البرنامج النصي بتهيئة مضمّنة لمكتبة jQuery والتأكد من أن الموقع الحالي يحتوي على "mail.google" قبل البدء بالتنفيذ. يقوم الحقن بشكل دوري بفحص رسائل البريد الإلكتروني من محافظ العملات المشفرة الشائعة، وفي حالة اكتشافه، يستدعي وظيفة المحفظة المقابلة.
إن محددات jQuery بسيطة للغاية، حيث تستخدم "divs" التي تحتوي على أسماء المحفظة في النص.
سنعرض الحقن المخصص لمورّد معين، على الرغم من أن جميعهم يتصرفون بالمثل.
يبحث الرمز عن أي عناصر تحتوي على النص "Withdrawal Request" (طلب سحب أموال) ويستبدله بـ "Authorize New Device" (ترخيص جهاز جديد).
كما يبحث عن عناصر أخرى تحتوي على نص "withdrawal" ليحل محل محتوى معاينة البريد الإلكتروني.
قبل الحقن:
بعد الحقن:
يمكن العثور على نص البريد الإلكتروني نفسه بالطريقة التالية:
ببساطة، يعثر البرنامج النصي على جميع العناصر التي تحتوي على فئة CSS "ii" التي تحتوي على عنصر "div" تابع له مع نص "check address carefully". ويقوم أيضًا باستخراج رمز التفويض بناءً على عنصر ونمط نص رمز التفويض. هذه الطريقة في تحديد العناصر ليست مستقرة جدًا، حيث يمكن أن يؤدي إجراء تغييرات بسيطة على النمط أو النص أو البنية إلى تعطيلها.
وأخيرا، يتم استبدال محتوى HTML في البريد الإلكتروني بمحتوى مبرمج صلب.
المحتوى الأصلي:
المحتوى الجديد:
تسمح هذه الآلية لعنصر التهديد بسحب العملات الرقمية دون تنبيه المستخدم بشأن عمليات السحب.
ميزة أخرى بارزة يتم تنفيذها بسهولة عبر الملحقات هي قدرة الوكيل. يمكّن Rilide من تحويل متصفح الضحية إلى وكيل HTTP، وإعادة توجيه جميع الطلبات مع استخدام بيانات وبيانات اعتماد الضحية.
هذه القدرة خطيرة بشكل خاص بالنسبة إلى الاحتيال المالي، حيث يمكن للمهاجمين الوصول إلى البوابات المصرفية وحسابات التداول ومنصات الدفع دون الحاجة إلى إجراء عمليات تحقق إضافية للمصادقة. يمكنهم بدء المعاملات، تعديل إعدادات الحساب، أو سحب الأموال تحت ستار نشاط مستخدم شرعي، متجاوزين الإجراءات الأمنية التقليدية مثل تتبع عنوان IP. من خلال انتحال شخصية الضحية بشكل فعال، يمكن للمهاجمين استغلال آليات قائمة على الثقة لارتكاب الاحتيال بسلاسة.
كانت هذه الوظيفة سهلة التنفيذ بشكل ملحوظ حيث تم نسخها مباشرةً من CursedChrome، وهو مشروع تعليمي يوضح إثبات مفهوم هذا النوع من الهجمات.
يعمل الوكيل عن طريق استخدام عامل خدمة الملحقات لإعداد اتصال WebSock مع خادم C2 الخاص بالمهاجم. يسمح هذا الاتصال لعامل الخدمة بتلقي الأوامر التي يرسلها المهاجم. تفرض هذه الأوامر إجراءات الوكيل، مثل تقديم الطلبات أو التنقل بين مواقع الويب. يتم تقديم الطلبات باستخدام ملفات تعريف الارتباط التي تم جمعها للضحية، ويتم إرسال الردود مرة أخرى إلى C2.
مثال على رمز CursedChrome:
مثال على رمز Rilide:
إلى جانب بعض اختلافات التسمية وموقع تعريف الوظيفة، فإن الرمز البرمجي هو نفسه. حتى أن هذا المشروع يأتي مع رمز واجهة خلفية وواجهة مستخدم للإدارة، مما يسهّل الأمر على المهاجمين.
يجسد Rilide كيف غيرت ملحقات المتصفحات مشهد التهديدات لهجمات "الرجل داخل المتصفح". من خلال الاستفادة من القدرات الكامنة للملحقات، يحصل المهاجمون على سيطرة غير مسبوقة على المتصفح، مما يتيح استغلالاً متطوراً ومستمراً يتجاوز بكثير حدود عمليات حقن الويب التقليدية داخل الصفحات. يسلط هذا التحول الضوء على الحاجة المتزايدة إلى اليقظة والدفاعات القوية، حيث أن بساطة وقوة الهجمات القائمة على الملحقات تجعلها وسيلة جذابة لمجرمي الإنترنت.
ولحماية أنفسهم، يجب على المستخدمين مراجعة ملحقات المتصفح المثبتة بانتظام، وإزالة أي ملحقات غير مألوفة أو مشبوهة على الفور.
بالإضافة إلى ذلك، من الضروري مراقبة حسابات البريد الإلكتروني بحثاً عن أي نشاط غير اعتيادي، مثل محاولات تسجيل الدخول غير المتوقعة، ومراقبة محافظ العملات الرقمية عن كثب بحثاً عن أي معاملات غير مصرح بها أو إجراءات غير معروفة. يمكن أن تساعد الجاهزية الاستباقية والحذر على التخفيف من المخاطر التي يشكلها نموذج الهجوم المتطور هذا.
يساعدك IBM Trusteer على كشف الاحتيال والبرامج الضارة، ومصادقة المستخدمين، وإثبات ثقة الهوية عبر رحلة العميل متعددة القنوات. تعتمد أكثر من 500 مؤسسة رائدة على Trusteer لدعم رحلات عملائها الرقمية ودعم نمو الأعمال.
historytab.js | 2b72cc2c0c53321a472471c5189fdb56 |
notif.js | 8679a34885a02e94189c8fec5132245a |
config.js | 408d8fa7eade661e9a02b6065b792fca |
ico.png | 40de419c81de274c26c63e0f23d91a3f |
scrrule.js | 9db73e9a3a24070de075da13fdea01ab |
exts.js | 868eb23af363b5790d16103d2dd94178 |
rules.json | 6c1f6ab3492a615404a70161303de746 |
manifest.json | FD7d90a5e31cd19bbc65095d722c1525 |
utils.js | bd14616118af50f6e0b886bd90144845 |
content-scripts-register-polyfill.4.0.0.js | 5bf61a91e003afb1e169e3e3be336cac |
app.html | 08785f3794a7ae9aab6b3fa669646794 |
background.js | 1de94fff2cb80f44d82d69f816139974 |
main.js | 6c19e1bf9a7eac2c9b44f5e5c0b76d39 |
gmail.js | 49c851c025506d0a570d75bc00c7605a |
csp.js | 15606d8d8d6ca797c2c98c20114619b4 |
exchangeSettings.js | 2dcf7f099c08f9d074994a0a4f996720 |
screen.js | 7d0defc1a08d5a58d95f5ca38509c8ef |
domain.js | bb0bc698eb64447a3ab581517273487b |
inj.js | 3d67fa8a26390e8819d6bd36a2c5959f |
set.js | 8049e7bd36a88f7a393b7ff0746a04db |
proxing.js | b4b2510d7ec41711ef29ddddd4cab09a |
cmds.js | 0ebb9b78c38ae45884b85632fe087e49 |
machine.js | c43644bed7d94e3ec880af3195e4c906 |
extFiles.zip | 3113c21eee9704b14437edb5c6f29634 |
المجال:
Statbrwsr.digital