يعد إجراء مراجعة الكود المصدري للبرامج خطوة مهمة في دورة حياة تطوير البرامج أمنياً في وقت مبكر، مما يوفر الوقت والجهد والتكاليف المرتبطة بإصلاحها لاحقًا. مراجعات الكود المصدري للبرامج تعتمد على أساليب منها الآلي واليدوي:
a. الأدوات الآلية: استخدم أدوات اختبار أمان التطبيقات الثابتة (SAST) مثل Semgrep وأدوات اختبار أمان التطبيقات الديناميكية (DAST) مثل Burp و Acunetix .
تقوم أدوات SAST بفحص الكود المصدري للبرامج بحثًا عن الأنماط التي قد تشير إلى مشكلات أمنية وتكون أكثر فعالية عند دمجها مبكرًا في عملية التطوير بينما تقوم أدوات DAST باختبار التطبيق أثناء وقت التشغيل وتكون مستقلة عن لغة البرمجة المستخدمة.
b. الفحص اليدوي: حتى مع الأدوات الآلية، يعد الفحص اليدوي ضروريًا. وهو يتضمن فحصًا تفصيليًا للتعليمات البرمجية من قبل أفراد متخصصين لتحديد نقاط الضعف المعقدة التي قد تغفلها الأدوات الآلية. يجب أن تركز هذه العملية على المجالات المهمة مثل المصادقة والصلاحيات والتحقق من صحة البيانات والمدخلات و الاتصال بقواعد البيانات والتشفير.
الخطوات الأساسية لمراجعة الكود المصدري للبرامج:
1- تحديد النطاق وتحديد الأولويات: ابدأ بفهم منطق عمل التطبيق وتحديد نطاق المراجعة. إعطاء الأولوية للثغرات الأمنية بناءً على تأثيرها على التطبيق، مع التركيز على مجالات مثل الثبات الهوية والمصادقة وثغرات الحقن injection والتشفير والإعدادات غير الآمنة .
2- استخدم كلاً من المراجعات الآلية واليدوية: اجمع بين استخدام أدوات SAST وDAST لإجراء فحص واسع النطاق و المتابعة من خلال المراجعات اليدوية لتصفية الأخطاء وتحليل الأكواد البرمجية بعمق لمشكلات الأمان .
3- التحقق من الثغرات الأمنية الشائعة: تأكد من أن الأكواد البرمجية لا تحتوي على ثغرات أمنية شائعة و شهيرة. يجب أن تتحقق الأدوات والمراجعات اليدوية من أهم 10 نقاط ضعف في OWASP وأخطر 25 نقطة ضعف في البرامج حسب تصنيف CWE.
4- مراجعة الإعدادات والبيانات الحساسة: انتبه بشكل خاص لملفات الإعدادات ومعالجة البيانات الحساسة داخل الكود للتأكد من عدم كشف الأسرار مثل كلمات السر حيث يجب ترميزها و تخزينها بشكل آمن حسب تقنيات الاختزال Hashing .
5- التنسيق مع المطورين: تتضمن المراجعة الفعالة للكود المصدري للبرامج أن يتم التعاون مع المطورين، حيث إن فهم وجهة نظرهم يمكن أن توفر رؤى حول المشكلات الأمنية المحتملة ويعزز ثقافة الأمان داخل الفريق .
فوائد مراجعات كود البرامج المصدري:
1- حفظ الجهد ورفع كفاءة التطوير: تحديد نقاط الضعف وإصلاحها في وقت مبكر من عملية التطوير يقلل بشكل كبير من الجهد والتكلفة مقارنة بالمعالجة لهم في مراحل لاحقة أو بعد النشر.
2- الامتثال للقوانين والسمعة: الالتزام بمتطلبات القوانين و اللوائح وتعزيز الوضع الأمني للتطبيق يمكن أن يحمي سمعة المنظمة من الضرر بسبب الاختراقات الأمنية.
مصادر:
https://owasp.org/www-community/Vulnerability_Scanning_Tools
https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html