Gaia - اكتشاف سطح الهجوم والفرز المدعوم بالذكاء الاصطناعي
Gaia هي أداة تحليل سطح هجوم تعتمد على واجهة سطر الأوامر (CLI) في المقام الأول، تكتشف نقاط النهاية والمعاملات، وتقلل الضوضاء، وتسلط الضوء على المخاطر ذات الصلة بالأمان باستخدام استدلالات ثابتة واستدلال اختياري بالذكاء الاصطناعي. تنسّق Gaia بين Katana وgau وarjun وlinkfinder وuro لتحويل مجموعات عناوين URL الخام إلى عرض مطبَّع ومراعٍ للمخاطر مناسب لعمليات مكافآت الثغرات وأمن التطبيقات (AppSec) وهندسة الأمان.
Gaia ليست ماسحًا آليًا للثغرات. إنها ترسم خريطة سطح الهجوم، وتطبق استدلالات حتمية، ويمكنها استخدام نماذج اللغة الكبيرة (LLMs) لتوليد تلميحات اختبار. النتائج إرشادية وليست ثغرات مؤكدة. التحقق اليدوي مطلوب. مخرجات الذكاء الاصطناعي استشارية وليست حاسمة؛ استخدمها لتحديد أين تركّز وكيف تختبر.

ما الذي تقدمه Gaia
تركز Gaia على الإشارة بدلًا من الضوضاء. فهي:
- تزحف على التطبيقات الحية
- تجمع عناوين URL تاريخية
- تستخرج المعاملات
- تطبّع نقاط النهاية وتزيل التكرارات
- تحلل JavaScript بحثًا عن نقاط النهاية وعناوين URL والأسرار والبريد الإلكتروني والملفات
- تطبق استدلالات أمنية حتمية
- تُثري النتائج اختياريًا باستدلال قائم على LLM (محدود ومحسَّن)
النتيجة هي خريطة سريعة وقابلة للقراءة لما يهم في سطح هجوم التطبيق.
لمن صُممت
- صيادو مكافآت الثغرات الذين يقومون بالاستطلاع والفرز السريع
- مهندسو أمن التطبيقات الذين يرسمون خرائط أسطح الهجوم
- مهندسو الأمان الذين يؤتمتون التحليل في المراحل المبكرة
- المطورون الذين يريدون رؤية واضحة لنقاط النهاية والمعاملات المكشوفة
الميزات الرئيسية
- زحف مباشر عبر Katana
- اكتشاف عناوين URL تاريخية عبر gau
- اكتشاف المعاملات عبر arjun + تحليل الاستعلامات
- تطبيع عناوين URL وإزالة التكرار باستخدام uro
- محلل JS لاستخراج JS مع تقليل الضوضاء
- استدلالات مخاطر ثابتة (IDOR وSSRF والمصادقة وعبور المسار والحقن وغيرها)
- تحليل اختياري بمساعدة LLM (محدود السقف ومصغَّر وسريع)
- تقليل الضوضاء: تصفية الأصول الثابتة وتصفية معاملات التتبع/غير المرغوب فيها
- تصميم موجه للأداء: استدعاءات AI محدودة السقف، وحمولات مضغوطة، ولقطات استجابة مختصرة
كيف يعمل (خط الأنابيب)
- تحديد الأدوات الخارجية
- زحف الهدف (Katana)
- جمع عناوين URL تاريخية (gau)
- تحليل JS
- استخراج المعاملات (arjun + تحليل)
- تطبيع عناوين URL وإزالة التكرار (uro)
- التحليل (ثابت + AI اختياري)
- عرض التقرير
كل مرحلة تبلغ عن عدد عناوين URL أو المعاملات التي اكتشفتها.
الاستخدام
فحص أساسي
gaia -u https://example.com
تعطيل مراحل محددة
gaia -u https://example.com --no-gau --no-ai
قراءة عناوين URL من stdin
cat urls.txt | gaia --stdin
مثال على تشغيل CLI
عرض توضيحي لـ Gaia CLI – الزحف والتطبيع والتحليل بمساعدة الذكاء الاصطناعي
التثبيت
المتطلبات
- Python 3.10+
- (اختياري) virtualenv
- سلسلة أدوات Go (للتثبيت التلقائي لـ katana / gau)
الإعداد
python3 -m venv venv
source venv/bin/activate
pip install -e .
يمكن تثبيت الأدوات الخارجية (katana وgau وarjun وlinkfinder وuro) تلقائيًا إذا تم تفعيل ذلك.
خيارات CLI
- -u, --url عنوان URL الهدف
- --stdin قراءة عناوين URL من stdin
- --no-gau تعطيل جمع عناوين URL التاريخية
- --no-arjun تعطيل اكتشاف معاملات arjun
- --no-linkfinder تعطيل اكتشاف JS عبر linkfinder
- --no-uro تعطيل تطبيع عناوين URL
- --no-js-analyzer تعطيل مرحلة محلل JS
- --js-max-fetches N الحد الأقصى لملفات JS التي سيتم جلبها للتحليل
- --no-ai تعطيل استدلال الذكاء الاصطناعي
- --show-assets عرض الأصول الثابتة في المخرجات
- --only-params عرض نقاط النهاية التي تحتوي على معاملات فقط
- --auto-install تثبيت الأدوات المفقودة تلقائيًا
- --max-urls N تحديد سقف لعناوين URL المجمعة
- --format console|md|json تنسيق المخرجات
- --output PATH كتابة التقرير إلى ملف
- -h, --help إظهار المساعدة
متغيرات البيئة
الذكاء الاصطناعي / LLM
- GAIA_LLM_MODEL اسم النموذج لـ LiteLLM (مطلوب لتفعيل الذكاء الاصطناعي)
- GAIA_LLM_MAX_ENDPOINTS الحد الأقصى لنقاط النهاية المرسلة إلى LLM (الافتراضي: 15)
- GAIA_LLM_INCLUDE_RESPONSES تضمين لقطات استجابة HTTP (الافتراضي: true)
- GAIA_LLM_MAX_RESPONSES الحد الأقصى للقطات التي سيتم جلبها (الافتراضي: 50)
- GAIA_LLM_MAX_BODY_CHARS الحد الأقصى لأحرف نص الاستجابة (الافتراضي: 4000)
مفاتيح الميزات
- GAIA_DISABLE_AI
- GAIA_DISABLE_GAU
- GAIA_DISABLE_ARJUN
- GAIA_DISABLE_LINKFINDER
- GAIA_DISABLE_URO
- GAIA_DISABLE_JS_ANALYZER
التصحيح
- GAIA_VERBOSE
- GAIA_DEBUG
- GAIA_LLM_DEBUG
- GAIA_JS_MAX_FETCHES
- GAIA_JS_MAX_CHARS
ملاحظات وأوضاع:
- الوضع السريع: عطّل الذكاء الاصطناعي والأدوات التاريخية (--no-ai --no-gau) للاستطلاع السريع.
- الوضع العميق: فعّل جميع الأدوات والذكاء الاصطناعي مع ضبط GAIA_LLM_MODEL؛ وزد GAIA_LLM_MAX_ENDPOINTS إذا كنت بحاجة إلى تغطية أوسع للذكاء الاصطناعي.
- وضع الفرز: أبقِ الذكاء الاصطناعي مفعّلًا واعتمد على الإعدادات الافتراضية (نقاط نهاية محدودة السقف، حمولات مصغّرة) لتحقيق توازن بين السرعة والتغطية.
إعداد LiteLLM / الذكاء الاصطناعي
الذكاء الاصطناعي اختياري. تعمل Gaia بشكل كامل بدونه.
استخدام OpenAI:
- GAIA_LLM_MODEL (مثال: gpt-4o-mini أو gpt-4.1)
- OPENAI_API_KEY: يوجّه LiteLLM الطلبات إلى OpenAI بناءً على هذه المتغيرات.
استخدام Google Gemini
- GAIA_LLM_MODEL (مثال: gemini/gemini-1.5-pro)
- GOOGLE_API_KEY: يوجّه LiteLLM الطلبات إلى Gemini بناءً على هذه المتغيرات.
استخدام النماذج المحلية (Ollama / LM Studio)
- GAIA_LLM_MODEL (مثال: ollama/llama3 أو ollama/qwen2.5)
- يتصل LiteLLM بنقطة النهاية المحلية؛ ولا يلزم مفتاح API للنماذج المحلية.
المخرجات
مخرجات وحدة التحكم
- جدول نقاط النهاية (مصفّى وقابل للقراءة)
- وسوم المخاطر لكل معامل
- إحصائيات ملخصة
- مؤشر تقدم الذكاء الاصطناعي (سطر واحد)
ملاحظات المعاملات
في نهاية التقرير، تطبع Gaia ملاحظات مجمّعة عن المعاملات:
- لماذا يبدو المعامل خطرًا
- أين شوهد
- أفكار اختبار عملية
تنسيقات أخرى
- JSON (قابل للقراءة آليًا)
- Markdown (جاهز للتقرير)
ملاحظات الأداء
- استدعاءات الذكاء الاصطناعي محدودة السقف بشكل صارم
- الحمولات مصغّرة ومختصرة المفاتيح
- يتم تخطي الأصول الثابتة والمعاملات غير المرغوب فيها
- استجابات 2xx ترسل نوع المحتوى فقط + مقتطف قصير
- مصممة لتبقى سريعة حتى على الأسطح الكبيرة
المساهمة
المساهمات مرحّب بها. يرجى إبقاء طلبات السحب (PRs) مركّزة وقابلة للقراءة. التحسينات المتعلقة بالاستدلالات والأداء والتصفية وموجهات الذكاء الاصطناعي والتوثيق مشجَّعة. بالنسبة للتغييرات الأكبر، افتح issue للمناقشة أولًا.
الترخيص
MIT
إخلاء مسؤولية
Gaia أداة استطلاع وتحليل. اختبر دائمًا بمسؤولية وفقط ضد الأنظمة التي لديك تصريح بتقييمها.