
إنشاء مسارات الهجوم عبر مستويات الإدارة والبيانات

Cirro هي منصة بحث أمني قابلة للتوسيع تمكن الباحثين ومختبرين الاختراق من جمع وتحليل وتصور البيئات السحابية وعلاقات الهوية من خلال قواعد البيانات الرسومية. بُنيت Cirro بهندسة معيارية، ويمكن توسيعها لدعم منصات ومصادر بيانات متعددة.
يمكنك الاطلاع على الوثائق لمزيد من المعلومات.
لدى Cirro منطقتان وظيفيتان رئيسيتان:
cirro collect): يجمع المعلومات من منصات وواجهات برمجة تطبيقات مختلفةcirro graph): يدير عمليات قاعدة البيانات الرسومية بما في ذلك إدخال البيانات وتصديرهاتستخدم البنية المعيارية أعلام الميزات لتمكين الوظائف الخاصة بالمنصة، مما يسمح للمستخدمين ببناء المكونات التي يحتاجونها فقط.
يستخدم Cirro هيكل أوامر هرمي منظم حسب الوظيفة والمنصة:
cirro <function> <platform> <command> [options]
Azure (collect az)
# طرق المصادقة المتاحة:
cirro collect az azcli # مصادقة Azure CLI
cirro collect az client-secret # معرف العميل والسري
cirro collect az client-cert # شهادة العميل
cirro collect az access-token # رمز وصول مسبق الحصول عليه
cirro collect az user-pass # اسم المستخدم وكلمة المرور
Tailscale (collect ts)
# جمع بيانات Tailscale
cirro collect ts <auth-method> [options]
إدخال البيانات (graph ingest)
# إدخال البيانات المجمعة في قاعدة البيانات الرسومية
cirro graph ingest --type <platform> --file <data-file> [database options]
تصدير البيانات (graph export)
# تصدير بيانات الرسم البياني إلى تنسيقات مختلفة
cirro graph export --format <format> [options]
قم بتنزيل أحدث إصدار لمنصتك من صفحة الإصدارات. تم بناء الإصدارات مع تمكين جميع الميزات.
git clone https://github.com/bishopfox/cirro.git
cd cirro
cargo build --release
ملاحظة: البناء مع --release مهم لوظيفة الرسم البياني لأنه يضم ملفات تكوين YAML في الملف الثنائي!
سيكون الملف الثنائي متاحًا في target/release/cirro.
افتراضيًا، تتضمن Cirro جميع الوظائف المتاحة. للبناء مع ميزات محددة:
# البناء مع ميزات الجمع فقط
cargo build --release --no-default-features --features collector
# البناء مع ميزات الرسم البياني فقط
cargo build --release --no-default-features --features graph
# البناء مع دعم منصة محددة
cargo build --release --no-default-features --features "azure"
cargo build --release --no-default-features --features "tailscale"
تستخدم Cirro Neo4j كقاعدة بيانات خلفية. توجد ملفات docker-compose في دليل tools للمساعدة في قواعد البيانات المحتواة في حاويات.
بعد جمع البيانات، قم بإدخالها في قاعدة بيانات الرسم البياني الخاصة بك:
# إدخال بيانات للمنصات المحددة
cirro graph ingest --type az --file cirro_output.db # بيانات Azure
cirro graph ingest --type ts --file cirro_ts_socket.json # بيانات Tailscale
# تحديد اتصال قاعدة بيانات مخصص
cirro graph ingest --type az --file cirro_output.db \
--server bolt://localhost:7687 \
--user neo4j \
--password password
معاينة ما سيتم إدخاله ومعالجته لاحقًا دون كتابة أي بيانات في قاعدة البيانات الرسومية:
# معاينة إدخال Azure ومعرفة أنواع الموارد التي لا تحتوي على مواصفات مطبقة
cirro graph ingest --type az --file cirro_output.db --dry-run
# معاينة إدخال Tailscale
cirro graph ingest --type ts --file cirro_ts_socket.json --dry-run
في وضع المحاكاة، ستقوم Cirro بما يلي:
يمكن العثور على CirroDash هنا: https://github.com/bishopfox/cirrodash
تمكين تسجيل التصحيح للحصول على معلومات مفصلة:
# وضع تصحيح الجمع
cirro collect az azcli --debug
# وضع تصحيح الإدخال
cirro graph ingest --type az --file cirro_output.db --debug
ملاحظة: تم تصميم Cirro لاختبار الأمان المصرح به والبحث. تأكد من حصولك على الأذونات المناسبة قبل التشغيل ضد أي بيئة سحابية أو شبكة.