الفرق والمنتج الأدلة التقنية

عشرات طلبات التدريب كل يوم: كيف تدير برنامجاً كبيراً بوقت قليل؟

برنامج تدريب يستقبل عشرات الطلبات يومياً بوقت مدير قليل: فرز آلي، ودفعات، وقادة أقران، وتمارين ذاتية التصحيح على CTFd.

عشرات طلبات التدريب كل يوم: كيف تدير برنامجاً كبيراً بوقت قليل؟

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

هذا المقال خطة لهذا الموقف بالضبط: قسم يستقبل عشرات طلبات التدريب كل يوم، والمسؤول عنه يملك وقتاً قليلاً جداً، والمطلوب برنامج يعطي المتدرب تجربة حقيقية دون أن يستهلك المدير. وهو امتداد لسلسلة إدارة برامج التدريب، فلن نكرر ما فيها من أساسيات الاستقطاب والتقييم وقرار التوظيف والأنظمة السعودية العامة، وإنما نركز على ما يتغير عندما يصبح العدد كبيراً والإشراف قليلاً. وقد بنينا كل القطع التقنية في مختبر حقيقي: نظام فرز آلي، ومنصة مسابقات أمنية CTF للتصحيح الذاتي شغلناها فعلاً على سيرفر.

دليللماذا تحتاج شركتك برنامج تدريب Internship؟ماذا تستفيد الشركة من برنامج التدريب بالأرقام المنشورة، وأنواعه من الصيفي إلى تمهير، وما يقوله النظام في المملكة، ولماذا تفشل البرامج.دليلتخطيط برنامج التدريب Internship في 12 أسبوعاًكيف تحدد أهداف برنامج التدريب وميزانيته وتختار المشرفين والمشروع، مع خطة اثني عشر أسبوعاً وقوالب جاهزة للنسخ.دليلإدارة المتدربين Interns من الاستقطاب إلى قرار التوظيفكيف تستقطب المتدربين وتختارهم بعدل وتتابعهم أسبوعياً وتقيمهم بمعيار واضح حتى قرار التوظيف، مع القوالب والأدوات وأسعارها.دليلخطة تدريب Internship في الأمن السيبراني لـ 8 أو 12 أسبوعاًخطة تدريب كاملة لقسم أمن يستقبل طلبات كثيرة بوقت مشرف قليل: فرز بمهمة حقيقية، ودفعات، ومختبر مشترك، ومعيار تقييم.

وسوف نناقش في هذا المقال ما يلي:

  • الحسبة قبل الحل: لماذا لا يعمل القبول العشوائي ولا الإشراف الفردي مع عشرات المتقدمين.
  • نظام تتبع المتقدمين ATS مع مهمة فرز آلية، والدفعات الفصلية Cohorts بدل التدفق المستمر.
  • المنهج ذاتي القيادة Self-paced المبني على مقالات الموقع، وقادة الأقران Peer Leads، وساعة المراجعة الواحدة.
  • المختبر المشترك ومنصة المسابقات الأمنية CTFd للتمارين ذاتية التصحيح.
  • تجربة عملية: نشغل CTFd على سيرفر، ونصنع أسبوع تمارين بعلم Flag لكل تمرين، ونرى التصحيح الفوري ولوحة النتائج.
  • العمل الحقيقي الآمن الذي يسلمه المتدرب، وقواعد السلامة.
  • ما لا تفعله: تقديم خدمة أمنية لعملاء خارجيين بمتدربين بلا إشراف، والتسجيل والترخيص لدى الهيئة الوطنية للأمن السيبراني، ومسؤولية البيانات الشخصية، من الصفحات الرسمية فقط.
  • الإطار النظامي للتدريب من مواقع وزارة الموارد البشرية الرسمية، وأخطاء شائعة، وقائمة تحقق.

الحسبة قبل الحل: ما الذي لا يتوسع؟

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

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

والصورة التالية تبين الحل الذي سوف نبنيه، وفكرته أن تنقل كل عمل يتكرر إلى نظام أو إلى سكربت أو إلى قائد من المتدربين، ويبقى للمدير القرار في آخر الطابور فقط:

أربع مراحل من اليمين: 50+ طلب تدريب يومياً تصل بلا توقف والمدير لا يملك وقتاً لقراءة كل سيرة، ثم نظام ATS بمهمة فرز آلية كل متقدم يستلم مهمة حقيقية بنسخة مختلفة وسكربت يصحح الجزء الآلي بـ 0 دقيقة من المدير، ثم دفعات فصلية Cohorts بدل تدفق مستمر دفعة كل ربع سنة تبدأ معاً على نفس المنهج الذاتي، ثم ساعة مراجعة واحدة بقادة أقران من الأقوياء ومنصة CTF للتصحيح الذاتي والمدير يرى عينة، وملاحظة أن الأرقام مثال والفكرة أن النظام يرتب الطابور ويصحح الآلي والإنسان يقرر في آخره
كل عمل يتكرر ينتقل إلى نظام أو سكربت أو قائد، ويبقى للمدير القرار بوقت قليل

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

والقطع الأربع التي تبني النظام في الصورة التالية، وكل واحدة منها تحمل جزءاً من العمل:

أربع قطع: نظام ATS يحفظ الطلبات ويرسل مهمة الفرز ويسجل الدرجة مثل Frappe HR، ومنصة CTF للتصحيح الذاتي CTFd على سيرفرك تمارين لها علم Flag واحد صحيح يعرف المتدرب فوراً إن أصاب، ومختبر مشترك سيرفر واحد للمنصات الثقيلة وحساب لكل متدرب ولقطة Snapshot قبل كل أسبوع، وقادة أقران Peer Leads من أقوى المتدربين يجيبون الأسئلة المتكررة ويراجعون التسليمات، وتحتها المنهج ذاتي القيادة على مقالات الموقع كل أسبوع ورقة تربط مقالات المسار بمختبراتها وتمارين CTF فلا يحتاج المدير أن يشرح
النظام والمنصة والمختبر والقادة: كل قطعة تحمل عن المدير جزءاً من العمل المتكرر

نظام ATS ومهمة الفرز الآلية

أول قطعة هي نظام تتبع المتقدمين ATS، وهو الذي يحفظ عشرات الطلبات اليومية ويرسل لكل متقدم مهمة الفرز ويسجل درجته، وقد شرحناه وجربنا Frappe HR عليه في مقالات مستقلة لن نكررها:

دليلنظام تتبع المتقدمين ATS: من إعلان الوظيفة إلى العرضكيف تكتب إعلاناً واضحاً وتفرز المتقدمين بعدل وتقيس مسار التوظيف، وكيف تتعامل مع بياناتهم وفق نظام حماية البيانات الشخصية.دليلنظام توظيف على سيرفرك مع Frappe HR: تجربة كاملةنبني Frappe HR في Docker ونمر بالتوظيف كاملاً مع ثلاثة متقدمين، ونختبر الفرز الآلي على سير ذاتية عربية وإنجليزية.دليلأدوات التوظيف مفتوحة المصدر ATS: مقارنة عمليةمقارنة أنظمة تتبع المتقدمين مفتوحة المصدر والتجارية بالترخيص والصيانة والأسعار، مع اختبار فعلي لصفحات الوظائف بالعربية.

والفكرة التي تحل مشكلة العدد أن الفرز لا يبنى على السيرة الذاتية، فخمسون سيرة لطلاب في نفس المرحلة تتشابه، وإنما على مهمة صغيرة تشبه أول أسبوع في البرنامج. وفي خطة الأمن السيبراني بنينا هذه المهمة بالتفصيل: سجل SSH حقيقي بنسخة مختلفة لكل متقدم، وسكربت يصحح الجزء الآلي، فلا ينتظر المدير ليعرف من حل ومن لم يحل، وقد صنعنا هناك مئة نسخة في ثماني ثوان. والمهم في سياق هذا المقال ثلاثة شروط تجعل الفرز يتوسع مع العدد:

  • نسخة مختلفة لكل متقدم: وإلا انتشرت الإجابات في مجموعة على Telegram، وصار الفرز مقياساً لمن يعرف الإجابة لا من يفهم.
  • تصحيح آلي للجزء الذي له إجابة واحدة: فالمدير يقرأ الفقرة المكتوبة لأعلى الدرجات فقط، مثل أفضل عشرين، لا لكل الخمسين.
  • معيار مكتوب قبل قراءة أي ورقة: حتى لا يتغير الحكم بين الورقة الأولى والخمسين، وهو نفس مبدأ الفرز العادل في نظام تتبع المتقدمين.

ولاحظ أن ATS هنا يحفظ الطلب ويرسل المهمة ويسجل الدرجة، وليس هو من يصحح، فالسكربت يعمل خارجه والدرجة حقل في بطاقة المتقدم. وهذا الفصل يجعلك حراً في اختيار النظام: Frappe HR، أو أي نظام آخر قارناه في أدوات التوظيف مفتوحة المصدر.

تجربة المتقدم عندما يكون العدد كبيراً

عندما يكون العدد كبيراً يصبح التواصل مع المتقدمين جزءاً من النظام لا عملاً يدوياً. فالمتقدم الذي يرسل طلبه ولا يسمع شيئاً لأسابيع يخرج بانطباع سيئ عن الجهة، حتى لو كان القرار في النهاية قبوله. والحل ثلاث رسائل آلية من نظام ATS نفسه: تأكيد استلام فوري فيه موعد الدفعة القادمة ومهمة الفرز ومهلتها، ثم رسالة بعد التصحيح تقول للمتقدم أين وصل طلبه، ثم رسالة القرار بلغة واضحة ومحترمة. والرسائل تكتب مرة كقوالب وتعاد مع كل دفعة، فلا تكلف المدير وقتاً إضافياً مع زيادة العدد. وبيانات المتقدمين بيانات شخصية لها التزاماتها، مثل تحديد مدة الاحتفاظ بها وحذف بيانات من لم يقبل بعد انتهائها، وقد شرحنا ذلك وجربنا حذف بيانات متقدمة في Frappe HR في نظام تتبع المتقدمين ATS ومختبر Frappe HR.

الدفعات الفصلية Cohorts بدل التدفق المستمر

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

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

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

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

المنهج ذاتي القيادة وقادة الأقران

القطعة الثالثة هي المنهج، وهو ما يحمل أكبر عبء عن المدير إذا بني صحيحاً. والفكرة أن المنهج ذاتي القيادة Self-paced، أي أن المتدرب يستطيع أن يمشي فيه بنفسه، لأن محتواه مقالات الموقع ومختبراتها، فلا يحتاج المدير أن يشرح، وإنما أن يكتب ورقة كل أسبوع تربط المقالات بترتيب القراءة ومختبراتها وتمارينها، ويعيد استخدام نفس الأوراق مع كل دفعة. وقد بنينا منهجاً كاملاً من هذا النوع لمسار الأمن السيبراني في خطة التدريب، بأسبوع لكل مرحلة، ومقالات ومختبرات وتسليم وطريقة تحقق لكل أسبوع.

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

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

المختبر المشترك ومنصة CTFd

القطعة الرابعة بيئة العمل. وبعض المختبرات خفيفة تعمل على أي حاسوب، وبعضها منصات ثقيلة تحتاج سيرفراً مشتركاً، وقد وزعنا ذلك بالأرقام المقيسة في خطة التدريب: سيرفر واحد للمنصات الثقيلة في أسبوعها فقط، وحساب لكل متدرب، ولقطة Snapshot قبل كل أسبوع. وما يضيفه هذا المقال هو منصة التمارين ذاتية التصحيح، وهي ما يحمل عن المدير جزءاً كبيراً من التصحيح: منصة مسابقات أمنية Capture The Flag، واختصاراً CTF، تستضيفها بنفسك.

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

أربع خطوات: تمرين بعلم Flag واحد مثل كم محاولة فاشلة في auth.log إجابته ARABROOT العدد، ثم المتدرب يحل في المختبر ويعد الأسطر ويرسل العلم من حسابه على CTFd، ثم تصحيح فوري CTFd يقول صح أو خطأ في ثوان فيعيد المتدرب حتى ينجح، ثم لوحة النتائج Scoreboard المدير يرى بلمحة من أنهى ومن تعثر، وملاحظة أن في التجربة 5 تمارين ودفعة من 12 متدرباً حل متدربان الأول صحيحاً وأخطأ ثالث فظهرا وحدهما في اللوحة بـ 100 نقطة وCTFd بذاكرة 115 ميجابايت
التمرين يصحح نفسه، والمدير يرى النتيجة في لوحة واحدة بدل أن يصحح اثني عشر تسليماً

وأشهر منصة مفتوحة المصدر لهذا هي CTFd، برخصة Apache-2.0، وآخر إصدار منها عند كتابة المقال هو 3.8.9 بتاريخ 22 أكتوبر 2026، والمشروع نشط يصدر بانتظام. وسوف نشغلها في التجربة العملية ونرى أنها خفيفة جداً.

كيف تكتب تمريناً ذاتي التصحيح جيداً؟

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

  • إجابة واحدة لا تحتمل تفسيرين: السؤال «كم محاولة فاشلة؟» يحتمل أن يعد المتدرب أسطر Failed فقط أو أن يضيف إليها أسطر Invalid user، فاكتب في نص التمرين ما الذي يعد بالضبط، مثل «كم سطراً فيه Failed password». والسؤال الغامض يجعل المنصة تقول «خطأ» لمتدرب فهم الفكرة جيداً، فيتعلم أن يخمن صيغة الإجابة لا أن يفهم.
  • صيغة علم ثابتة ومكتوبة: مثل ARABROOT{الإجابة}، بحروف صغيرة أو كبيرة كما تحددها، حتى لا يضيع المتدرب وقته في تجربة صيغ. وتدعم CTFd نوعين من الأعلام في توثيقها: الثابت Static الذي يطابق نصاً واحداً، والتعبير النمطي Regex الذي يقبل أكثر من صيغة صحيحة، مثل عنوان IP مكتوب بمسافات أو دونها.
  • تلميحات متدرجة بدل سؤال المدير: تتيح CTFd تلميحات Hints مجانية أو بتكلفة من النقاط، كما يشرح توثيق التلميحات، فالمتدرب المتعثر يأخذ تلميحاً بدل أن يكتب للمدير، والتلميح الذي يأخذه الجميع إشارة إلى أن التمرين غامض.
  • ترتيب التمارين بالمتطلبات: تتيح CTFd أن يبقى التمرين مقفلاً حتى يحل المتدرب تمريناً قبله، كما في توثيق المتطلبات، فيمشي المتدرب في المنهج بالترتيب الصحيح دون أن يراقبه أحد.
  • الإجابات القصيرة ليست سرية: العدد الصحيح في تمرين عد الأسطر يمكن أن يتداوله المتدربون، والتمارين ذاتية التصحيح للتعلم لا للتقييم النهائي، فلا تجعل درجتها وحدها تقرر شيئاً مهماً. والتقييم الذي يقرر يبقى في التسليمات المكتوبة والعرض.

ولاحظ أن كل تمرين في المنصة مبني على مختبر حقيقي في مقالات المسار، فالسؤال عن عدد المحاولات الفاشلة يأتي من سجل SSH في خطة التدريب، والسؤال عن نوع قاعدة Suricata يأتي من مقال فرز التنبيهات. وهذا يربط المنصة بالمنهج، فالمتدرب لا يحفظ إجابة، وإنما يشغل المختبر ويقرأ مخرجه، والمنصة تتحقق أنه قرأه صحيحاً.

تجربة عملية: أسبوع تمارين على CTFd

الآن نشغل CTFd على سيرفر، ونصنع أسبوع تمارين ذاتية التصحيح لمرحلة المراقبة SOC من المنهج، ونسجل دفعة من اثني عشر متدرباً، ثم نرى التصحيح الفوري ولوحة النتائج. ونشغلها بقاعدة بيانات SQLite داخل الـ Container نفسه لتبقى خفيفة، ومنفذها على 127.0.0.1 فقط.

تشغيل CTFd وإعداده

نشغل المنصة بـ Container واحد، ونوجهها إلى قاعدة SQLite داخله:

docker run -d --name sci-ctfd -p 127.0.0.1:18915:8000 \
  -e DATABASE_URL=sqlite:////opt/CTFd/CTFd/ctfd.db -e WORKERS=1 ctfd/ctfd:3.8.9
curl -s -o /dev/null -w "http %{http_code}\n" http://127.0.0.1:18915/setup
docker stats --no-stream --format '{{.Name}} {{.MemUsage}}' sci-ctfd
http 200
sci-ctfd 114.6MiB / 31.29GiB

أربع عشرة ومئة ميجابايت من الذاكرة لمنصة كاملة فيها تسجيل دخول وتحديات ولوحة نتائج، وهذا يعني أنها تعمل على نفس سيرفر المختبر المشترك دون أن تثقله. ثم نكمل الإعداد الأول من المتصفح على http://127.0.0.1:18915/setup: اسم المسابقة، وحساب المدير، ونجعل رؤية التحديات والحسابات خاصة Private حتى لا يراها إلا من سجل دخوله. وبعد الإعداد نأخذ رمز وصول API Token من صفحة الإعدادات، لنصنع التمارين والمتدربين بسكربت بدل الإدخال اليدوي.

صنع أسبوع التمارين والدفعة

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

"""Seeds the cohort CTF: one week of self-check exercises (challenges + flags) and the intern cohort (users).
   Each exercise is graded automatically by its flag, so the intern knows at once whether the answer is right."""
import json, sys, urllib.request

BASE = "http://ctfd:8000"
TOKEN = sys.argv[1]
def api(method, path, body=None):
    data = json.dumps(body).encode() if body is not None else None
    req = urllib.request.Request(BASE + path, data=data, method=method,
        headers={"Authorization": f"Token {TOKEN}", "Content-Type": "application/json"})
    return json.load(urllib.request.urlopen(req))

# Week-4 (SOC) self-check exercises: each has one correct flag, graded instantly
CHALLENGES = [
    ("اقرأ السجل: كم محاولة فاشلة؟", "المراقبة SOC", 100,
     "في ملف auth.log في المختبر المشترك، كم سطراً فيه «Failed password»؟ العلم Flag هو ARABROOT{العدد}.",
     "ARABROOT{10}"),
    ("من أي عنوان جاء الهجوم؟", "المراقبة SOC", 100,
     "ما عنوان IP الذي خمّن كلمات المرور ثم دخل؟ العلم هو ARABROOT{العنوان}.",
     "ARABROOT{10.251.15.21}"),
    ("الحساب المخترق", "المراقبة SOC", 150,
     "ما اسم الحساب الذي قبل السيرفر دخوله بعد المحاولات الفاشلة؟", "ARABROOT{deploy}"),
    ("قاعدة Suricata: ما نوعها؟", "المراقبة SOC", 150,
     "القاعدة التي تطلق على رد السيرفر لا على طلب العميل: هل هي success أم attempt؟", "ARABROOT{success}"),
    ("الفرز: هل هذا إنذار خاطئ؟", "المراقبة SOC", 200,
     "تنبيه id check على صفحة ثابتة وضعها القسم: True Positive أم False Positive؟ أرسل FP أو TP.",
     "ARABROOT{FP}"),
]
for name, cat, val, desc, flag in CHALLENGES:
    c = api("POST", "/api/v1/challenges", {"name": name, "category": cat, "value": val,
            "description": desc, "state": "visible", "type": "standard"})["data"]
    api("POST", "/api/v1/flags", {"challenge_id": c["id"], "content": flag, "type": "static"})
    print(f"challenge {c['id']}: {name}  (flag {flag})")

# the cohort: 12 interns as CTFd users
for i in range(1, 13):
    api("POST", "/api/v1/users", {"name": f"intern-{i:02d}", "email": f"intern{i:02d}@lab.local",
        "password": f"Lab-Intern-{i:02d}", "type": "user", "verified": True})
print("created 12 cohort users")

نشغله من Container فيه Python على نفس شبكة CTFd، حتى تبقى الحروف العربية سليمة، فعندما أنشأنا أول تمرين بالأمر curl من Git Bash على Windows وصلت الأسماء العربية إلى المنصة علامات استفهام، فحذفناه وانتقلنا إلى Python:

docker network create sci-intern-ctf-net
docker network connect sci-intern-ctf-net sci-ctfd --alias ctfd
MSYS_NO_PATHCONV=1 docker run --rm --network sci-intern-ctf-net -v "$(pwd -W):/w" -w /w \
  python:3.13.17-slim python seed_ctf.py "<API-TOKEN>"
challenge 2: اقرأ السجل: كم محاولة فاشلة؟  (flag ARABROOT{10})
challenge 3: من أي عنوان جاء الهجوم؟  (flag ARABROOT{10.251.15.21})
challenge 4: الحساب المخترق  (flag ARABROOT{deploy})
challenge 5: قاعدة Suricata: ما نوعها؟  (flag ARABROOT{success})
challenge 6: الفرز: هل هذا إنذار خاطئ؟  (flag ARABROOT{FP})
created 12 cohort users

والصورة التالية صفحة التحديات في المنصة كما يراها متدرب بعد تسجيل دخوله، وقد حل التمرين الأول فظهر بالأخضر:

صفحة التحديات في CTFd بالعربية بعنوان التحديات وفئة المراقبة SOC، وخمسة تمارين: اقرأ السجل كم محاولة فاشلة بـ 100 نقطة وهو أخضر أي محلول، ومن أي عنوان جاء الهجوم 100، والحساب المخترق 150، وما نوعها قاعدة Suricata 150، والفرز هل هذا إنذار خاطئ 200، وفي الأسفل مبني على CTFd
واجهة CTFd العربية: التمرين المحلول بالأخضر، وكل تمرين بقيمته بالنقاط

التصحيح الفوري ولوحة النتائج

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

user 2 submitted ARABROOT{10} -> recorded True
user 3 submitted ARABROOT{12} -> recorded True
user 4 submitted ARABROOT{10} -> recorded True
scoreboard top: [('intern-01', 100), ('intern-03', 100)]
submissions total: 3

في المخرج أعلاه لاحظ التالي:

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

والصورة التالية لوحة النتائج كما تظهر في المنصة، وفيها المتدربان المتصدران والرسم البياني لتقدمهما:

لوحة النتائج في CTFd بالعربية بعنوان لوحة النتائج ورسم بياني Top 10 Users يظهر فيه intern-01 وintern-03 عند 100 نقطة، وجدول تحته بعمود Place ومستخدم ونتيجة: المركز 1 intern-01 بـ 100، والمركز 2 intern-03 بـ 100
المدير يرى من أنهى بلمحة، فيوجه ساعته القليلة إلى من لم يظهر في اللوحة

ولاحظ أن التمارين ذاتية التصحيح لا تلغي التسليمات التي يقرؤها الإنسان، وإنما تكملها: فالعد والاستنتاج والأرقام لها علم واحد تصححه المنصة، أما الفقرة المكتوبة التي تشرح القرار، والتقرير، وقاعدة الكشف، فهذه يقرؤها القائد والمدير، لأنها تقيس الفهم لا الدقة فقط. والقاعدة: ما له إجابة واحدة يذهب إلى CTFd، وما يحتاج قراءة يبقى للإنسان.

حذف المختبر Cleanup

docker rm -f sci-ctfd
docker network rm sci-intern-ctf-net
docker image rm ctfd/ctfd:3.8.9

الأسبوع صفر: الاستقبال بالجملة دون أن يضيع أحد

في برنامج من ثلاثة متدربين يستطيع المدير أن يجهز لكل واحد جهازه وحساباته بيده في اليوم الأول، وفي دفعة من اثني عشر أو عشرين يصبح هذا وحده أسبوعاً من العمل، ويقضي المتدربون أيامهم الأولى في انتظار الصلاحيات، وهذا أسوأ انطباع أول ممكن. لذلك يجهز الأسبوع صفر قبل وصول الدفعة، بنفس منطق الأتمتة الذي بنينا به منصة CTFd:

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

وفي آخر يوم من الدفعة يجري العكس بنفس السكربت: تعطيل حسابات المختبر وCTFd والقناة لكل من أنهى، وحذف أي نسخة بيانات، وهذا يغلق باباً يبقى مفتوحاً في كثير من البرامج: حسابات متدربين قدامى ما زالت تعمل بعد أشهر من خروجهم. وهذا نفس منطق دورة حياة الحساب في دورة حياة حساب الموظف JML: كل باب يفتح عند الدخول يغلق عند الخروج في نفس اليوم.

وماذا عن التدريب عن بعد أو الهجين؟

كثير من المتقدمين في البرامج الكبيرة من مدن أخرى، والسؤال الطبيعي: هل يعمل هذا النظام عن بعد؟ والإجابة أن أغلب قطعه مصممة لذلك أصلاً: نظام ATS ومهمة الفرز على الإنترنت، والمنهج مقالات منشورة، ومنصة CTFd تعمل من المتصفح، والأسئلة في قناة مكتوبة، وساعة المراجعة يمكن أن تكون مكالمة فيديو. والقطعة التي تحتاج تفكيراً هي المختبر المشترك، فالوصول إليه من خارج الجهة يحتاج طريقاً آمناً، مثل شبكة خاصة افتراضية VPN أو بوابة وصول تعرف الهوية، لا منفذاً مفتوحاً على الإنترنت، وقد شرحنا البدائل في أدوات الوصول الآمن إلى السيرفرات. والقاعدة أن المتدرب عن بعد يصل إلى المختبر وحده، لا إلى شبكة الجهة، وأن حسابه يغلق في آخر يوم كما في الاستقبال بالجملة.

وما يخسره البرنامج عن بعد هو التعلم العارض: السؤال الذي يسأله المتدرب لزميله على المكتب المجاور، والحديث الذي يسمعه عن حادثة حقيقية يمر بها الفريق. لذلك يحتاج البرنامج عن بعد قناة أكثر نشاطاً، وقادة أقران يبادرون بالسؤال عن مجموعتهم بدل أن ينتظروا، وعرضاً أسبوعياً لا يلغى أبداً، لأنه المكان الوحيد الذي تلتقي فيه الدفعة كلها.

كيف تختار قادة الأقران بالأدلة؟

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

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

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

العمل الحقيقي الآمن: ماذا يسلم المتدرب؟

البرنامج الكبير يحتاج عملاً حقيقياً يعطيه المتدربون قيمة، لكنه حقيقي وآمن في آن واحد، أي لا يمس بيانات حقيقية ولا أنظمة إنتاج. والصورة التالية تجمع ما يسلمه المتدرب:

أربع بطاقات خضراء: قواعد كشف في المختبر قاعدة Wazuh أو Suricata تطلق على سيناريو مع سجل اختبار يثبتها، وتوثيق ومواد توعية دليل خطوة بخطوة أو رسائل توعية مبنية على حوادث المختبر، وتقوية سيرفرات المختبر سكربت تقوية وفرق Lynis قبل وبعد، ومساهمات مفتوحة المصدر إصلاح صغير أو توثيق باسم المتدرب، وبطاقة برتقالية مراجعة بيانات مجهولة للقراءة فقط بعد إزالة المعرفات المباشرة وغير المباشرة نسخة للقراءة فقط باتفاقية موقعة ومشرف مسمى بالاسم على جهاز مخصص، وملاحظة أن كل هذا في المنطقة الخضراء من قواعد السلامة مختبر معزول أو بيانات مجهولة للقراءة فقط لا إنتاج ولا بيانات شخصية حقيقية
كله في المنطقة الخضراء: مختبر معزول، أو بيانات مجهولة للقراءة فقط باتفاق ومشرف مسمى
  • قواعد كشف Detection Rules في المختبر: قاعدة Wazuh أو Suricata لسيناريو من سيناريوهات القسم، مع سجل اختبار يثبت أنها تطلق على الهجوم ولا تطلق على العمل العادي.
  • توثيق ومواد توعية: دليل خطوة بخطوة لعملية يكررها القسم، أو رسائل توعية ببرنامج التصيد كما في مقال التوعية، مبنية على حوادث المختبر لا على بيانات حقيقية.
  • تقوية سيرفرات المختبر: سكربت يطبق التعديلات، وفرق Lynis قبل وبعد، على سيرفر في المختبر لا في الإنتاج.
  • مساهمات مفتوحة المصدر: إصلاح صغير أو توثيق في مشروع مفتوح، باسم المتدرب، وهو عمل حقيقي يراه العالم دون أن يمس بيانات أحد.
  • مراجعة بيانات مجهولة للقراءة فقط (استثناء): إذا احتاج القسم أن يرى المتدرب شكل بيانات حقيقية، فالطريق نسخة مجهولة الهوية في مجلد للقراءة فقط، باتفاقية موقعة، ومشرف مسمى بالاسم مسؤول عنها.

وقواعد السلامة هنا هي نفسها في خطة التدريب: العمل في المختبر المعزول، والأدوات الهجومية بإذن مكتوب ونطاق، ولا بيانات شخصية حقيقية، ولا وصول إلى الإنتاج، والبيانات مجهولة الهوية للقراءة فقط استثناء باتفاق ومشرف. ولاحظ أن إخفاء الهوية في اللائحة التنفيذية لنظام حماية البيانات الشخصية يعني استحالة إعادة التعرف، لا مجرد استبدال الاسم برمز، لذلك الأسلم أن تولد بيانات التدريب، وقد شرحنا ذلك في حماية البيانات الشخصية PDPL.

ما لا تفعله: خدمة أمنية لعملاء خارجيين بمتدربين

عندما يكبر البرنامج ويصبح فيه عشرات المتدربين الذين يفرزون التنبيهات في المختبر، تأتي فكرة تبدو ذكية: لماذا لا نحول هذا إلى مركز عمليات أمنية SOC يقدم المراقبة لعملاء خارجيين، ويشغله المتدربون؟ وهذه الفكرة خطيرة من ثلاث جهات، والصورة التالية تبينها:

الفكرة الخطيرة أن تحول برنامج التدريب إلى مركز عمليات SOC يبيع المراقبة لعملاء خارجيين ويشغله متدربون بلا مشرف مسمى، وثلاث جهات خطر: التسجيل والترخيص NCA تسجيل مقدمي خدمات الأمن السيبراني متطلب نظامي وخدمات مثل مركز العمليات الأمنية المدار MSOC لها ترخيص خاص بمستويات، ومسؤولية البيانات الشخصية PDPL سجلات العملاء بيانات شخصية ومسؤوليتها عليك جهة تحكم لا على متدرب، والمساءلة عن التنبيه الفائت إن فات متدرب بلا إشراف تنبيهاً حقيقياً عند عميل فالمساءلة على مؤسستك، وملاحظة أن المراجع من الصفحات الرسمية فقط وهذا شرح لا استشارة نظامية
التدريب الداخلي شيء، وبيع خدمة أمنية لعملاء خارجيين شيء آخر له التزامات نظامية
  • التسجيل والترخيص لدى الهيئة الوطنية للأمن السيبراني: تذكر صفحة التسجيل والترخيص أن الهيئة أطلقت في 25 أبريل 2022 منصة لتسجيل كل جهة تقدم حلولاً أو خدمات أو منتجات للأمن السيبراني في المملكة، وأن التسجيل أصبح متطلباً تنظيمياً من 1 أغسطس 2022، وأن من يجب أن يسجل هو «أي جهة تقدم حلولاً أو خدمات أو منتجات للأمن السيبراني في المملكة». وتذكر الصفحة نفسها أن خدمات مركز العمليات الأمنية المدار Managed Security Operations Center، واختصاراً MSOC، لها ترخيص خاص بمستويات Tiers. أي أن بيع خدمة مراقبة أمنية لجهات أخرى ليس نشاطاً حراً، وله إطار تنظيمي يجب أن تراجعه قبل أن تفكر فيه، فضلاً عن أن تشغله بمتدربين.
  • مسؤولية البيانات الشخصية PDPL: سجلات العميل التي يراقبها مركز العمليات تحمل بيانات شخصية لموظفيه وعملائه، وأنت عندما تعالجها تصبح جهة معالجة أو تحكم بحسب الاتفاق، وتقع عليك التزامات نظام حماية البيانات الشخصية، لا على المتدرب. والمتدرب بلا إشراف يصل إلى هذه البيانات هو بالضبط ما تمنعه قواعد السلامة.
  • المساءلة عن التنبيه الفائت: مركز العمليات الذي يعدك بمراقبة عميل مسؤول عما يفوته، فإن فات متدرب بلا خبرة ولا مشرف مسمى تنبيهاً حقيقياً أدى إلى اختراق العميل، فالمساءلة على مؤسستك لا على المتدرب الذي لم يكن يفترض أن يحمل هذه المسؤولية أصلاً.
⚠️
المعلومات النظامية أعلاه منقولة من الصفحات الرسمية للهيئة الوطنية للأمن السيبراني وسدايا كما كانت عند كتابة المقال، وهي شرح لا يغني عن مراجعة المختص النظامي والموارد البشرية في جهتك قبل أي قرار، وهذه القرارات تعدل. وقد شرحنا الضوابط المتخصصة ومن تنطبق عليه في ضوابط الهيئة الوطنية.

والخلاصة أن التدريب الداخلي، حيث يعمل المتدرب في مختبر معزول على بيانات مولدة ويسلم عملاً آمناً، شيء مسموح ومفيد، أما تقديم خدمة أمنية لعملاء خارجيين فشيء آخر له إطاره النظامي ومسؤولياته، ولا يخلط بينهما لمجرد أن البرنامج كبر وصار فيه متدربون كثيرون.

الإطار النظامي للتدريب في المملكة

برنامج التدريب نفسه، لا الخدمة الأمنية، له إطار نظامي من وزارة الموارد البشرية والتنمية الاجتماعية، وقد لخصناه بالتفصيل من المصادر الرسمية في المقال الأول من السلسلة، وأهم ما يخص البرنامج الكبير:

  • قرار التدريب التعاوني للطلاب (القرار الوزاري 84806، نفذ في 1 يناير 2024، في صفحته الرسمية) يلزم المنشآت التي تضم 50 عاملاً فأكثر بتأهيل الطلاب في إطار تدريب تعاوني بما لا يقل عن 2% من إجمالي العاملين، مع عقد مكتوب، ومسؤول عن أنشطة التدريب، وملف لكل متدرب فيه تقارير دورية.
  • قرار تدريب الخريجين والباحثين عن عمل (القرار الوزاري 116264، نفذ في 18 أبريل 2026، في صفحة القرار) يلزم المنشآت التي تضم 50 عاملاً فأكثر بطرح فرص تدريب على رأس العمل للخريجين والباحثين عن عمل من المواطنين بما لا يقل عن 2% من العاملين، بمدة بين شهرين وستة أشهر، مع خطة تدريب وموظف مسؤول عن الإشراف والتقييم وشهادة عند الإكمال، كما لخصناه من دليله الإجرائي في المقال الأول.
  • الأشياء نفسها التي يطلبها القراران، أي خطة تدريب مكتوبة ومشرف مسؤول وتقييم دوري بتقارير، هي نفسها التي يحتاجها البرنامج الجيد، فالبرنامج النظامي والبرنامج الجيد يحتاجان نفس الأساسيات.

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

أسبوع المدير: أين تذهب الساعات الثلاث؟

كل ما سبق يعيدنا إلى سؤال البداية: هل يكفي وقت المدير فعلاً؟ والجواب يعتمد على أن تكون ساعاته محددة ومحمية في تقويمه، لا موزعة على اليوم كله بالمقاطعات. وهذا شكل أسبوع المدير في برنامج من دفعة واحدة باثني عشر متدرباً وثلاثة قادة:

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

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

ماذا تقيس بعد كل دفعة؟

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

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

وهذه الأرقام تنتج عن البرنامج نفسه، ويصدرها CTFd ونظام ATS، فمراجعتها بعد كل دفعة ساعة واحدة تقود إلى تعديلات صغيرة في التمارين والأوراق قبل الدفعة التالية. وهذا هو الفرق بين برنامج يكرر نفسه وبرنامج يتحسن.

نهاية الدفعة: القرار، والمتدربون السابقون

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

أخطاء شائعة

  • القبول العشوائي عند زيادة الطلبات: فتقبل من وصل أولاً لا الأفضل، والحل مهمة فرز آلية بنسخة لكل متقدم.
  • التدفق المستمر بدل الدفعات: فتشرح الأسبوع الأول عشرات المرات، والحل دفعات فصلية تبدأ معاً.
  • بناء منهج جديد بدل مقالات الموقع: فتستهلك وقتك في الشرح، والحل منهج ذاتي القيادة بأوراق أسبوعية تعاد مع كل دفعة.
  • اختيار قادة الأقران في اليوم الأول: قبل أن ترى العمل الحقيقي، فتختار أقوى سيرة لا أقوى متدرب.
  • تحميل القادة فوق طاقتهم: فيتحولون إلى مشرفين مجانيين، والحد ساعتان في الأسبوع.
  • التصحيح اليدوي لكل شيء: فيختنق المدير، والحل منصة CTF للتمارين ذاتية التصحيح، ويبقى للإنسان ما يحتاج قراءة.
  • حساب مشترك على المختبر أو على CTFd: يجعل لوحة النتائج ومن فعل ماذا بلا معنى.
  • تحويل البرنامج إلى خدمة أمنية لعملاء خارجيين بمتدربين: له التزامات تسجيل وترخيص ومسؤولية بيانات ومساءلة، ولا يخلط بالتدريب الداخلي.
  • إهمال المشرف المسؤول: فالإطار النظامي يشترطه، وقادة الأقران لا يحلون محله.

قائمة تحقق للبرنامج الكبير

البندمتىجاهز؟
نظام ATS يستقبل الطلبات ويرسل مهمة الفرز ويسجل الدرجةقبل الإعلان☐
مهمة فرز آلية بنسخة مختلفة لكل متقدم، مع معيار مكتوبقبل الإعلان☐
تقويم دفعات فصلية، وقائمة انتظار للطلبات بين الدفعاتقبل الإعلان☐
أوراق أسبوعية تربط مقالات الموقع بمختبراتها وتمارين CTFقبل الدفعة بأسبوعين☐
CTFd على سيرفر المختبر، بتمارين لها علم واحد، وحساب لكل متدربقبل الدفعة بأسبوع☐
سيرفر مختبر مشترك معزول، ولقطة Snapshot نظيفةقبل الدفعة بأسبوع☐
معيار اختيار قادة الأقران بالأدلة بعد الأسبوع الثانيالأسبوع الثاني☐
ساعة مراجعة أسبوعية ثابتة في تقويم المديركل أسبوع☐
قائمة مشاريع ومهام آمنة كلها في المختبرقبل منتصف الدفعة☐
مشرف مسؤول مسمى وتقييم دوري بتقارير (متطلب نظامي)طوال البرنامج☐
عدم تقديم أي خدمة أمنية خارجية بمتدربين قبل مراجعة المختص النظاميدائماً☐

الخلاصة

  • المشكلة في البرنامج الكبير ليست العدد وحده، وإنما أن القبول العشوائي لا يتوسع في العدل والإشراف الفردي لا يتوسع في الوقت.
  • انقل كل عمل متكرر إلى نظام أو سكربت أو قائد: ATS بمهمة فرز آلية، ودفعات فصلية، ومنهج ذاتي القيادة، وقادة أقران، ومنصة تصحيح ذاتي، ويبقى للمدير القرار بوقت قليل.
  • الدفعة الواحدة تجعل الورقة تكتب مرة والسؤال يجاب مرة، والتدفق المستمر يكرر الشرح ويترك كل متدرب وحيداً.
  • CTFd منصة خفيفة (115 ميجابايت في التجربة) للتمارين ذاتية التصحيح: علم واحد لكل تمرين، تصحيح فوري، ولوحة نتائج يرى فيها المدير من تعثر، ويبقى للإنسان ما يحتاج قراءة.
  • العمل الحقيقي الآمن كله في المختبر أو على بيانات مجهولة للقراءة فقط باتفاق ومشرف: قواعد كشف، وتوثيق، وتقوية، ومساهمات مفتوحة.
  • لا تحول البرنامج إلى خدمة أمنية لعملاء خارجيين بمتدربين: لها التزامات تسجيل وترخيص لدى الهيئة الوطنية للأمن السيبراني، ومسؤولية بيانات شخصية، ومساءلة عن التنبيه الفائت.
  • الإطار النظامي للتدريب من وزارة الموارد البشرية يشترط مشرفاً مسؤولاً وتقييماً دورياً، وهو نفسه ما يبنيه البرنامج الجيد.
  • الاستقبال والخروج بالجملة بسكربت: حسابات تنشأ من قائمة ATS قبل اليوم الأول، وتغلق كلها في آخر يوم، فلا ينتظر متدرب صلاحياته ولا يبقى حساب قديم مفتوحاً.
  • قس بعد كل دفعة من الأرقام التي تنتجها الأنظمة نفسها: نسبة الحل لكل تمرين، والتلميحات المأخوذة، ونسبة الإكمال، والعلاقة بين درجة الفرز والنجاح، ثم عدل التمارين والأوراق قبل الدفعة التالية.

وأقرب المقالات إلى هذا الموضوع:

دليلخطة تدريب Internship في الأمن السيبراني لـ 8 أو 12 أسبوعاًخطة تدريب كاملة لقسم أمن يستقبل طلبات كثيرة بوقت مشرف قليل: فرز بمهمة حقيقية، ودفعات، ومختبر مشترك، ومعيار تقييم.دليلإدارة المتدربين Interns من الاستقطاب إلى قرار التوظيفكيف تستقطب المتدربين وتختارهم بعدل وتتابعهم أسبوعياً وتقيمهم بمعيار واضح حتى قرار التوظيف، مع القوالب والأدوات وأسعارها.دليلتخطيط برنامج التدريب Internship في 12 أسبوعاًكيف تحدد أهداف برنامج التدريب وميزانيته وتختار المشرفين والمشروع، مع خطة اثني عشر أسبوعاً وقوالب جاهزة للنسخ.دليلنظام توظيف على سيرفرك مع Frappe HR: تجربة كاملةنبني Frappe HR في Docker ونمر بالتوظيف كاملاً مع ثلاثة متقدمين، ونختبر الفرز الآلي على سير ذاتية عربية وإنجليزية.دليلأدوار الأمن السيبراني Careers: ماذا يعمل كل دور، ومن أين تبدأ؟تسعة أدوار في الأمن السيبراني من المراجع الرسمية: اليوم العادي والمهارات والأدوات، ومن أي مستوى يبدأ كل دور.دليلبرامج تدريب Internship في شركات تقنية: ماذا نتعلم منها؟برامج تدريب موثقة من Microsoft وShopify وCloudflare وAsana وجهات سعودية، وما يميز كل منها وما تأخذه منها شركة صغيرة.

سجل التحديثات

  • أكتوبر 2026: كتابة المقال، وتشغيل CTFd 3.8.9 على Docker Engine 29.8.0 بقاعدة SQLite (ذاكرة 115 ميجابايت)، وصنع خمسة تمارين ذاتية التصحيح ودفعة من 12 متدرباً، ورؤية التصحيح الفوري ولوحة النتائج، بسكربت Python 3.13.17.
Could not load content
نشرة عرب رووت | ArabRoot

معرفة تستحق مكاناً في بريدك.

مقالات مختارة وأدوات مفيدة وأفكار لمشروعك القادم، في رسالة واحدة كل أسبوع.

يمكنك إلغاء الاشتراك متى شئت. الخصوصية

تم استلام طلبك. افتح بريدك واضغط رابط التأكيد لإتمام الاشتراك.