概要

تم فتح تحميل Cradles في 11.15، وقام فريق داموكليس بإجراء تحليل أمني متعمق للعبة في 11.16. من خلال التحليل، تم اكتشاف أن اللعبة تحتوي على كمية كبيرة من معلومات التصحيح غير المحذوفة، ومن خلال سجلات التصحيح، نستنتج أن فريق تطوير اللعبة هو فريق صيني. خلال عملية الاختبار، تم اكتشاف أن اللعبة لم يتم إجراء أي حماية أمنية عليها، كما أن جزء من بروتوكول الاتصالات في اللعبة يستخدم محركًا مفتوح المصدر، وبعض المنطق المستخدم في الحكم غير صارم للغاية، لذلك لا يُنصح للمستخدمين بتجربة اللعبة.

درجة الأمان

خلفية اللعبة

Ø  النسخة التي يتم تقييم اللعبة عليها: 20231115

Ø  نوع اللعبة&محرك اللعبة: MMORPG، Unity2021.3.x

Ø  مشكلات محتملة في طريقة اللعب:

  • حركة غير قانونية (عبر RPC إرسال حزم خبيثة لتحقيق القفز/الانتقال الفوري (瞬移)، والتسريع (加速) وغيرها)

  • التسريع (وقت العالم الكبير داخل اللعبة، ودوال الوقت في إطار UE)

  • تصويب تلقائي/قفل تلقائي

  • لا يُقهر

  • لياقة غير محدودة

  • تسريع التعدين

تحليل أمان اللعبة

حماية كود اللعبة

1.    نظرًا لأن كل محرك له أنماط تحليل مختلفة، فبعد الحصول على ملف EXE الخاص باللعبة، يلزم أولًا تحديد المحرك الذي تستخدمه اللعبة. ومن خلال التعرف على معلومات اللعبة الأساسية، يمكننا تحديد أن اللعبة مطورة باستخدام Unity21.3.x.

2.    من خلال تصفح الملفات التي تُطلقها اللعبة، يمكن تحديد أن اللعبة تستخدم آلية Mono، وليست نمط التطوير iL2Cpp. الألعاب التي تُطوَّر بهذه الطريقة تكون أمانها العام أسوأ، والتحليل يكون أسهل.

بالإضافة إلى ذلك، فإن إطار البروتوكول الذي تستخدمه هذه اللعبة هو KBEngine.

لذلك يمكن الحصول على كود KBEngine ومصادر/معلومات عامة أخرى عبر GitHub وغيرها من مكتبات مفتوحة المصدر، مما يسرّع بعد ذلك من عملية تحليل اللعبة.

نتيجة التحليل:

       Cradles في مجال حماية كود الألعاب يحصل على 0 نقطة، ولا توجد حماية على الإطلاق. في الألعاب التقليدية، غالبًا ما يتم استخدام تشفير مخصص، ووضع أغلفة (加壳) لحماية المصدر، كما أن الألعاب التقليدية نادرًا ما تعتمد نمط mono للترجمة. وبما أن Cradles لا يوفر حماية سليمة لأساسيات كود اللعبة ويتبنى تقنيات ترجمة قديمة، فقد أصبح عتبة وتكلفة تحليل الكود من قِبل اللاعبين الخبثاء منخفضة جدًا. وإذا ظهرت أدوات اختراق/تشغيل غير مصرح (外挂)، فسيكون ذلك غير عادل للغاية للاعبين العاديين. وفي المناطق التي يمكن فيها للاعبين القتال بحريةً، يصبح اللاعبون الذين يفسدون اللعبة أسهل في هزيمة الخصم.

الحد الأساسي لمكافحة الغش في اللعبة:

1.      في جانب الاختبارات الخاصة بالحد الأدنى من مكافحة الغش، نعتمد بشكل أساسي على محورين: الأول هو ما إذا كانت اللعبة تحتوي على مكافحة التصدي للتصحيح (anti-debugging)، والثاني هو ما إذا كانت تحتوي على حماية من عمليات القراءة/الكتابة (read/write protection).

2.      عند تشغيل اللعبة، استخدمنا CE لإرفاق عملية (attach) بها، ووضعنا نقاط توقف (breakpoints) على الدوال العامة، فتبين أن اللعبة لم تغلق، أو لم تعرض أي تنبيه

3.      عبر CE قمنا بتعديل قيمة stamina ونقاط HP داخل اللعبة، فوجدنا أنه يمكن أن ينجح، ولم تقم اللعبة بإظهار نافذة منبثقة أو تقديم تنبيه. (تعديل stamina يحقق لياقة/بل (蓝量) غير محدودين، وقفل HP يمكن أن يكون فعّالاً خلال 10 ثوانٍ).

نتيجة التحليل:

1.      تحصل Cradles على 0 نقطة في قدرات مكافحة الغش؛ وإذا كان هناك مستخدمون خبيثون، فيمكنهم الغش بشكل تعسفي.

2.      سبب الاقتصار على اختبار الجانبين المتعلقين بمكافحة التصدي للتصحيح (anti-debugging) والحماية من القراءة/الكتابة هو أن أي أداة غش (外挂) تحتاج إلى العثور على البيانات وتنفيذ الوظائف فقط عبر التصحيح (debugging) وعمليات القراءة/الكتابة. إذا كانت أبسط قدرات الحماية الأساسية مفقودة، فإن اختبارات كشف الحقن (inject)، وعمليات hook وغيرها ستكون بلا معنى.

مشكلات منطق اللعبة

بالنسبة لألعاب MMORPG المترجمة بنمط mono، فإن تعديل البيانات مباشرةً يكون من حيث المردود منخفضًا من حيث المبدأ. لكننا وجدنا في اختباراتنا أنه بالنسبة لبعض البيانات مثل نقاط الدم (血量) واللياقة/القدرة (体力)، فإن التعديل يمكن أن ينجح فعلاً. بعد تعديل نقاط الدم، تكون فعّالة خلال 9 ثوانٍ؛ وإذا تجاوز الوقت فلن تتمكن من مهاجمة الوحوش. ونفترض أن هذه النقطة بسبب وجود حد زمني للضرر على الخادم. أما تعديل اللياقة/القدرة فيمكن أن يبقى فعّالاً لفترة طويلة. ونفترض أن الخادم لا يقوم بأي تحقق/تقييم. والسبب هو: عندما تُستنفد لياقة الشخصية على الجهاز المحلي، يمكن استعادة اللياقة عبر إيقاف الحركة مؤقتًا. إذا كان بالإمكان استعادتها محليًا، فهذا يعني بالنسبة للعبة أنه يمكن تجنب خطوة التحقق من الخادم.

منطق تحديث اللياقة البدنية/القدرة (体力):

منطق تحديث نقاط الدم/الصحة (血量):

كما أنه في فئة Avatar توجد العديد من السمات المتعلقة بالشخصية، ويُفترض أن توجد داخل هذه السمات نقاط أخرى قابلة للتعامل/التحكم فيها. وبالإضافة إلى ذلك، توجد في فئة Avatar العديد من السمات المتعلقة بالشخصية، ويُفترض أن توجد داخل هذه السمات نقاط أخرى قابلة للتعامل/التحكم فيها.

نتيجة التحليل:

1.      مشكلة أمان منطق اللعبة العامة لدى Cradles خطيرة للغاية، خصوصًا لأن هذه اللعبة تتضمن وضع PVP إجباري. عتبة تطوير أدوات الغش منخفضة، والعائد مرتفع. وبعد تطوير أداة غش مكتملة، يمكن تحقيق قمع/قتل طرف واحد للطرف الآخر بالكامل.

2.      يَفتقر إلى وجود إدراك لبيانات اللعبة، وإلى كشف نقاط أخرى داخل اللعبة يمكن استغلالها بسهولة. كما أن استخدام محرك مفتوح المصدر يعني أن بروتوكوله يكون في حالة انكشاف كاملة. وبالنسبة للألعاب التي تتضمن تعدينًا للعملات (挖矿)، فإن مخاطر هذا السلوك تكون عالية جدًا.

تحليل بروتوكول اللعبة

تستخدم Cradles محرك KBEngine كأساس للبروتوكول، وتوجد على الإنترنت مواد جاهزة يمكن الرجوع إليها بخصوص هذا المحرك.

مراجع:

1、 نظرة عامة على تقنية KBEngine: https://imgamer.gitbooks.io/kbengine-overview/content/content/6_3ServerComponents.html

2، KBEngine MMORPG Demo https://github.com/kbengine/kbengine_ue4_demo

3、 إضافات KBEngine الخاصة بـ unity3d https://github.com/kbengine/kbengine_unity3d_plugins/tree/master

تحليل أمن WEB3:

نظرًا لأن رموز Cradles لم يتم طرحها على الشبكة بعد، فإن تحليل جانب WEB3 يُؤجَّل مؤقتًا. وبالإضافة إلى ذلك، وبسبب أن بروتوكولات التعدين مكشوفة بالكامل، فإن عدد ما يقوم به المستخدمون بالتعدين بالنسبة للعبة مجرد أرقام مخزنة مؤقتًا فقط. وبما أن هذا السلوك شديد المركزية، فلن نتوسع في هذا الجزء من التحليل

بخصوص Damocles

Damocles labs هي فريق أمني تأسس في عام 2023، يركز على أمن قطاع Web3. تشمل مجالات العمل: تدقيق كود GameFi، واستخراج ثغرات/تنقيب عن عيوب في GameFi، وتحليل أدوات الغش في GameFi، ومكافحة الغش في GameFi، وتدقيق كود العقود الذكية (solidity/contracts)، وتدقيق كود الأعمال (business code)، واختبارات الاختراق (penetration testing) وغيرها.

سنواصل تعزيز جهودنا في صناعة أمن Web3، وسنبذل قصارى جهدنا لإصدار أكبر عدد ممكن من تقارير التحليل، بهدف رفع وعي جهة المشروع والمستخدمين بأمن GameFi، ودفع تطور الصناعة في مجال الأمان.
Twitter: https://twitter.com/DamoclesLabs
Discord: https://discord.gg/xd6H6eqFHz