كيف تخترق برنامج مفتوح المصدر

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

1- التحديثات Updates
– يجب أن نحافظ على تحديثات النظام أو نظام التشغيل بشكل مستمر مع تنزيل الإصدارات الأحدث وتحديثات علاج الثغرات التي تصعب الأمر على المخترق بشكل كبير ولنا في عملاق البرمجيات Microsoft العبرة فقد سمعنا عن العديد من الثغرات الأمنية في منتجاتهم على الرغم من أنها شركه تجاريه.

2- رفع الملفات Upload files
– السماح للمستخدمين برفع ملفات دون التحقق من ماهيتها والكشف عنها فقد تكون جدارا خلفيا يستخدمه المخترق للوصول للكود الخاص بالبرنامج.

3- تأمين النماذج Forms security
– عدم تأمين forms الخاصة بمليء البيانات على البرنامج لأنها أيضا قد تكون مصدرا للاختراق عن طريق SQL injection attacks

4- استخدام Cross-site scripting
– عدم وضع تحقق من ما يمكن للمستخدم كتابته على البرنامج سواء في تعليقات مثلا لأنه يمكن للمخترق استخدامه في كتابة كود للاختراق وهذا ما يمكن حمايته بتقنيات Cross-site scripting (XSS)

5- رسائل الخطأ error messages
– رسائل الخطأ: قد تكون رسائل الخطأ هي أحد أسهل أبواب الاختراق للبرامج فمن خلالها يمكن أن تتم عمليات الإختراق بسهولة.

6- التحقق على العميل والخادم client server authentication
– يجب أن تتم عمليات التحقق من البيانات والمحتوى المدخل على الخادم من قبل العميل والخادم client and server فعلى سبيل المثال شكل ونوعية المحتوى المدخل في نماذج البيانات يجب أن يمر بمراحل للتدقيق من قبل العميل والخادم لضمان عدم كتابة أكواد للاختراق.

7- كلمات المرور passwords
– كلمات المرور : الأغلب يعرف أنه لابد أن يضع كلمات مرور معقدة ليصعب عمليات الاختراق ولكن الكثير لا يفعل

8- استخدام بروتكول https
– استخدام بروتوكول https وهو البروتوكول المستخدم لتأمين محتوى مواقع الإنترنت وينصح باستخدامه بشكل كبير في حالة الرغبة في منح موقعك أو برنامجك أمانا أكثر.

9- أدوات التأمين Security tools
– أدوات تأمين الإنترنت من جدران ناريه fire walls( hardware- software) – tracing apps- transaction log analysis apps والعديد من الأدوات الخاصة بتأمين برنامجك أو موقعك

عناصر التأمين والتحقق الإضافية
– استخدام عناصر تأمين إضافية كاستخدام LDAP authentication – IP authentication – وغيرها من طرق التحقق والتأمين في الوصول للخادم مثل ssl certificates

بعد استعراض هذه النقاط التي غالبا ما يستخدمها مخترقو النظم المبنية على تقنيات الويب web based application يمكنك أن تختبر وجودها في أي نظام يستخدم نفس التقنية أيا كان نوعه مفتوحا او تجاريا أو محليا حتى ووجود خبير على دراية بهذه المشكلات ووضعها في الاعتبار في كل أنواع النظم هو أمر في غاية الأهمية ولا يحمل فيها أي نوع ميزة نسبية عن النوع الأخر فكلهم يمكن اختراقهم طالما وضعوا على شبكة الإنترنت واستخدموا نفس التقنيات بل أن النظم المفتوحة تحمل ميزة فريده وهي أن عدد المستخدمين والمختبرين للنظام والعاملين على حل مشكلاته هم أكثر بكثير من موظفي شركات النظم التجارية العاملين على حل المشكلات وعلاج الثغرات الأمنية فيكون التأمين هنا في صالح النظم المفتوحة المصدر بشرط توافر مجتمع قوي وكيانات داعمة قوية.
المصادر
https://www.creativebloq.com/…/website-security-tips-protec…
https://www.entrepreneur.com/article/241620
https://www.sitepoint.com/8-practices-to-secure-your-web-a…/