أمن قواعد المعلومات database-security

Spread the love

المقدمة:

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

1) السريةConfidentiality) ): يهدف هذا العنصر إلى التأكد من أن المعلومات لا تكشف ولا يطلع عليها من قبل أشخاص غير مخولين بذلك.
2) التكامل (Integrity): يهدف هذا العنصر إلى التأكد من أن محتوى البيانات صحيح و لم يتم تعديله أو العبث به في أي مرحلة من مراحل المعالجة أو التراسل.
3) إستمرارية توفر البيانات (Availability): يهدف هذا العنصر من التأكد من عملية توفر البيانات عند طلبها من قبل الأشخاص المخول لهم ذلك.
مصادر ضعف أمن قواعد البيانات:
يوجد ثلاثة مصادر أساسية تؤدي إلى ضعف الأمن في قواعد البيانات:
1) الأخطاء البرمجية والثغرات في أنظمة إدارة قواعد البيانات.
2) الهيكلية الرديئة للنظام.
3) التهيئة و الضبط الخاطئة للنظام.
1) الأخطاء البرمجية والثغرات في أنظمة إدارة قواعد البيانات:
غالبا مايوجد أخطاء برمجية و ثغرات في أي نظام حاسوبي، فمن الصعب على الشركات المنتجة لهذه الأنظمة التأكد من خلو المنتج من هذه الأخطاء لأنها غالبا ماتظهر بعد الإستخدام العملي لهذه الأنظمة من قبل المنشأت الأخرى. وللحماية من هذه الثغرات يجب تحديث النظام بإستمرار و ذلك بتحميل و تنصيب آخر التحديثات الموجودة لنظام قواعد البيانات المستخدم في المنشأة و يمكن متابعة التحديثات و الحصول عليها من قبل منتج النظام.
2) الهيكلية الرديئة للنظام:
تعتبر الهيكلية لأي نظام من الأمور الهامة جدا و التي يجب أن تأخذ جزء كبير من الإعداد و التصميم الجيد لها. فبعض أنظمة قواعد البيانات تستخدم هكيلية لاتوظف حلول جيدة للناحية الأمنية في النظام، و يعتبر هذا المصدر إذا ماوجد الأصعب من ناحية إصلاحه. وكمثال على الهيكلية الرديئة إستخدام حلول وأنظمة فرعية ضعيفة لتشفير البيانات.

3) التهيئة و الضبط الخاطئة للنظام:
التهيئة والضبط الخاطئ لنظام قواعد البيانات يمكن أن يؤثر بشكل مباشر على أمن النظام، فيوجد الكثير من الخيارات التي يمكن أن تضبط بشكل يجعل النظام عرضة للإختراق. و كمثال على هذه الخيارات يوجد في نظام قواعد البيانات المعروف أوراكل (Oracle) خيار يسمى ب ‘REMOTE_OS_AUTHENT’ فإذا ماتم ضبط هذا الخيار إلى القيمة True فذلك سوف يسمح للأشخاص الغير مصرح لهم بالدخول على النظام. لذلك تعتبر عملية التهيئة و الضبط من الأمور الهامة في أمن قواعد البيانات، و يمكن الرجوع إلى قائمة تدقيق ( Check list) للتأكد من صحة عملية التهيئة والضبط للنظام.
وسائل حماية أمن قواعد البيانات:
1) التهيئة و الضبط المناسبة للنظام:
كما ذكرنا سابقا فإن التهيئة و الضبط الخاطئة لنظام قواعد البيانات من الأمور التي قد تعرض النظام لثغرات أمنية خطيرة جدا، و هنا سنذكر بعض الخطوات المهمة أثناء هذه العملية:
ü التأكد من إالغاء أو تغيير جميع الحسابات (أو أسماء المستخدمين( الإفتراضية التي تنشأ أثناء عملية تنصيب النظام، ومن الأمثلة على هذه الحسابات الحساب المعروف في نظام قواعد البيانات أوراكل (Scott/tiger).
ü عدم قبول طلبات الإتصال من جهات غير موثوقة (Anonymous)، بل يجب إذا أمكن من تحديد عناوين شبكية للجهات الموثوقة (Trusted IP addresses).
ü ضبط الحد الأقصى للمحاولات الفاشلة للدخول للنظام، فعلى سبيل المثال بعد ثلاثة محاولات فاشلة للدخول فإن النظام لن يقبل المحاولات التالية من نفس الجهة. وذلك للمنع من إستخدام طريقة التخمين لكلمة المرور عن طريق القوة العمياء (Brute Force).
ü تعطيل إذا أمكن الأمر الشبكي Ping والذي يوجد في برتوكل رسالة التحكم بالإنترنت (ICMP) و ذلك بعدم السماح للجهاز الخادم الذي يحتوي على نظام قواعد البيانات من الرد لطلبات هذا الأمر. وهذا يؤدي إلى فائدتين:
أ‌- عدم تمكين محاولة إغراق أو تعطيل النظام (Denial of Service) عن طريق الإستخدام السئ للأمر.
ب‌- غالبا ماتكون الخطوة الأولى للمخترقين هي إستخدام هذا الأمر لمعرفة ما إذا هنالك جهاز يعمل تحت عنوان شبكي معين أم لا. كما في الشكل 1 فإن الرد القادم يدل على أنه يوجد جهاز يعمل تحت العنوان 127.0.0.1.

(شكل 1: إستخدم الأمر Ping (
2) تحديث النظام:
كما ذكرنا سابقا فإن الأخطاء البرمجية والثغرات في أنظمة إدارة قواعد البيانات تعتبر من المصادر التي تضعف أمن النظام، لذلك من المهم والضروري جدا متابعة التحديثات الجديدة و الحصول عليها من قبل منتج النظام و تنصيبها حال توفرها.

3) إستخدام وسائل تحديد صلاحيات الإستخدام ((Access Control Methods المناسبة:
تحتوي هذه الطريقة على إستخدام آليات معينة لتحديد صلاحيات ونطاق المستخدم لوصول إلى البيانات، فبناءا على هوية المستخدم يمكن تحديد تلك الصلاحيات. يوجد هنالك ثلاثة طرق معروفة يمكن إستخدامها:

أ‌- ضبط الوصول الإلزامي (Mandatory Access Control):
تعتبر هذه الطريقة من أكثر الطرق صرامة، ففي هذه الطريقة لا يمكن للمستخدم منح صلاحية الوصول إلى البيانات لمستخدم آخر. بل على العكس جميع الصلاحيات مثبتة و معروفة و لايوجد هنالك مرونة في تحديد الصلاحيات على مستوى البيانات.
تستخدم غالبا هذه الطريقة في التطبيقات العسكرية، حيث من المألوف أن نجد التصنيف سري (Secret) و سري للغاية (Top Secret).
ب‌- ضبط الوصول المرتكز على الدور(Role Based Access Control):
بدلا عن منح الصلاحيات للمستخدم مباشرة، يمكن منح الصلاحيات إلى أدوار أو مناصب معينة (Roles) و من ثم إسناد المستخدمين إلى الأدوار المناسبة لهم. في هذه الطريقة يحصل المستخدم على جميع الصلاحيات الموجودة في الدور المسند إليه.
ت‌- ضبط الوصول الإختياري (Discretionary Access Control):
تعتبر هذه الطريقة من أقل الطرق صرامة، ففي هذه الطريقة يمكن للمستخدم منح صلاحية الوصول إلى البيانات لمستخدم آخر. وتحتوي هذه الطريقة على شئ من الخطورة، حيث يمكن إعطاء مستخدم صلاحيات لا يجب أن يملكها.
وكمثال على هذه الطريقة في نظم قواعد البيانات يمكن إستخدام الأمر Grant لإعطاء الصلاحيات لمستخدم معين مع القدرة على تمكينه من منح هذه الصلاحيات لمستخدمين آخرين. وسنعرض مثال على ذلك:
Grant Select on Employee_Table to Mohammed;
فعند تنفيذ هذا الأمر من قبل المستخدم Admin فإنه سوف يعطي المستخدم Mohammed صلاحية تنفيذ الأمر Select على الجدول Employee_Table، و لتمكين المستخدم Mohammed من منح هذه الصلاحيات لمستخدمين آخرين يمكن إضافة الكلمة “with Grant Option” ليصبح الأمر كالتالي:
Grant Select on Employee_Table to Mohammed with Grant Option;
الآن يمكن للمستخدم Mohammed من إعطاء نفس الصلاحية للمستخدم Ali.
4) إستخدام الحلول الأمنية الأخرى:
يمكن الحصول على كفاءة أعلى عن طريق إستخدام والإستفادة من الحلول الأمنية الأخرى المعروفة وكمثال على هذه الحلول: الجدر النارية و أنظمة كشف أو منع التسلل.
5) منع أساليب التحايل و الإستخدام السئ للنظام:
كون أن النظام يعمل خلف جدار ناري أو أنظمة أمنية فعالة فإن ذلك لا يعني أنه لا يوجد ثغرات يمكن الإستفادة منها للوصول للبيانات. و كمثال على هذه الأساليب يوجد طريقة تعرف بحقن أوامر اللغة الإستفسارية المركبة (SQL Injection) الخاصة بقواعد البيانات،حيث تقوم هذه الطريقة بمحاولة تعديل الأمر المرسل من خادم الويب إلى قاعدة البيانات.
فعلى سبيل المثال في كثير من مواقع الإنترنت يوجد صفحة للتأكد من هوية المستخدم و ذلك بطلب إدخال إسم المستخدم و كلمة المرور:

وغالبا من المعروف أنه بعد إرسال هذه الصفحة إلى خادم الويب فإن سيتم تنفيذ أمر مشابه لهذا الأمر وهو مكتوب بلغة ال ASP:
String sql = new String(“Select * From WebUsers Where Username=”‘ +
request.getParameter(“username”) + “‘ And Password=”‘ +
request.getParameter(“password”) + ” ‘ ”
وبعد تنفيذ هذا الأمر سيتم إرساله إلى قاعدة البيانات بهذا الشكل:

Select * From WebUsers Where Username=’Admin’ And Password=’Qjsid75#=@=’
لذلك يوجد طريقة تمكن من حقن هذا الأمر بعد إرسالة إلى الملقم وهي كالتالي:
بدلا عن إدخال كلمة السر يمكن إدخال الجملة: Aa’ OR ‘A’=’A
وكنتيجة لذلك سيصبح الأمر المرسل إلى قاعدة البيانات كالتالي:
Select * From WebUsers Where Username= ‘Admin’ And Password=’Aa’ OR ‘A’=’A’
فبعد تنفيذ هذه الأمر من قبل قاعدة البيانات فإنه سيقوم بإرجاع جميع البيانات الموجودة وبذلك سيتمكن المستخدم من الحصول على دخول غير شرعي للموقع وربما الحصول على صلاحيات إداري الموقع.
لذلك يجب الحرص على التأكد من صحة الأوامر المرسلة إلى قاعدة البيانات قبل إرسالها.
6) تدقيق البيانات الموجودة في سجلات النظام (Auditing):
تحتوي كثير من الأنظمة ومن بينها أنظمة قواعد البيانات على آليات لتسجيل إستخدامات النظام و الأنشطة التي يقوم بها مع تسجيل و الوقت و التاريخ لهذه الأنشطة، وتعتبر مراجعة هذه السجلات من الخطوات المهمة جدا لمعرفة ما إذا كان هنالك إختراق أو حتى محاولة إختراق للنظام.
7) تشفير البيانات الحساسة:
على الرغم من أن تشفير البيانات تعتبر من الحلول الأمنية الفعالة إلا أنه يمكن أن يكون مصدر للمشاكل إذا لم يستخدم بشكل جيد، كما لا يجب الأخذ به لوحده و إهمال الحلول الأخرى المهمة مثل إستخدام وسائل تحديد صلاحيات الإستخدام.
ويوجد هنالك ثلاثة طرق لتشفير قواعد البيانات:

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

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

الكاتب ayman

ayman

مواضيع متعلقة

اترك رداً