SELinux
Το Security-Enhanced Linux (SELinux) είναι μια λειτουργική μονάδα ασφαλείας του πυρήνα Linux που παρέχει έναν μηχανισμό για την υποστήριξη πολιτικών ασφαλείας ελέγχου πρόσβασης, συμπεριλαμβανομένων των υποχρεωτικών ελέγχων πρόσβασης (MAC). Το SELinux είναι ένα σύνολο τροποποιήσεων πυρήνα και εργαλείων χώρου χρήστη που έχουν προστεθεί σε διάφορες διανομές Linux. Η αρχιτεκτονική του προσπαθεί να διαχωρίσει την επιβολή των αποφάσεων ασφαλείας από την πολιτική ασφαλείας και εξορθολογίζει την ποσότητα του λογισμικού που εμπλέκεται στην επιβολή της πολιτικής ασφαλείας.[2][3] Οι βασικές έννοιες στις οποίες βασίζεται το SELinux μπορούν να ανιχνευθούν σε πολλά προηγούμενα έργα από την Υπηρεσία Εθνικής Ασφάλειας των Ηνωμένων Πολιτειών (NSA). ΕπισκόπησηΗ NSA Security Enhanced Linux Team περιγράφει το NSA SELinux ως[4]
Ένας πυρήνας Linux που ενσωματώνει το SELinux επιβάλλει υποχρεωτικές πολιτικές ελέγχου πρόσβασης που περιορίζουν τα προγράμματα χρήστη και τις υπηρεσίες συστήματος, καθώς και την πρόσβαση σε αρχεία και πόρους δικτύου. Ο περιορισμός του προνομίου στο ελάχιστο που απαιτείται για να λειτουργήσει μειώνει ή εξαλείφει την ικανότητα αυτών των προγραμμάτων και δαιμόνων να προκαλούν βλάβη σε περίπτωση ελαττωματικών ή παραβιασμένων (για παράδειγμα μέσω υπερχείλισης buffer ή εσφαλμένων διαμορφώσεων). Αυτός ο μηχανισμός περιορισμού λειτουργεί ανεξάρτητα από τους παραδοσιακούς μηχανισμούς ελέγχου πρόσβασης Linux (διακριτική). Δεν έχει την έννοια του υπερχρήστη "root" και δεν συμμερίζεται τις γνωστές αδυναμίες των παραδοσιακών μηχανισμών ασφαλείας Linux, όπως η εξάρτηση από τα δυαδικά αρχεία setuid/setgid. Η ασφάλεια ενός «μη τροποποιημένου» συστήματος Linux (ένα σύστημα χωρίς SELinux) εξαρτάται από την ορθότητα του πυρήνα, όλων των προνομιούχων εφαρμογών και κάθε διαμόρφωσης τους. Ένα σφάλμα σε οποιαδήποτε από αυτές τις περιοχές μπορεί να επιτρέψει τον συμβιβασμό ολόκληρου του συστήματος. Αντίθετα, η ασφάλεια ενός "τροποποιημένου" συστήματος (που βασίζεται σε πυρήνα SELinux) εξαρτάται πρωτίστως από την ορθότητα του πυρήνα και τη διαμόρφωση της πολιτικής ασφαλείας του. Ενώ τα προβλήματα με την ορθότητα ή τη διαμόρφωση των εφαρμογών ενδέχεται να επιτρέπουν τον περιορισμένο συμβιβασμό μεμονωμένων προγραμμάτων χρήστη και δαιμόνων συστήματος, δεν αποτελούν απαραίτητα απειλή για την ασφάλεια άλλων προγραμμάτων χρηστών και δαιμόνων συστήματος ή για την ασφάλεια του συστήματος συνολικά. Από μια καθαρά προοπτική, το SELinux παρέχει ένα υβρίδιο εννοιών και δυνατοτήτων που αντλούνται από υποχρεωτικούς ελέγχους πρόσβασης, υποχρεωτικούς ελέγχους ακεραιότητας, έλεγχο πρόσβασης βάσει ρόλου (RBAC) και αρχιτεκτονική επιβολής τύπου. Τα εργαλεία τρίτων επιτρέπουν σε κάποιον να δημιουργήσει μια ποικιλία πολιτικών ασφαλείας. ΙστορίαΗ πρώτη εργασία που στοχεύει στην τυποποίηση μιας προσέγγισης που παρέχει υποχρεωτικούς και διακριτικούς ελέγχους πρόσβασης (MAC και DAC) εντός ενός υπολογιστικού περιβάλλοντος UNIX (ακριβέστερα, POSIX) μπορεί να αποδοθεί στην Ομάδα Εργασίας Trusted UNIX (TRUSIX) της Εθνικής Υπηρεσίας Ασφαλείας, η οποία συνεδρίασε από το 1987 έως το 1991 και δημοσίευσε ένα Βιβλίο Ουράνιου Τόξου (#020A), και παρήγαγε ένα επίσημο μοντέλο και ένα σχετικό πρωτότυπο αποδεικτικών στοιχείων αξιολόγησης (#020B) που τελικά δεν δημοσιεύτηκε. Το SELinux σχεδιάστηκε για να δείξει την αξία των υποχρεωτικών ελέγχων πρόσβασης στην κοινότητα του Linux και πώς θα μπορούσαν να προστεθούν τέτοια στοιχεία στο Linux. Αρχικά, οι ενημερώσεις κώδικα που απαρτίζουν το SELinux έπρεπε να εφαρμοστούν ρητά στην πηγή του πυρήνα του Linux. Το SELinux συγχωνεύτηκε στην κύρια γραμμή του πυρήνα Linux στη σειρά 2.6 του πυρήνα Linux. Η NSA, ο αρχικός κύριος προγραμματιστής του SELinux, κυκλοφόρησε την πρώτη έκδοση στην κοινότητα ανάπτυξης ανοιχτού κώδικα υπό την GNU GPL στις 22 Δεκεμβρίου 2000.[5] Το λογισμικό συγχωνεύτηκε στον κύριο πυρήνα Linux 2.6.0-test3, που κυκλοφόρησε στις 8 Αυγούστου 2003 Άλλοι σημαντικοί συνεισφέροντες είναι οι Red Hat, Network Associates, Secure Computing Corporation, Tresys Technology και Trusted Computer Solutions. Πειραματικές θύρες της υλοποίησης FLASK/TE έχουν γίνει διαθέσιμες μέσω του TrustedBSD Project για τα λειτουργικά συστήματα FreeBSD και Darwin. Το Linux με βελτιωμένη ασφάλεια υλοποιεί τον προηγμένο πυρήνα ασφαλείας Flux (FLASK). Ένας τέτοιος πυρήνας περιέχει αρχιτεκτονικά στοιχεία που έχουν προτυποποιηθεί στο λειτουργικό σύστημα Fluke. Αυτά παρέχουν γενική υποστήριξη για την επιβολή πολλών ειδών υποχρεωτικών πολιτικών ελέγχου πρόσβασης, συμπεριλαμβανομένων εκείνων που βασίζονται στις έννοιες της επιβολής τύπου, του ελέγχου πρόσβασης βάσει ρόλων και της ασφάλειας πολλαπλών επιπέδων. Το FLASK, με τη σειρά του, βασίστηκε στο DTOS, ένα κατανεμημένο αξιόπιστο λειτουργικό σύστημα προερχόμενο από Mach, καθώς και στο Trusted Mach, ένα ερευνητικό έργο από τα Trusted Information Systems που είχε επιρροή στο σχεδιασμό και την υλοποίηση του DTOS. ΧαρακτηριστικάΤα χαρακτηριστικά του SELinux περιλαμβάνουν:
ΥιοθέτησηΤο SELinux έχει εφαρμοστεί στο Android από την έκδοση 4.3.[10] ![]() Μεταξύ των δωρεάν διανομών Linux που υποστηρίζονται από την κοινότητα, το Fedora ήταν ένας από τους πρώτους που το υιοθέτησαν, συμπεριλαμβανομένης της υποστήριξης του από προεπιλογή από το Fedora Core 2. Άλλες διανομές περιλαμβάνουν υποστήριξη για αυτό, όπως το Debian από την έκδοση 9 Stretch[11] και το Ubuntu από την 8.04 Hardy Heron.[12] Από την έκδοση 11.1, το openSUSE περιέχει τη "βασική ενεργοποίηση" του SELinux.[13] Το SUSE Linux Enterprise 11 διαθέτει το SELinux ως "προεπισκόπηση τεχνολογίας".[14] Το SELinux είναι δημοφιλές σε συστήματα που βασίζονται σε κοντέινερ linux, όπως το CoreOS Container Linux και το rkt.[15] Είναι χρήσιμο ως πρόσθετος έλεγχος ασφαλείας για να βοηθήσει στην περαιτέρω επιβολή της απομόνωσης μεταξύ των αναπτυγμένων κοντέινερ και του κεντρικού υπολογιστή τους. Το SELinux είναι διαθέσιμο από το 2005 ως μέρος της έκδοσης 4 του Red Hat Enterprise Linux (RHEL) και όλων των μελλοντικών εκδόσεων. Αυτή η παρουσία αντικατοπτρίζεται επίσης σε αντίστοιχες εκδόσεις του CentOS και του Scientific Linux. Η υποστηριζόμενη πολιτική στο RHEL4 είναι στοχευμένη πολιτική που στοχεύει στη μέγιστη ευκολία χρήσης και επομένως δεν είναι τόσο περιοριστική όσο θα μπορούσε να είναι. Οι μελλοντικές εκδόσεις της RHEL σχεδιάζονται να έχουν περισσότερους στόχους στη στοχευμένη πολιτική, κάτι που θα σημαίνει πιο περιοριστικές πολιτικές. Σύγκριση με το AppArmor![]() Το SELinux αντιπροσωπεύει μία από τις πολλές πιθανές προσεγγίσεις στο πρόβλημα του περιορισμού των ενεργειών που μπορεί να κάνει το εγκατεστημένο λογισμικό. Μια άλλη δημοφιλής εναλλακτική λύση ονομάζεται AppArmor και είναι διαθέσιμη σε πλατφόρμες SUSE Linux Enterprise Server (SLES), openSUSE και Debian. Το AppArmor αναπτύχθηκε ως στοιχείο της πλέον ανενεργής πλατφόρμας Immunix Linux. Επειδή το AppArmor και το SELinux διαφέρουν ριζικά το ένα από το άλλο, αποτελούν ξεχωριστές εναλλακτικές λύσεις για τον έλεγχο λογισμικού. Ενώ το SELinux επινοεί εκ νέου ορισμένες έννοιες για να παρέχει πρόσβαση σε ένα πιο εκφραστικό σύνολο επιλογών πολιτικής, το AppArmor σχεδιάστηκε να είναι απλό επεκτείνοντας την ίδια διοικητική σημασιολογία που χρησιμοποιείται για το DAC μέχρι το υποχρεωτικό επίπεδο ελέγχου πρόσβασης. Υπάρχουν πολλές βασικές διαφορές:
Παρόμοια συστήματα και βελτιώσειςΗ απομόνωση των διαδικασιών μπορεί επίσης να επιτευχθεί με μηχανισμούς όπως η εικονικοποίηση. το έργο OLPC, για παράδειγμα, στην πρώτη του εφαρμογή[18] περιέλαβε μεμονωμένες εφαρμογές σε ελαφρούς διακομιστές. Επίσης, η NSA έχει υιοθετήσει ορισμένες από τις έννοιες του SELinux στο Android Enhanced Security.[19] Η General Dynamics δημιουργεί και διανέμει το PitBull Trusted Operating System,[20] μια βελτίωση πολλαπλών επιπέδων ασφάλειας (MLS) για το Red Hat Enterprise Linux. Το Multi-Category Security (MCS) είναι μια βελτίωση του SELinux για το Red Hat Enterprise Linux που επιτρέπει στους χρήστες να επισημαίνουν αρχεία με κατηγορίες, προκειμένου να περιορίζουν περαιτέρω την πρόσβαση μέσω διακριτικού ελέγχου πρόσβασης και επιβολής τύπων. Οι κατηγορίες παρέχουν πρόσθετα διαμερίσματα εντός των επιπέδων ευαισθησίας που χρησιμοποιούνται από την ασφάλεια πολλαπλών επιπέδων (MLS).[21] Παραπομπές
Εξωτερικοί σύνδεσμοι
|