رسم توضيحي لخدمة Key Protect يُظهر قفلًا ومفتاحًا داخل مكعب أزرق آمن، مع سحب وعناصر بيانات أخرى

ما المقصود بالبرمجة الآمنة؟

تعريف البرمجة الآمنة

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

وتُعد البرمجة الآمنة جزءًا أساسيًا من دورة حياة تطوير البرمجيات الآمنة (SSDLC). وعلى خلاف دورة حياة تطوير البرمجيات التقليدية (SDLC)، التي لا يُؤخذ فيها الأمن في الحسبان إلا خلال مرحلة الاختبار، تدمج دورة حياة تطوير البرمجيات الآمنة الأمن الإلكتروني في كل مرحلة من مراحل عملية تطوير البرمجيات. وليس أمن التعليمات البرمجية مجرد أمر يُفكَّر فيه لاحقًا، أو إضافة اختيارية، أو جانبًا منفصلًا، بل هو عنصر أساسي في بناء برمجيات آمنة.

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

ووفقًا لمؤشر X-Force Threat Intelligence Index لعام 2026 الصادر عن IBM، أصبح استغلال الثغرات السبب الرئيسي للهجمات. ويمكن أن يساعد التحول إلى نهج أكثر استباقية ووقائية، مثل البرمجة الآمنة، على كشف التهديدات قبل تفاقمها.

فوائد البرمجة الآمنة

توفر البرمجة الآمنة المزايا التالية:

  • الفعالية من حيث التكلفة: تقل تكلفة إصلاح الثغرات الأمنية قبل النشر عنها بعد الإصدار.

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

  • توفير الوقت والجهد: يمكن أن تساعد التعليمات البرمجية الآمنة على تجنب ما تتطلبه الاستجابة للحوادث ومعالجتها في الأنظمة العاملة من وقت وجهد كبيرين.

الثغرات الأمنية الشائعة التي تتم معالجتها بواسطة تقنيات البرمجة الآمنة

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

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

  • إخفاقات المصادقة

  • اختلال ضوابط الوصول

  • إخفاقات التشفير

  • هجمات الحقن

  • تصميم غير آمن

  • إخفاقات التسجيل والتنبيه

  • أخطاء في تهيئة الأمن

  • إخفاقات سلامة البرمجيات أو البيانات

إخفاقات المصادقة

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

اختلال ضوابط الوصول

تحدد ضوابط الوصول مَن يُسمح له بالوصول إلى البيانات أو الموارد، وما الإجراءات التي يُسمح له بتنفيذها. وقد يؤدي اختلال هذه الضوابط أو تطبيقها على نحو غير صحيح إلى وصول غير مصرّح به وإساءة استخدام الامتيازات. وقد تشمل التهديدات تعديل طلبات واجهة برمجة التطبيقات ومعلمات URL لتجاوز فحوصات ضوابط الوصول، أو مراجع الكائنات المباشرة غير الآمنة التي تتيح الإشارة مباشرة إلى البيانات أو الموارد باستخدام معرّفاتها الفريدة من دون التحقق من الأذونات.

إخفاقات التشفير

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

هجمات الحقن

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

البرمجة النصية عبر المواقع (XSS)

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

 
تزوير الطلبات عبر المواقع (CSRF أو XSRF)

أما تزوير الطلبات عبر المواقع (CSRF أو XSRF)، فيرسل طلبات غير مصرّح بها إلى موقع ويب انطلاقًا من مستخدم خضع للمصادقة. ويستغل هذا الهجوم الثقة التي يضعها الموقع في متصفح الويب الخاص بالمستخدم الذي خضع للمصادقة، مستخدمًا روابط أو برامج نصية تخدع المتصفح ليرسل طلبات ضارة إلى موقع مستهدف.

تزوير الطلبات من جانب الخادم (SSRF)

أما تزوير الطلبات من جانب الخادم (SSRF)، فيعمد إلى التلاعب بعناوين URL المرسلة إلى الخادم. وعندما يتعامل الخادم مع الطلب المتلاعب به من دون التحقق أولًا من صحة عنوان URL، يمكن استخدام هذا الطلب للاتصال بخدمات داخلية، مثل قواعد البيانات، أو قراءة الملفات، أو إعدادات الخادم، أو بيانات وصفية أخرى.

تصميم غير آمن

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

إخفاقات التسجيل والتنبيه

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

أخطاء في تهيئة الأمن

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

إخفاقات سلامة البرمجيات أو البيانات

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

الذكاء الاصطناعي التوليدي للبرمجة الآمنة

يمكن لبعض تقنيات الذكاء الاصطناعي التوليدي أن تساعد في البرمجة الآمنة. فعلى سبيل المثال، تستطيع منصات البرمجة القائمة على الذكاء الاصطناعي الوكيل، مثل Claude Code وIBM Bob، كشف الثغرات الأمنية واقتراح معالجات للتعليمات البرمجية غير الآمنة في الوقت الفعلي. كما يمكن لأدوات توليد التعليمات البرمجية بالذكاء الاصطناعي أن تساعد في إعادة هيكلة التعليمات البرمجية لتحسين الأمن.

ومع أن هذه الأدوات قادرة على أتمتة تطوير البرمجيات وتسريعه، فإن مساعدي البرمجة بالذكاء الاصطناعي ما يزالون بحاجة إلى توجيه لإنتاج تعليمات برمجية آمنة. ويجب على المبرمجين تقديم موجِّهات واضحة لا تحدد الوظائف المطلوبة فحسب، بل تحدد أيضًا متطلبات الأمن. فعلى سبيل المثال، يمكن توسيع موجِّه عام مثل "إنشاء دالة لتسجيل الدخول" ليصبح "إنشاء دالة لتسجيل الدخول تتحقق من مدخلات المستخدم من حيث التنسيق والطول المتوقعين"، بحيث يتضمن تعليمات للبرمجة الآمنة. يحتوي دليل Open Source Security Foundation على تعليمات نموذجية لمساعدة مساعدي الذكاء الاصطناعي على مراعاة أمن التعليمات البرمجية.

كما يمكن لفرق هندسة البرمجيات تقديم سياق يوجّه الذكاء الاصطناعي التوليدي نحو إنتاج تعليمات برمجية أكثر أمانًا. ويربط التوليد المعزز بالاسترجاع (RAG) أدوات المطورين المدعومة بالذكاء الاصطناعي بمعايير البرمجة الآمنة الداخلية. وبالنسبة إلى الفرق التي لا تمتلك إرشادات محددة، تمثل قواعد أمن الذكاء الاصطناعي التي تخص Secure Code Warrior نقطة انطلاق لإنتاج تعليمات برمجية مولَّدة بالذكاء الاصطناعي على نحو أكثر أمانًا.

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

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

أفضل ممارسات البرمجة الآمنة

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

ومع أنه من المتعذر ذكر جميع أفضل ممارسات البرمجة الآمنة، فإن هذه القائمة تمثل نقطة انطلاق، كما أن الجمع بين هذه الممارسات يمكن أن يعزز الوضع الأمني للمؤسسة.

  • اتبع معايير البرمجة الآمنة

  • دمج الأمن في التصميم

  • التحقق من المدخلات وتنقيتها وترميز المخرجات

  • تنفيذ بروتوكولات تشفير قوية

  • المصادقة والتفويض

  • إرساء آليات قوية للتسجيل وآليات آمنة لمعالجة الأخطاء

  • إجراء اختبارات أمنية شاملة

  • إدراج الأمن ضمن مراجعات التعليمات البرمجية

اتباع معايير البرمجة الآمنة

وتُعد هذه المعايير مراجع أساسية لدمج تقنيات البرمجة الآمنة بفاعلية في مهام سير العمل التطويري القائمة. كما توفر مرجعية أساسية مشتركة للبرمجة الآمنة عبر مشروعات البرمجيات.

دليل المطورين الصادر عن OWASP

ويُعد دليل المطورين الصادر عن OWASP مرجعًا يساعد المبرمجين على فهم كيفية إعداد تعليمات برمجية مصدرية آمنة وصياغتها. ويوضح هذا الدليل ممارسات البرمجة الآمنة التي لا تعتمد على تقنية بعينها، مع إبراز النقاط الرئيسية في أمن التعليمات البرمجية ضمن قوائم تحقق منقولة من الدليل المرجعي السريع المؤرشف OWASP Secure Coding Practices Quick Reference Guide.

كما توفر OWASP سلسلة من الأوراق المرجعية السريعة لتطبيق مبادئ البرمجة الآمنة والتصدي لطيف واسع من الثغرات الأمنية في التعليمات البرمجية.

معايير SEI CERT للبرمجة

وقد أعدَّ معهد هندسة البرمجيات في Carnegie Mellon University معايير SEI CERT Coding Standards، التي تقدم إرشادات للبرمجة الآمنة بلغات Android وC وC++ وJava وPerl. وتتضمن هذه المعايير قواعد وتوصيات وأمثلة على تعليمات برمجية متوافقة وأخرى غير متوافقة. وترتبط القواعد والتوصيات بتقييمات للمخاطر تُصنف بحسب مستوى الخطورة والاحتمال وتكلفة المعالجة، بما يساعد فرق هندسة البرمجيات على ترتيب أولويات جهودها.

إطار عمل NIST لتطوير البرمجيات الآمنة

وإلى جانب إطارها للأمن الإلكتروني الخاص بأمن المعلومات وإدارة مخاطر الأمن الإلكتروني، نشرت National Institute of Standards and Technology (NIST) أيضًا إطار تطوير البرمجيات الآمنة الخاص بها. يتألف إطار العمل من ممارسات عالية المستوى لتطوير البرمجيات الآمنة، قائمة على النتائج، مما يجعله مكمّلًا مثاليًا لمعايير OWASP وSEI CERT الأكثر تقنية.

دمج الأمن في التصميم

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

 

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

ولمزيد من المعلومات حول دمج الأمن في التصميم، يمكن للفرق الرجوع إلى الأوراق المرجعية السريعة الصادرة عن OWASP بشأن تصميم المنتجات الآمنة ونمذجة التهديدات، وإلى إطار Secure by Design Framework.

التحقق من المدخلات وتنقيتها وترميز المخرجات

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

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

التحقق من صحة المدخلات

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

تنقية المدخلات

أما تنقية المدخلات، فتشمل تنظيفها وتحويلها إلى صيغة آمنة. ويجب أن تُصمَّم هذه العملية بما يلائم لغة البرمجة أو إطار العمل المعني.

ففي HTML، على سبيل المثال، يمكن أن يساعد إفلات الأحرف الخاصة مثل & و< و> و" و' على منع هجمات XSS. كما يمكن أن تساعد مكتبات مثل DOMPurify في تنقية محتوى HTML.

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

ترميز المخرجات

ويتيح ترميز المخرجات عرض البيانات بأمان في صورة نص، حتى لا تُفسَّر على أنها تعليمات برمجية. وتأتي كثير من أطر العمل مزودة افتراضيًا بوسائل حماية لترميز المخرجات، أو بوظائف تلقائية للترميز وإفلات الأحرف. ويدعم OWASP Java Encoder ترميز المخرجات السياقي في سياقات مختلفة، مثل وضع المتغيرات داخل عنوان URL، أو داخل CSS مضمنة، أو داخل JavaScript مضمنة، أو إدراج المتغيرات في قيمة إحدى سمات HTML، أو في خاصية CSS، أو بين علامتي HTML.

تنفيذ بروتوكولات تشفير قوية

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

الخوارزميات

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

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

وبدلًا من إنشاء مكتبات تشفير خاصة بهم، يجب على المطورين اعتماد تطبيقات موثوقة ومدعومة ويجري الحفاظ عليها لمكتبات التشفير، مثل Bouncy Castle وLibsodium وOpenSSL وTink.

المفاتيح وإدارتها

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

حماية طبقة النقل

وعندما يتعلق الأمر بحماية طبقة النقل، يجب على فرق هندسة البرمجيات استخدام بروتوكولات مثل Hypertext Transfer Protocol Secure (HTTPS) أو HTTP Strict Transport Security (HSTS)، إلى جانب أحدث إصدار من TLS. ويجب تعطيل التخزين المؤقت للبيانات الحساسة، كما يجب تجنب التخزين غير الضروري للبيانات الحساسة.

المصادقة والتفويض

تُعد المصادقة والتفويض من ممارسات البرمجة الآمنة الأساسية للتحقق من هوية كيان ما والتأكد من أن هذا الكيان يملك مستوى الوصول المناسب.

المصادقة

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

بالنسبة إلى المصادقة من دون كلمة مرور، يمكن للمطورين النظر في بروتوكولات مثل OpenID Connect (OIDC) وSecurity Assertion Markup Language (SAML). وتُسهِّل المعايير المفتوحة FIDO وFIDO2 المصادقة من دون كلمة مرور عبر مفاتيح المرور، ويمكن استخدامها لمصادقة التطبيقات والخدمات عبر الإنترنت ومواقع الويب.

إدارة الجلسات

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

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

التفويض

كما يمكن للمبرمجين استخدام بروتوكولات للتفويض مثل OAuth، الذي يعمل بالتكامل مع بروتوكول المصادقة OIDC. ومن حيث ضوابط الوصول، يُعد التحكم في الوصول المستند إلى الأدوار (RBAC) نموذجًا شائعًا، إذ يُمنح المستخدمون حق الوصول استنادًا إلى أدوارهم المحددة مسبقًا. وتشمل الخيارات الأخرى، التي قد تكون أكثر قوة وتدعم أذونات أدق، التحكم في الوصول القائم على السمات (ABAC) والتحكم في الوصول القائم على العلاقات (ReBAC). يحلل التحكم في الوصول القائم على السمات سمات المستخدمين والأهداف والإجراءات –مثل اسم المستخدم ونوع الموارد والوقت من اليوم– لتحديد ما إذا كان سيتم منح حق الوصول أم لا. أما ReBAC، فيمنح حق الوصول استنادًا إلى العلاقات بين الموارد.

 

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

إرساء آليات قوية للتسجيل وآليات آمنة لمعالجة الأخطاء

وقد تكون السجلات ورسائل الأخطاء مصادر غنية بالمعلومات التي تساعد العناصر الضارة على تدبير الهجمات. وهذا يعني أن السجلات والأخطاء كليهما يجب التعامل معهما بعناية.

التسجيل

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

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

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

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

معالجة الأخطاء

وترتبط معالجة الأخطاء ارتباطًا وثيقًا بالتسجيل، لأن المعلومات المتعلقة بالأخطاء تظهر عادةً في السجلات. كما يمكن أن تمثل الأخطاء غير المعالجة نقطة دخول لعناصر التهديد.

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

إجراء اختبارات أمنية شاملة

ويجب التحقق من جميع تدابير الأمن المضمنة في التعليمات البرمجية المصدرية. ويمكن لفرق ضمان الجودة وفرق التطوير الرجوع إلى دليل Web Security Testing Guide ومعيار Application Security Verification Standard الصادرين عن OWASP بوصفهما أساسًا لاختبار أمن التعليمات البرمجية. كما يمكن أن تساعد الأدوات المؤتمتة في هذه العملية.

اختبار أمان التطبيقات الثابت (SAST)

ويطبّق اختبار أمان التطبيقات الثابت (SAST) قواعد محددة مسبقًا لرصد أنماط في التعليمات البرمجية تشير إلى ثغرات أمنية محتملة. ويُشار إلى SAST أحيانًا باسم اختبار "الصندوق الأبيض"، كما تُعرف أدواته أيضًا باسم أدوات التحليل الثابت للتعليمات البرمجية لأنها تفحص التعليمات البرمجية من دون الحاجة إلى تشغيل التطبيق.

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

اختبار أمان التطبيقات الديناميكي (DAST)

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

ويمكن أن يتيح الجمع بين SAST وDAST كشف صورة أشمل للثغرات الأمنية المحتملة. ولإجراء اختبارات أمنية أكثر شمولًا، يمكن الجمع بين SAST وDAST وطرق أخرى، مثل اختبار أمان التطبيقات التفاعلي (IAST)، الذي يقيّم سياق التعليمات البرمجية وسلوك وقت التشغيل معًا للإبلاغ عن الثغرات الأمنية في الوقت الفعلي، وتحليل تكوين البرمجيات (SCA)، الذي يحلل البرمجيات للتأكد من أن مكوناتها آمنة ومحدّثة.

إدراج الأمن ضمن مراجعات التعليمات البرمجية

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

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

ولاتباع نهج أكثر تنظيمًا، يمكن لمراجعي التعليمات البرمجية الرجوع إلى الورقة المرجعية السريعة الخاصة بمراجعة التعليمات البرمجية الآمنة الصادرة عن OWASP.

أكاديمية الذكاء الاصطناعي

صعود الذكاء الاصطناعي التوليدي في قطاع الأعمال

تعرّف على الصعود التاريخي للذكاء الاصطناعي التوليدي وما يعنيه بالنسبة إلى قطاع الأعمال.

المؤلفون

Rina Diane Caballar

Staff Writer

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

حلول ذات صلة
IBM Bob

تسريع عملية تسليم البرامج مع Bob، شريكك المدعوم بالذكاء الاصطناعي للتطوير الآمن والمدرك للأهداف.

استكشف ®IBM Bob
حلول البرمجة بالذكاء الاصطناعي

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

استكشِف حلول البرمجة المدعومة بالذكاء الاصطناعي
الاستشارات والخدمات المتعلقة بالذكاء الاصطناعي

أعدّ ابتكار عمليات ومهام سير العمل الحساسة بإضافة الذكاء الاصطناعي لتعزيز التجارب وصنع القرارات في الوقت الفعلي والقيمة التجارية.

استكشف خدمات استشارات الذكاء الاصطناعي
اتخذ الخطوة التالية

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

  1. اكتشف IBM Bob
  2. استكشِف حلول البرمجة المدعومة بالذكاء الاصطناعي