Ποια είναι τα πιο συχνά λάθη τα οποία πρέπει να αποφύγουμε κατά το σχεδιασμό ενός «firewall» προκειμένου να διασφαλίσουμε πραγματικά και αποτελεσματικά την πληροφορία που με τόσο πείσμα προσπαθούμε να προστατεύσουμε;
Πολλά έχουν γραφεί κατά καιρούς για τη σημασία της πληροφορίας στο σύγχρονο περιβάλλον. Η ανάγκη για την πρέπουσα προστασία της είναι πλέον αδιαμφισβήτητη και ευρέως αποδεκτή. Τα μέσα και οι μηχανισμοί για την προστασία αυτής, επίσης γνωστά, με βασικούς πρωταγωνιστές, μεταξύ άλλων στο προσκήνιο του ενδιαφέροντος, τα τείχη προστασίας (firewalls).
Σε ένα προηγούμενο άρθρο είχαμε αναλύσει διεξοδικά μερικές από τις πιο γνωστές αρχιτεκτονικές τάσεις για το σχεδιασμό τους. Στο παρόν άρθρο θα ασχοληθούμε με μία στενά συνυφασμένη, πλην όμως διαφορετική πτυχή του θέματος. Έτσι, θα παραθέσουμε μερικά από τα πιο συχνά λάθη τα οποία πρέπει να αποφύγουμε κατά το σχεδιασμό ενός «firewall» προκειμένου να διασφαλίσουμε πραγματικά και αποτελεσματικά την πληροφορία που με τόσο πείσμα προσπαθούμε να προστατεύσουμε.
Προτού όμως συνεχίσουμε, χτίζοντας από το σημείο στο οποίο είχε σταματήσει το προηγούμενο άρθρο σχετικά με τις αρχιτεκτονικές τάσεις που κυριαρχούν σήμερα στο χώρο των τειχών προστασίας, είναι σημαντικό να αναφερθούμε συνοπτικά σε κάποια βασικά δομικά κομμάτια που απαρτίζουν τις αρχιτεκτονικές αυτές και τα οποία θα μας απασχολήσουν στο μεγαλύτερο μέρος του παρόντος άρθρου. Έτσι, η αναφορά μας θα ξεκινήσει με μια σύντομη ματιά στις παρακάτω έννοιες:
- Ο εξωτερικός δρομολογητής (exterior router). Η βασική δουλειά του «router» αυτού, από άποψη ασφαλείας, είναι να αναγνωρίζει και τελικά να αποτρέπει την είσοδο «πακέτων» από το εξωτερικό δίκτυο (το οποίο θεωρείται με βάση την πολιτική ασφαλείας ως μη-έμπιστο, όπως για παράδειγμα οφείλει να θεωρείται το διαδίκτυο) στο εσωτερικό, τα οποία περιέχουν πλαστές IP διευθύνσεις προκειμένου να πείσουν το δρομολογητή ότι προέρχονται από το εσωτερικό δίκτυο και επομένως ότι η πληροφορία που περιέχεται είναι έννομη. Ακόμη, ο εξωτερικός δρομολογητής αποτελεί το κατάλληλο σημείο για να αποτρέψει κανείς διευθύνσεις IP από το εσωτερικό δίκτυο να βγουν στον έξω κόσμο ή ακόμη και να κρύψει από τον έξω κόσμο την πραγματική ταυτότητα συστημάτων που βρίσκονται στο περιμετρικό δίκτυο (τρέχοντας για παράδειγμα NAT). Από άποψη φίλτρων, αυτά που χρειάζονται να είναι εγκατεστημένα στον εξωτερικό δρομολογητή είναι εκείνα τα οποία προστατεύουν τα συστήματα του περιμετρικού δικτύου καθώς και απλά αντίγραφα των φίλτρων του εσωτερικού δρομολογητή (internal router), τα οποία αποτρέπουν τη μη ασφαλή επικοινωνία μεταξύ των εσωτερικών συστημάτων και του έξω κόσμου.
- Ο εσωτερικός δρομολογητής (internal router). Πρόκειται για εκείνο το κομμάτι του τείχους προστασίας, το οποίο είναι υπεύθυνο για το μεγαλύτερο ποσοστό φιλτραρίσματος μέσα στο δίκτυο, το οποίο προσπαθούμε να προστατέψουμε. Για αυτόν το λόγο είναι άλλωστε εξοπλισμένο και με το μεγαλύτερο και πιο σύνθετο αριθμό φίλτρων. Στόχος του είναι η προστασία του εσωτερικού δικτύου τόσο από το εξωτερικό (π.χ. το διαδίκτυο) όσο και από το περιμετρικό.
- Ο «bastion host» είναι ένας υπολογιστής, ο οποίος, όπως υποδηλώνει και η αγγλική ονομασία του, διακατέχεται ο ίδιος από έναν υψηλό βαθμό ασφάλειας (host level security). Βρίσκεται δε τοποθετημένος στο περιμετρικό δίκτυο, με σκοπό να αποτελεί το κυρίως σημείο επαφής για εισερχόμενες συνδέσεις από τον έξω κόσμο. Έτσι λοιπόν, εξαιτίας του ρόλου αλλά και της θέσης του, ο «bastion host» αποτελεί μηχάνημα – στόχο για τους «hackers» και αυτός είναι και ο λόγος για τον οποίο απαιτείται να είναι όσο πιο καλά θωρακισμένος γίνεται. Επίσης, ο «bastion host» μπορεί να έχει εγκατεστημένους πάνω του διαμεσολαβητές (proxies) για διάφορους τύπους πρωτοκόλλων, προκειμένου να μπορεί να ρυθμίζει και τις επικοινωνίες των εσωτερικών συστημάτων με τον έξω κόσμο.
- Το περιμετρικό δίκτυο (perimeter net). Πρόκειται στην ουσία για ένα επιπλέον στρώμα ασφάλειας, ένα επιπρόσθετο δίκτυο μεταξύ του εξωτερικού και του εσωτερικού δικτύου, με σκοπό να απομονώσει την κίνηση του εσωτερικού δικτύου από το επίδοξο βλέμμα κάποιου «hacker», ο οποίος έχει καταφέρει να παρεισφρήσει στις παρυφές του τείχους προστασίας. Ακόμη και έτσι όμως, όλη η ευαίσθητη πληροφορία βρίσκεται περιορισμένη εντός του εσωτερικού δικτύου, πλήρως απομονωμένη εξαιτίας της ύπαρξης του περιμετρικού δικτύου.
Αφού αναφερθήκαμε πιο πάνω στα βασικά δομικά χαρακτηριστικά που συναντώνται και απαρτίζουν τα διάφορα αρχιτεκτονικά μοντέλα, θα προχωρήσουμε τώρα εξετάζοντας μερικές επικίνδυνες πρακτικές, οι οποίες θα πρέπει σίγουρα να αποφεύγονται κατά τη σχεδίαση του τείχους προστασίας μας. Προτού όμως ξεκινήσουμε την αναφορά μας, θα πρέπει ίσως να προσθέσουμε ότι αυτό το οποίο παρουσιάζει ιδιαίτερο ενδιαφέρον και θα πρέπει να του δοθεί η πρέπουσα σημασία, είναι πως εκ πρώτης όψεως οι πρακτικές αυτές μπορούν εύκολα να μπερδευτούν και να θεωρηθούν ως σωστές. Αυτό, γιατί τις περισσότερες φορές – και ανάλογα με τις εκάστοτε συνθήκες που επικρατούν στο περιβάλλον που θα εγκατασταθεί το «firewall», η διαχωριστική γραμμή μεταξύ σωστού και λάθους είναι λεπτή, με αποτέλεσμα να μπορεί εύκολα να γίνει μια κακή εκτίμηση της κατάστασης.
Συγχώνευση του «Bastion Host» και του Εσωτερικού Δρομολογητή
Ενόσω, όπως θα δούμε αργότερα, η υπό συνθήκες συγχώνευση του εξωτερικού δρομολογητή και του «bastion host» είναι αποδεκτή, μια παρόμοια συγχώνευση μεταξύ του τελευταίου και του εσωτερικού δρομολογητή θεωρείται ως κακή πρακτική και οφείλει να αποφεύγεται. Ο «bastion host» και ο εξωτερικός δρομολογητής έχουν, όπως είδαμε προηγουμένως, ο καθένας διαφορετικούς προστατευτικούς ρόλους και μάλιστα κατά τρόπο τέτοιο ώστε να αλληλοσυμπληρώνονται. Όμως, σε καμία περίπτωση δεν μπορούμε να θεωρήσουμε πως ο ένας αποτελεί μια γραμμή οπισθοφυλακής για τον άλλο. Αντιθέτως, η οπισθοφυλακή και των δύο (τουλάχιστον μερικώς) από λογικής άποψης, είναι ο εσωτερικός δρομολογητής. Αυτός είναι άλλωστε και ο βασικός λόγος για τον οποίο μία συγχώνευση του bastion host» με τον εσωτερικό δρομολογητή πρέπει να αποφεύγεται. Συγκεκριμένα, σε ένα τέτοιο σενάριο σαν το παραπάνω, παρόλο που με την πρώτη ματιά ίσως να μην είναι έκδηλο, η αρχιτεκτονική του «τείχους» έχει πλέον αλλάξει ριζικά.
Έτσι, στην περίπτωση όπου όλα τα δομικά κομμάτια παραμένουν ξεχωριστά, έχουμε μια αρχιτεκτονική τύπου «screened subnet» (την οποία είχαμε εξετάσει διεξοδικά σε προηγούμενο άρθρο), που εγγυάται πως η κίνηση που διασχίζει το περιμετρικό δίκτυο (perimeter net) για τον «bastion host» δεν θα περιέχει εσωτερική πληροφορία. Επομένως, η κίνηση αυτή δεν είναι ευάλωτη σε υποκλοπή ακόμη και από τον ίδιο το «bastion host», αφού ένας εισβολέας προκειμένου να αποκτήσει πρόσβαση σε πραγματικά εσωτερική πληροφορία θα πρέπει να παρεισφρήσει στο εσωτερικό δίκτυο, το οποίο προστατεύεται όμως από τον εσωτερικό δρομολογητή. Σε διαφορετική περίπτωση, στο σενάριο δηλαδή που ο εσωτερικός δρομολογητής και ο «bastion host» έχουν συγχωνευθεί, καταλήγουμε σε μια αρχιτεκτονική τύπου «screened host» όπου αν ένας εισβολέας καταφέρει να διεισδύσει στον «bastion host», τότε δεν απομένει πλέον καμία πρόσθετη μορφή άμυνας στο δρόμο του προς την υποκλοπή της πληροφορίας που ανταλλάσσεται στο εσωτερικό δίκτυο. Αυτό συμβαίνει διότι η συγχώνευση των δύο αυτών δομικών λίθων του συστήματος προστασίας, εκθέτει την πληροφορία που ανταλλάσσεται στο εσωτερικό δίκτυο και η οποία θα έπρεπε κανονικά να είναι εμφανής μόνο στον εσωτερικό δρομολογητή και στον «bastion host», παρακάμπτοντας με αυτόν τον τρόπο πρακτικά τον προστατευτικό ρόλο του περιμετρικού δικτύου. Το σχήμα 1 απεικονίζει αυτού του τύπου την ανεπιθύμητη αρχιτεκτονική, σαν ένα παράδειγμα προς αποφυγή.
Χρήση Πολλαπλών Εσωτερικών Δρομολογητών
Σε σχέση με τα παραπάνω, μια ακόμη αρχιτεκτονική τείχους προστασίας η οποία παρατίθεται σε αυτό το άρθρο σαν άλλη μία κακή πρακτική η οποία μπορεί να υπονομεύσει την ασφάλεια ενός Οργανισμού, είναι η χρήση πολλαπλών εσωτερικών δρομολογητών και απεικονίζεται στο σχήμα 2. Το βασικό πρόβλημα του αρχιτεκτονικού αυτού σχεδιασμού είναι ότι το λογισμικό που είναι υπεύθυνο για τη δρομολόγηση των δεδομένων μπορεί να αποφασίσει πως η συντομότερη διαδρομή μεταξύ δύο συστημάτων που βρίσκονται στο εσωτερικό δίκτυο είναι μέσα από την περίμετρο (perimeter net). Αυτό σημαίνει πρακτικά, πως κίνηση η οποία θα έπρεπε κανονικά να διατηρείται εμπιστευτική μεταξύ των συστημάτων του εσωτερικού δικτύου, διαρρέει και σε συστήματα εκτός αυτού. Για παράδειγμα, στον «bastion host» που βρίσκεται τοποθετημένος στο περιμετρικό δίκτυο και που εκ των πραγμάτων δεν θα έπρεπε να έχει πρόσβαση σε αυτού του είδους την κίνηση.
Το άλλο κοινό πρόβλημα το οποίο είναι στενά συνυφασμένο με το σενάριο στο οποίο αναφερόμαστε, ακόμη και να μην υπήρχε το παραπάνω πρόβλημα με το «bastion host», είναι το γεγονός πως είναι αρκετά δύσκολο να κρατήσει κανείς σωστά ρυθμισμένο ένα εσωτερικό δρομολογητή, πόσο μάλλον δύο. Ο εν λόγω δρομολογητής είναι όπως είδαμε στην προηγούμενη παράγραφο, το βασικό στήριγμα τόσο του εξωτερικού δρομολογητή όσο και του «bastion host», με αποτέλεσμα να αποτελεί στην πραγματικότητα σοβαρό μέρος της γραμμής άμυνας ολόκληρου του προστατευόμενου δικτύου. Προκειμένου λοιπόν ο εσωτερικός δρομολογητής να επιτύχει το στόχο του, είναι εφοδιασμένος τις περισσότερες φορές με ένα αρκετά μεγάλο πλήθος πολύπλοκων φίλτρων. Έτσι, είναι εύκολο να κατανοήσουμε πως το να έχει κανείς δύο, αντί για ένα σετ από φίλτρα να εγκαταστήσει και να συντηρήσει, αυξάνει ακόμη περισσότερο την πολυπλοκότητα της αρχιτεκτονικής λύσης.
Μεικτές Αρχιτεκτονικές «Screened Subnet» και «Screened Host»
Συνεχίζοντας την παράθεση αρχιτεκτονικών τάσεων που είναι αντίθετες με τις κοινές πρακτικές, θα πρέπει να αναφερθούμε και σε μία σχεδίαση η οποία περιλαμβάνει τη μίξη δύο κοινότυπων αρχιτεκτονικών – τις οποίες καθεμία ξεχωριστά έχουμε ήδη εξετάσει – αυτές των «screened subnet» και «screened host» αντίστοιχα. Το βασικό χαρακτηριστικό της πρώτης, όπως ήδη ξέρουμε, είναι η απλότητα, αφού είναι εύκολη στην υλοποίηση, μιας και το μόνο που απαιτεί είναι δύο στοιχεία, το «bastion host» και τον εξωτερικό δρομολογητή. Από την άλλη, το βασικό μειονέκτημά της είναι πως χάριν απλότητας το επίπεδο ασφαλείας που μπορεί να παρέχει, πρακτικά είναι αρκετά χαμηλό για οτιδήποτε πέραν των απλούστερων προδιαγραφών. Αυτό συμβαίνει επειδή ο «bastion host» βρίσκεται ήδη τοποθετημένος στο εσωτερικό δίκτυο με αποτέλεσμα να βλέπει όλη την κίνηση που περνάει μέσα από αυτό. Αυτό το πλεονέκτημα θέσης άλλωστε, είναι που κάνει μηχανήματα αυτού του τύπου να προσελκύουν τους «hackers», μιας και μόλις ο επιτιθέμενος καταφέρει να παρεισφρήσει στο εν λόγω μηχάνημα, έχει πρακτικά υπό την κυριαρχία του ολόκληρο το εσωτερικό δίκτυο.
Στην άλλη περίπτωση, ένα τείχος προστασίας που είναι βασισμένο στην αρχιτεκτονική «screened subnet» μπορεί μεν να ακολουθεί μια πιο πολύπλοκη πρακτική, έχει όμως σαν βασικό πλεονέκτημα έναν αυξημένο βαθμό ασφάλειας. Αυτό οφείλεται τόσο στην ύπαρξη δύο δρομολογητών, σε αντίθεση με τον έναν της προηγούμενης αρχιτεκτονικής, καθώς και την ύπαρξη του ενδιαμέσου περιμετρικού δικτύου. Το δίκτυο αυτό χρησιμεύει ως άλλο ένα επίπεδο κάλυψης, αφού επιτρέπει στην πληροφορία που ανταλλάσσεται εντός του εσωτερικού δικτύου, να παραμένει εμπιστευτική ακόμη και αν κάποιος εισβολέας καταφέρει να παρεισφρήσει στο «bastion host». Έτσι λοιπόν, εύκολα συμπεραίνουμε πως η ανάμιξη των δύο αυτών μοντέλων θα πρέπει να αποφεύγεται ως κακή πρακτική, διότι στην πραγματικότητα οι παραπάνω αρχιτεκτονικές είναι μεταξύ τους αμοιβαία αποκλινόμενες. Όταν υπάρχει μια αρχιτεκτονική τύπου «screened subnet» δεν θα πρέπει να επιτρέπεται σε συνδέσεις – οι οποίες προέρχονται από το εξωτερικό δίκτυο (π.χ. το διαδίκτυο) να φτάνουν απευθείας σε συστήματα τα οποία βρίσκονται τοποθετημένα στο εσωτερικό. Πράγμα που συμβαίνει ούτως ή άλλως με την αρχιτεκτονική τύπου «screened host» αφού με αυτόν τον τρόπο ακυρώνεται ο λόγος ύπαρξης του περιμετρικού δικτύου. Όπως όμως είπαμε και παραπάνω, η ύπαρξη του τελευταίου είναι θεμιτή.
Ορθές Πρακτικές – Σχεδιάστε με Ασφάλεια
Θα πρέπει λοιπόν να είναι ξεκάθαρο όσον αφορά στο σχεδιασμό τειχών προστασίας, πως ενώ ως ένα βαθμό η ανάμιξη διαφόρων αρχιτεκτονικών μοντέλων είναι θεμιτή, εντούτοις εγκυμονεί και αρκετούς κινδύνους, αφού όπως είδαμε παραπάνω, υπάρχουν αρχιτεκτονικές οι οποίες είναι αμοιβαία αποκλινόμενες και αποτελούν μάλλον κακές πρακτικές για το χώρο της ασφάλειας. Συνεπώς, το ερώτημα που γεννάται τώρα είναι ποιες είναι εκείνες οι αρχιτεκτονικές παραλλαγές, οι οποίες μπορούν να χρησιμοποιούνται με ασφάλεια. Παρακάτω παραθέτουμε ενδεικτικά μια σειρά από παραλλαγές των μοντέλων που έχουμε ήδη εξετάσει και οι οποίες μπορούν να χρησιμοποιούνται με ασφάλεια, εφόσον βέβαια έχουν γίνει οι απαραίτητες ενέργειες αξιολόγησης των εκάστοτε αναγκών:
- Είναι απολύτως φυσιολογική η ύπαρξη περισσότερων από ένα «bastion hosts» για λόγους απόδοσης, πλεονασμού ή ακόμη και για διαχωρισμό δεδομένων.
- Είναι φυσιολογική η υπό συνθήκες συγχώνευση του εσωτερικού και του εξωτερικού δρομολογητή. Βασική προϋπόθεση είναι η ύπαρξη ενός δρομολογητή με τις κατάλληλες δυνατότητες από άποψη «hardware», ενώ φυσικά πρέπει να ληφθούν και τα κατάλληλα μέτρα προκειμένου να αντισταθμιστεί το γεγονός ότι έτσι όλη η ασφάλεια του εσωτερικού δικτύου βρίσκεται συγκεντρωμένη σε ένα μόνο μηχάνημα, κάτι που το κάνει εξαιρετικά προσφιλές στους «hackers».
- Σε μερικές περιπτώσεις, όπως για παράδειγμα σε μικρούς Οργανισμούς όπου η κυρίως σύνδεση με τον έξω κόσμο γίνεται μέσω γραμμών μικρής χωρητικότητας (π.χ. SLIP ή PPP) μπορεί να έχει νόημα η συγχώνευση του «bastion host» και του εξωτερικού δρομολογητή. Σε αυτήν την περίπτωση, ναι μεν η απόδοση από άποψη δρομολόγησης (routing) μπορεί να είναι περιορισμένη, αλλά είναι σίγουρα αρκετά απλούστερη και οικονομικότερη σαν λύση. Ταυτόχρονα, δεν δημιουργεί επιπρόσθετα προβλήματα ασφαλείας (όπως η προηγούμενη), εφόσον το περιμετρικό δίκτυο εξακολουθεί να υπάρχει.
- Επίσης, δεν είναι ασυνήθιστο να βλέπουμε αρχιτεκτονικές στις οποίες παρουσιάζονται πολλαπλοί εξωτερικοί δρομολογητές. Μάλιστα, αυτό είναι αρκετά συνηθισμένο σε περιπτώσεις όπου για παράδειγμα ένας Οργανισμός διαθέτει πολλαπλές συνδέσεις προς το διαδίκτυο ή συνδέσεις με το διαδίκτυο, συν κάποιες προς άλλους Οργανισμούς.
Τέλος, παρόλο που προηγουμένως αναφέραμε ότι η χρήση πολλαπλών εσωτερικών δρομολογητών δεν συνιστάται, εντούτοις σε μερικές περιπτώσεις ενδέχεται να αποτελεί αναγκαιότητα, όπως παραδείγματος χάρη στην περίπτωση ενός Οργανισμού με ένα μεγάλο εσωτερικό δίκτυο, όπου η ύπαρξη ενός μόνο εσωτερικού δρομολογητή μπορεί να αποτελέσει τόσο πρόβλημα απόδοσης, όσο και πλεονασμού. Είναι ίσως σκόπιμο λοιπόν, να παραθέσουμε ακόμη ένα μοντέλο το οποίο να μπορεί να καλύψει την περίπτωση αυτή με ασφαλή τρόπο. Σε αυτό το σενάριο, προτεινόμενος τρόπος είναι η χρήση πολλαπλών, ξεχωριστών «screened subnets», το καθένα με ένα επίσης ξεχωριστό εξωτερικό δρομολογητή. Αυτού του είδους η αρχιτεκτονική η οποία παρουσιάζεται στο σχήμα 4, είναι πιο ασφαλής από το να έχουμε πολλαπλούς εσωτερικούς δρομολογητές απευθείας συνδεδεμένους με το εσωτερικό δίκτυο. Έτσι, μπορεί παρά το αυξημένο κόστος τόσο για την αγορά των απαραίτητων στοιχείων όσο και για τις απαραίτητες ρυθμίσεις, να ενισχύσει την απόδοση λειτουργίας, να παρέχει πλεονασμό, αλλά και ένα λογικό διαχωρισμό των δεδομένων που ανταλλάσσονται εντός του δικτύου ανάλογα με την ευαισθησία των ίδιων των δεδομένων. Έτσι, ευαίσθητα εσωτερικά δεδομένα θα μπορούν για παράδειγμα να κινούνται στο ένα περιμετρικό δίκτυο, ενώ κίνηση από/προς το διαδίκτυο στο άλλο.
Tου Dr. Ευάγγελου Μωράκη
Security Expert
Intrasoft International