استخدام الذكاء الاصطناعي للعثور على ثغرات الصلاحيات
تتغير برامج مكافآت الثغرات (Bug bounty programs). فقد توقفت بعض البرامج عن دفع المكافآت، بينما خفض البعض الآخر المدفوعات بنسبة 80%. والسبب ليس أن الذكاء الاصطناعي يجد الكثير من الثغرات، بل لأن الذكاء الاصطناعي يجد الكثير من الثغرات الخاطئة. فرق الفرز (Triage teams) تغرق الآن في تقارير منخفضة الجودة.
في هذه البيئة، ليست المهارة الأهم هي العثور على الثغرات، بل إثبات عدم وجود الثغرة. يجب عليك العثور على "السلبيات الصحيحة" (correct negatives).
أنا أستخدم طريقة مكونة من مرحلتين للأهداف ذات الكود المتاح (source-available targets).
المرحلة 1: التوسع (Fan-out) استخدم نماذج ذكاء اصطناعي رخيصة لقراءة الكود. قم بتقسيم الهدف إلى قطع صغيرة. اطلب من النموذج البحث عن الثوابت المكسورة (broken invariants). ابحث عن الأماكن التي يتم فيها تحميل كائن دون التحقق من المالك، أو حيث يتم تخطي بوابة أمنية. استهدف تحقيق "استدعاء عالٍ" (high recall). وتوقع حدوث الكثير من الأخطاء.
المرحلة 2: التحقق التنافسي (Adversarial Verification) استخدم نموذجاً مكلفاً وعالي القدرة على الاستنتاج (high-reasoning) للقضاء على المرشحين. افترض أن كل مرشح (ثغرة محتملة) قد تم تفنيده. لا ينجو المرشح إلا إذا تمكنت من الاستشهاد بأسطر محددة من الكود. يجب أن تثبت أن المسار يمكن الوصول إليه وأنه لا يوجد فحص آخر يمنعه.
المخرج الأكثر قيمة هو قائمة بالتفنيدات. هذه القائمة تبني الثقة مع فرق الفرز.
لقد اختبرت Ory Kratos، وهو خادم هوية مفتوح المصدر. نظرت في تدفق الإعدادات (settings flow). تتعامل هذه المنطقة مع تغييرات كلمات المرور وتحديثات البريد الإلكتروني. وأي خطأ واحد هنا يؤدي إلى الاستيلاء على الحساب (account takeover).
وجدت المرحلة الأولى ثغرة مغرية. في استراتيجية OIDC، تفتقر حاوية (container) معينة إلى ربط الهوية (identity binding). إذا كنت تبحث فقط عن الفحوصات المفقودة، فستبلغ عن هذه الثغرة على أنها ثغرة عالية الخطورة.
سيكون ذلك خطأً.
الربط المفقود غير قابل للاستغلال. يحصل النظام على الهوية المستهدفة من ملف تعريف ارتباط جلسة (session cookie) حي أو رمز موقع (signed token). سمات الحاوية لا تنطبق أبداً على هدف الكتابة الفعلي. التصميم صامد.
الإبلاغ عن هذا سيضيع الوقت ويضر بمصداقيتك. القيمة التي قدمتها كانت الثقة في عدم تقديم تقرير.
عندما استخدمت هذه الطريقة نفسها على هدف مختلف، وجدت ثغرة حقيقية. فاتت نقطة دخول بديلة فحص صلاحيات كان المسار الرئيسي يفرضه. كان بإمكان مستخدم ملغى الوصول (revoked user) الدخول عبر "باب جانبي". كانت هذه الثغرة عالية التأثير وغير مرئية للفاحصين (scanners) التقليديين.
يبني حراس البوابات جدرانًا ضد الكمية الهائلة. للنجاح، يجب أن يكون عملك بالذكاء الاصطناعي صارماً. استخدم الذكاء الاصطناعي لقراءة كود أكثر مما يستطيع البشر قراءته. ثم استخدم الذكاء الاصطناعي لإثبات خطئك قبل الضغط على زر الإرسال.
ركز على الإشارة (signal)، وليس الكمية.
