Ακεραιότητα και Ασφάλεια Σχεδιασμός Βάσεων Δεδομένων Διδάσκων: Μ. Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition
Ασφάλεια πληροφοριών Η ασφάλεια πληροφοριών (information security) διατήρηση της μυστικότητας των απόρρητων πληροφοριών διασφάλιση της ορθότητας των πληροφοριών σύμφωνα με τις απαιτήσεις και διασφάλιση της προσβασιμότητας των πληροφοριών από εξουσιοδοτημένα άτομα όταν, όπου και σε όποια μορφή απαιτείται. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 2
Eμπιστευτικότητα των δεδομένων Η εμπιστευτικότητα των δεδομένων ικανοποιείται μέσω τριών επιμέρους υπηρεσιών ασφάλειας: Της αυθεντικοποίησης (authentication) που αναφέρεται στη διασφάλιση ότι οι χρήστες που επιχειρούν πρόσβαση στο σύστημα είναι πράγματι αυτοί που ισχυρίζονται ότι είναι. Της εξουσιοδότησης (authorization) που αναφέρεται στον ορισμό και στην επιβολή μιας πολιτικής ελέγχων προσβάσεων (access control policy) η οποία, ουσιαστικά, καθορίζει ποιες λειτουργίες επί ποιων δεδομένων επιτρέπεται να εκτελεί κάθε χρήστης. Της κρυπτογράφησης (encryption) που αναφέρεται στη μη αποκάλυψη των δεδομένων ακόμη και στην περίπτωση διαρροή τους σε μη εξουσιοδοτημένα άτομα. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 3
Eμπιστευτικότητα των δεδομένων Ακεραιότητα των δεδομένων αποσκοπεί στη διασφάλιση ότι τα αποθηκευμένα δεδομένα είναι αξιόπιστα και δεν έχουν αλλοιωθεί από τυχαίες ή εσκεμμένες ενέργειες. Διαθεσιμότητα των δεδομένων αποσκοπεί στη διασφάλιση ότι τα αποθηκευμένα δεδομένα είναι εύκολα προσπελάσιμα, από εξουσιοδοτημένους χρήστες, όταν και όπου απαιτηθεί. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 4
Ασφάλεια πληροφοριών Οι υπηρεσίες ασφάλειας των πληροφοριών παρέχονται σε διάφορα επίπεδα όπως: ασφάλεια λειτουργικού συστήματος (operating system security), ασφάλεια δικτύου (network security) ασφάλεια web server (web server security) ασφάλεια συστήματος ροής εργασίας (workflow security) ασφάλεια εφαρμογών (application security) ασφάλεια βάσης δεδομένων (database security). Η υπηρεσία εξουσιοδοτήσεων και ελέγχων προσβάσεων είναι η μόνη υπηρεσία ασφάλειας που απαιτεί σχεδιασμό σε όρους βάσεων δεδομένων. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 5
Εξουσιοδοτήσεις και Έλεγχοι Πρόσβασης Στο πλαίσιο ενός πληροφοριακού συστήματος κάθε εξουσιοδότηση μπορεί να εκφραστεί με την τετράδα (υποκείμενο, αντικείμενο, είδος πρόσβασης, προϋποθέσεις). Υποκείμενα - Όλες οι λειτουργίες του πληροφοριακού συστήματος εκτελούνται από οντότητες που αναφέρονται ως υποκείμενα (subjects). Αντικείμενα - Όλοι οι πόροι του πληροφοριακού συστήματος (υλικό, λογισμικό και δεδομένα) μπορούν να αναπαρασταθούν ως δεδομένα τα οποία αποθηκεύονται ως αντικείμενα (objects). Είδη πρόσβασης - Τα υποκείμενα εκτελούν πράξεις ή εκκινούν διεργασίες επί αντικειμένων. Οι πράξεις αυτές αναφέρονται ως είδη πρόσβασης και επιτρέπονται ή απαγορεύονται σύμφωνα με τις εξουσιοδοτήσεις που έχουν καθοριστεί στο σύστημα. Συνθήκες - Συχνά, οι απαιτήσεις ασφάλειας θέτουν χρονικούς ή άλλους περιορισμούς στις προσβάσεις υποκειμένων σε αντικείμενα οι οποίοι ονομάζονται προϋποθέσεις ή συνθήκες (conditions) Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 6
Πίνακες ελέγχων προσβάσεων αντικείμενα FILE-1 FILE-2 FILE-3 FILE-4 ACCOUNT-1 ACCOUNT-2 MARY OWN R W OWN R W INQUIRY CREDIT PETER R OWN R W W R INQUIRY DEBIT INQUIRY CREDIT JANE R W R OWN R W INQUIRY DEBIT Υποκείμενα Πίνακα Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 7
Ασφάλεια δεδομένων: Πολιτικές επιτακτικών ελέγχων προσβάσεων Προσδιορισμός προσβάσεων των χρηστών προς τις πληροφορίες με βάση συγκεκριμένες κατηγοριοποιήσεις των υποκειμένων και των αντικειμένων του ΠΣ. Σε κάθε υποκείμενο και κάθε αντικείμενο χορηγείται από ένα επίπεδο ασφάλειας που για το υποκείμενο ονομάζεται επίπεδο διαπίστευσης (clearance level) αντικείμενο ονομάζεται επίπεδο διαβάθμισης (classification level). Το επίπεδο διαπίστευσης ενός υποκειμένου (χρήστη) αντικατοπτρίζει το επίπεδο εμπιστοσύνης προς το χρήστη αναφορικά με την αποκάλυψη διαβαθμισμένων πληροφοριών σε άλλους, μη εξουσιοδοτημένους χρήστες. Το επίπεδο διαβάθμισης ενός αντικειμένου αντικατοπτρίζει την ευαισθησία της πληροφορίας που περιέχεται σ' αυτό. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 8
Πολιτικές και Μηχανισμοί Εξουσιοδοτήσεων Πολιτικές επιτακτικών ελέγχων προσβάσεων ένα επίπεδο ασφάλειας (υποκειμένου ή αντικειμένου) άκρως απόρρητο (top secret - TS), απόρρητο (secret - S), εμπιστευτικό (classified - C) και αδιαβάθμητο (unclassified - U), όπου TS S C U. Σε ένα υποκείμενο χορηγείται ένα είδος πρόσβασης προς ένα αντικείμενο read down: Η διαπίστευση ενός υποκειμένου πρέπει να είναι ίσου ή ανωτέρου επιπέδου από το επίπεδο διαβάθμισης του αντικειμένου που διαβάζεται. Για παράδειγμα, ένα υποκείμενο επιπέδου διαπίστευσης S μπορεί να διαβάζει μόνον αντικείμενα επιπέδων διαβάθμισης S, C και U. write up: Η διαπίστευση ενός υποκειμένου πρέπει να είναι ίσου ή κατωτέρου επιπέδου από το επίπεδο διαβάθμισης του αντικειμένου που γράφεται. Για παράδειγμα, ένα υποκείμενο επιπέδου διαπίστευσης S μπορεί να γράφει μόνον αντικείμενα επιπέδων διαβάθμισης S και TS. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 9
Ακεραιότητα των δεδομένων Οι επιτακτικοί έλεγχοι προσβάσεων μπορεί να εφαρμοστούν με σκοπό τη διασφάλιση της ακεραιότητας των δεδομένων. Για παράδειγμα, τα επίπεδα ακεραιότητας των δεδομένων μπορεί να είναι: κρίσιμο (crucial - C), σημαντικό (important - I) και άγνωστο (unknown - U). Επίπεδο ακεραιότητας αντικειμένου: Αντικατοπτρίζει το βαθμό εμπιστοσύνης στις πληροφορίες που περιέχονται στο αντικείμενο και την ενδεχόμενη βλάβη που μπορεί να προκληθεί στον οργανισμό από την μη εξουσιοδοτημένη αλλοίωση των πληροφοριών αυτών. Επίπεδο ακεραιότητας υποκειμένου: Αντικατοπτρίζει το βαθμό εμπιστοσύνης προς το χρήστη για την εισαγωγή, την ενημέρωση και τη διαγραφή των δεδομένων και των προγραμμάτων του ίδιου επιπέδου ακεραιότητας Για τη διασφάλιση της ακεραιότητα των δεδομένων χρησιμοποιούνται συνήθως οι ακόλουθοι δύο κανόνες: read up: Το επίπεδο ακεραιότητας ενός υποκειμένου πρέπει να είναι κατώτερο από το επίπεδο ακεραιότητας του αντικειμένου που διαβάζεται. write down: Το επίπεδο ακεραιότητας ενός υποκειμένου πρέπει να είναι ανώτερο από το επίπεδο ακεραιότητας του αντικειμένου που γράφεται. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 10
Authorization Forms of authorization on parts of the database: Read authorization - allows reading, but not modification of data. Insert authorization - allows insertion of new data, but not modification of existing data. Update authorization - allows modification, but not deletion of data. Delete authorization - allows deletion of data Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 13
Authorization (Cont.) Forms of authorization to modify the database schema: Index authorization - allows creation and deletion of indices. Resources authorization - allows creation of new relations. Alteration authorization - allows addition or deletion of attributes in a relation. Drop authorization - allows deletion of relations. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 14
Authorization and Views Users can be given authorization on views, without being given any authorization on the relations used in the view definition Ability of views to hide data serves both to simplify usage of the system and to enhance security by allowing users access only to data they need for their job A combination or relational-level security and view-level security can be used to limit a user s access to the data that user needs. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 15
View Example Suppose a bank clerk needs to know the names of the customers of each branch, but is not authorized to see specific loan information. Approach: Deny direct access to the loan relation, but grant access to the view cust-loan, which consists only of the names of customers and the branches at which they have a loan. The cust-loan view is defined in SQL as follows: create view cust-loan as select branchname, customer-name from borrower, loan where borrower.loan-number = loan.loan-number Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 16
View Example (Cont.) The clerk is authorized to see the result of the query: select * from cust-loan When the query processor translates the result into a query on the actual relations in the database, we obtain a query on borrower and loan. Authorization must be checked on the clerk s query before query processing replaces a view by the definition of the view. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 17
Ρόλοι χρηστών Οι ρόλοι των χρηστών ενός πληροφοριακού συστήματος ορίζονται κατά τη διαδικασία του προσδιορισμού των απαιτήσεων ασφάλειας του συστήματος. Για τον ορισμό των ρόλων μπορεί να χρησιμοποιηθούν πληροφορίες όπως οι περιγραφές των θέσεων εργασίας, των καθηκόντων των εργαζομένων, των επιμέρους εργασιών για την εκτέλεση ενός έργου και των εργασιών που μπορούν να εκτελούν μέσω του πληροφοριακού συστήματος οι συναλλασσόμενοι με τον οργανισμό. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 19
ROLE N M HAS ACCESS M N USER RESOURCE Πλεονέκτημα των ρόλων είναι καθιστούν τους πόρους ενός πληροφοριακού συστήματος λογικά ανεξάρτητους από τους χρήστες του συστήματος με αποτέλεσμα να διευκολύνεται και καθίσταται ελεγχόμενη η διαχείριση των εξουσιοδοτήσεων. Λογική ανεξαρτησία μεταξύ των χρηστών και των πόρων ενός πληροφοριακού συστήματος οι προσβάσεις των χρηστών στους πόρους του πληροφοριακού συστήματος δεν προσδιορίζονται άμεσα, αλλά μόνον έμμεσα δια μέσου των ρόλων. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 20
Συσχετίσεις Ρόλων Επαγγελματίας Υγείας Ιεραρχία Ρόλων τύπου Γενίκευσης Ειδίκευσης Κάθε απογονικός ρόλος κληρονομεί τα δικαιώματα πρόσβασης του γονικού του ρόλου και έχει κάποια πρόσθετα δικαιώματα Ειδικευμένος Γιατρός Γιατρός Ειδικευόμενος Γιατρός Νοσηλευτής Προϊστάμενος Νοσηλευτής Διευθυντής Γιατρός ROLE HIERARCHY RCODE RNAME SUPEROLE SUBROLE R0 Επαγγελματίας Υγείας R0 R1 ROLE 1 N υπερόλος υπορόλος HIERARCHY R1 R2 R3 R4 Γιατρός Νοσηλευτής Ειδικευμένος Γιατρός Ειδικευμένος Γιατρός R0 R1 R1 R2 R2 R3 R4 R5 R5 Προϊστάμενος Νοσηλ. R3 R6 R6 Διευθυντής Γιατρός Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 21
Συσχετίσεις Ρόλων Γενικός Διευθυντής Ιεραρχία Ρόλων τύπου συσσώρευσης Διευθυντής Οικονομικού Διευθυντής Προσωπικού Διευθυντής Πληροφορικής Προϊστάμενος Υλικού Προϊστάμενος Δικτύων Προϊστάμενος Λογισμικού ROLE HIERARCHY RCODE RNAME SUPEROLE SUBROLE R0 Γενικός Διευθυντής R0 R1 ROLE 1 N υπερόλος υπορόλος HIERARCHY R1 R2 R3 R4 Δντης Οικονομικού Δντης Προσωπικού Δντης Πληροφορικής Προϊστάμενος Υλικού R0 R0 R3 R3 R2 R3 R4 R5 R5 Προϊστάμενος Δικτύων R3 R6 R6 Διευθυντής Λογισμικού Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 22
Συσχετίσεις Ρόλων Μηχανικός Ιεραρχία Ρόλων που βασίζεται στη διοικητική ιεραρχία του οργανισμού Μηχανικός Υλικού Μηχανικός Δικτύων Μηχανικός Λογισμικού Προϊστάμενος Μηχανικός ROLE HIERARCHY RCODE RNAME SUPEROLE SUBROLE R0 Μηχανικός R0 R1 ROLE 1 N υπερόλος υπορόλος HIERARCHY R1 R2 R3 R4 Μηχανικός Υλικού Μηχανικός Δικτύων Μηχανικός Λογισμικού Προϊστάμενος Μηχανικός R0 R0 R1 R2 R3 R2 R3 R4 R4 R4 Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 23
Γενικό Μοντέλο Ελέγχων Προσβάσεων με βάση Ρόλους Το γενικό μοντέλο προσβάσεων με βάση ρόλους (role-based access control - RBAC) αποτελεί ένα εννοιολογικό πλαίσιο για την κατασκευή εξειδικευμένων μοντέλων ελέγχων προσβάσεων με βάση ρόλους. Το γενικό μοντέλο RBAC υποστηρίζει ευρέως γνωστές αρχές ασφάλειας, όπως Αρχή των ελάχιστων προνομίων ανάθεση σε κάθε ρόλο μόνο των προνομίων που απαιτούνται για την εκτέλεση των καθηκόντων των μελών του ρόλου (π.χ. των χρηστών που έχουν τον ρόλο). στο ρόλο bank teller ανατίθενται μόνο τα προνόμια open, credit, debit και close για τους τραπεζικούς λογαριασμούς τα οποία απαιτούνται για την εκτέλεση των καθηκόντων και την άσκηση των αρμοδιοτήτων κάθε μέλους του ρόλου αυτού. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 24
Γενικό Μοντέλο Ελέγχων Προσβάσεων με βάση Ρόλους Αρχή του διαχωρισμού καθηκόντων Η αρχή του διαχωρισμού των καθηκόντων υποστηρίζεται με την ανάθεση κάποιων λειτουργιών σε αμοιβαία διακριτούς ρόλους. Δύο ρόλοι ονομάζονται αμοιβαία διακριτοί αν ένα μέλος του ενός ρόλου δεν μπορεί να είναι μέλος και του άλλου ρόλου. Για παράδειγμα, για την έκδοση μια τραπεζικής επιταγής μπορεί να απαιτούνται οι εγκρίσεις των αμοιβαία διακριτών ρόλων bank teller και account manager. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 25
Γενικό Μοντέλο Ελέγχων Προσβάσεων με βάση Ρόλους Αρχή της αφαίρεσης των δεδομένων Η αρχή της αφαίρεσης των δεδομένων υποστηρίζεται με τη χορήγηση αφηρημένων προνομίων σε ρόλους. Για παράδειγμα, για ένα τραπεζικό λογαριασμό χορηγούνται τα προνόμια credit και debit αντί των προνομίων read, write και execute που παρέχονται από το σύστημα. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 26
Μεθοδολογία σχεδιασμού συστημάτων με βάση τους ρόλους Ανάλυση κινδύνων Αφορά στην εκτίμηση των επιπτώσεων για τον οργανισμό από πιθανή διαρροή πληροφοριών σε μη εξουσιοδοτημένα άτομα. Προσδιορίζονται και αποτιμώνται τα αντικείμενα δεδομένων (assessment), εκτιμώνται οι πιθανές απειλές (threats) επί της βάσης δεδομένων και αναγνωρίζονται οι ευπάθειες (vulnerabilities) της βάσης δεδομένων. Αποτέλεσμα της διαδικασίας ανάλυσης των κινδύνων είναι ο προσδιορισμός μιας πολιτικής ασφάλειας των δεδομένων του οργανισμού. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 27
Μεθοδολογία σχεδιασμού συστημάτων με βάση τους ρόλους Διαχείριση κινδύνων Αφορά στον προσδιορισμό και στη λήψη των κατάλληλων τεχνικών μέτρων για την ελαχιστοποίηση των κινδύνων παραβίασης της ασφάλειας υπό τους περιορισμούς του κόστους και της διαθεσιμότητας των δεδομένων. Εξάλειψη των κινδύνων αντικατοπτρίζει ανάπτυξη συστημάτων ασφάλειας στοχεύει στον περιορισμό των κινδύνων παραβίασης της ασφάλειας σε ένα αποδεκτό επίπεδο και όχι στην εξάλειψη των κινδύνων με κάθε κόστος και ανεξάρτητα από την επιβάρυνση της χρηστικότητας του συστήματος. Αποτέλεσμα της διαδικασίας διαχείρισης των κινδύνων είναι ο σχεδιασμός και ο προσδιορισμός των τεχνικών μέτρων ή μηχανισμών για την υλοποίηση της πολιτικής ασφάλειας των δεδομένων του οργανισμού. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 28
Security Specification in SQL The grant statement is used to confer authorization grant <privilege list> on <relation name or view name> to <user list> <user list> is: a user-id public, which allows all valid users the privilege granted A role Granting a privilege on a view does not imply granting any privileges on the underlying relations. The grantor of the privilege must already hold the privilege on the specified item (or be the database administrator). Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 32
Privileges in SQL select: allows read access to relation,or the ability to query using the view Example: grant users U 1, U 2, and U 3 select authorization on the branch relation: grant select on branch to U 1, U 2, U 3 insert: the ability to insert tuples update: the ability to update using the SQL update statement delete: the ability to delete tuples. references: ability to declare foreign keys when creating relations. grant references (branch-name) on branch to U 1 usage: In SQL-92; authorizes a user to use a specified domain all privileges: used as a short form for all the allowable privileges Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 33
Privilege To Grant Privileges with grant option: allows a user who is granted a privilege to pass the privilege on to other users. Example: grant select on branch to U 1 with grant option gives U 1 the select privileges on branch and allows U 1 to grant this privilege to others Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 34
Roles Roles permit common privileges for a class of users can be specified just once by creating a corresponding role Privileges can be granted to or revoked from roles, just like user Roles can be assigned to users, and even to other roles SQL:1999 supports roles create role teller create role manager grant select on branch to teller grant update (balance) on account to teller grant all privileges on account to manager grant teller to manager grant teller to alice, bob grant manager to avi Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 35
Revoking Authorization in SQL The revoke statement is used to revoke authorization. revoke<privilege list> on <relation name or view name> from <user list> [restrict cascade] Example: revoke select on branch from U 1, U 2, U 3 cascade Revocation of a privilege from a user may cause other users also to lose that privilege; referred to as cascading of the revoke. revoke update (amount) on loan from U 1, U 2, U 3 revoke update (amount) on loan from U 1, U 2, U 3 revoke references (branch-name) on branch from U 1 We can prevent cascading by specifying restrict: revoke select on branch from U 1, U 2, U 3 restrict With restrict, the revoke command fails if cascading revokes are required. Σχεδιασμός Βάσεων Δεδομένων, Παν. Πειραιά 36