AI-Assisted AuthZ Review: Reading Permission Boundaries in Ory Kratos

الذكاء الاصطناعي سيئ في العثور على الثغرات، لكنه رائع في إثارة الشكوك.

في مجال الأمن، أرخص شيء يمكن للذكاء الاصطناعي القيام به هو إغراقنا بفيض من التقارير الزائفة. لهذا السبب تقوم برامج مكافآت اكتشاف الثغرات (bug bounty) بإيقاف أو تشديد قواعدها.

أنا أستخدم الذكاء الاصطناعي بشكل مختلف. أترك الذكاء الاصطناعي يولد فرضيات مفرطة بناءً على "كتالوج روائح الـ AuthZ" (AuthZ Smell Catalog) الخاص بي. ثم أقوم أنا بالعمل الشاق؛ فوظيفتي هي دحض تلك الفرضيات.

المراجعة الناجحة ليست قائمة من الثغرات، بل هي جدول "إعدام" للأفكار التي فشلت في الاختبار.

قمت بمراجعة الكود المصدري لـ Ory Kratos. يتولى Kratos إدارة الهوية والمستخدمين، وهي منطقة عالية المخاطر لأنه يستخدم هويات متعددة وواجهات برمجة تطبيقات (APIs) عامة.

اختبرت خمس فرضيات:

  • H1: لا يوجد تفويض (authorization) في الكود الخاص بـ Admin API.
  • H2: تسريبات بيانات عبر الهويات أو عبر المستأجرين (cross-tenant).
  • H3: إعادة استخدام الرموز (tokens) في تدفقات الاسترداد.
  • H4: ارتباك الهوية في تدفقات الإعدادات.
  • H5: تعيين المستأجر (tenant) عبر حمولات الطلبات (request payloads).

النتائج:

  • H1: تم الدحض. التفويض موجود عند حدود الشبكة، وليس في معالج الكود (code handler). هذا أمر مقصود في التصميم.
  • H2: تم الدحض. تقوم طبقة مركزية للوصول إلى البيانات بتصفية جميع الاستعلامات حسب معرف المستأجر (tenant ID). لا يمكن للمستخدمين تجاوز ذلك.
  • H3: تم الدحض. الرموز (tokens) تُستخدم لمرة واحدة ومحددة بوقت.
  • H4: تم الدحض. التدفقات مرتبطة بالجلسة (session)، وليس بمدخلات المستخدم.
  • H5: تم الدحض. تأتي معرفات المستأجرين من سياق النظام، وليس من جسم الطلب (request body).

دخلت خمس فرضيات، وخرجت صفر نتائج. هذه مراجعة ناجحة.

درسان لعملك الأمني:

  1. أمن طبقة النشر (Deployment-layer) قد يبدو وكأنه انعدام للأمن. إذا كان الحارس موجوداً على مستوى الشبكة، سيبدو الكود "عارياً". لا تبلغ عن ذلك حتى تتحقق من البنية التحتية (architecture).

  2. ابحث عن نقطة الاختناق (chokepoint). إذا كان النظام يفرض الحدود عند طبقة البيانات، فلا تحتاج المعالجات الفردية إلى عمليات تحقق. بدلاً من السؤال "هل يتحقق هذا المعالج من الأذونات؟"، اسأل "هل يمكن لأي شخص الوصول إلى البيانات دون المرور بنقطة الاختناق؟".

استخدم الذكاء الاصطناعي لاستبعاد المرشحين. واستخدم البشر للتحقق من الناجين. القيمة تكمن في عملية الاستبعاد.

المصدر: https://dev.to/fdjedkdlsspec/ai-assisted-authz-review-reading-permission-boundaries-in-ory-kratos-31cg

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi