1 / 34

أمن الحواسيب

أمن الحواسيب. أمن قواعد المعطيات (Databases Security) الجزء الأول 8th Off-line Session. النتائج التعليمية المرجوة. عند ال انتهاء من هذه الجلسة يتوجب على الطالب أن: يعرف قواعد المعطيات العلائقية ولغة SQL يتعرف على الاحتياجات الأمنية الخاصة بقواعد المعطيات

tam
Download Presentation

أمن الحواسيب

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. أمن الحواسيب أمن قواعد المعطيات (Databases Security) الجزء الأول 8th Off-line Session

  2. النتائج التعليمية المرجوة • عند الانتهاء من هذه الجلسة يتوجب على الطالب أن: • يعرف قواعد المعطيات العلائقية ولغة SQL • يتعرف على الاحتياجات الأمنية الخاصة بقواعد المعطيات • يفهم التقنيات الأمنية المستخدمة في حماية قواعد المعطيات

  3. المحتوى 1. مقدمة 2. قواعد المعطيات العلائقية 3. قواعد السلامة 4. التحكم بالنفاذ 1.4 DAC 2.4 CBAC 3.4 MAC 4.4 RBAC 5. خاتمة

  4. 1. مقدمة • قاعدة المعطيات (Data Bases - DBs) هي مجموعة معطيات منظمة بطريقة محددة • المستخدم ينفذ إلى القواعد بهدف الاستفسار أو التعديل • نظام إدارة قواعد المعطيات • DB Management System (DBMS) • يتولى ضبط النفاذ إلى القواعد و يهتم بطريقة تخزين المعطيات • بعكس نظم التشغيل، يهتم بالمحتوى • ضبط النفاذ مهم لحماية المعلومات الهامة والشخصية • أمن قواعد المعطيات مهم بسبب: • حساسية المعلومات المخزنة • الأنظمة والقوانين التي تفرض سرية المعلومات الشخصية

  5. مقدمة • حماية المعطيات ليست سهلة، المهاجم يتبع عدة أساليب للحصول على المعلومات: • البحث عن معطيات محددة • البحث عن الحدود الدنيا والعليا للرواتب مثلاً • البحث عن المؤشرات السلبية (مثال عقوبات الموظفين) • البحث عن المعلومات من عدة استفسارات • هل يمكن الحماية من كافة الاحتمالات الممكنة ؟؟ !!! • خصوصاً تلك التي تعتمد على الاستعلامات الإحصائية تقنيات الحماية المستخدمة يجب ألا تمنع الوصول السريع والسهل للمعلومات.

  6. مقدمة • متطلبات قواعد المعطيات: • السرية • التكاملية • التوافرية • التوافق الداخلي (Internal Consistency) • أن تتبع المحتويات في قواعد المعطيات قواعد محددة • التوافق الخارجي (External Consistency): • أن تكون محتويات قواعد المعطيات صحيحة • الأهداف الثلاثة الأولى يمكن أن تحقق عن طريق التحكم بالنفاذ (أي الاعتماد على DBMS) • تحقيق الأخيرين يحتاج إلى تطبيققواعد السلامة

  7. 2. قواعد المعطيات العلائقية • Relational Databases • قواعد المعطيات العلائقية: بيانات منظمة ضمن جداول (وجداول فقط) • العلاقة R: مجموعة من الجداء الديكارتي D1 x … x Dn • Di: مجموعة قيم الخاصية (أي الحقل) i • يعبر عن عنصر من العلاقة R بـ Tuple: • (vi, …, vn) : vi Di • Vi : تدعى حقول • عندما لا يحوي الحقل قيمة : نقول عنه أنه يحوي القيمة null • أي لا يوجد قيمة وليس غير معروف

  8. قواعد المعطيات العلائقية • مثال: العلاقة الموضحة في الشكل التالي هي جزء من قاعدة بيانات لوكالة سفر جدول Diary جدول Flight

  9. قواعد المعطيات العلائقية - SQL • تدعى اللغة لوصف البيانات التي نريد استردادها من قاعدة معطيات علائقية بـ SQL: • Structured Query Language أو لغة الاستعلام الهيكلية • أهم عمليات إدارة البيانات: • SELECT: تسترد البيانات من العلاقة SELECT name, status FROM diary WHERE day =’Mon’ النتيجة:

  10. قواعد المعطيات العلائقية - SQL • UPDATE: تحدث قيم الحقول في العلاقة UPDATE Diary SET Status= Private WHERE Day = ‘Sun’ أي جعل جميع رحلات يوم الأحد خاصة • DELETE: حذف Tuple من العلاقة DELETE FROM Diary WHERE Name = ‘Alice’ أي يحذف جميع رحلات Alice من Diary • INSERT: تضيف Tuple إلى العلاقة INSERT INTO Flights (Flight, Destination, Days) VALUES (‘GR005’, ‘GOH’, ’1-2-4-5’) أي يدخل Tuple إلى الجدول Flight ويبقي Departs غير محدد

  11. قواعد المعطيات العلائقية - SQL • عادةً ترى العلاقات كجداول • الخصائص تقابل الأعمدة في الجداول • تستخدم أسماء الخصائص كترويسات للأعمدة • الأسطر أو السجلات تقابل Tuples • في نمط العلاقة لا يمكن أن تحوي الجداول مؤشرات على/وصلات إلى جداول أخرى

  12. قواعد المعطيات العلائقية – أنواع العلاقات • علاقات أساسية (جداول) • أو تدعى علاقات حقيقية، وهي علاقات مستقلة وهي غير مشتقة من علاقات أخرى، ولها بياناتها المستقلة • المشهد (View) • علاقات مشتقة من علاقات أخرى وتعرف بالاعتماد على علاقات أخرى ولا تملك بياناتها المستقلة المخزنة فيها. • نتائج الاستعلام (Query) • يمكن أن تملك/لاتملك أسم ولا تملك تصميم موجود في قاعدة البيانات

  13. قواعد المعطيات العلائقية – مفاتيح قاعدة البيانات • المفتاح الرئيسي (Primary Key) • هو المعرف الأصغر لعلاقة • يحقق الخصائص التالية: • الوحدانية (uniqueness): لا يوجد أكثر من سجل في الجدول له نفس قيمة المفتاح • الأصغرية (Minimality): لا يمكن حذف أي من مكونات المفتاح (إذا كان مركب) بدون تدمير الوحدانية • مثال: الأسم واليوم هو مفتاح ريئسي لجدول Diary • بفرض أن الزبون سيذهب برحلة واحدة في اليوم • مثال: رقم الرحلة في جدول flight هو مفتاح رئيسي • يجب أن تحتوي العلاقة على مفتاح رئيسي وإلا ستكون السجلات مكررة

  14. قواعد المعطيات العلائقية – مفاتيح قاعدة البيانات • المفتاح الثانوي (Secondary Key) • هو حقل في جدول يمثل مفتاح رئيسي في جدول آخر • مثال: رقم الرحلة هو المفتاح الرئيسي في الجدول Flight والمفتاح الثانوي في جدول Diary.

  15. 3. قواعد السلامة • قواعد السلامة موجودة في طبقة تطبيق قواعد المعطيات وتفرض التوافق الداخلي وتساعد على التوافق الخارجي (أي الدقة). • القواعد الخاصة بقواعد المعطيات العلائقية: • قاعدة سلامة الوجود(Entity Integrity Rule) • تعني عدم السماح لأي مكون من مكونات المفتاح الرئيسي في علاقة أساسية أن تكون له القيمة null • تسمح بإيجاد جميع السجلات في العلاقة الأساسية • قاعدة سلامة المرجعية (Referential Integrity Rule) • يجب ألا تحتوي قاعدة المعطيات على قيم للمفتاح الثانوي غير متطابقة مع قيم المفتاح الرئيسي في الجدول الآخر • عدم التطابق في قيم المفتاح الثانوي يعني وجود قيمة في حقل مفتاح ثانوي ليست موجودة في الحقل الأساسي المرجع له

  16. وظائف السلامة • قواعد سلامة أخرى خاصة بالتطبيقات: • اختبارات الحقل: لمنع الأخطاء في المعطيات المدخلة. • حقل“ الحالة“: القيم المدخل خاصة أو عمل • مجال الاختبارات: نتائج الاستعلامات مبنية على عينة كافية. • اختبار التوافق(Consistency Check) : توافق البيانات مع المظاهر الخارجية • مثال: اختبار ليوم رحلات زبون بالمقارنة مع أيام مغادرة الرحلات: الزبون A غادر على الرحلة GR1234 يتوافق مع حقيقة أن هذه الرحلة تغادر يومي الاثنين والخميس من كل اسبوع. • يقدم DBMS البنية اللازمة لتحديد وتطبيق قواعد السلامة • مقبس السلامة(integrity trigger) : برنامج يربط إلى غرض في قاعدة المعطيات ليختبر توافق معين لهذا الغرض • ينفذ عندما تحاول العمليات delete و Update و Insert تعديل محتويات هذا الغرض.

  17. 4. التحكم بالنفاذ • ينظم التحكم بالنفاذ العمليات التي يمكن أن تنفذ من قبل المواضيع على الأغراض • يعتمد على: • الموضوع • الغرض • عملية النفاذ • مراقب مجعي: يسمح بعملية النفاذ أو يمنعها نفاذ مسموح جزئياً عملية نفاذ مراقب مرجعي الموضوع الغرض نفاذ مسموح × نفاذ ممنوع

  18. التحكم بالنفاذ • المراقب المرجعي يقرر نوع النفاذ اعتماداً على قواعد التخويل • يحدد التخويل العمليات التي يمكن أن تمارسها المواضيع على الأغراض المحمية • قواعد التخويل هي تنجيز للسياسة الأمنية. السياسة الأمنية قواعد التخويل نفاذ مسموح جزئياً عملية نفاذ مراقب مرجعي الموضوع الغرض نفاذ مسموح × نفاذ ممنوع

  19. سياسات التحكم بالنفاذ • أنواع سياسات التحكم بالنفاذ: • DAC: Discretionary Access Control • MAC: Mandatory Access Control • RBAC: Role- Based Access Control • CBAC: Context-Based Access Control • تصاغ أغلب سياسات التحكم بالنفاذ عن طريق المواضيع و الأغراض و الامتيازات • المواضيع: أي كيان يحتاج لأن ينجز عمليات مثل المستخدم والدور • أغراض: أي شىء يمكن أن يحوي معطيات مثل الجداول والمشهد • الامتيازات: العمليات التي يمكن أن تنفذها المواضيع على الأغراض مثل read, write, insert, delete, update

  20. 1.4 DAC • Discretionary Access Control • يضبط نفاذ المواضيع إلى الأغراض بالاعتماد على هوية الموضوع وقواعد التخويل • يمكن للموضوع أن يفوض عملياته (أي الامتيازات) على الأغراض إلى مواضيع أخرى • الأمر SQL Grant: GRANT PrivilegeList| ALL[PRIVILEGES] ON table|ViewTO UserList| PUBLIC • مثال: Bob: GRANT select, insert ON Employee TO Ann

  21. DAC • تفويض الامتياز عن طريق Grant Option في SQL GRANT PrivilegeList| ALL[PRIVILEGES] ON table|ViewTO UserList| PUBLIC [WITH GRANT OPTION] مثال: Bob: GRANT select ON Employee TO Jim WITH GRANT OPTION • منح الامتياز عن طريق Grant Option يعني أن المستخدم الذي يتلقى الامتياز يستطيع أن ينفذ الامتياز ويفوضه إلى شخص آخر • يستطيع المستخم أن يمنح الامتياز على جدول/مشهد • إما عندما يكون مالك الجدول • أو مستقبل للامتياز مع الخيار Grant option

  22. DAC • مثال: Bob: GRANT select, insert ON Employee TO Ann WITH GRANT OPTION; Bob: GRANT select ON Employee TO Jim WITH GRANT OPTION; Ann: GRANT select, insert ON Employee TO Jim; • يملك Jim الامتياز select (استقبله من Bob و Ann) والامتياز insert (استقبله من Ann) • يمكن لـ Jim أن يمنح الامتياز select (لأنه استقبله مع grant option) ولكن لا يستطيع أن يمنح الامتياز insert

  23. DAC • الأمر Grant: • Bob: GRANT select, insert ON Employee TO Jim WITH GRANT OPTION; • Bob: GRANT select ON Employee TO Ann WITH GRANT OPTION; • Bob: GRANT insert ON Employee TO Ann; • Jim: GRANT update ON Employee TO Tim WITH GRANT OPTION; • Ann: GRANT select, insert ON Employee TO Tim; • الأوامر الثلاثة الأولى تنفذ بالكامل (Bob هو مالك الجدول) • الأمر الرابع لا ينفذ ( لأن Jim لا يملك الامتياز Update على الجدول) • الأمر الخامس ينفذ جزئياً (لأن Ann تملك الامتيازين select و insert ولكن لا تملك خيار المنح(grant option) من أجل insert) • لذلك يستقبل Tim الامتياز select فقط

  24. DAC • سحب الامتياز (الأمر Revoke): REVOKE PrivilegeList| ALL[PRIVILEGES] ON table | View FROM UserList| PUBLIC • يمكن المستخدم من سحب الامتيازات التي منحها • مثال: Jim: REVOKE select ON Employee FROM Tim; • لدى تنفيذ الأمر Revoke يخسر المستخدم الامتيازات التي منحت له، إلا إن كان قد استقبلها من قبل مستخدم آخر • السحب Recursive، أي عندما يسحب امتياز من مستخدم تسحب الامتيازات من المستخدمين الذي منحوا الامتياز من قبل المستخدم الأول

  25. DAC • مثال: • Bob: GRANT select ON Employee TO Jim WITH GRANT OPTION; • Bob: GRANT select ON Employee TO Ann WITH GRANT OPTION; • Jim: GRANT select ON Employee TO Tim; • Ann: GRANT select ON Employee TO Tim; • Jim: REVOKE select ON Employee FROM Tim; • يستمر Tim بالاحتفاظ بالامتياز select على Employee بعد عملية Revoke، لأنه استقبل الامتياز من قبل Ann أيضاً

  26. DAC Bob Privileges: select, update, insert, etc. Select wgo Select wgo Ann Jim Privileges: select wgo Privileges: select wgo Select Select Tim Privileges: select

  27. 2.4 CBAC • Context-Based Access Control • تضيف شروطاً على نفاذ المواضيع إلى الأغراض • الشروط متعلقة بمحتوى الأغراض • مثال • تخويل المستخدم النفاذ إلى المعلومات المتعلقة بالموظفين الذين لا تتجاوز رواتبهم 30000 ل.س • المشهد (View) يسمح بدعم CBAC • يمكن تعريف مشهد على الجدول الذي يحقق شرطاً معين، ثم نمنح الامتياز على المشهد بدلاً من الجدول؟

  28. CBAC • مثال: لنفرض أننا نريد أن نمنح Ann امتياز النفاذ إلى رواتب الموظفين التي تقل عن 20000 ل.س في الجدول Employee CREATE VIEW Poor_employee AS SELECT * FROM Employee WHERE Salary < 20000; GRANT Select ON Poor_employee TO Ann; • Ann: SELECT * FROM Poor_employee WHERE Job = ‘Programmer’; This is equivalent to: SELECT * FROM Employee WHERE Salary < 20000 AND Job = ‘Programmer’;

  29. CBAC • مساوئ المشهد: • يمكن أن يصبح اختبار النفاذ معقداً وبطيأً • يجب اختبار صحة تعريفات المشهد من أجل التأكد من تحقيقها فعلاً للسياسة الأمنية المطلوبة • لا يتحقق التوافقية و الكمالية حيث يمكن أن تتداخل المشاهد أو تفشل في إلتقاط كل قاعدة المعطيات • الكمالية (Completeness): ضمان حماية جميع حقول قاعدة المعكيات • التوافقية (Consistency): عدم تضارب قواعد النفاذ إلى عنصر بيانات ما.

  30. 3.4 MAC • Mandatory Access Control • توصف قواعد النفاذ بالاعتماد على تصنيف المواضيع والأغراض • تدعى النظم التي تعتمد MACنظم الأمن متعدد المستويات(Multilevel Security) • توضع الأغراض والمواضيع ضمن مستويات أمنية ثم يمنح النفاذ بحسب المستويات الأمنية • يدعى نظام إدارة قواعد المعطيات الذي يعتمد الأمن متعدد المستويات بـ (MLS/DBMSs) • صممت عدد من MLS/DBMSs بالاعتماد على نموذج Bell-LaPadula (BLP) (راجع الجلسة الثالثة)

  31. 4.4 RBAC • Role-Based Access Control • اقترح نموذج RBAC كبديل لـ DAC و MAC • تسهيل مهمة إدارة التحكم بالنفاذ • دعم التحكم بالنفاذ المعتمد على الوظيفة (المهام الإدارية) • تمنح الامتيازات للأدوار (التي تمثل الوظائف في المؤسسة) بدلاً من مستخدم وحيد • يسمح للمستخدمين أن يلعبوا الأدوار المناسبة عن طريق الحصول على التفويض الخاص بالدور • منح وسحب الامتياز من الأدوار أسهل • أغلب DBMSs التجارية تدعم نموذج RBAC

  32. RBAC • أمر إنشاء الدور (CREATE ROLE) في SQL CREATE ROLE role-name IDENTIFIED BY passwd | NOT IDENTIFIED; • مثال: CREATE ROLE teller IDENTIFIED BY cashflow; • حذف الدور: DROP ROLE role-name; • مثال: DROP ROLE teller;

  33. RBAC • منح الدور (GRANT role): GRANT role TO user | role | PUBLIC [WITH ADMIN OPTION]; • مثال: GRANT teller TO Bob; • تعريف امتيازات الدور GRANT select ON Employee TO teller; • منح الدور إلى مستخدم: يجب على من ينفذ المنح: • أن يمتلك الامتياز لذلك الدور مع الاختيار ADMIN OPTION، أو • يمتلك امتياز النظام Grant Any ROLE • يسمح الخيار ADMIN OPTION لمستقبل الامتياز أن يعدل/يسقط الدور

  34. 5. خاتمة • المتطلبات الأمنية لقواعد المعطيات • السرية • التكاملية • التوافرية • التوافق الداخلي • التوافق الخارجي التحكم بالنفاذ (بمستوى DBMS) قواعد السلامة (بمستوى التطبيق)

More Related