
مهام سير عمل وكلاء الذكاء الاصطناعي النموذجية وخوادم MCP لتدقيق الشيفرة المصدرية، وفرز المشكلات، واكتشاف الثغرات الأمنية في مشاريع الويب وAndroid وiOS.
يحتوي هذا المستودع على أمثلة لمهام taskflows لاستخدامها مع SecLab Taskflow Agent، بالإضافة إلى خوادم MCP المخصصة اللازمة لتشغيل مهام taskflows.
(.venv) قبل موجه الأوامر في الطرفية.python -m seclab_taskflow_agent -t seclab_taskflows.taskflows.audit.ghsa_variant_analysis_demo -g repo=github/cmark-gfm -g ghsa=GHSA-c944-cv5f-hpvr
الآن جرّب تشغيل مهام taskflows الخاصة بالتدقيق على أحد مشاريعك. هنا، نستخدم OWASP Juice Shop كمثال:
./scripts/audit/run_audit.sh juice-shop/juice-shop
⚠️ ملاحظة: قد تستغرق مهام taskflows الخاصة بالتدقيق عدة ساعات للتشغيل، خاصةً على المشاريع الأكبر، وتُجري عددًا كبيرًا من طلبات الذكاء الاصطناعي، مما قد يكلف مبلغًا غير بسيط من المال. بشكل افتراضي، تستخدم مهام taskflows واجهة Copilot API. يمكنك معرفة المزيد من المعلومات حول فواتير Copilot هنا. بدلاً من ذلك، يمكنك استخدام واجهة AI API مختلفة عن طريق تعيين متغير البيئة
AI_API_ENDPOINT، كما هو موضح هنا.
تُكتب نتائج التدقيق إلى قاعدة بيانات SQLite، والتي تُفتح تلقائيًا في عارض SQLite في نهاية التشغيل. توجد النتائج في الجدول المسمى "audit_result". يحتوي الجدول على عمود باسم "has_vulnerability"، مع علامات اختيار في الصفوف التي من المرجح أن تكون ثغرات حقيقية.
يتعرف سير عمل التدقيق على تطبيقات Android وiOS والتطبيقات متعددة المنصات إلى جانب تطبيقات الويب والمكتبات. يسجّل جمع نقاط الدخول للجوال مكونات Android المُصدَّرة، والروابط العميقة، ومخططات URL، وUniversal Links، وملحقات التطبيقات، وجسور WebView JavaScript، بما في ذلك أذوناتها وحالة التصدير ومرشحات الإدخال.
يجمع مشغّل التدقيق هذه البيانات الوصفية قبل التصنيف، والذي يطبّق إرشادات
خاصة بالجوال على المكونات المحددة كتطبيقات جوال. كما تنطبق خيارات --advisory و-m الحالية على تشغيلات الجوال.
تستخدم كلتا مهمتي taskflows لنقاط دخول الجوال صندوق أدوات الوصول إلى المصدر المدعوم بالحاويات وتتطلبان Docker.
تُخزَّن البيانات الوصفية للجوال في جدول mobile_entry_point. تكتسب قواعد بيانات السياق الحالية تلقائيًا عمود
application.is_mobile_app القابل للقيمة الفارغة دون حذف النتائج الموجودة.
نوصي بتشغيل مهام taskflows في بيئة معزولة. تُعد GitHub Codespaces ملائمة، أو إذا كنت تفضل ذلك يمكنك استخدام السكربت run_seclab_agent.sh لتشغيل حاوية docker الخاصة بـ seclab-taskflow-agent كما هو موضح هنا. لاحظ أن هذا السكربت يجب تشغيله من الدليل الرئيسي للمستودع، ويجب أن يكون ملف .env الذي يحتوي على متغيرات البيئة لخوادم MCP المخصصة لتخزين البيانات في نفس الدليل.
أولاً، أنشئ ملف .env في الدليل الرئيسي للمستودع. بالنسبة إلى run_seclab_agent.sh يمكنك استخدام:
MEMCACHE_STATE_DIR=/app/data
CODEQL_DBS_BASE_PATH=/app/data
DATA_DIR=/app/data
LOG_DIR=/app/logs
يُعد MEMCACHE_STATE_DIR ضروريًا لاستمرار بعض البيانات الوسيطة في memcache، ويُعد DATA_DIR ضروريًا لخوادم mcp المختلفة لتخزين النتائج الوسيطة، ويُستخدم LOG_DIR لتخزين ملفات السجل التي تُنشئها الخوادم. يمكن تعيينها في ملف .env في الدليل الرئيسي. إذا لم يتم تعيين أي متغيرات بيئة لخوادم MCP المخصصة، فسيتم إنشاء المجلدات ذات الصلة تلقائيًا. يعتمد الموقع على المنصة، ويتم تعيينه بواسطة platformdirs.
بالإضافة إلى ذلك، يجب أيضًا تكوين نقاط نهاية AI API والأسرار عبر متغيرات البيئة أو أسرار Codespace. على وجه الخصوص، يجب تعيين متغيري البيئة AI_API_TOKEN وAI_API_ENDPOINT إلى نقاط نهاية AI API وبيانات الاعتماد المناسبة. إذا لم يتم تعيينهما، فإن AI_API_ENDPOINT الافتراضي هو GitHub Copilot:
AI_API_ENDPOINT="https://api.githubcopilot.com"
بالإضافة إلى ذلك، يجب أيضًا تعيين متغير البيئة GH_TOKEN للسماح بالتفاعل مع GitHub API، مثل جلب المحتوى وإنشاء المشكلات وما إلى ذلك.
قد تحتاج مهام taskflows الفردية إلى إعداد إضافي، يُرجى الرجوع إلى README.md في الأدلة الفرعية ذات الصلة للحصول على المتطلبات الإضافية.
بعد تعيين متغيرات البيئة ذات الصلة، شغّل مهمة taskflow نموذجية باستخدام:
./scripts/run_seclab_agent.sh -t seclab_taskflows.taskflows.audit.ghsa_variant_analysis_demo -g repo=github/cmark-gfm -g ghsa=GHSA-c944-cv5f-hpvr
SecLab Taskflows هو مستودع مرافق لمستودع SecLab Taskflow Agent. SecLab Taskflow Agent هو إطار عمل تجريبي قائم على الوكلاء تديره GitHub Security Lab. يوفر هذا المستودع أمثلة لمهام taskflows وموارد داعمة لاستخدامها مع SecLab Taskflow Agent. نحن نستخدم الوكيل ومهام taskflows هذه لتجربة استخدام وكلاء الذكاء الاصطناعي لأغراض أمنية، مثل تدقيق الشيفرة بحثًا عن الثغرات أو فرز المشكلات.
نودّ أن نسمع ملاحظاتك. يُرجى إنشاء مشكلة لإرسال طلب ميزة أو تقرير خطأ إلينا. نرحب أيضًا بطلبات السحب (راجع إرشادات المساهمة لمزيد من المعلومات إذا كنت ترغب في المساهمة).
تستخدم صور الحاويات من ghcr.io/githubsecuritylab/ وسم latest.
ولأن هذا الوسم قابل للتغيير، فقد تصبح الصورة المخزنة مؤقتًا محليًا قديمة وقد
يستمر Docker في استخدامها بدلاً من صورة السجل الحالية. أزل الصور
المحلية قبل تشغيل مهمة taskflow عندما تحتاج إلى التأكد من أن Docker يسحب
أحدث الإصدارات:
docker rmi -f $(docker images --format '{{.Repository}}:{{.Tag}}' | grep '^ghcr.io/githubsecuritylab/')
هذا المشروع مرخّص بموجب شروط ترخيص MIT. يُرجى الرجوع إلى ملف LICENSE للحصول على الشروط الكاملة.