15.2 Εισαγωγή

Η ασφάλεια είναι μια λειτουργία που ξεκινά και τελειώνει με τον διαχειριστή του συστήματος. Ενώ όλα τα BSD UNIX® πολυ-χρηστικά συστήματα έχουν κάποια ασφάλεια που κληρονομούν, η εργασία της δημιουργίας και συντήρησης πρόσθετων μηχανισμών ασφαλείας για να κρατήσετε αυτούς τους χρήστες «τίμιους» είναι μάλλον μια από τις μεγαλύτερες ευθύνες του sysadmin. Τα μηχανήματα είναι μόνο τόσο ασφαλή όσο τα κάνετε, και τα θέματα ασφάλειας είναι πάντα σε συναγωνισμό με την ανθρώπινη ανάγκη για άνεση. Τα UNIX συστήματα , γενικά, είναι ικανά να τρέχουν έναν μεγάλο αριθμό ταυτόχρονων διεργασιών και πολλές από αυτές τις διεργασίες λειτουργούν ώς εξυπηρέτες -- που σημαίνει ότι εξωτερικές οντότητες μπορούν να συνδεθούν και να μιλήσουν με αυτές. Όσο οι χθεσινοί μικρο-υπολογιστές και τα μεγάλα συστήματα γίνονται τα σημερινά desktops, και όσο οι υπολογιστές γίνονται δυκτιακοί και διαδυκτιακοί, η ασφάλεια γίνεται ένα ακόμα μεγαλύτερο θέμα.

Η ασφάλεια συστημάτων επίσης σχετίζεται με την αντιμετώπιση διαφόρων ειδών επίθεσης, περιλαμβάνοντας επιθέσεις που προσπαθούν να κρασάρουν, ή αλλιώς να καταστήσουν το σύστημα άχρηστο, αλλά που δεν προσπαθούν να εκθέσουν σε κίνδυνο τον root λογαριασμό («break root»). Τα θέματα ασφάλειας μπορούν να χωριστούν σε διάφορες κατηγορίες :

  1. Επιθέσεις άρνησης υπηρεσίας.

  2. Έκθεση σε κίνδυνο λογαριασμών χρηστών.

  3. Έκθεση σε κίνδυνο του Root μέσω προσβάσιμων εξυπηρετών.

  4. Έκθεση σε κίνδυνο του Root μέσω λογαριασμών χρηστών.

  5. Δημιουργία backdoor.

Μια επίθεση άρνησης υπηρεσίας (denial of service) είναι μια ενέργεια που στερεί το μηχάνημα από πόρους που χρειάζεται. Τυπικά, οι DoS επιθέσεις είναι μηχανισμοί ανηλεούς-δύναμης (brute-force) που προσπαθούν να κρασάρουν ή αλλιώς να καταστήσουν άχρηστο ένα μηχάνημα κατακλύζοντας τις υπηρεσίες ή την στοίβα δυκτίου. Μερικές DoS επιθέσεις προσπαθούν να εκμεταλευτούν σφάλματα στην στοίβα δυκτίου ώστε να κρασάρουν το μηχάνημα με ένα μόνο πακέτο. Το τελευταίο μπορεί να διορθωθεί εφαρμόζοντας στον πυρήνα μία διόρθωση σφάλματος. Οι επιθέσεις στις υπηρεσίες μπορούν συχνά να διορθωθούν εφαρμόζοντας κατάλληλες επιλογές για τον περιορισμό του φορτίου που υφίστανται οι υπηρεσίες στο σύστημα κάτω από αντίξοες συνθήκες. Οι ανηλεούς-δύναμης επιθέσεις από το δύκτιο είναι δυσκολότερες στην αντιμετώπισή τους. Μια επίθεση spoofed-packet, για παράδειγμα, είναι σχεδόν αδύνατο να σταματηθεί, διακόπτοντας έτσι το σύστημά σας από το Internet. Μπορεί να μην είναι ικανή για να κρασάρει το σύστημά σας, αλλά θα επιφέρει κορεσμό στην σύνδεσή σας με το Internet.

Η έκθεση λογαριασμών χρηστών σε κίνδυνο είναι πιο συχνή επίθεση από μια DoS επίθεση. Πολλοί sysadmins ακόμα εκτελούν συνήθεις telnetd, rlogind, rshd, και ftpd υπηρεσίες στα μηχανήματα τους. Αυτές οι υπηρεσίες, εξ' ορισμού, δεν λειτουργούν πάνω από κρυπτογραφημένες συνδέσεις. Το αποτέλεσμα είναι πως αν έχετε μια μετρίου- μεγέθους βάση χρηστών, ένας ή περισσότεροι από τους χρήστες σας που συνδέονται στο σύστημά σας από μια απομακρυσμένη τοποθεσία (ο οποίος είναι ο πιο κοινός και βολικός τρόπος να συνδέεσαι σε ένα σύστημα) θα τους έχουν μυριστεί τον κωδικό τους. Ο προσεκτικός διαχειριστής συστήματος θα αναλύσει τα logs των απομακρυσμένων συνδέσεων ψάχνοντας για ύποπτες διευθύνσεις ακόμα και για επιτυχημένες συνδέσεις.

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

Οι διαχειριστές συστημάτων πρέπει να έχουν στο μυαλό τους ότι υπάρχουν πολλοί τρόποι να σπάσει ο λογαριασμός του root σε ένα μηχάνημα. Ο επιτιθέμενος μπορεί να γνωρίζει τον κωδικό του root, μπορεί να βρεί μια δυσλειτουργία σε μια root-run υπηρεσία και να είναι ικανός να σπάσει τον λογαριασμό root από μια σύνδεση δικτύου σε αυτήν την υπηρεσία, ή ο επιτιθέμενος μπορεί να γνωρίζει μια δυσλειτουργία σε ένα suid-root πρόγραμμα που επιτρέπει στον επιτιθέμενο να σπάσει τον λογαριασμό του root αφού θα έχει σπάσει τον λογαριασμό ενός χρήστη. Αν ένας επιτιθέμενος έχει βρει έναν τρόπο για να σπάσει τον λογαριασμό root σε ένα μηχάνημα, ο επιτιθέμενος μπορεί να μην χρειαστεί να εγκαταστήσει μια backdoor. Πολλές από τις τρύπες του λογαριασμού του root βρίσκονται και κλείνονται έως την ημέρα που ένα σημαντικό ποσό εργασίας έχει γίνει από τον επιτιθέμενο για να καθαρίσει τα ίχνη που άφησε, έτσι οι περισσότεροι επιτιθέμενοι εγκαθιστούν backdoors. Μια backdoor παρέχει στον επιτιθέμενο έναν τρόπο ώστε εύκολα να ξανακερδίσει πρόσβαση στο σύστημα με δικαιώματα του root, αλλά επίσης δίνει στον έξυπνο διαχειριστή του συστήματος έναν βολικό τρόπο να ανιχνέυσει την εισβολή. Κάνοντας αδύνατη την εκατάσταση backdoor από τον επιτιθέμενο μπορεί στην πραγματικότητα να είναι επιβλαβής για την ασφάλειά σας, επειδή έτσι δεν κλείνει η τρύπα που ο επιτιθέμενος βρήκε για να σπάσει αρχικά.

Οι θεραπείες ασφαλείας θα πρέπει πάντοτε να εφαρμόζονται σε μια πολύ-επίπεδη «σαν φλούδα κρεμμυδιού» προσέγγιση και μπορούν να κατηγοριοποιηθούν ως εξής:

  1. Ασφάλεια του λογαριασμού του root και των λογαριασμών του προσωπικού.

  2. Ασφάλεια των υπηρεσίων που τρέχουν ως root- και των suid/sgid δυαδικών αρχείων.

  3. Ασφάλεια των λογαριασμών των χρηστών.

  4. Ασφάλεια του αρχείου κωδικών.

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

  6. Γρήγορη ανίχνευση μη επιτρεπόμενων αλλαγών που γίνονται στο σύστημα.

  7. Παράνοια.

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

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.