يبحث كثير من مسؤولي أمن المعلومات في شركات الدفع السعودية عن إجابة عملية لسؤال واحد: ما الذي نعلّمه لمطورينا أولًا؟ وفي موضوع PCI DSS 6.4.3 تدريب البرمجة الآمنة، الخطأ الشائع هو البدء بقوائم عامة للثغرات، بينما يحتاج المطور إلى فهم الثغرات التي تظهر فعليًا في صفحات الدفع. يعرض هذا المقال ترتيبًا مقترحًا للأولويات، ويبيّن كيف يُوثَّق التدريب بصورة تصمد أمام التحقق السنوي.
تنبيه مهم: ينبغي أن ترجعوا إلى نص المعيار الصادر عن مجلس معايير أمن PCI وإلى مقيّمكم المعتمد لتأكيد رقم المتطلب وصياغته الدقيقة في الإصدار 4.0، فالمقال يعالج المبدأ العملي ولا يغني عن النص الرسمي. كما أن الأرقام المتداولة عن نسب انخفاض الثغرات لا تستند هنا إلى بيانات مثبتة، ولذلك لا نعتمد عليها.
لماذا تفشل برامج التدريب المعتادة
يتطلب المعيار أن يكون المطورون مدرَّبين على أساليب البرمجة الآمنة المناسبة لأدوارهم ولغاتهم. غير أن الامتثال الشكلي، أي حضور دورة عامة وتوقيع قائمة الحضور، لا يغيّر جودة الشيفرة. وتظهر الفجوة عادة في ثلاث صور:
- محتوى نظري واسع لا يرتبط بتدفق الدفع الذي يبنيه الفريق.
- تدريب موحّد لجميع الأدوار، فيتلقى مطور الواجهة ما يتلقاه مطور الخدمات الخلفية.
- غياب أي رابط بين التدريب ونتائج الفحص السابقة، فلا يُعرف هل تغيّر شيء.
الممارسة الأولى: التحقق من المدخلات في معاملات صفحة الدفع
إذا كان على الفريق أن يتبنى ممارسة واحدة أولًا، فالأجدر أن تكون التحقق من المدخلات لكل معلمة تدخل صفحة الدفع أو تخرج منها. والسبب منطقي: صفحة الدفع نقطة تلتقي فيها بيانات يتحكم بها المستخدم مع بيانات حساسة ومع أنظمة خلفية، فيكون أثر أي خلل في المعالجة مباشرًا.
وتشمل الممارسة عمليًا:
- حصر كل معلمة تستقبلها الصفحة: حقول النموذج، والترويسات، وملفات تعريف الارتباط، ومعلمات الرابط، واستجابات بوابة الدفع.
- تحديد القيمة المقبولة لكل معلمة: النوع والطول والصيغة والنطاق.
- تطبيق التحقق على الخادم، وعدم الاكتفاء بالتحقق في المتصفح.
- ترميز المخرجات بحسب سياق عرضها.
- رفض ما لا يطابق القاعدة بدل محاولة تنظيفه.
ميزة هذه الممارسة أنها قابلة للقياس في المراجعة البرمجية وفي الفحص، ويمكن ربطها بحالات اختبار واضحة.
الوحدات التدريبية الأربع
نقترح بناء البرنامج على أربع وحدات، تُدرَّس بأمثلة من تدفقات الدفع لدى المؤسسة نفسها:
الوحدة الأولى: التحقق من المدخلات وترميز المخرجات
تطبيق الممارسة السابقة على معلمات الصفحة الفعلية، مع تدريب على كتابة اختبارات وحدة تثبت رفض المدخلات الخاطئة.
الوحدة الثانية: الحقن والبرمجة عبر المواقع
حقن الاستعلامات والأوامر، والبرمجة عبر المواقع في حقول الدفع وصفحات الخطأ والإيصال، وأثرها على سرقة بيانات البطاقة من المتصفح. وتتصل هذه الوحدة بحماية السكربتات المحمّلة في صفحة الدفع، وهو محور يتناوله المعيار في الإصدار 4.0.
الوحدة الثالثة: إدارة الجلسات والمصادقة والتحكم في الوصول
التعامل الآمن مع الجلسات ورموز المعاملات، ومنع التلاعب بمعرّفات الطلبات والمبالغ، والتحقق من الصلاحيات في كل طلب.
الوحدة الرابعة: معالجة الأخطاء والتسجيل وحماية البيانات
عدم كشف تفاصيل داخلية في رسائل الخطأ، وعدم تسجيل بيانات البطاقة في السجلات، وإدارة الأسرار ومفاتيح التكامل مع بوابات الدفع.
تسلسل التنفيذ المقترح
- حدّدوا النطاق أولًا: أي الأنظمة والفرق تلمس صفحات الدفع وبيانات البطاقات؟ التدريب يخص هذه الفرق قبل غيرها.
- راجعوا نتائج الفحوص السابقة: رتّبوا الوحدات بحسب الثغرات المتكررة لديكم.
- اربطوا الوحدة بالدور: مطور الواجهة والخدمات الخلفية ومراجع الشيفرة لكل منهم مسار.
- أضيفوا تمرينًا تطبيقيًا: مختبر على نسخة معزولة من تدفق الدفع.
- قيسوا الأثر: قارنوا نتائج المراجعة البرمجية والفحص قبل التدريب وبعده.
أدلة الإنجاز للتحقق السنوي
يحتاج المقيّم إلى دليل يربط الشخص بالدور وبالمحتوى وبالتاريخ. ونوصي بسجل بسيط يتضمن:
- اسم المتدرب ودوره واللغة أو الإطار الذي يعمل به.
- الوحدة المنجزة وتاريخها وإصدار المحتوى.
- نتيجة التقييم أو التمرين التطبيقي.
- ما يربط الوحدة بنتيجة فحص أو ثغرة سابقة.
- موعد التجديد السنوي، وسجل المتأخرين وخطة استدراكهم.
هذا الشكل يجيب عن أسئلة المقيّم دون جهد إضافي، ويُظهر أن التدريب جزء من دورة التطوير لا إجراء منفصل.
علامات أن الوقت مناسب للبدء
- اقتراب تقييم PCI DSS الإصدار 4.0 أو استبيان التقييم الذاتي.
- تكرار الثغرات نفسها في نتائج اختبار الاختراق.
- تدريب قائم لا يمكن إثبات صلته بأدوار المطورين.
- تغيّر تصميم صفحة الدفع أو مزوّد البوابة.
ما يبدو عليه الناتج الجيد
برنامج ناجح يعني أن كل مطور يمس تدفق الدفع مدرَّب بحسب دوره، وأن المراجعات البرمجية تلتقط أخطاء التحقق من المدخلات مبكرًا، وأن سجل الإنجاز جاهز عند طلبه. ويبقى التدريب جزءًا من الاستعداد الأشمل للمعيار.
كيف نعمل معكم
يتعامل التدريب مع جزء واحد من متطلبات المعيار، ونتناوله ضمن خدمة الجاهزية والالتزام بمعيار PCI DSS. نجهزكم لمعيار PCI DSS الإصدار 4.0: تحديد النطاق والتقسيم، وتقييم الفجوات، ودعم المعالجة، والجاهزية لتقييم المقيّم المعتمد أو استبيان التقييم الذاتي. وتسير الخدمة في أربع مراحل: النطاق وتدفقات بيانات البطاقات والتقسيم، ثم تحليل فجوات المتطلبات، ثم دعم سد الفجوات، ثم الأدلة والمراجعة السابقة للتقييم. وتتضمن مخرجاتها وثيقة النطاق ومخططات تدفق البيانات، وتقرير تقييم الفجوات، وخطة المعالجة، وحزمة الأدلة للتقييم. وتستغرق الخدمة من 6 إلى 12 أسبوعًا.
الخطوة التالية
إذا كنتم تستعدون للإصدار 4.0 وتريدون معرفة موقع تدريب مطوريكم من متطلبات المعيار، فابدؤوا بتقييم الفجوات. تواصلوا معنا لمناقشة نطاق الاستعداد في مؤسستكم.
