• Nenhum resultado encontrado

Ασφάλεια Linux

N/A
N/A
Protected

Academic year: 2023

Share "Ασφάλεια Linux"

Copied!
49
0
0

Texto

(1)

ΑΣΦΑΛΕΙΑ LINUX

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΠΟ ΤΟΝ ΔΗΜΗΤΡΙΟ ΓΟΥΡΖΗ

(2)

ΙΣΤΟΡΙΚΑ

Το Linux είναι ένα λειτουργικό σύστημα, το οποίο άρχισε να δημιουργείται στο πανεπιστήμιο του Ελσίνκι στη Φιλανδία από τον Linus Torvalds. Άρχισε ως μία φοιτητική προσπάθεια δημιουργίας ενός λειτουργικού προγράμματος τύπου UNIX, το οποίο θα μπορούσε να εκτελεστεί σε μικρές μηχανές όπως οι προσωπικοί

υπολογιστές (PCs). Σήμερα, πολύ μεγάλες επιχειρήσεις, κυβερνητικοί οργανισμοί αλλά και απλοί χρήστες το χρησιμοποιούν ως μια ιδιαίτερα ικανοποιητική λύση σε επίπεδο λειτουργικού συστήματος. Σε πείσμα της σύγχρονης τάσης για όλο και ισχυρότερες μηχανές, το βασικό Linux μπορεί να εκτελεστεί ικανοποιητικά και σε μηχανές χαμηλών σχετικά δυνατοτήτων.

Το λειτουργικό σύστημα Linux αν και αποτελεί μια παραλλαγή του UNIX αναπτύσσεται υπό την γενική άδεια της GNU (γνωστή ως GNU GLP – General Public Licence – www.gnu.org) και ο πηγαίος κώδικας του είναι ελεύθερα διαθέσιμος. Οποιοσδήποτε ενδιαφέρεται μπορεί να κατεβάσει τον πηγαίο κώδικα από το Διαδίκτυο (www.linux.org).

ΔΙΑΝΟΜΕΣ

Υπάρχουν διανομές του Linux σε CD από διάφορες εταιρίες οι οποίες χρεώνουν τα μέσα διανομής και την υποστήριξη. Οι πιο γνωστές διανομές είναι οι Red Hat, SuSE, Caldera, Mandrake, Turbo Linux, Debian, OpenLinux κ.λπ. Επίσης από τις συνεργασίες των SuSE, Caldera

Turbo Linux, Conectiva, έχει προκύψει ένα βασικό σύστημα Linux με το όνομα United Linux. Στην τυπική περίπτωση, προμηθεύεται κανείς κάποια από τις διανομές Linux που κυκλοφορούν στην αγορά.

ΕΚΔΟΣΕΙΣ

(3)

Οι διάφορες εκδόσεις του Linux, στην ουσία παραπέμπουν σε αντίστοιχη έκδοση πυρήνα (kernel). Κατά κανόνα, οι ζυγές εκδόσεις θεωρούνται ευσταθείς εκδόσεις παραγωγής π.χ. 2.2.x ή 2.4.x κ.ο.κ· ενώ οι μονές ότι βρίσκονται σε φάση

ανάπτυξης. Η τελευταία έκδοση είναι η 2.6.x. Συστήματα βασισμένα σε εκδόσεις παραγωγής του Linux αποδεικνύονται σε ιδιαίτερα σταθερά συστήματα.

ΑΣΦΑΛΕΙΑ

Ένα σύστημα Linux, χωρίς προσαρμογές με γνώμονα την ασφάλεια, είναι σχεδόν βέβαιο ότι κάποια στιγμή θα γίνει εύκολος στόχος ακόμα και για απλοϊκές

επιθέσεις. Αντίθετα ένα συνεχώς ενημερωμένο σύστημα, το οποίο έχεις

δημιουργηθεί με σοβαρές προβλέψεις ασφαλείας κατά νου, μπορεί να αποδειχθεί ιδιαίτερα ανθεκτικό.

Περιουσιακά στοιχεία

Πριν από οποιαδήποτε ενέργεια σχετικά με την ασφάλεια, πρέπει να σχηματιστεί μία λίστα με όλα τα στοιχεία που Θα μπορούσαν va επηρεάσουν το βαθμό ασφάλειας του συστήματος ή να επηρεαστούν από ένα πρόβλημα ασφάλειας. H λίστα αυτή ενδεικτικά Θα πρέπει να περιλαμβάνει:

Όσον αφορά ντους φυσικούς πόρους

Ανθρώπινοι πόροι. Χρήστες, διαχειριστές και κάθε είδος προσωπικού υποστήριξης, όπως για παράδειγμα προσωπικό συντήρησης κ.λπ.

Στοιχεία υλισμικού. Μνήμες, δίσκοι, πληκτρολόγια κ.λπ.

Αναλώσιμα υποστήριξης, όπως για παράδειγμα αποσπώμενα μέσα εφεδρικών αντιγράφων κ.λπ.

Όσον αφορά στην υποδομή λογισμικού

Στοιχεία λογισμικού. Προγράμματα κάθε είδούς και κάθε μορφής, λειτουργικά

συστήματα κ.λπ.

Όσον αφορά στις τηρούμενες πληροφορίες

Δεδομένα που δεν χαρακτηρίζονται ως δημόσια. Υπό επεξεργασία, στους δί- σκους σε μορφή εφεδρικών αντιγράφων, δεδομένα καταγραφών, βάσεις δεδομένων, δεδομένα σε μεταφορά κ.λπ.

(4)

Τεκμηρίωση προγραμμάτων, υλικού, συστημάτων, διαδικασιών κ.λπ.

Απειλές

Οι απειλές μπορούν κατ' αρχήν να διακριθούν σε αυτές που οφείλονται σε φυσικά αίτια (σεισμοί, πλημμύρες, πυρκαγιά κ.λπ.) και απειλές που οφείλονται σε πρόσωπα, τα οποία εκμεταλλευόμενα είτε τεχνικές αδυναμίες, π.χ. κάποιο πρό- βλημα σε πρόγραμμα που δεν έχει διορθωθεί, είτε κάποια διοικητική / διαδικαστι- κή αδυναμία, προξενούν βλάβη στη λειτουργία του συστήματος ή

προσπελαύνουν πόρους για τους οποίους δεν έχουν αντίστοιχα δικαιώματα.

Οποιοσδήποτε

έχει φυσική ή δικτυακήπρόσβαση σε ένα σύστημα μπορεί va αποτελέσει εν δυνάμει απειλή. Οι απειλές αφορούν στις ακόλουθες τρεις εμπλεκόμενες συνιστώσες:

Απειλές που έχουν ως στόχο τις μηχανές εξυπηρέτησης και τα δεδομένα που φιλοξενούνται σε αυτές. Θα πρέπει να εξασφαλιστεί η συνεχής λειτουργία των μηχανών πού φιλοξενούν προγράμματα εξυπηρέτησης, καθώς επίσης και ότι οι πληροφορίες που τηρούνται σε αυτές δεν μπορούν va τροποποιηθούν χωρίς την αντίστοιχη εξουσιοδότηση και ότι οι πληροφορίες αυτές διατίθενται μόνο σε όσους είναι επιθυμητό.

Απειλές που αφορούν πληροφορίες που διακινούνται μεταξύ εξυπηρετητή και εξυπηρετούμενού. Πρέπει να εξασφαλιστεί ότι οι πληροφορίες που διακινούνται μεταξύ εξυπηρετητή και εξυπηρετούμενου δεν μπορούν να αναγνωστούν, αλλοι- ωθούν ή να καταστραφούν από τρίτους. Επιπλέον, η διακίνηση αυτή πληροφο- ριών πρέπει να γίνεται με αδιατάρακτο τρόπο που θα εξασφαλίζει το απόρρητο των προσωπικών πληροφοριών που αφορούν στους χρήστες.

Απειλές που έχουν ως στόχο τον υπολογιστή του χρήστη. Οι υπηρεσίες που χρη- σιμοποιούν το διαδίκτυο, έχουν φυσικά ως τελικό αποδέκτη το χρήστη. Για την απρόσκοπτη λειτουργία του συνολικού συστήματος, o υπολογιστής και οι λοιπές συσκευές που χρησιμοποιεί o χρήστης καθώς και το αντίστοιχο λογισμικό, πρέ- πει να είναι σε κάποιο λογικό επίπεδο, ασφαλή και απαλλαγμένα από κάθε εί- δους επιβλαβή προγράμματα, όπως για παράδειγμα ιοί, δούρειοι ίπποι, κατα- σκοπευτικά προγράμματα κ.λπ.

Εισβολή σε μηχανή.

Πρόκειται για εκμετάλλευση αδυναμιών ασφαλείας του συστήματος, με στόχο την απόκτηση του ελέγχου μιας μηχανής, από ένα μη εξουσιοδοτημένο πρόσωπο, εσωτερικό ή εξωτερικό του οργανισμού. Οι αδυναμίες αυτές μπορεί να οφείλονται για παράδειγμα σε πλημμελείς ρυθμίσεις ασφάλειας όπως ύπαρξη μη απαραίτητων χρηστών, ανεπαρκές σύστημα ελέγχου πρόσβασης, απουσία προστασίας ή λάθος προστασία πόρων του συστήματος, χαλαρό περιβάλλον λειτουργικού συστήματος ή σε τρωτά σημεία προγραμμάτων υποδομής (λειτουργικού εξυπηρετητών) ή ακόμα σε προβλήματα ασφαλείας

(5)

των εφαρμογών.

Ανάλογα με το βαθμό επιτυχίας και τα κίνητρα της εισβολής, οι εισβολείς πιθανόν να μη δημιουργήσουν κανένα πρόβλημα στο σύστημα ή να περιοριστούν σε σχετικά ανώδυνες αλλοιώσεις, όπως για παράδειγμα στην παραποίηση σελίδων μιας υπηρεσίας δημοσίευσης ιστοσελίδων

(www.attrition.org/mirror/attrition/). Ενδέχεται όμως, πάντα ανάλογα με τα κίνητρα του εισβολέα, μια επιτυχημένη εισβολή να έχει πολύ σοβαρές συνέπειες, όπως για παράδειγμα τις ακόλουθες:

Χρήση πόρων της μηχανής ή χρήση της για επίθεση σε άλλες μηχανές. O εισβο- λέας μπορεί να χρησιμοποιήσει το σύστημα για χρήση των πόρων του ή για επίθεση σε άλλες μηχανές, ώστε να γίνει όσο το δυνατό δυσκολότερα αντιληπτός.

Οι επιθέσεις αυτές μπορούν να καταλήξουν σε άρνηση υπηρεσίας, λόγω κατανά- λωσης πόρων από τον επιτιθέμενο, αλλά και λόγω του ότι άλλοι τόποι αντιμετωπίζουν τον προσβαλλόμενο ως επιβλαβή τόπο.

Κλοπή κάθε είδους δεδομένων που υπάρχουν στη μηχανή. Τα δεδομένα μπορούν για παράδειγμα να αφορούν σχέδια προϊόντων, ονόματα και διευθύνσεις πελατών, πληροφορίες σχετικά με αριθμούς πιστωτικών καρτών και τραπεζικούς λογαριασμούς πελατών, ευαίσθητα δεδομένα που αφορούν το ίδιο το σύστημα όπως λέξεις πρόσβασης κ.λπ.

Παραποίηση ή απαλοιφή δεδομένων που τηρούνται στη μηχανή. O τύπος αυτός εισβολής όπως και o προηγούμενος είναι ιδιαίτερα επικίνδυνος. 'Ενας εισβο- λέας στην περίπτωση αυτή μπορεί να παραποιήσει ή να διαγράψει δεδομένα. Στις περιπτώσεις αυτές, μπορεί να βοηθήσει ένα καλό πρόγραμμα λήψης εφεδρικών αντιγράφων, υπό το όρο όμως ότι η εισβολή Θα γίνει αντιληπτή έγκαιρα.

Κατάχρηση πρόσβασης

Κατά την απειλή του τύπου αυτού, πρόσωπο στο οποίο έχουν καταχωρηθεί δι- καιώματα πρόσβασης σε συγκεκριμένους πόρους του συστήματος, κάνει χρήση αυτών κατά τρόπο που δεν εμπίπτει στο πλαίσιο εκχώρησής των. Συνήθως πρόκειται για έσωθεν απειλή (insiders - π.χ. διαχειριστές συστήματος, προσωπικό συ- ντήρησης, απλοί χρήστες), κατά την οποία είτε δημιουργείται πρόβλημα στη λει- τουργία του συστήματος είτε δημοσιοποιούνται ή τροποποιούνται δεδομένα κ.λπ.

Είναι προφανές ότι ανάλογα με το επίπεδο πρόσβασης του επιτιθέμενου οι συνέπειες μπορεί να είναι ιδιαίτερα καταστρεπτικές και γενικά μπορούν να ταξινομηθούν όπως στην περίπτωση της εισβολής που αναφέρθηκε αμέσως πριν.

Άρνηση Παροχής Υπηρεσιών (Denial of Service - DoS)

Συμβαίνει όταν o εισβολέας μειώνει ή εξαφανίζει τη διαθεσιμότητα μιας υπηρεσίας, μέσω της επαγωγής κάθε είδους φορτίων, επαναδρομολογήσεων, κατάρρευσης του συστήματος, εξάντληση της χωρητικότητας της γραμμής κ.λπ. Αυτό στην ουσία καθιστά απαγορευτική τη χρήση του συστήματος από εξουσιοδοτημένους χρήστες. Ας σημειωθεί ότι επιβάρυνση στη λειτουργία ενός ήδη έντονα χρησιμοποιούμενου συστήματος, μπορεί να προκύψει και από κανονικές διαδικασίες,

(6)

όπως για παράδειγμα η λήψη εφεδρικών αντιγράφων σε ακατάλληλες ώρες.

Και η μορφή αυτή επίθεσης μπορεί να έχει έως τραγικά αποτελέσματα. Για πα- ράδειγμα η πρόκληση άρνησης υπηρεσίας σε υπολογιστές μιας τηλεφωνικής υ- πηρεσίας, πιθανόν va έχει ως συνέπεια τη μη εξυπηρέτηση επειγόντων κλήσεων, τη διακοπή επικοινωνίας σε ευαίσθητες για ανθρώπινες ζωές, κέντρα όπως για παράδειγμα κέντρα ελέγχου εναέριας κυκλοφορίας κ.λπ.

Απειλές που σχετίζονται με τη δικτυακή σύνδεση

Παραπλάνηση (spoofing). Στην περίπτωση αυτή o επιτιθέμενος, αλλοιώνει δεδο- μένα που αφορούν στη δικτυακήσύνδεση και φαίνεται να προέρχεται από δια- φορετική διεύθυνση από την πραγματική.

Παρακολούθηση. Διακρίνεται σε παθητική παρακολούθηση (snooping, passive eavesdropping - tapping, sniffing), η οποία σκοπό έχει την κλοπή προσωπικών πληροφοριών όπως όνομα χρήστη - λέξη πρόσβασης, αριθμούς πιστωτικών καρ- τών, πηγαίο κώδικα κ.λπ. και σε ενεργή παρακολούθηση (tampering, active tap- ping), η οποία είναι παρόμοια με την παθητική παρακολούθηση, με τη διαφορά ότι εδώ, οι διακινούμενες πληροφορίες τροποποιούνται.

Επανεκπομπή (capture - replay). Εδώ o επιτιθέμενος, παρεμβαίνει στην επικοινωνία μεταξύ των δύο άκρων και καταγράφει μηνύματα, τα οποία αναπαράγει σε μελλοντική στιγμή με σκοπό να προσποιηθεί εξουσιοδοτημένο χρήστη.

Αποποίηση (repudiation)

Πρόκειται για τις περιπτώσεις κατά τις οποίες, συμμετέχοντες σε μια επικοινω- νία, αποποιούνται την συμμετοχή τους. Δεν πρόκειται αυστηρά για επίθεση, αλ- λά εμπίπτει στο πλαίσιο των απειλών σε περιβάλλοντα υπηρεσιών διαδικτύου,

(7)

όπου απαιτείται η απόδειξη της ταυτότητας των επικοινωνούντων.

Ανθρώπινα λάθη - παραλήψεις

Συχνά στην πράξη η ασφάλεια ενός συστήματος τίθεται σε κίνδυνο από ανθρώ- πινα λάθη, απροσεξίες, παραλήψεις, κακή εκτίμηση των συνεπειών μεταβολών ανεπαρκών μέτρων σε επίπεδο διοίκησης κ.λπ. Ενδεικτικά παραδείγματα στην κατηγορία αυτή απειλών αποτελούν τα ακόλουθα: Φυσικές διακοπές συνδέσεως παροχής ρεύματος ή δικτύου από απροσεξία, ακούσια παροχή ευαίσθητων πληροφοριών πρόσβασης σε εισβολείς, απώλεια ή κλοπή μέσων πρόσβασης (λέξεις κάρτες πρόσβασης κ.λπ.), η οποία δεν δηλώνεται αμέσως, κακά

σχεδιασμένες ή καθόλου σχεδιασμένες διαδικασίες συντήρησης ή αντιμετώπισης κρίσεων, ανοικτές θυρίδες ή βοηθητικά προγράμματα που δεν αφαιρέθηκαν μετά τις διαδικασίες συντήρησης και αποτελούν εν δυνάμει πρόβλημα ασφάλειας, μη ασφαλής αποθήκευση, ανεπαρκές σύστημα καταστροφής εγγράφων και μέσων περιφερειακής αποθήκευσης ιδιαίτερα σε αποσπώμενα μέσα κ.λπ.

Απειλές που οφείλονται σε φυσικά αίτια

Περιλαμβάνουν απειλές όπως πυρκαγιές, σεισμούς, εκρήξεις, υψηλές θερμοκρασίες, υγρασία, ηλεκτρικό Θόρυβο, κεραυνούς, μηχανικές δονήσεις, πλημμύρες κ.λπ.

Κλείνοντας την ενότητα αυτή, πέρα από την σχετικά τυπική παράθεση απειλών που προηγήθηκε και συμπληρωματικά προς αυτήν, αξίζει να Θεωρηθεί από άποψη ασφάλειας, ένα απλό παράδειγμα αποστολής ηλεκτρονικού ταχυδρομείου με εμπιστευτικό περιεχόμενο. Ας υποτεθεί ότι χρησιμοποιείται κάποια τεχνική ισχυ- ρής κρυπτογράφησης, τα εν χρήσει κλειδιά είναι ελεγμένα και δεν παρακολούθησε τρίτος τη σύνταξη και τη διαδικασία κρυπτογράφησης. Σε πρώτο επίπεδο η κρυπτογράφηση του μηνύματος φαίνεται να εξασφαλίζει τη μυστικότητα κατά τη μεταφορά του μηνύματος έναντι τρίτων. Αν όμως κάποιος εξετάσει την κατάσταση βαθύτερα, Θα ανακαλύψει μια σειρά από εν δυνάμει προβλήματα ασφάλειας:

 H κρυπτογράφηση έγινε σε σύστημα που είναι ασφαλές;

• Το σύνολο του λογισμικού που χρησιμοποιήθηκε (πρόγραμμα

κρυπτογράφησης συντάκτης κειμένου, βιβλιοθήκες, πυρήνας λειτουργικού κ.λπ.) είναι αυθεντικό ή έχει αντικατασταθεί από άλλο τροποποιημένο;

• Ακόμα και αν το λογισμικό του πυρήνα είναι αυθεντικό, συμβαίνει το ίδιο και με την εικόνα του (image) στην μνήμη;

• Tι θα συμβεί αν εν αγνοία του χρήστη έχει εγκατασταθεί σύστημα παρακολούθησης πληκτρολογήσεων, ή χρησιμοποιείται κάποιο σύστημα παρακολούθησης από απόσταση;

(8)

 Έχουν χρησιμοποιηθεί κλειδιά που είναι δύσκολο να "σπάσουν";

• Μετά την αποκρυπτογράφηση αν το μήνυμα φυλάσσεται ακρυπτογράφητο στο δίσκο, έχουν και άλλοι πρόσβαση σε αυτόν;

 Αν λαμβάνονται εφεδρικά αντίγραφα σε κάποιο αποσπώμενο μέσο, αυτό αποθηκεύεται σε ασφαλή θέση που αποκλείει την κλοπή;

• O ίδιος o υπολογιστής είναι φυσικά εγκατεστημένος σε ασφαλές μέρος ώστε να αποκλείεται η κλοπή του;

Σίγουρα o παραπάνω κατάλογος αγγίζει τα όρια της παράνοιας όταν πρόκειται για μικρές εγκαταστάσεις, μπορεί να μη συμβαίνει όμως το ίδιο και για

μεγάλους οργανισμούς ή οργανισμούς που τηρούν δεδομένα που μπορούν να χαρακτηριστούν ως προσωπικά ή διακινούν χρήμα κ.λπ.

ΑΣΦΑΛΗΣ ΕΓΚΑΤΑΣΤΑΣΗ

Η κατάλληλη εγκατάσταση του Linux είναι το πρώτο βήμα για ένα σταθερό και ασφαλές σύστημα. Υπάρχουν συγκεκριμένα σημεία, τα οποία θα πρέπει να προσεχθούν ιδιαίτερα, ώστε η εγκατάσταση να καταλήξει σε όσο το δυνατόν μεγαλύτερη ασφάλεια.

Πριν ξεκινήσει η εγκατάσταση θα πρέπει να γίνει σωστή επιλογή των συνιστωσών υλικού της μηχανής, που θα φιλοξενήσει τα προγράμματα εξυπηρέτησης, και στην οποία θα εγκατασταθεί το Linux. Οι βασικές συνιστώσες που πρέπει να ελεγχθούν είναι οι κάρτες δικτύου, οι δίσκοι, οι ελεγκτήρες δίσκων, οι αρτηρίες (busses) καθώς και η επιλογή του σωστού raid στους δίσκους (προτείνεται το raid υλοποιημένο με κάρτα (σε υλισμικό-hardware)).

Η εγκατάσταση πρέπει να γίνεται εκ του μηδενός και να αποφευχθεί η αναβάθμιση σε ήδη υπάρχον σύστημα επειδή τυχόν προβλήματα του ήδη εγκατεστημένου συστήματος μπορεί να μεταφερθούν και στο νέο. Επίσης, θα πρέπει κατά την εγκατάσταση ο εξυπηρετητής να μην είναι συνδεδεμένος στο δίκτυο και να

συνδεθεί σε αυτό αφού ολοκληρωθούν η εγκατάσταση, η ρύθμιση και η ασφάλιση του συστήματος (system hardering).

Κατά τη φάση της εγκατάστασης προτείνεται να ακολουθηθούν τα επόμενα βήματα:

Επιλογή μόνο των απολύτως απαραίτητων προγραμμάτων. Κατά τη φάση της αρχικής εγκατάστασης, πρέπει να γίνει επιλογή μόνο των πλέον απαραίτητων προγραμμάτων (ελάχιστη εγκατάσταση), ώστε να μην υπάρχουν περιττά πακέτα (packages). Για παράδειγμα, μια μηχανή που πρόκειται να φιλοξενήσει

προγράμματα εξυπηρέτησης δε θα πρέπει να διαθέτει γραφικό περιβάλλον επειδή η ασφάλιση του είναι σημαντικότερα δυσκολότερη, μια και τα γραφικά περιβάλλοντα

(9)

έχουν πολλά τρωτά σημεία. Επίσης πρέπει να αφαιρεθούν πακέτα που αντιστοιχούν σε υπηρεσίες που δε χρειάζονται κ.ο.κ.

Κατάλληλη διαχείριση δίσκων. Καλή οργάνωση και χωρισμός των δίσκων σε διαμερίσεις (portioning) ώστε το σύστημα, τα αρχεία καταγραφής (logs), τα δεδομένα, τα προσωρινά αρχεία και τα αρχεία χρηστών να βρίσκονται σε

ξεχωριστές διαμερίσεις. Ένα παράδειγμα χωρισμού δίσκων σε μια μηχανή που θα φιλοξενήσει έναν εξυπηρετητή ιστοσελίδων (web server) είναι το ακόλουθο:

/boot 100 MB / 3 GB /usr 1.5 GB /var 3 GB /www 0.5 GB /tmp 0.5 GB

swap (το μέγεθος του εξαρτάται από το μέγεθος της μνήμης της μηχανής) Όσον αφορά στην επιλογή του τύπου των συστημάτων αρχείων (file systems) προτείν3ται η ext3, η οποία διαθέτει και επιλογή acl (access control lists) και έχει αρκετά πλεονεκτήματα σε σύγκριση με τη προηγούμενη έκδοση (ext2).

Εναλλακτικά, μπορεί να χρησιμοποιηθεί και ο τύπος reiserfs.

Απομάκρυνση περιττών πακέτων. Απομάκρυνση πακέτων, τα οποία δε θα χρησιμοποιούνται στον εν λόγω εξυπηρετητή (π.χ. ubsutils, dhcpcd, providers) ή πακέτων τα οποία γενικά δε θεωρούνται ασφαλή και δε πρέπει να υπάρχουν σε κανένα εξυπηρετητή (π.χ. finger, ftp, portmap, rsh). Επίσης δε συνιστάται η εγκατάσταση μεταγλωττιστών (compiles) ή διερμηνευτών (interpreters). Στην περίπτωση που αυτοί απαιτούνται για συγκεκριμένο σκοπό, π.χ. για μεταγλώττιση πηγαίου κώδικα, μετά την ολοκλήρωση των σχετικών εργασιών, οι μεταγλωττιστές και οι διερμηνευτές πρέπει να απεγκαθίστανται. Ακόμα, δεν συνιστάται η

εγκατάσταση πολλαπλών προγραμμάτων συντακτών (editors).

Εγκατάσταση πακέτων, που προσφέρουν ασφάλεια. Τέτοια πακέτα είναι τα:

bastille, harden-suse, john, lids, pgp, scanlogd, seccheck, stunnel, tripwire, aide, iptables, sudo, logsurfer.

Ρυθμίσες που αφορούν στην κάρτα δικτύου. Πρέπει να ρυθμιστεί η κάρτα δικτύου σύμφωνα με τα ακόλουθα:

 Στατική διεύθυνση IP και όχι δυναμική (DHCP).

 Πρέπει να εισαχθεί το όνομα της μηχανής και του εξυπηρετητή DNS και απενεργοποίηση των αντίστοιχων αυτόματων επιλογών αυτών.

 Συσκευές διαποδιαμορφωτών (modems) και ISDN λογικά δεν πρέπει να υπάρχουν σ’ έναν εξυπηρετητή, άρα θα πρέπει να απενεργοποιηθούν ή καλύτερα να αφαιρεθούν αν υπάρχουν.

 Προτείνεται να μην συνδεθεί με το δίκτυο η κάρτα δικτύου μέχρι την ολοκλήρωση της εγκατάστασης.

(10)

Εγκατάσταση του προγράμματος εξυπηρέτησης και των συναφών προγραμμάτων.

Για παράδειγμα, αν πρόκειται για εξυπηρετητή ιστοσελίδων, τότε στα πλαίσια συγγραφής του βιβλίου θα εγκατασταθούν το πρόγραμμα εξυπηρετητή apache, καθώς και διάφορα απαραίτητα κατά περίπτωση δομοστοιχεία όπως το mod_ssl κ.λπ. Μετά την εγκατάσταση, θα πρέπει να γίνουν οι ανάλογες ρυθμίσεις ώστε να προσαρμοστούν στην κάθε περίπτωση και τέλος να γίνουν δοκιμές καλής

λειτουργίας.

ΑΣΦΑΛΕΙΑ ΕΚΚΙΝΗΣΗΣ ΣΥΣΤΗΜΑΤΟΣ

Προκειμένου να εξασφαλιστεί σε επίπεδο χειρισμών μια μηχανή σε σχέση με αυτούς που έχουν φυσική πρόσβαση σε αυτήν, πρέπει να προβλεφθούν κάποια μέτρα τα οποία αφορούν κυρίως στην εκκίνηση.

Ασφάλεια στο BIOS

Σήμερα, σχεδόν όλοι οι υπολογιστές παρέχουν τη δυνατότητα ασφάλισης του BIOS με λέξη πρόσβασης. Επιπλέον, θα πρέπει να υπάρχει πρόβλεψη για αποτροπή εκκίνησης του συστήματος από cdrom και floppy. Αυτό επειδή, αν κάποιος που έχει φυσική πρόσβαση στη μηχανή, εκκινήσει τον υπολογιστή από εκκινήσιμο cd, μπορεί να αποκτήσει τον πλήρη έλεγχο της μηχανής.

Κατά συνέπεια, στη σειρά εκκίνησης πρέπει να προηγείται ο δίσκος, και αφού πραγματοποιηθεί η συγκεκριμένη αλλαγή μπορεί να εισαχθεί λέξη πρόσβασης στο BIOS ώστε να μη μπορεί να τροποποιήσει τα στοιχεία του BIOS κάποιος άλλος εκτός των εξουσιοδοτημένων προσώπων.

Στην περίπτωση που εισαχθεί λέξη πρόσβασης στο ΒΙΟS και για την εκκίνηση της μηχανής αφαιρείται η δυνατότητα απομακρυσμένης επανεκκίνησης της μηχανής, η οποία δεν συνιστάται σε μηχανές που φιλοξενούν προγράμματα εξυπηρετητών διαδικτύου.

Ασφάλεια προγράμματος εκκινητήρα

Τα προγράμματα εκκινητήρα (boot loaders) του Linux παρέχουν την δυνατότητα ασφαλής εκκίνησης μέσω λέξης πρόσβασης. Να σημειωθεί ότι, θα υπάρξει

πρόβλημα εάν απαιτείται η απομακρυσμένη επανεκκίνηση της μηχανής, πρακτική η οποία δεν συνιστάται για λόγους ασφαλείας. Θα πρέπει να αναφερθούν τρόποι εισαγωγής λέξης πρόσβασης εκκίνησης στα τυπικά προγράμματα εκκίνησης του Linux, GRUB και LILO.

GRUB

(11)

Η λέξη GRUB κωδικοποιείται βάση του αλγόριθμου md5. Η εισαγωγή της λέξης πρόσβασης στο GRUB πραγματοποιείται με τα επόμενα δύο βήματα:

1. Δημιουργία λέξης πρόσβασης

Κατ’ αρχήν λαμβάνεται η κρυπτογραφημένη σύνοψη της λέξης πρόσβασης κατά md5 με χρήση της εντολής md5crypt μέσα από το περιβάλλον του προγράμματος grub:

# grub

grub> md5crypt password: ######

encrypted: @#(wda@L12Gqwd24/.2!#)

2. Ενημέρωση του αρχείου ρύθμισης επιλογών εκκίνησης

Η κρυπτογραφημένη λέξη εκκίνησης που προέκυψε στο προηγούμενο βήμα προτίθεται στο αρχείο μενού εκκίνησης /boot/grub/menu.lst π.χ.

Color white/green black/light-gray Default 0

Timeout 8

Password - -md5 @# (wda@L12Gqwd24/.2!#) LILO

Για να εισαχθεί λέξη πρόσβασης στο LILO χρειάζεται η τροποποίηση του αρχείου ρυθμίσεων /etc/lilo.conf. Διακρίνονται δύο περιπτώσεις:

Αν η λέξη πρόσβασης αφορά σε όλες τις επιλογές εκκίνησης πρέπει να εισαχθεί η οδηγία password= myPass πριν τη γραμμή που περιέχει το πρώτο image=…

Αν η λέξη πρόσβασης αφορά σε μία επιλογή εκκίνησης πρέπει να εισαχθεί μέσα στην ενότητα της αντίστοιχης επιλογής η οδηγία password=myPass#1. Με το δεύτερο τρόπο μπορεί να υπάρξει διαφορετική λέξη πρόσβασης για κάθε επιλογή.

Αν πριν την γραμμή password=myPass#1. εισαχθεί μια γραμμή που θα περιέχει την λέξη restricted, τότε θα ζητείται η λέξη πρόσβασης μόνο όταν εισαχθούν παράμετροι στην προτροπή (prompt) κατά την εκκίνηση. Ακολουθεί ένα παράδειγμα:

Boot=/dev/had Map=/boot/map Install=boot/boot.b Prompt

Timeout=100 Default=linux

Image=/boot/vmlinuz.last

(12)

Label=linux Root=/dev/hdal Read-only Restricted

Password=sm03_pAsSwOrD_h3r3

Τέλος για να ενεργοποιηθούν οι αλλαγές που πραγματοποιήθηκαν στο αρχείο /etc/lilo.conf χρειάζεται η εντολή εκτέλεσης lilo.

Αφού εισαχθεί λέξη πρόσβασης στα ως άνω αρχεία των GRUB ή LILO πρέπει να ληφθούν μέτρα προστασίας των αρχείων αυτών με τις εντολές:

# cmod 600 <όνομα_αρχείου>

# chattr +i <όνομα_αρχείου>

ώστε να μην μπορεί μη εξουσιοδοτημένο πρόσωπο να τα τροποποιήσει. Αν υπάρξει μεταγενέστερη ανάγκη τροποποίησης των συγκεκριμένων αρχείων χρειάζεται πρώτα να εκτελεστεί η αντίστροφη εντολή (chattr –i <όνομα_αρχείου>).

Ασφάλεια σε επίπεδο μονού χρήστη και επανεκκίνησης

Μπορεί να εισαχθεί κάποιος στο σύστημα σε επίπεδο μονού χρήστη με απλή εισαγωγή στην προτροπή του προγράμματος LILO της εντολής:

LILO: linux single

Ή για την περίπτωση του GRUB στην αντίστοιχη προτροπή, 1

Με τον τρόπο αυτό, γίνεται εισαγωγή στο σύστημα του χρήστη root σε επίπεδο 1 (run level 1) και χωρίς να απαιτείται λέξη πρόσβασης. Για να απαιτεί το σύστημα την εισαγωγή λέξης πρόσβασης χρειάζεται η πρόσθεση της επόμενης γραμμής στο αρχείο ρυθμίσεων /etc/inittab:

~~:S:respawn:/sbin/sulogin μετά την γραμμή

id:3:initdefault:

Επίσης, τα συστήματα Linux έχουν την δυνατότητα με ταυτόχρονη πίεση των πλήκτρων ctrl+alt+del να επιτευχθεί η επανεκκίνηση της μηχανής. Αυτό είναι αρκετά επικίνδυνο όταν στο χώρο, που υπάρχει εγκατεστημένη φυσικά η μηχανή, εισέρχονται και άτομα που δεν είναι διαχειριστές του συστήματος. Για να

απενεργοποιηθεί αυτή η δυνατότητα χρειάζεται η απενεργοποίηση της αντίστοιχης γραμμής στο αρχείο /etc/inittab:

#ca::ctrlaltdel:sbin/shutdown –r –t 4 now

(13)

ΑΣΦΑΛΕΙΑ ΛΕΞΕΩΝ ΠΡΟΣΒΑΣΗΣ

Οι λέξεις πρόσβασης των χρηστών αποτελούν μια σημαντική παράμετρο στην ασφάλεια οποιασδήποτε μηχανής. Αν μια λέξη πρόσβασης είναι απλή, μπορεί εύκολα κάποιος χρησιμοποιώντας την να εισαχθεί στο σύστημα. Στην περίπτωση μάλιστα που πρόκειται για τη λέξη πρόσβασης του χρήστη root, τότε μπορεί κανείς να εισβάλει στο σύστημα έχοντας πλήρη έλεγχο της μηχανής. Για την σωστή διαχείριση ασφαλών λέξεων πρόσβασης χρειάζεται κατ’ ελάχιστον να

ακολουθηθούν τα εξής:

Υιοθέτηση πολιτικής δημιουργίας λέξεων πρόσβασης. Γενικά όσον αφορά τις λέξεις πρόσβασης θα πρέπει να τηρούνται τα ακόλουθα:

 Όλοι οι χρήστες των μηχανών να έχουν λέξη πρόσβασης.

 Πρέπει να τηρούνται αυστηρά μυστικές οι λέξεις πρόσβασης και να μην αναφέρονται η γράφονται. Αν υπάρξει ανάγκη να γραφτούν κάπου μπορούν να γραφούν αλλοιωμένες, έτσι ώστε μόνο αυτός που τις έχει γράψει να μπορεί να τις αποκρυπτογραφήσει. Επίσης αν γραφούν κάπου οι λέξεις πρόσβασης καλό είναι να μην γράφονται στο ίδιο σημείο και οι αντίστοιχοι λογαριασμοί ή και οι αντίστοιχες μηχανές. Μια καλή λύση είναι η υιοθέτηση κάποιου μνημονικού κανόνα αποστήθισης, ώστε οι λέξεις πρόσβασης να μην χρειάζεται να γραφούν κάπου.

 Δεν πρέπει να χρησιμοποιούνται οι ίδιες λέξεις πρόσβασης σε

διαφορετικές μηχανές και θα πρέπει να γνωρίζουν όλοι οι χρήστες των συστημάτων για την πολιτική των λέξεων πρόσβασης.

 Οι λέξεις πρόσβασης των χρηστών δεν πρέπει να είναι απλοί και εμφανείς (π.χ. ονόματα, ημερομηνίες) και δεν θα πρέπει να έχουν μικρό μήκος (τουλάχιστον 8 χαρακτήρες).

 Συνιστάται οι λέξεις πρόσβασης, να είναι συνδυασμοί μικρών και κεφαλαίων γραμμάτων, αριθμών και ειδικών συμβόλων.

 Παράγοντας που μπορεί να συνεισφέρει στην ασφάλεια σε επίπεδο λέξεων πρόσβασης, είναι η υιοθέτηση μιας πολιτικής ηλικίας τους. Η ηλικία των λέξεων πρόσβασης μπορεί να τροποποιηθεί με την εντολή chage.

Όπως ήδη αναφέρθηκε, θα πρέπει κατά την επιλογή μιας λέξης πρόσβασης να υιοθετηθεί κάποια λογική που θα επιτρέπει την εύκολη απομνημόνευση της π.χ. η φράση ¨I am always number one in the black list¨ μπορεί να εξαχθεί η λέξη πρόσβασης I@#1iTbL (ένα γράμμα από κάθε λέξη, οι λέξεις always, number, one

(14)

αντιστοιχούν στα σύμβολα @, #, 1 και τα γράμματα είναι εναλλάξ μικρά και κεφαλαία).

Χρήση αρχείων shadow. Πρέπει να χρησιμοποιείται το αρχείο /etc/shadow, για αποθήκευση των λέξεων πρόσβασης σε κρυπτογραφημένη μορφή. Το αρχείο αυτό, διαβάζεται μόνο από τον χρήστη root. Εξ’ ορισμού, οι τρέχουσες εκδόσεις του Linux παρέχουν αυτή τη δυνατότητα. Ας σημειωθεί ότι, μπορεί να χρησιμοποιηθεί η εντολή pwck για τον έλεγχο της ακεραιότητας του αρχείου /etc/shadow σε σχέση με το αρχείο /etc/passwd.

Επιλογή τύπου κρυπτογράφησης. Η κρυπτογράφηση των λέξεων πρόσβασης στο αρχείο shadow, γίνεται με βάση μια μέθοδο που επιτρέπει λέξεις πρόσβασης έως 8 χαρακτήρες. Αν είναι επιθυμητό να χρησιμοποιηθούν λέξεις πρόσβασης

μεγαλύτερου μήκους, πρέπει να χρησιμοποιηθεί άλλη μέθοδος.

Εμπλουτισμός βιβλιοθηκών λεξικών. Ορισμένες εντολές και βοηθήματα που έχουν σχέση με λέξεις πρόσβασης, όπως η λέξη passwd, μπορούν να

χρησιμοποιήσουν την βιβλιοθήκη cracklib για την ανάλυση λέξεων πρόσβασης ως προς την ευκολία αποκρυπτογράφησης τους. Οι βιβλιοθήκες αυτές είναι

αποθηκευμένες στον κατάλογο /usr/lib (cracklib_dict.hwm, cracklib_dict.pwd και cracklib_dict.pwi). Μπορεί κανείς να δημιουργήσει προσαρμοσμένες βιβλιοθήκες με την εντολή:

# /usr/sbin/create-cracklib-dict wordlist wordlist…

Οι wordlist υπάρχουν στο πακέτο PRM cracklib στο CD διανομής. Προτείνεται η εισαγωγή λεξικών των τοπικών γλωσσών ομιλίας.

ΑΣΦΑΛΕΙΑ ΚΑΙ ΛΟΓΑΡΙΑΣΜΟΙ

Η πλημμελής διαχείριση των λογαριασμών των χρηστών, μπορεί κάτω από ορισμένες συνθήκες να αποτελέσει την αχίλλειο πτέρνα ενός συστήματος από άποψη ασφάλειας.

Βασικά μέτρα ασφάλειας λογαριασμών

Μερικά βασικά σημεία που πρέπει να προσέξει κανείς όσον αφορά στους λογαριασμούς είναι τα ακόλουθα:

Περιορισμός του πλήθους λογαριασμών. Πρέπει να περιοριστεί στο ελάχιστο η χρήση λογαριασμών και ειδικά λογαριασμών που έχουν αυξημένα δικαιώματα σε

(15)

σχέση με του απλούς χρήστες. Δικαιώματα του χρήστη root πρέπει να έχουν ελάχιστοι, οι οποίοι θα είναι και οι υπεύθυνοι για το σύστημα. Στο σημείο αυτό μπορεί να βοηθήσει σημαντικά, το εργαλείο ελέγχου των δικαιωμάτων των

χρηστών sudo (superuser do). Το sudo δίνει την δυνατότητα σε έναν διαχειριστή να αποδώσει δικαιώματα σε απλούς χρήστες ώστε να εκτελούν μερικές συγκεκριμένες εντολές με δικαιώματα χρήστη root.

Ανενεργοί χρήστες. Οι χρήστες του συστήματος οι οποίοι δεν χρησιμοποιούνται πρέπει να αφαιρούνται ή τουλάχιστον να μην έχουν πραγματικό κέλυφος (δηλ. να έχουν κέλυφος /bin/false.) Τέτοιοι χρήστες μπορεί να είναι uucp, lp, games, ftp, news. Πριν αφαιρεθεί κάποιος χρήστης από το σύστημα χρειάζεται μα προσεχτεί αυτός να μην είναι ιδιοκτήτης αρχείων. Αυτό μπορεί να διαπιστωθεί με την εντολή find:

# find / -user <όνομα_χρήστη> -exec ls –la {}\:

Αφού αφαιρεθεί ο χρήστης χρειάζεται να διαγραφούν τα αρχεία που του ανήκουν είτε να αλλαχτεί ο ιδιοκτήτης τους.

Ενεργοποίηση ελέγχων κατά την είσοδο του χρήστη. Μπορεί κανείς να ορίσει ελέγχους εισόδου χρηστών μέσω του αρχείου ρυθμίσεων /etc/login.defs.

Ορισμός χρόνου τερματισμού σύνδεσης. Υπάρχει η δυνατότητα ορισμού χρόνου τερματισμού σύνδεσης σε ένα τερματικό. Η δυνατότητα αυτή χρησιμοποιείται για μερική κάλυψη της περίπτωσης κατά την οποία ο διαχειριστής ξεχνάει να κλείσει μια σύνδεση και ειδικά όταν έχει συνδεθεί ως χρήστης root. Ρύθμιση αυτού του είδους μπορεί να πραγματοποιηθεί με προσθήκη της μεταβλητής TMOUT στο αρχείο /etc/profile:

TMOUT=3600 (η τιμή είναι σε δευτερόλεπτα)

Περιορισμοί προσπέλασης. Για τον χρήστη root μπορεί να αποτραπεί η είσοδος στο σύστημα από το δίκτυο και να επιτρέπεται μόνο από την κονσόλα ή με την χρήση της εντολής su.

Όσον αφορά στην χρήση της εντολής su προτείνεται να εισαχθεί το επόμενο

ψευδώνυμο στο αρχείο ρυθμίσεων του κελύφους bash (/etc/bash.bashrc.local), ώστε να υπενθυμίζει στους διαχειριστές να χρησιμοποιούν το /bin/su έναντι του su για την αποφυγή τυχόν δούρειων ίππων (Trojan) του su:

Alias su= ¨echo \ ¨¨Always use ‘/bin/su-‘\¨¨

Επίσης μπορεί να περιοριστεί ο αριθμός των ενεργών κονσόλων που χρησιμοποιεί ο χρήστης root διαμέσου του αρχείου /etc/securetty.

Η χρήση της ¨.¨ στο PATH. Μια σκέψη για βολική εκτέλεση προγραμμάτων είναι η συμπερίληψη της ¨.¨ στο PATH ώστε να εξοικονομούνται δύο χαρακτήρες (./)

(16)

για την εκτέλεση μιας εντολής που υπάρχει στον τρέχοντα κατάλογο. Αν ο root έχει στο PATH την ¨.¨ τότε υπάρχει σοβαρό πρόβλημα γιατί μπορεί ένας απλός

χρήστης να αποκτήσει δικαιώματα του root αφήνοντας ένα πρόγραμμα δούρειο ίππο σε ένα κοινό κατάλογο όπως τον /tmp.

Το βοήθημα sudo

Ένα σημαντικό εργαλείο στο Linux για την παραχώρηση επιπλέον δικαιωμάτων σε απλούς χρήστες είναι το sudo (superuser do). Το sudo επιτρέπει σε έναν

διαχειριστή συστήματος να αποδώσει δικαιώματα σε απλούς χρήστες, ώστε αυτοί να εκτελούν συγκεκριμένες εντολές με τα δικαιώματα του χρήστη root. Αυτό είναι βολικό για την πραγματοποίηση μερικών διαχειριστικών εργασιών από απλούς χρήστες, επειδή στην πράξη αν και είναι απαράδεκτο από άποψη ασφάλειας κοινοί χρήστες να έχουν δικαιώματα root, απλές διαχειριστικές εφαρμογές το επιβάλουν.

Το βοήθημα sudo ρυθμίζεται μέσω του αρχείου /etc/sudoers.

ΔΙΚΑΙΩΜΑΤΑ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΡΧΕΙΩΝ Ο έλεγχος των δικαιωμάτων των αρχείων σε ένα σύστημα που λειτουργεί σε παραγωγικό περιβάλλον είναι θεμελιώδους σημασίας για την ασφάλεια του.

Γενικός κανόνας όσον αφορά τα δικαιώματα των αρχείων είναι η απόδοση όσο το δυνατόν πιο περιοριστικών δικαιωμάτων σε ένα αρχείο με γνώμονα βέβαια την απρόσκοπτη λειτουργία των εξαρτώμενων από αυτό διαδικασιών.

Μάσκα εξ’ ορισμού δικαιωμάτων

Τα εξ’ ορισμού δικαιώματα ενός αρχείου καθορίζονται με την εντολή umask.

Συνήθως η μάσκα δικαιωμάτων έχει την τιμή 022. Αυτό έχει ως συνέπεια τα αρχεία να δημιουργούνται αρχικά με δικαιώματα rw-r--r--, δηλ. 644 (666-022) και οι κατάλογοι με δικαιώματα rwxr-xr-x δηλ 755 (777-022).

Συνιστάται η μάσκα δικαιωμάτων να έχει τιμή 077 ώστε να επαυξάνονται οι αρχικοί περιορισμοί μέσω του μηχανισμού αυτού 600 για τα αρχεία και 700 για καταλόγους. Η μεταβολή αυτή μπορεί να γίνει με τροποποίηση των αρχείων /etc/login/defs, /etc/profile, /etc/csh.login και αντίστοιχων ατομικών αρχείων ρυθμίσεων των χρηστών.

Sticky bit και setuserid/setgroupid

Εκτός από τα βασικά δικαιώματα των αρχείων (rwx) υπάρχουν και κάποια ειδικά όπως το sticky bit (t), το setuserid και το stegroupid. Αν κάποιος χρήστης έχει δικαίωμα εγγραφής σε ένα κατάλογο μπορεί και σε αυτόν το κατάλογο να

διαγράψει αρχεία ή υποκαταλόγους και ας μην έχει κανένα δικαίωμα πάνω σε αυτά.

Για να αποφευχθεί αυτό χρειάζεται να προστεθεί στο κατάλογο το sticky bit (chmod +t <όνομα καταλόγου>). Με αυτόν τον τρόπο ένας χρήστης για να

διαγράψει ένα αρχείο στο συγκεκριμένο κατάλογο πρέπει να είναι ιδιοκτήτης του.

(17)

Όταν είναι ενεργοποιημένο το setuserid σ’ ένα εκτελέσιμο αρχείο, τότε ένας οποιοσδήποτε χρήστης εκτελεί το συγκεκριμένο αρχείο σαν να το εκτελούσε ο ιδιοκτήτης του. Είναι σαφές ότι αυτό μπορεί να εκτελέσει πρόβλημα ασφάλειας , κατά συνέπεια πρέπει να ελεγχθεί ποια εκτελέσιμα αρχεία στο σύστημα έχουν ενεργοποιημένο το setuserid και το setgroupid και να περιοριστούν σε όσα λιγότερα γίνεται. Μερικά προγράμματα πρέπει να έχουν οπωσδήποτε το setXid

ενεργοποιημένο για να ανταποκρίνονται σωστά σε οποιονδήποτε χρήστη. Μερικά από αυτά είναι τα su, passwd, ping και κάποια άλλα ανάλογα με την διανομή του Linux. Σε ορισμένες περιπτώσεις αν αυτό είναι επιθυμητό ο διαχειριστής

συστήματος μπορεί να αποφασίσει να αφαιρέσει το setXid και από τα παραπάνω προγράμματα.

Χαρακτηριστικά αρχείων

Τα χαρακτηριστικά επιτρέπουν να αυξηθεί η προστασία και η ασφάλεια σε ένα αρχείο ή ένα κατάλογο. Τα χαρακτηριστικά ενός αρχείου εξ’ ορισμού είναι απενεργοποιημένα, δηλαδή υπάρχουν μόνο τα δικαιώματα. Για να ελεγχθούν τα χαρακτηριστικά ενός αρχείου χρησιμοποιείται η εντολή lsattr (list attributes):

# lsattr <όνομα_αρχείου>

Για την τροποποίηση χαρακτηριστικών χρησιμοποιείται η εντολή chattr (change attributes):

# chattr +/- <χαρακτηριστικό> <όνομα_αρχείου>

Για παράδειγμα για να παραμείνει ένα αρχείο αμετάβλητο χρειάζεται η πρόσθεση του χαρακτηριστικού ‘i’ (immutable). Υποψήφια για τη πρόσθεση χαρακτηριστικού αυτού είναι ένα από τα αρχεία τα οποία υπάρχουν σε καταλόγους /bin, /usr/bin, sbin/ /usr/sdin, /lib. Επίσης αρχεία καταγραφής είναι υποψήφια για το

χαρακτηριστικό a ώστε να επιτρέπεται μόνο η αύξηση του μεγέθους τους.

Αν χρησιμοποιείται το reifers (έκδοση 3.6) ως τύπος συστημάτων αρχείων απαιτείται η χρήση του χαρακτηριστικού attrs κατά την προσάρτηση του αντίστοιχου συστήματος αρχείων για να μπορέσει να χρησιμοποιηθεί η εντολή chattr. Δηλαδή στο αρχείο ρυθμίσεων των συστημάτων αρχείων /etc/fstab πρέπει να προστεθεί το χαρακτηριστικό attrs:

/dev/hda3 /home reisfers defaults , attrs 1 2

Για να ενεργοποιηθεί η αλλαγή αυτή χρειάζεται να επαναπροσαρτηθεί το αντίστοιχο σύστημα αρχείων:

# mount /home -oremount Κατάλογοι ελέγχου πρόσβασης

(18)

Οι κατάλογοι ελέγχου πρόσβασης (access control lists – ACLs) αποτελούν μια προέκταση των παραδοσιακών δικαιωμάτων των αρχείων και καταλόγων του UNIX. Χρησιμοποιούνται για την εκχώρηση δικαιωμάτων σε συγκεκριμένους χρήστες και ομάδες χρηστών διαφορετικών των παραδοσιακών. Είναι επίσης δυνατό μέσω των καταλόγων ελέγχου πρόσβασης να οριστεί ανά κατάλογο αρχείων ποια δικαιώματα θα έχουν τα νέα αρχεία που δημιουργούνται σε αυτόν.

Για να μπορεί κανείς να κάνει χρήση των καταλόγων ελέγχου πρόσβασης πρέπει πρώτα να γίνει η εγκατάσταση της συγκεκριμένης δυνατότητας με εγκατάσταση του πακέτου acl. Η ενεργοποίηση των καταλόγων ελέγχου πρόσβασης

πραγματοποιείται με την χρήση της εντολής mount σε συνδυασμό με την επιλογή acl:

# mount /home -o acl

Η διαχείριση των καταλόγων ελέγχου πρόσβασης πραγματοποιείται με τις εντολές getfacl και setfacl. Εάν κάποιο αρχείο η κατάλογος έχει χαρακτηριστικά καταλόγων ελέγχου πρόσβασης εμφανίζεται με τον χαρακτήρα ¨+¨ στην έξοδο της εντολής /s -/

.

Άλλοι περιορισμοί

Πέρα από τα όσα αναφέρθηκαν παραπάνω μπορεί κανείς να ενισχύσει την ασφάλεια των αρχείων μέσω εισαγωγής επιπλέον περιορισμών όπως:

Περιορισμός κατανάλωσης πόρων. Μπορεί να περιοριστούν οι πόροι του συστήματος που καταναλώνουν οι χρήστες. Περιορισμοί πόρων μπορούν να επιτευχθούν με χρήση της εντολής ulimit.

Περιορισμοί εκτέλεσης σημαντικών προγραμμάτων. Προτείνεται η εκτέλεση μερικών σημαντικών προγραμμάτων να γίνεται μόνο από τον χρήστη root. Προς την κατεύθυνση αυτή μπορεί να χρησιμοποιηθεί η εντολή chmod.

Βοηθήματα διανομής για περιορισμό δικαιωμάτων. Στην διανομή SuSE Linux (από την έκδοση 8) υπάρχει δυνατότητα ελέγχου και διόρθωσης δικαιωμάτων αρχείων με αναφορά σε αρχεία ρυθμίσεων. Κάθε ένα από τα αρχεία αυτά οδηγεί σε συγκεκριμένο επίπεδο ασφάλειας όσον αφορά τα δικαιώματα. Για να

ενεργοποιηθούν οποιαδήποτε δικαιώματα χρειάζεται να εκτελεστεί η εντολή:

# SuSEconfig –module permissions

Περιορισμοί μέσω της mount. Μέσω της εντολής mount μπορούν να εισαχθούν μια σειρά περιορισμών ασφαλείας. Για παράδειγμα μπορεί να προσαρτηθούν ολόκληρα συστήματα αρχείων μόνο για ανάγνωση αν δεν προβλέπονται μεταβολές στα αντίστοιχα συστήματα αρχείων. Με την λογική αυτή το σύστημα αρχείων /boot αφού δημιουργηθεί ο σωστός πυρήνας και τοποθετηθεί επί αυτού δεν χρειάζεται να είναι πλέον εγγράψιμο.

(19)

Έλεγχος ασυνήθιστων αρχείων και δικαιωμάτων. Σε ένα σύστημα μπορεί να εμφανιστούν ασυνήθιστα ή κρυφά αρχεία όπως τα: ¨…¨, ¨..¨ και ¨..^G¨. Αυτά χρησιμοποιούνται από εισβολείς για να πραγματοποιήσουν κάποια κακόβουλη ενέργεια χωρίς να μπορούν να εντοπιστούν εύκολα. Για να βρεθούν απαιτείται η χρήση της εντολής find:

# find /name ¨..*¨ -print

ΑΣΦΑΛΕΙΑ ΥΠΗΡΕΣΙΩΝ

Κάθε υπηρεσία κατά κάποιον τρόπο αποτελεί μια πύλη προς το σύστημα και κατά συνέπεια τα προβλήματα ασφάλειας που συνδέονται με αυτήν, ποικίλουν από υπηρεσία σε υπηρεσία. Το πλήθος των υπηρεσιών πρέπει να μειωθεί στο ελάχιστο ανάλογα με τις ανάγκες υλοποίησης

Αφαίρεση περιττών και μη ασφαλών υπηρεσιών

Στο Linux μπορεί με την εξ’ ορισμού εγκατάσταση να εγκατασταθούν υπηρεσίες που δεν είναι απαραίτητες. Τέτοιες υπηρεσίες με γνώμονα την ασφάλεια είναι οι portmap, finger, rsh, ftp, echo, chargen και daytime. Πληροφορίες για τις γνωστές υπηρεσίες που μπορεί να είναι εγκατεστημένες σε έναν εξυπηρετητή υπάρχουν στο αρχείο /etc/services.

Οι υπηρεσίες που εκτελούνται σε δεδομένη στιγμή σε μια μηχανή μπορούν να εμφανιστούν με την εντολή:

# netstat –nalp

Με την εντολή lsof λαμβάνονται πληροφορίες προσανατολισμένες περισσότερο προς τις υπηρεσίες:

# lsof –i

Τέλος με την εντολή nmap εμφανίζονται οι ανοικτές θυρίδες. Η εντολή αυτή μπορεί να χρησιμοποιηθεί και για απομακρυσμένες μηχανές:

# nmap –sT –O localhost

Για να αφαιρεθεί μια περιττή υπηρεσία ώστε αυτή να μην εκκινείτε με την εκκίνηση της μηχανής αφαιρούνται τα αντίστοιχα αρχεία.

Αν η υπηρεσία εκκινείτε μέσω προγράμματος διαχείρισης υπηρεσιών (inetd, xinetd) η απενεργοποίησης της γίνεται με τροποποιήσεις στα αρχεία ρυθμίσεων των προγραμμάτων διαχείρισης υπηρεσιών.

(20)

Για αν αφαιρεθεί εντελώς από το σύστημα μια υπηρεσία θα πρέπει να αφαιρεθεί το αντίστοιχο πακέτο με την χρήση του εργαλείου διαχείρισης της SuSE, YaST ή με την χρήση της εντολής rpm:

Rpm –e portmap.xx.rpm

Αν είναι απαραίτητη μια υπηρεσία η οποία χαρακτηρίζεται γενικά ως μη ασφαλής θα πρέπει να αντικαθίσταται με αντίστοιχη ασφαλής.

Υπηρεσίες σε περιορισμένο περιβάλλον

Το λειτουργικό σύστημα Linux επιτρέπει την εκτέλεση ενός προγράμματος που αντιστοιχεί σε μια υπηρεσία σ’ ένα περιορισμένο περιβάλλον με την έννοια ότι στο περιβάλλον αυτό υπάρχουν μόνο τα πλέον απαραίτητα αρχεία που χρειάζεται η συγκεκριμένη υπηρεσία ώστε να λειτουργήσει σωστά. Η υλοποίηση περιορισμένου περιβάλλοντος πραγματοποιείται με την χρήση της εντολής chroot. Στην

πραγματικότητα η εντολή chroot τροποποιεί την εκτέλεση της υπηρεσίας ώστε αυτή να αναγνωρίζει ως ριζικό κατάλογο αυτόν που θα της δοθεί ως παράμετρος.

Το εν λόγο περιβάλλον λέγεται και φυλακή γιατί στην πραγματικότητα σ’ αυτό φυλακίζεται η υπηρεσία.

Για λόγους ασφαλείας το περιβάλλον πρέπει να τοποθετηθεί σε μια ξεχωριστή διαμέριση και να περιέχει όλη την απαραίτητη για την υπηρεσία δομή καταλόγων.

Με την χρήση του περιορισμένου περιβάλλοντος σε μια υπηρεσία μπορεί να βελτιωθεί η ασφάλεια των συστημάτων. Αυτό επειδή οι χρήστες της εν λόγο υπηρεσίας περιορίζονται στο συγκεκριμένο περιβάλλον εκτέλεσης. Κατά συνέπεια τυχόν βλάβη που θα προκληθεί περιορίζεται στο περιβάλλον εκτέλεσης της

υπηρεσίας και δεν προξενεί προβλήματα στο υπόλοιπο σύστημα.

Τα αρχεία που περιλαμβάνονται σ’ ένα περιορισμένο περιβάλλον είναι τα

απαραίτητα αρχεία ρυθμίσεων, τα εκτελέσιμα αρχεία της υπηρεσίας, οι αντίστοιχες βιβλιοθήκες, αρχεία καταγραφής και ότι άλλα αρχεία είναι απαραίτητα για την ορθή λειτουργία της υπηρεσίας. Σ’ αυτό το περιβάλλον θα πρέπει να μην υπάρχουν συνδέσεις που δείχνουν σε αρχεία εκτός του περιορισμένου περιβάλλοντος ή προγράμματα που μπορούν να έχουν άμεση προσπέλαση στον δίσκο (π.χ. mknod).

PAM

Τα εμβυσματούμενα δομοστοιχεία επαλήθευσης ταυτότητας (PAM –Pluggable Authentication Modules) είναι ένα σύνολο από βιβλιοθήκες με την χρήσης των οποίων ο διαχειριστής ενός συστήματος Linux μπορεί να ελέγξει τον τρόπο που πιστοποιούν την αυθεντικότητα των χρηστών τους διάφορα προγράμματα και βοηθήματα.

Για να χρησιμοποιηθούν τα PAM πρέπει να είναι εγκατεστημένα τα πακέτα pam και pam-modules.

Το σύστημα PAM συμβουλεύεται ένα αρχείο ρυθμίσεων για κάθε υπηρεσία. Τα αρχεία αυτά ονομάζονται /etc/pam.d/<υπηρεσία>

(21)

Τα αρχεία ρυθμίσεων αποτελούνται από εγγραφές τύπου διαχειριστική ομάδα, σημεία ελέγχου, δομοστοιχεία και ορίσματα.

Η διαχειριστική ομάδα περιλαμβάνει τέσσερις κατηγορίες εργασιών επαλήθευσης ταυτότητας:

 Auth: χρησιμοποιείται για επαλήθευση ταυτότητας, διαχείριση ομάδων και εργασίες που σχετίζονται με δικαιώματα.

 Account: χρησιμοποιείται για περιορισμό χρηστών ή για εισαγωγή περιορισμών στον χρήστη root.

 Password: μεριμνά για τυχόν απαραίτητες ενημερώσεις των αδειοδοτικών επαλήθευσης ταυτότητας των χρηστών.

 Session: οτιδήποτε χρειάζεται να γίνει ώστε να συνδεθεί ο χρήστης στην αντίστοιχη υπηρεσία όπως προσάρτηση οδηγών, καταγραφές κ.λπ.

Στα σημεία ελέγχου υπάρχουν τέσσερις τιμές μέσω των οποίων μπορεί να καθοριστεί πως θα επηρεάσει η επιτυχία ή η αστοχία του δομοστοιχείου στο αποτέλεσμα της συνολικής επαλήθευσης ταυτότητας, που θα επιστραφεί στην αντίστοιχη υπηρεσία.

 Required: αστοχία του αντίστοιχου δομοστοιχείου έχει ως αποτέλεσμα την συνολική αστοχία της επαλήθευσης ταυτότητας. Η εκτέλεση συνεχίζει με τα υπόλοιπα δομοστοιχεία.

 Requisite: όπως στην προηγούμενη περίπτωση με διαφορά ότι η εκτέλεση δεν συνεχίζεται.

 Sufficient: επιτυχία του αντίστοιχου δομοστοιχείου αρκεί για την συνολική επιτυχία της επαλήθευσης ταυτότητας. Αν δεν υπάρχουν άλλα δομοστοιχεία required σε ακολουθία, η εκτέλεση τερματίζεται.

 Optional: επιτυχία του αντίστοιχου δομοστοιχείου δεν είναι αναγκαία για την συνολική επιτυχία.

Δομοστοιχείο είναι το όνομα και η διαδρομή του δομοστοιχείου.

Ορίσματα. Πρόκειται για έναν κατάλογο από ορίσματα γραμμής εντολής που μεταβιβάζονται στο αντίστοιχο δομοστοιχείο όταν καλείται το PAM.

ΠΡΟΓΡΑΜΜΑΤΑ ΔΙΟΡΘΩΣΗΣ

Πολλές από τις επιτυχημένες επιθέσεις βασίζονται στον εντοπισμό και

εκμετάλλευση τρωτών σημείων σε λογισμικό ανοικτού κώδικα όπως είναι το bind, apache κ.λπ. Βέβαια ένα από τα σημαντικότερα πλεονεκτήματα των προγραμμάτων του ανοικτού κώδικα είναι η ταχύτητα εντοπισμού τρωτών σημείων και λαθών και στη συνέχεια η διόρθωσης τους.

Είναι αυτονόητο ότι ο διαχειριστής συστήματος πρέπει να παρακολουθεί συνεχώς τα προγράμματα διόρθωσης από τους αντίστοιχους επίσημους δικτυακούς τόπους,

Referências

Documentos relacionados

Στο τρίτο κεφάλαιο παρουσιάζονται τα αποτελέσματα της έρευνας που έγιναν, δηλαδή πως τα στελέχη του Συνεταιρισμού βλέπουν το μέλλον του και αν είναι ικανοποιημένα από την λειτουργία