التحكم في الوصول المستند إلى الدور (RBAC)
تطبق AuroraSOC نظام RBAC شامل بخمسة أدوار وما يقرب من 30 إذنًا تفصيليًا. تتحقق كل نقطة نهاية لواجهة برمجة التطبيقات وصفحة لوحة المعلومات وإجراء الوكيل من الأذونات قبل التنفيذ.
التسلسل الهرمي للأدوار
الأدوار والأذونات
مسؤل
التحكم الكامل في النظام — يدير المستخدمين والتكوين وجميع العمليات الأمنية.
| إذن | وصف |
|---|---|
| مجموعة أذونات المسؤول الكاملة | محددة في aurorasoc/core/auth.py (ROLE_PERMISSIONS[Role.ADMIN]) |
المحلل
مشغل SOC الأساسي — يتحقق من التنبيهات، ويدير الحالات، ويطلق قواعد اللعبة.
| إذن | وصف |
|---|---|
alerts:read | عرض التنبيهات وتفاصيل التنبيه |
alerts:write | تحديث حالة التنبيه، إضافة تعليقات |
alerts:investigate | إطلاق تحقيق الذكاء الاصطناعي |
cases:read | عرض الحالات |
cases:write | إنشاء وتحديث الحالات |
cases:close | وضع علامة على الحالات على أنها تم حلها |
agents:read | عرض حالة أسطول الوكيل |
agents:dispatch | إرسال مهام الوكيل يدويًا |
playbooks:read | عرض كتب اللعب |
playbooks:execute | تنفيذ كتيبات اللعب |
approvals:read | عرض الموافقات المعلقة |
approvals:decide | الموافقة على الإجراءات أو رفضها |
iocs:read | عرض قاعدة بيانات IOC |
iocs:write | إضافة/تعديل بطاقات IOC |
siem:read | الاستعلام عن بيانات SIEM |
cps:read | عرض بيانات جهاز CPS |
reports:read | عرض التقارير |
reports:generate | توليد تقارير جديدة |
المشغل
فريق العمليات - يدير البنية التحتية وأسطول الأجهزة دون سلطة التحقيق.
| إذن | وصف |
|---|---|
alerts:read | عرض التنبيهات (للقراءة فقط) |
agents:read | عرض حالة أسطول الوكيل |
cps:read | عرض أجهزة CPS |
cps:write | تسجيل/تحديث أجهزة CPS |
cps:attest | تشغيل شهادة البرامج الثابتة |
sites:read | عرض معلومات الموقع |
firmware:read | عرض مخزون البرامج الثابتة |
firmware:update | دفع تحديثات البرامج الثابتة |
مشاهد
الوصول للقراءة فقط للمديرين التنفيذيين والمدققين وأصحاب المصلحة.
| إذن | وصف |
|---|---|
alerts:read | عرض التنبيهات |
cases:read | عرض الحالات |
agents:read | عرض حالة الوكيل |
reports:read | عرض التقارير |
dashboard:read | عرض إحصائيات لوحة القيادة |
خدمة واجهة برمجة التطبيقات
الوصول البرمجي لعمليات التكامل وسير العمل الآلي.
| إذن | وصف |
|---|---|
alerts:read | تنبيهات الاستعلام عبر API |
alerts:write | إنشاء/تحديث التنبيهات |
cases:read | حالات الاستعلام عبر API |
iocs:read | الاستعلام عن قاعدة بيانات IOC |
iocs:write | تقديم شهادات IOC جديدة |
siem:read | الاستعلام عن بيانات SIEM |
cps:read | الاستعلام عن أجهزة CPS |
إنفاذ الإذن
نقاط نهاية API
يتم فرض الأذونات باستخدام حقن تبعية FastAPI:
@app.get("/api/v1/alerts")
async def get_alerts(
user: dict = Depends(require_permission("alerts:read"))
):
"""Only accessible with alerts:read permission."""
return alerts
حراس نقطة النهاية على أساس الدور
تتطلب بعض نقاط النهاية دورًا محددًا (وليس مجرد إذن):
@app.post("/api/v1/admin/users")
async def create_user(
user: dict = Depends(require_role("admin"))
):
"""Only admin role can manage users."""
...
واجهة مستخدم لوحة القيادة
تعرض لوحة معلومات React عناصر واجهة المستخدم بشكل مشروط استنادًا إلى دور المستخدم المصادق عليه:
{user.role === 'admin' && (
<AdminPanel />
)}
{hasPermission('playbooks:execute') && (
<PlaybookExecuteButton />
)}
إذن التحقق من التدفق
إعدادات
المستخدمون الافتراضيون
يقوم AuroraSOC بإنشاء حسابات افتراضية عند التشغيل لأول مرة (قم بتغيير كلمات المرور على الفور):
| اسم المستخدم | دور | التهيئة |
|---|---|---|
admin | مسؤل | تتم التهيئة عبر روتين البذور عند بدء التشغيل لأول مرة |
analyst | المحلل | تتم التهيئة عبر روتين البذور عند بدء التشغيل لأول مرة |
viewer | مشاهد | تتم التهيئة عبر روتين البذور عند بدء التشغيل لأول مرة |
operator | المشغل | تتم التهيئة عبر روتين البذور عند بدء التشغيل لأول مرة |
قم دائمًا بتغيير كلمات المرور الافتراضية قبل نشر الإنتاج. استخدم تكامل HashiCorp Vault لإدارة بيانات الاعتماد.
تعيينات الأدوار المخصصة
يتم تعيين الأدوار لكل مستخدم وتخزينها في قاعدة البيانات. يمكن للمسؤولين تعديل تعيينات الأدوار عبر واجهة برمجة التطبيقات:
# Promote user to analyst
curl -X PUT /api/v1/admin/users/user123/role \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-d '{"role": "analyst"}'
مسار التدقيق
يتم تسجيل جميع عمليات التحقق من الأذونات:
- Successful access →
INFOlevel log - Denied access →
WARNINGlevel log with user, endpoint, and missing permission - All entries include OpenTelemetry trace context for correlation