سياسات تسيير صلاحيات الولوج إلى قواعد البيانات ضمن مشروع الترجمة

الناقل : elmasry | الكاتب الأصلى : djug | المصدر : www.arabteam2000-forum.com

I/مقدمة:

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

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



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



II/ الأخطار الممكنة:

تتمثل الأخطار المتعلقة بموارد البيانات :

- سرقة المعلومات (ضياع السرية)

- تبديل المعلومات (فقدان integrity )

- تدمير المعلومات( إمكانية توقف البرنامج عن مواصلة عمله)

- الحصول على صلاحيات إضافية(الأمن، التجسس )

- استنفاد الموارد



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

2/ تبديل المعلومات يسبب فقد الـ integrity أي أن ذلك يسبب في فقد "الثقة" في المعلومة، يمكن التقليل من عواقب ذلك ما إن تم التحرك بسرعة لإيقاف تبعياته لكن ليس الأمر كذلك دائما. البرنامج الذي يشتغل على معطيات خاطئة(مبدلة) يعطي دائما نتائج خاطئة: تخيل مثلا برنامجا للتجارة على الانترنت يقوم باحتساب مشتريات شخص على حساب شخص آخر.



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

4/ تختلف -من قاعدة بيانات إلى أخرى- طريقة منح مورد معين لمستخدم معين ، يمكن تحديد عدد الـ Request المسموح بها لمستخدم معين في فترة زمنية معينة مما يجنب وصول النظام إلى مرحلة استنفاد موارده و بالتالي الانهيار الكلي له. هذا التحديد يسمح بالتقليل من الآثار السلبية التي قد يسببها عبث عابث بقاعدة البيانات



III / السياسات المتبعة:

أ/فئات المستخدمين:

يمكن تقسيم المستخدمين إلى ثلاث فئات:

- المدراء

- التطبيقات

- المستخدمين العاديين



فأما المدراء فهو أشخاص (لهم كيان مادي) يملكون جميع الصلاحيات المتعلقة بـ DBMS (Data Base Management System) حيث أن بإمكانهم القيام بكل أنواع الإجراءات و التغييرات على قاعدة البيانات. يشترط في مدري قاعدة بيانات أن يكون محل ثقة الجميع

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

و أما ما تبقى من مستخدمي قاعدة البيانات (أو المستخدمين العاديين) فهم أشخاص لهم القدرة على استعمال هذه القاعدة ضمن الصلاحيات الموكلة إليهم إما عن طريق سطر الأوامر (استخدام الأول Mysql مثلا ) أو عن طريق برنامج ذي واجهة رسومية (PhpMyAdmin على سبيل المثال) أو عن طريق غيرهما من الوسائط المتاحة



ب/ مراقبة الصلاحيات:

السؤال المطروح عادة لدى تطوير برنامج ما هو : هل نوكل مهمة مراقبة الصلاحيات للبرنامج أم للـDBMS ؟



1- DBMS:

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

2- البرنامج:

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



ج/ الصلاحيات:

يمكن منح الصلاحيات للمستخدم بطريقتين:

1- مع ماذا يتعامل:

يمكن إعطاء الصلاحيات للمستخدم للتعامل مع:

-كل القاعدة

-جدول أو مجموعة جداول

-عمود (column) من جدول : Attribut

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

2 -كيف يتعامل:

أي ما هي المعاملات المسموح بها :

- الحصول على المعلومة

- إدارة مخطط القاعدة

- إدارة صلاحيات المستخدمين

- إدارة Parameters النظام ككل



و عليه ينقسم المستخدمون حسب ذلك إلى:

· الحصول على المعلومة: كل المستخدمين

· إدارة مخطط القاعدة : المدراء فقط (و في ظروف جد خاصة التطبيقات)

· إدارة صلاحيات المستخدمين: المدراء فقط

· إدارة Parameters النظام: المدراء فقط



د/ قواعد منح الصلاحيات:

القاعدة 1 (الأهم): منح المستخدم أقل الصلاحيات(الضرورية و فقط) أ التي يستطيع القيام بمهامه بواسطتها ، و منحه بعض الصلاحيات الإضافية فقط لدى اقتضاء الضرورة

القاعدة 2 مراقبة المستخدمين عن كثب:

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

القاعدة 3 التحقق بعد توكيل بعض مهام الإدارة:

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

القاعدة 4 مراقبة الاتصالات :

يستطيع أي مستخدم (شخصا كان أو برنامجا) الاتصال بقاعدة البيانات أيا كان مكانه (بواسطة الانترنت)، و عليه فإنه يجب مراقبة هذه الاتصالات و الحد منها (إلا ما كان ضروريا) فمثلا يجب اقتصار صلاحيات برنامج موجود على Server معين على هذا الـ server فقط

القاعدة 5 تحديد الموارد المستعملة:

يستطيع الـ DBMS تحديد الموارد المتاحة لمستخدم معين.ينصح بتحديد الموارد المتاحة لمستخدم حسب الأعمال الموكلة إليه و النتائج المطلوبة منه.فمثلا لا يحتاج مستخدم عادي إلى 100 عملية في الدقيقة عكس ما هو الحال للتطبيقات التي قد تتجاوز هذا الحد.

القاعدة 6 تتبع آثار العمليات المشبوهة:

يسمح بعض الـ DBMS بالاحتفاظ بملفات Log تحوي مجمل محاولات القيام بعمليات مشبوهة (التي لا تحترم الصلاحيات مثلا). ينصح بمراقبة محتوى هذه الملفات ليتم اكتشاف التجاوزات و محاولات القرصنة قبل وقوعها.

القاعدة 7 فرض القيود على التطبيقات ذات الاستعمال الواسع:

ينصح بإثراء التطبيقات بأكثر من واجهة واحدة ، حيث أنه تخصص واجهة لكل نوع من الاستعمال: internet/intranet

نضرب مثلا عن مجلة متوفرة على الانترنت، في هذه الحالة يجب استعمال نوعين من حسابات المستخدمين واحد للقراءة فقط يستخدم في الواجهة المستعملة على الانترنت لغرض تصفح المجلة ، و حساب للكتابة يستخدمه المحررون على الـ Intranet

و عليه فإنه في حالة التعرض للهجوم (عن طريق الانترنت) فلا وجود لأضرار محتملة لأنه لا يمكن استعمال الحسابات التي تملك صلاحيات الكتابة و التعديل إلا من خلال الـ intranet.



IV / خاتمة:

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

التعاون بين مطوري تطبيقات الويب و بين مدراء قواعد البيانات يساعد بشكل كبير على التقليل من المخاطر التي تحوم حول قاعدة البيانات.



عنوان المقال الأصلي:Politique de gestion des droits d'accès à une base de données

رابط المقال الأصلي:
http://cyberzoide.developpez.com/securite/...ase-de-donnees/




كاتب المقال الأصلي:
Hugo Etiévant