
إدارة أجهزة أندرويد بسلوكيات محددة مسبقًا لبيئات سايبر رينج.
RoboDroid
RoboDroid هي أداة برمجية متطورة مصممة لتبسيط عملية إدارة آلات Android (وقريباً جداً أيضاً نشرها) لاستخدامها في بيئات ميادين التدريب على الأمن السيبراني. باستخدام RoboDroid، يمكن للمستخدمين إعداد وتخصيص سلوكيات محددة مسبقاً لآلات Android الخاصة بهم، مما يسمح لهم بإنشاء سيناريوهات هجوم سيبراني معقدة واختبار دفاعاتهم ضد مجموعة واسعة من التهديدات.
أصبحت الأجهزة المحمولة منتشرة في كل مكان في عالم اليوم. يستخدم الأشخاص الهواتف الذكية لكل جانب تقريباً من حياتهم، بما في ذلك الخدمات المصرفية والتسوق والتواصل. ونتيجة لذلك، أصبحت الأجهزة المحمولة هدفاً رئيسياً للمجرمين السيبرانيين.
ومع ذلك، غالباً ما يتم إهمال أمن الأجهزة المحمولة في بيئات التدريب والاختبار على الأمن السيبراني. وهذا يمكن أن يجعل المؤسسات عرضة للهجمات التي تستغل نقاط ضعف الأجهزة المحمولة. لذلك، من المهم إدخال مكونات المحمول في ميادين التدريب السيبراني من الجيل التالي للتكيف مع العالم الحالي الذي أصبح أكثر اعتماداً على الهواتف الذكية.
تم تصميم RoboDroid للمساعدة في سد هذه الفجوة من خلال توفير مجموعة من الأدوات التي يمكنها محاكاة سلوك الهاتف الذكي الشبيه بسلوك البشر. يتم إنشاء السلوكيات المحددة مسبقاً باستخدام Frida وتتم إدارتها في مستودع مكتبة RoboDroid.
الهدف من RoboDroid هو توفير طريقة بسيطة لإدخال مكونات المحمول في بيئات ميادين التدريب السيبراني. هدفها الرئيسي هو تزويد المستخدمين بمنصة سهلة الاستخدام تسمح لهم بمحاكاة السلوكيات والأفعال الشبيهة بسلوك البشر على الأجهزة المحمولة.
يستفيد RoboDroid من تقنية Frida لتشغيل السلوكيات الخاصة بالتطبيقات، بينما يستخدم ADB لجميع العمليات الأخرى. هذا المزيج القوي يمكّن المستخدمين من إنشاء سير عمل من السلوكيات المحددة مسبقاً التي يمكنها محاكاة إجراءات مستخدم المحمول.
أحد الأمثلة على سير العمل الذي يمكن استخدامه في بيئة ميدان تدريب سيبراني يتضمن محاكاة مستخدم محمول يتلقى بريداً إلكترونياً تصيدياً، ثم ينقر على الرابط الموجود في البريد الإلكتروني، ثم يقوم بعد ذلك بتنزيل برنامج ضار.
الصورة التالية تلخص ذلك:

يمكن تقسيم سير العمل إلى الخطوات التالية:
من خلال إنشاء وتشغيل سير العمل مثل هذا، يمكن للمستخدمين محاكاة سيناريوهات هجوم سيبراني واقعية واختبار دفاعاتهم ضد مجموعة واسعة من التهديدات. وهذا يساعد على ضمان أن الأنظمة والشبكات محمية بشكل جيد ضد الثغرات المحتملة، وأن المستخدمين مستعدون للاستجابة بفعالية في حالة وقوع هجوم.

يتواصل RoboDroid مع عامل Frida المقدم من مكتبة RoboDroid عبر الرسائل، مما يوفر تفاعلاً فعالاً. عندما يبدأ RoboDroid سلوكاً معيناً، فإنه ينتظر رسالة من عامل Frida. يمكن أن تكون الرسالة من نوع FAILURE أو COMPLETED.
إذا كان نوع الرسالة FAILURE، يعيد RoboDroid تشغيل السلوك الحالي لضمان الإكمال الناجح. إذا كان نوع الرسالة COMPLETED، يتم وضع علامة على الخطوة الحالية كمكتملة، وينتقل RoboDroid إلى الخطوة التالية.
علاوة على ذلك، يمكن أن تحتوي الرسالة من نوع COMPLETED أيضاً على مخرجات يمكن استخدامها في الخطوات اللاحقة. وهذا يضمن أن الأداة يمكنها تحسين سلوكها لتحقيق محاكاة دقيقة للأفعال الشبيهة بسلوك البشر على الأجهزة المحمولة.
من خلال توفير عملية الاتصال القوية هذه، يضمن RoboDroid التكامل السلس لعامل Frida في مجموعة أدواته، ويسهل إنشاء سير عمل معقدة لمحاكاة الأجهزة المحمولة في بيئة ميدان تدريب سيبراني.
يمكنك تثبيته بسهولة عن طريق تشغيل:
pipx install robodroid
نقترح عليك استخدام pipx بدلاً من pip لأنه في إصدارات Python المستقبلية ستتم إزالة تثبيت الحزم باستخدام pip خارج البيئات الافتراضية.
RoboDroid لديه دعم مدمج لتنزيل السلوكيات تلقائياً (وقريباً تحديث تلقائي) من مستودع مكتبة RoboDroid. إذا كنت ترغب في إضافة سلوك Frida جديد، نقترح عليك التوجه إلى المستودع المحدد وتقديم طلب سحب (Pull Request).
robodroid --help
سيؤدي هذا إلى عرض المساعدة للأداة:
&&&&&&&&&&&
&&&& &&&&
&&& &&&
(&&&& &&&& &&&& &&&)&
&(&&&& &&&&)&
&&&& &&&&
&&&&&&&&&&&&&
&&& &&&&&&&&&&&&&&& &&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&&&&&&&&&
&&&& &&&&
&&&& &&&&
RoboDroid v0.0.3
Usage: robodroid [OPTIONS] COMMAND [ARGS]...
Manage and deploy Android machines with pre-defined behaviors for Cyber Range environments
╭─ Options ──────────────────────────────────────────────────────────────────────────────────╮
│ --help -h Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────╮
│ run Run RoboDroid. │
| update-library Update the RoboDroid Library to the latest version |
│ version Print the current version and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────╯
runيمكنك تشغيل robodroid في وضعين مختلفين:
default) &&&&&&&&&&&
&&&& &&&&
&&& &&&
(&&&& &&&& &&&& &&&)&
&(&&&& &&&&)&
&&&& &&&&
&&&&&&&&&&&&&
&&& &&&&&&&&&&&&&&& &&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&& &&&&&&&&&&&&&&& &&&&
&&&&&&&&&&&
&&&& &&&&
&&&& &&&&
RoboDroid v0.0.3
Usage: robodroid run [OPTIONS]
Run RoboDroid.
╭─ Options ───────────────────────────────────────────────────────────────────────────╮
│ --log-mode [silent|normal|debug] Set logging mode [default: normal] │
│ --mode -m [interactive|managed] Set run mode [default: interactive] │
│ --config -c TEXT Name of the managed config file to load │
│ --help -h Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────╯
في الوضع التفاعلي، هناك موجه يسمح للمستخدم بتحديد مضيف ADB والمنفذ والجهاز المراد استخدامه، بينما يستخدم الوضع المُدار ملف تهيئة يجب وضعه تحت $HOME/.RoboDroid/config بتنسيق yaml. الوضع المُدار هو الوضع المثالي للاستخدام عند إعداد مختبر/بيئة دون الحاجة إلى إدخال/تكوين من المستخدم.
يوفر الجدول التالي وصفاً للحقول المستخدمة في ملف التهيئة:
| المفتاح | مطلوب | الوصف |
|---|---|---|
| device | True | معلومات حول الجهاز المراد استخدامه |
| workflow | True | سير العمل المراد استخدامه (اسم الملف) |
قبل تشغيله فعلياً، تحتاج إلى توفير ملف سير عمل صالح واحد على الأقل يجب وضعه تحت $HOME/.RoboDroid/workflows بتنسيق yaml.
يحدد ملف التهيئة هذا جميع خطوات سير العمل التي سيتم تنفيذها، يمكنك إلقاء نظرة على مجلد examples للحصول على بعض التكوينات الصالحة. يوفر الجدول التالي وصفاً للحقول المستخدمة في ملف سير العمل:
| المفتاح | مطلوب | الوصف |
|---|---|---|
| id | True | معرف سير العمل |
في قسم init يمكنك تعيين APKs التي يجب تثبيتها والحزم التي يجب تنظيفها (التخزين وذاكرة التخزين المؤقت) قبل تشغيل سير العمل الفعلي. هيكل هذا القسم هو كما يلي:
| المفتاح | مطلوب | الوصف |
|---|---|---|
| install | True | قائمة مسارات APKs للتثبيت |
| clear | False | قائمة الحزم لتنظيف (التخزين وذاكرة التخزين المؤقت) |
في قسم behaviors يوجد سير العمل الفعلي. وهو قائمة من العناصر التي تسمى خطوات (steps) ويُقصد بها أن تُنفذ بالتسلسل. كل خطوة لها الهيكل التالي:
وأخيراً، كل مدخل له الهيكل التالي:
| المفتاح | مطلوب | الوصف |
|---|---|---|
| id | True | معرف المدخل |
| value | True | القيمة المراد تعيينها لهذا المدخل |
آخر شيء يجب قوله هو أنه يمكنك أيضاً استخدام مخرجات من الخطوات السابقة كمدخلات للخطوات التالية. للقيام بذلك، يمكنك تعيين قيمة المدخل باستخدام البادئة المحجوزة robodroid.outputs متبوعة بمعرف الخطوة ومعرف المخرج، على سبيل المثال:
...
- id: get-link
name: k9-mail-refresh-and-get-link
type: frida
- id: open-and-download
name: firefox-android-open-link-and-download
type: frida
inputs:
- id: link
value: robodroid.outputs.get-link.link
...
يمكن أيضاً تعيين خيارات CLI من خلال متغيرات البيئة (مفيدة بشكل خاص عند التشغيل داخل Docker)؛ يوفر الجدول التالي قائمة بمتغيرات البيئة المتاحة حالياً:
| المفتاح | الوصف |
|---|---|
| ROBODROID_LOG_MODE | مستوى التسجيل في RoboDroid [silent |
| ROBODROID_RUN_MODE | وضع التشغيل [interactive |
| ROBODROID_MANAGED_CONFIG_NAME | اسم التهيئة المُدارة لاستخدامها (أثناء التشغيل في وضع managed) |
TODO
لقد قمنا بعمل فيديو توضيحي قصير يظهر RoboDroid أثناء العمل مع قالب يقوم بما يلي:
يحاكي سير العمل هذا هجوماً تصيدياً شائعاً (وإن كان مبسطاً) يمكن استخدامه في ميدان تدريب سيبراني من الجيل التالي يشمل أجهزة Android المحمولة.
RoboDroid هي أداة حديثة العهد ولا تزال بحاجة إلى النمو! حالياً هذه هي الميزات التي نخطط لإضافتها قريباً جداً:
بالطبع نخطط لإضافة المزيد والمزيد من السلوكيات في مكتبة RoboDroid والمزيد والمزيد من أوامر adb في هذا المستودع. نحن أيضاً نشجع كل مستخدم على المساهمة في هذا المشروع وجعله أفضل!
تم التطوير بواسطة Angelo Delicato @SecSI
RoboDroid صدرت تحت رخصة GPL-3.0
| init | False | قسم التهيئة، يحتوي على إجراءات الإعداد الأولية |
| behaviors | True | قائمة السلوكيات المراد تنفيذها |
| المفتاح | مطلوب | الوصف |
|---|
| id | True | معرف الخطوة |
| name | True | اسم السلوك (في مكتبة RoboDroid أو في قائمة الأوامر) |
| type | True | نوع السلوك ("frida-behavior", "adb") |
| inputs | False | قائمة المدخلات |