→ العودة إلى القائمة

سجل نشر CyberStrikeAI: حتى نشر الأدوات البسيط يتطلب الانتباه إلى التفاصيل

itadol5j

مؤخراً أجرب CyberStrikeAI، وهي منصة اختبار أمني أصيلة الذكاء الاصطناعي مبنية بلغة Go. ظننت أن «النشر بنقرة واحدة» مجرد استنساخ المستودع وتشغيل سكربت وانتهى الأمر، لكنني وقعت في عدة مصاعب كبيرة وصغيرة. وبما أن الذاكرة ما زالت حديثة، أودّ تدوين العملية كاملة — فكثير من هذه المصاعب ليس مشكلة في الأداة نفسها، بل تفاصيل لم أنتبه لها.

نشر CyberStrikeAI

أولاً: ما هي هذه الأداة

تتمثل مهمة CyberStrikeAI في كونها «نظام عمليات للأمن السيبراني أصيل الذكاء الاصطناعي»، وهي مكتوبة بلغة Go، وتجمع التخطيط والتنفيذ والإشراف البشري وحفظ الأدلة وإعادة التشغيل في مساحة عمل قابلة للتدقيق. تشمل مكوناتها الأساسية وكلاء (Agents) مدعومين بـ Eino، وأدوات MCP أصلية، وقاعدة معرفية RAG، وسير عمل مرئي، ونمذجة وتحليل لسلاسل الهجوم.

تحتوي على أكثر من 100 وصفة أدوات مدمجة تغطي سلسلة الهجوم كاملة: فحص الشبكة بمثل nmap وmasscan وrustscan؛ فحص الويب بمثل sqlmap وnikto وgobuster وffuf؛ فحص الثغرات بمثل nuclei وwpscan وdalfox؛ إضافة إلى تعداد النطاقات الفرعية، وأمان الـ API، وأمان الحاويات، وأمان السحابة، وتحليل الملفات التنفيذية، والاستغلال، وكسر كلمات المرور، والتحقيق الجنائي الرقمي، وما بعد الاختراق وغيرها. عملياً، كل ما تحتاجه لاختبار اختراق مصرّح به قد رُتّب لك مسبقاً.

كما توجد إضافة لـ Burp Suite وإضافة لمتصفح الويب، تتيحان إرسال حركة البيانات الملتقطة مباشرة إلى المنصة لإجراء تحليل بمساعدة الذكاء الاصطناعي. هذا التصميم ذكي — فلا يلزمك تغيير سير عملك الحالي.

إعداد البيئة قبل النشر

تتطلب الوثائق الرسمية شرطين مسبقين، وانتبه ألا تنخفض عن الإصدارات المحددة:

  • Go 1.25+(الإصدار المطلوب صراحة في ملف go.mod، وأي إصدار أقل سيفشل التصريف مباشرة برسالة خطأ)
  • Python 3.10+(تحتاجه بعض الأدوات، مثل api-fuzzer وhttp-framework-test)

المصاعب أولاً: إصدار Go. في المرة الأولى استخدمت إصدار Go القديم المرفق مع النظام ولم تظهر رسالة الخطأ إلا عند مرحلة التصريف. يُنصح قبل البدء go version بالتحقق، وإن كان الإصدار غير كافٍ فثبّت نسخة جديدة من الموقع الرسمي أولاً. هذه «الشروط المسبقة» هي الأسهل إغفالاً، لأن الخطأ يظهر في مرحلة متأخرة جداً.

النشر بنقرة واحدة: ماذا يفعل السكربت نيابة عنك

أمر النشر الرسمي بنقرة واحدة مقتضب جداً:

git clone https://github.com/Ed1s0nZ/CyberStrikeAI.git
cd CyberStrikeAI
chmod +x run.sh && ./run.sh

لكن run.sh يقوم فعلياً بأكثر مما تتصور، إذ ينفذ بالترتيب:

  • ✅ فحص بيئتي Go وPython والتحقق منهما
  • ✅ إنشاء بيئة Python افتراضية
  • ✅ تثبيت اعتماديات Python
  • ✅ تنزيل اعتماديات Go
  • ✅ بناء المشروع
  • ✅ تشغيل الخدمة

التفصيل أولاً: venv يديره السكربت تلقائياً. يُنشأ مجلد venv/ ويُصان تلقائياً بواسطة run.sh، والأدوات التي تحتاج Python (مثل api-fuzzer وhttp-framework-test وغيرهما) تستخدم هذه البيئة تلقائياً. لا تنشئ بيئة يدوياً بنفسك، فهذا يسبب تعارضات بسهولة.

التحقق من التشغيل: نقاط لا بد من تأكيدها

بعد انتهاء السكربت لا تتسرع بفتح المتصفح، وانظر إلى الطرفية (Terminal) أولاً:

  • تأكد من ظهور ● ONLINE في الطرفية، يليه عنوان واجهة الويب (Web UI) الفعلي
  • افتح ذلك العنوان: يستخدم وضع HTTPS الافتراضي شهادة موقعة ذاتياً محلية، وسيحذرك المتصفح، فاقبله مرة واحدة فحسب
  • التثبيت الجديد يأتي مع كلمة مرور مسؤل تُستخدم مرة واحدة: تُعرض في الطرفية تحت ADMIN SETUP REQUIRED، وغيّرها فور تسجيل الدخول

التفصيل الثاني: HTTPS أم HTTP. يشغّل run.sh افتراضياً بمعامل –https (شهادة TLS موقَّعة ذاتياً محلية، وتقول الوثائق إن هذا أنسب لحركة البيانات المتزامنة). إذا أردت HTTP خالص فعليك التحديد صراحةً ./run.sh --http. وعند التشغيل اليدوي، أضف –https أو اضبط متغير البيئة CYBERSTRIKE_HTTPS=1.

لا تستخدم شهادة موقعة ذاتياً في بيئة الإنتاج، بل اضبط server.tls_cert_path وserver.tls_key_path في ملف config.yaml.

المصاعب الثانية: خطأ عدم تطابق البروتوكول. إذا رأيت في السجلات رسالة «client sent an HTTP request to an HTTPS server» فهذا يعني أن أحد العملاء ما زال يصل إلى منفذ TLS عبر http://. عدّل الرابط URL فحسب، ولا تتعب نفسك بإعدادات الخادم.

منصة اختبار أمني أصيلة الذكاء الاصطناعي

الإعداد الأول: قناة الذكاء الاصطناعي إلزامية

من دون هذه الخطوة يبقى إعداد المنصة ناقصاً وكأنها لم تُركّب. بعد أول تشغيل ادخل إلى https://127.0.0.1:8080/ (المنفذ يعتمد على server.port في config.yaml)، ثم اذهب إلى System Settings → Basic Settings → AI Channel Configuration، وأضف قناة واملأ provider وBase URL وAPI key وmodel والحد الأقصى للرموز (token).

يمكنك أيضاً تعديل config.yaml مباشرة، وصيغتها تقريباً كالتالي:

ai:
default_channel: openai-main
channels:
openai-main:
provider: openai_compatible
api_key: “${OPENAI_API_KEY}”
base_url: “https://api.openai.com/v1”
model: “gpt-4o”

التفصيل الثالث: نطاق سريان القناة الافتراضية. يُستخدم ai.default_channel للمحادثات الجديدة وللمهام التي لم تُحدد لها قناة صراحة؛ وفي صفحة الدردشة يمكنك أيضاً اختيار أي قناة محفوظة لكل محادثة على حدة. فإذا كان لديك عدة نماذج فلست مضطراً لإعداد قناة واحدة فقط.

بوضع openai_compatible في provider يمكنك الاتصال بمعظم الخدمات المتوافقة مع واجهة OpenAI، كما يمكنك تغيير base_url إلى https://api.deepseek.com/v1 وmodel إلى deepseek-chat، ونفس الأمر ينطبق على qwen3-max. يمكن توصيل النماذج الصينية بكل حرية، وهذه ميزة ودية جداً.

⚠️ تنبيه أمني: لا تضع المفاتيح الحقيقية في config.yaml. أوضحت الوثائق صراحة عدم رفع (commit) بيانات الاعتماد الحقيقية، واستخدم الحقن عبر متغيرات البيئة.

الترقية أيضاً تحتاج منهجية

توفر الوثائق الرسمية سكربت ترقية بنقرة واحدة، لكن في المرة الأولى يجب منحه صلاحية التنفيذ أولاً:

chmod +x upgrade.sh && ./upgrade.sh –yes

ما يفعله: نسخ احتياطي لملف config.yaml ومجلد data/ → سحب الكود الجديد من GitHub Release → تحديث رقم الإصدار في config.yaml → إعادة تشغيل الخدمة.المجلدات المحلية tools/ وroles/ وskills/ تُحفظ دائماً— وهذه نقطة جوهرية، فلن تُستبدل وصفات الأدوات التي خصصتها بنفسك.

المصاعب الثالثة: اعتماديات سكربت الترقية. يحتاج السكربت إلى curl أو wget لتنزيل حزمة الإصدار، وrsync لمزامنة الكود بأمان (توصفه الوثائق بأنه موصى به/ضروري). وإذا حدّت واجهة GitHub API من الطلبات (rate limit) فعليك أولاً export GITHUB_TOKEN="..." ثم أعد التشغيل.

عند حدوث مشكلة يمكنك الاستعادة من .upgrade-backup/، أو نسخ data وconfig.yaml يدوياً ثم تشغيل run.sh من جديد.

مبدأ مهم: قبل أي ترقية اقرأ حتماً ملاحظات الإصدار (release notes) للإصدار المستهدف، وخذ حذرك خاصة عند وجود تغييرات في الإعدادات أو قاعدة البيانات أو الـ API. والوثائق تقول عبارة واقعية — «النسخ الاحتياطي إلزامي حتى لو كانت الترقية ترقيعاً فقط؛ رقم الإصدار بحد ذاته ليس ضماناً للتوافق.»

نظرة سريعة على بنية المجلدات

افهم وظيفة كل مجلد كي لا تتوه في الصيانة اللاحقة:

  • cmd/ — الخادم ونقطة دخول MCP عبر stdio والأدوات
  • internal/ — الـ Agent ونواة MCP والمعالجات وC2 ومنفّذ الأمان
  • web/ — تطبيق SPA الثابت والقوالب
  • tools/ — وصفات أدوات بصيغة YAML (أكثر من 100 مثال)
  • roles/ — إعدادات الأدوار (أكثر من 12 دوراً جاهزاً للاختبار الأمني)
  • skills/ — مجلد مهارات الـ Agent (ملف SKILL.md وملفات اختيارية)
  • agents/ — ملفات Markdown للوكلاء المتعددين (orchestrator.md + وكلاء فرعيون)
  • config.yaml — إعدادات التشغيل
  • run.sh / upgrade.sh — سكربت التشغيل / الترقية

الأمان مسؤولية لا تعوضها الأدوات

تدمج هذه المنصة قدرات عالية الخطورة مثل إدارة WebShell وC2 مدمج (مستمعون، وbeacons مشفرة، وجلسات، وطابور مهام). الموقف الرسمي واضح جداً:تُستخدم فقط مع الأنظمة التي تملكها أو حصلت على إذن صريح باختبارها.

قبل تفعيل الأدوات عالية الخطورة في بيئة مشتركة أو بيئة إنتاج، اقرأ أولاً نموذج الأمان ودليل التقوية (hardening). كما تحتوي مدمجاً اعتراض استدعاء الأدوات — إذ يجري فحص بتعابير نمطية (regex) قابلة للضبط قبل تنفيذ MCP، مع تفعيل حماية نطاقات الجهات الحكومية افتراضياً.

بالإضافة إلى ذلك، يستمع افتراضياً على 127.0.0.1 فقط، وإذا أردت كشف الخدمة للخارج فعليك التقوية أولاً حتماً. هذه ليست مجاملة، بل تنبيه لا يكتبه في الوثائق إلا من وقع في مصاعب قاسية.

إعداد منصة اختبار الاختراق

في الختام

وبالنظر إلى الخلف، لم تطرأ خلال عملية النشر مشاكل كبيرة، فالسكربت أنجز 90% من العمل. وما أوقفني فعلاً لأراجع الوثائق كان تفاصيل «لم أنتبه لها»: حد إصدار Go، وعدم إنشاء venv يدوياً، وتفعيل HTTPS افتراضياً بما يسبب عدم تطابق البروتوكول، والنسخ الاحتياطي قبل الترقية، وعدم وضع المفاتيح في ملف الإعدادات.

هذه التفاصيل ليست صعبة منفردة، لكن إغفال أيٍّ منها قد يعطّلك نصف ساعة. وكلما نضجت الأداة ازدادت القيمة من «قراءة الوثائق» — فهي تغلّف التعقيد داخل السكربت، فيبقى التعقيد المتبقي كله في تفاصيل الإعداد.

انضم المشروع إلى knownsec 404Starlink، وهو مفتوح المصدر بترخيص Apache 2.0. يمكن لمن يعمل في الاختبارات الأمنية المصرح بها تجربته.

النشر بنقرة واحدة لا يعني الفهم بنقرة واحدة، والتفاصيل هي المفتاح الحقيقي لتوفير الوقت.

رابط المشروع: github.com/Ed1s0nZ/CyberStrikeAI (انتقل إلى github.com/AIPentest/CyberStrikeAI)
متطلبات البيئة: Go 1.25+ / Python 3.10+
الترخيص: Apache License 2.0
⚠️ للاستخدام في الاختبارات المصرح بها فقط