Μια νέα αρχιτεκτονική τάση, έχει κάνει δυναμική εμφάνιση, με στόχο να καλύψει τις ανάγκες ασφαλείας των πληροφοριακών συστημάτων. Γνωστή ως «Υπηρεσιοστρεφής» ή αλλιώς SOA, η νέα αυτή τάση δίνει έμφαση στην ακριβή μοντελοποίηση των διαδικασιών μιας εταιρείας, σε διακεκριμένες μονάδες.
Διαδίκτυο & Σύγχρονη Επιχειρησιακή Δραστηριότητα
Είναι πλέον κοινά αποδεκτό πως το διαδίκτυο στη σημερινή του μορφή, δεν αποτελεί μόνο μια πηγή ψυχαγωγίας και πληροφόρησης, αλλά πολύ περισσότερο, το κύριο μέσο έκφρασης μιας καινούριας τάσης πραγμάτων, της παγκοσμιοποίησης της πληροφορίας.
Έτσι λοιπόν, μέσα από αυτό το κλίμα άρχισαν να ξεπροβάλουν εταιρείες, οι οποίες για να αυξήσουν την παραγωγικότητά τους και να γίνουν πιο ανταγωνιστικές μέσα στο χώρο των παγκόσμιων πλέον αγορών, επέλεξαν να χρησιμοποιήσουν το Διαδίκτυο ως το κύριο μέσο διεκπεραίωσης των επαγγελματικών τους δραστηριοτήτων. Οι εταιρείες αυτές καλούνται σήμερα να αντιμετωπίσουν μια σειρά από προκλήσεις, προκειμένου να κερδίσουν το πλεονέκτημα στο παιχνίδι του ανταγωνισμού Απαιτείται λοιπόν, για παράδειγμα, μία πιο στενή ολοκλήρωση των γραμμών παραγωγής της εκάστοτε εταιρείας, αρχίζοντας από την τροφοδοσία και φτάνοντας μέχρι και τον τελικό αποδέκτη του εκάστοτε προϊόντος ή υπηρεσίας, έτσι ώστε να είναι εφικτή μία άμεση προσαρμογή στις αλλαγές του περιβάλλοντος, όπως διαμορφώνεται μέσα από τη ζήτηση της εκάστοτε αγοράς αλλά και διάφορων νομοθετικών ρυθμίσεων.
Επιπλέον, τα πράγματα περιπλέκονται περισσότερο αν κανείς αναλογιστεί πως στην περίπτωση των πολυεθνικών εταιρειών, μολονότι τα διάφορα τμήματά τους μπορεί να είναι διασκορπισμένα ακόμη και σε διαφορετικές χώρες, εκείνα πρέπει παρόλα αυτά να λειτουργούν σαν μία οντότητα, γρήγορα και αποτελεσματικά. Είναι λοιπόν εύκολο να συμπεράνουμε πως για τέτοιου είδους σύγχρονες εταιρείες, η αποτελεσματικότητα των στρατηγικών τους στόχων είναι στενά συνδεδεμένη με την πληροφοριακή τους υποδομή. Όμως, σε αυτό το ευμετάβλητο περιβάλλον, τα πληροφοριακά συστήματα οφείλουν να είναι όσο το δυνατόν πιο χαλαρά διασυνδεδεμένα (loosely coupled), ώστε να ανταποκρίνονται εύκολα, γρήγορα και με χαμηλό κόστος στις εκάστοτε επαγγελματικές ανάγκες. Αυτό όμως δεν είναι καθόλου εύκολο με τις μέχρι πρότινος αρχιτεκτονικές πρακτικές (όπως για παράδειγμα την “από σημείο σε σημείο”) που ευνοούσαν τη δημιουργία μονολιθικών συστημάτων, τα οποία όμως δεν ήταν εύκολο να ανταποκριθούν στις σύγχρονες ανάγκες για ευελιξία και καλύτερη συνεκτικότητα.
Σύγχρονες Αρχιτεκτονικές Τάσεις
Τις παραπάνω ανάγκες έρχεται να καλύψει δυναμικά μία αρχιτεκτονική τάση, γνωστή και ως Υπηρεσιοστρεφής ή αλλιώς SOA (Service Oriented Architecture). Αυτό που τη διαχωρίζει σημαντικά από τις υπόλοιπες αρχιτεκτονικές, είναι η έμφαση που δίνει στην ακριβή μοντελοποίηση των διαδικασιών μιας εταιρείας σε διακεκριμένες μονάδες, όπου καθεμία (αλλά και όλες μαζί χωρογραφημένες σαν σύνολο) εξυπηρετούν και αντιπροσωπεύουν συγκεκριμένες λειτουργίες της εταιρείας (σχήμα 1). Οι τελευταίες είναι γνωστές με τον όρο υπηρεσίες (services) και για την SOA αποτελούν τη μέθοδο με την οποία δημιουργούνται πλέον αλληλο-υποστηριζόμενα οικοσυστήματα αναδομημένων εταιρικών διαδικασιών, ικανά να ενσωματώσουν υπηρεσίες από ένα ευρύ φάσμα οντοτήτων, όπως συνεταίρους, εξωτερικούς παροχείς αλλά ακόμα και πελάτες.
Επιπρόσθετα, πρέπει να σημειωθεί πως οι πρακτικές της SOA δεν επικεντρώνονται μόνο στη μοντελοποίηση και αναδόμηση εταιρικών διεργασιών, αλλά μεγάλη έμφαση δίνεται και στην επαναχρησιμοποίηση των ήδη υπαρχόντων δοκιμών μονάδων μιας επιχείρησης, όπως λειτουργιών, τεχνολογιών αλλά και εφαρμογών που απαρτίζουν την υποδομή της. Σε αντίθεση με άλλες προσεγγίσεις (όπως για παράδειγμα την αντικειμενοστρεφή), τα συστήματα που εμπλέκονται μέσω SOA δεν χρειάζεται να γνωρίζουν τις λεπτομέρειες του τρόπου με τον οποίο έχουν αναπτυχθεί, προκειμένου να αλληλοεπιδράσουν. Σε επίπεδο SOA, τα οικοσυστήματα από αλληλεπιδρούσες υπηρεσίες χρειάζεται μόνο, όπως φαίνεται στο σχήμα 2, να μπορούν να εντοπίσουν η μία την άλλη και να ανταλλάσσουν μηνύματα μέσω αυστηρά καθορισμένων διεπαφών (interfaces), οι οποίες έχουν οριστεί με τη σειρά τους διαμέσω μιας XML διαλέκτου, γνωστής ως WSDL. Επιπλέον, πρέπει να σημειωθεί πως ενόσω υπάρχουν αρκετοί τρόποι υλοποίησης για μία SOA αρχιτεκτονική (για παράδειγμα, λύσεις βασιζόμενες σε τεχνολογίες όπως COM/DCOM, CORBA ή RMI) η τελευταία τάση είναι τα Web Services εξαιτίας της χρήσης πρότυπων πρωτοκόλλων, τόσο σε επίπεδο μεταφοράς (transport) διαμέσω της χρήσης του HTTP(S) όσο και σε θέματα ασφάλειας (μέσω του πρότυπου WS) και υπηρεσιών διαμεσολάβησης (mediation services).
SOA και Ασφάλεια
Έτσι, μέσα σε αυτό το δυναμικό περιβάλλον, η ασφάλεια αποκτά ακόμη μεγαλύτερη σημασία, τόσο εξαιτίας του γεγονότος ότι η συνολική υποδομή μπορεί να απαρτίζεται από ανομοιογενείς τεχνολογίες, όσο και του γεγονότος ότι τα συστήματα που αναπτύσσονται είναι χαλαρά διασυνδεδεμένα μεταξύ τους, κατά τρόπο τέτοιο ώστε η λειτουργικότητά τους να μην περιορίζεται από τα εκάστοτε εταιρικά όρια, αλλά να εκτείνεται πέρα από αυτά σε όλες τις οντότητες με τις οποίες η εταιρεία συνεργάζεται. Συνεπώς, σε μια αρχιτεκτονική αυτού του τύπου δεν είναι πλέον αρκετό να ασφαλίζεται μόνο η περίμετρος της υποδομής (όπως για παράδειγμα, μέσω τοίχων προστασίας) αλλά χρειάζεται μια ριζικά διαφορετική αντιμετώπιση. Επομένως, η ασφάλεια γίνεται μια διαδικασία η οποία καλύπτει όλο τον κύκλο ζωής της αρχιτεκτονικής και αρχίζει με τη δημιουργία κατάλληλων πολιτικών ασφάλειας (βλέπε σχήμα 3).
Αναφορικά λοιπόν με τα προηγούμενα, πρέπει να ειπωθεί πως το μοντέλο ασφάλειας που υιοθετεί η SOA αρχιτεκτονική, έχει ως κύριο μέλημα την κάλυψη των αναγκών του καταναλωτή υπηρεσιών (service consumer). Για αυτό το λόγο, είναι επιβεβλημένη η εφαρμογή του σε όλα τα επίπεδα που απαρτίζουν το μοντέλο της SOA, τόσο δηλαδή σε επίπεδο υποδομής όσο και σε επίπεδο εφαρμογών, επιχειρησιακών υπηρεσιών και υπηρεσιών ανάπτυξης. Συγκεκριμένα, το μοντέλο μπορεί να χωριστεί σε τρία επίπεδα αφαιρετικότητας, τα οποία παρουσιάζονται έπειτα στο σχήμα 4:
- Επίπεδο 1: Υπηρεσίες Επιχειρησιακής Ασφάλειας
Αυτό το επίπεδο αναφέρεται στα συγκεκριμένα θέματα ασφάλειας, τα οποία πρέπει να οριστούν ανάλογα με το συγκεκριμένο τομέα στον οποίο δραστηριοποιείται η επιχείρηση, σε σχέση με παραμέτρους, όπως το εκάστοτε νομοθετικό πλαίσιο και ο υπάρχων ανταγωνισμός. - Επίπεδο 2: Υπηρεσίες Ασφάλειας Πληροφοριακής Υποδομής
Εδώ ορίζονται τα βασικά δομικά υλικά που χρειάζονται για να οριστούν οι λειτουργίες ασφάλειας με τη μορφή υπηρεσίας. Πρακτικά, το επίπεδο 2 ασχολείται με την υλοποίηση των όσων έχουν οριστεί στο προηγούμενο επίπεδο. - Επίπεδο 3: Διαχείριση Πολιτικών Ασφάλειας
Ειπώθηκε προηγουμένως, πως το σημείο εκκίνησης για το SOA μοντέλο ασφάλειας είναι η δημιουργία πολιτικών, οι οποίες μάλιστα για να είναι αποτελεσματικές, πρέπει να συμβαδίζουν με τις υπηρεσίες που ορίζονται σε επιχειρησιακό επίπεδο και να εφαρμόζονται ομοιογενώς από την υποδομή της επιχείρησης. Συνεπώς, εύκολα καταλαβαίνουμε πως η διαχείριση των πολιτικών ασφάλειας αποτελεί μία γέφυρα μεταξύ του πρώτου και του δεύτερου επιπέδου.
Ποιοι παράγοντες και πώς επηρεάζουν μία SOA Αρχιτεκτονική Ασφάλειας
Εξαιτίας της πολυπλοκότητας του περιβάλλοντος στο οποίο αναφέρεται η SOA αρχιτεκτονική, προκειμένου να αναπτυχθούν λύσεις σε θέματα ασφάλειας που να είναι λειτουργικές και συνάμα αποτελεσματικές, πέρα από την εφαρμογή μοντέλων (όπως αυτό που αναφέρθηκε παραπάνω) είναι σημαντικό η εκάστοτε προτεινόμενη λύση να ενσωματώνει τους παράγοντες που μπορούν να επηρεάσουν την αρχιτεκτονική και το σχεδιασμό. Έτσι, βασιζόμενοι στην εμπειρία, τα θέματα τα οποία έχουν αποδειχτεί ότι απασχολούν από κοινού τους αρχιτέκτονες ασφάλειας όταν επεξεργάζονται μία λύση σε ένα SOA περιβάλλον, μπορούν να συνοψιστούν ως εξής :
- Υπάρχουν εφαρμογές ή επιχειρησιακές λειτουργίες, που να προσφέρουν/απαιτούν πρόσβαση σε διαβαθμισμένη πληροφορία;
Εφαρμόζοντας τις πρακτικές της SOA, η ασφάλεια θα πρέπει να διαχωρίζεται όπου είναι δυνατόν από την επιχειρησιακή λογική (business logic) και να εξωτερικεύεται στην υποδομή, χρησιμοποιώντας ένα συνδυασμό από μεσολαβητές (όπως web proxies και service gateways) και middleware (δηλαδή application servers, Enterprise Service Busses κ.λπ.). - Είναι οι προσφερόμενες υπηρεσίες διαθέσιμες εκτός του επιχειρησιακού περιβάλλοντος; Επιπρόσθετα διαφορετικά μονοπάτια πρόσβασης απαιτούν διαφορετικές προδιαγραφές ασφάλειας;
Όπως φαίνεται και στo σχήμα 4, η SOA προβλέπει την εφαρμογή πολιτικών σε διάφορα σημεία της υποδομής που απαρτίζει την εκάστοτε λύση, προωθώντας κατά αυτόν τον τρόπο μια προσέγγιση προστασίας εις βάθος. Έτσι, για παράδειγμα, πολιτικές μπορούν να εφαρμοσθούν σε διάφορα σημεία της υποδομής, προκειμένου να διαφυλαχθεί η ακεραιότητα, η διαθεσιμότητα και η διαβάθμιση της πληροφορίας. - Οι αιτήσεις για υπηρεσίες χρειάζεται να διασχίζουν διαφορετικούς τομείς ασφάλειας;
Ο αναγκαίος βαθμός εμπιστοσύνης (trust) μεταξύ των εμπλεκόμενων τομέων (domains), ο οποίος καθορίζεται μέσα από τις διάφορες πολιτικές ασφάλειας, μπορεί να εδραιωθεί χρησιμοποιώντας μεσολαβητές (intermediaries), προκειμένου να χειριστούν τους μετασχηματισμούς ταυτότητας (identity), όσο και αιτήσεις εξουσιοδότησης, ενώ σε συνδυασμό των παραπάνω με υπηρεσίες μετάδοσης ταυτότητας (identity propagation services) είναι δυνατό να επιτευχθεί και ο αναγκαίος βαθμός διαχείρισης και ελέγχου των πολιτικών. - Αποτελεί στόχο της επιχείρησης η χρήση πολλαπλών εφαρμογών καθ’ όλη την έκτασή της, με τα ίδια διαπιστευτήρια (SSO);
Αν η ανάγκη για τη χρήση SSO είναι ενδεδειγμένη, τότε αναλόγως με τη μέθοδο η οποία χρησιμοποιείται για να προσπελαστούν οι διάφορες προσφερόμενες υπηρεσίες, πρέπει να υιοθετηθεί και μια διαφορετική τεχνολογία SSO. - Πρέπει τα διάφορα εμπλεκόμενα μέλη να επικοινωνούν μεταξύ τους χρησιμοποιώντας τις ταυτότητες που έχουν, εντός του τομέα στον οποίο ανήκουν;
Όπως και προηγουμένως, αν το παραπάνω αποτελεί μια διαγνωσμένη ανάγκη, αν δηλαδή χρήστες από διαφορετικούς τομείς ασφάλειας πρέπει να επικοινωνήσουν μεταξύ τους και παράλληλα να διατηρηθεί ένας υψηλός βαθμός εξουσιοδότησης, τότε η λύση πρέπει αναγκαστικά να περιλαμβάνει τη χρήση κάποιου μηχανισμού ελέγχου ομοσπονδιακών ταυτοτήτων (Federated identity management) βασισμένο σε πρότυπα, όπως SAML και WS-Federation.
- Υπάρχουν σύνθετες απεικονίσεις υπηρεσιών για τη διεκπεραίωση των λειτουργιών τους;
Σε ένα SOA περιβάλλον δεν είναι ασυνήθιστο μία υπηρεσία να καλεί μία άλλη προκειμένου να διεκπεραιωθεί μία αίτηση (request). Σε αυτήν την περίπτωση είναι αναγκαίο να περιέχεται στα μηνύματα μια σειρά από διαπιστευτήρια, σε σχέση με την ταυτότητα των συστημάτων τα οποία έχουν αγγίξει το μήνυμα στην πορεία του προς την τελική εφαρμογή. - Υπάρχει ανάγκη για ιχνηλασιμότητα των χρηστών σε όλη την έκταση της εταιρείας;
Αναφέρθηκε στην αρχή του άρθρου, πως, οι σύγχρονες εταιρείες οι οποίες συναλλάσσονται μέσω του δικτύου, θα πρέπει μεταξύ άλλων να συμμορφώνονται και με διάφορες νομοθετικές ρυθμίσεις (όπως για παράδειγμα η Sarbanes Oxley, η Computer Misuse Act κ.τ.λ.) οι οποίες απαιτούν ένα βαθμό ιχνηλασιμότητας των ενεργειών που σημειώθηκαν από τους χρήστες. Συνεπώς, εύκολα κατανοούμε πως αυτός είναι ακόμη ένας παράγοντας, ο οποίος θα πρέπει να λαμβάνεται υπόψη κατά τη διάρκεια του σχεδιασμού της εκάστοτε λύσης.
Συνοψίζοντας, λοιπόν, αναφορικά με την SOA αρχιτεκτονική, θα πρέπει να προστεθεί πως είναι μία πολλά υποσχόμενη τάση στην ανάπτυξη λογισμικού. Όσον αφορά στην πλευρά της ασφάλειας, η διαφορά της σε σχέση με άλλες αρχιτεκτονικές έγκειται όχι στον τύπο των παροχών που προσφέρονται, αλλά στον τρόπο υλοποίησης αυτών, προκειμένου να αντιμετωπισθούν οι προκλήσεις που δημιουργούνται εξαιτίας της δυναμικής που διέπει το σύγχρονο επιχειρησιακό περιβάλλον.
ΤΟΥ ΕΥΑΓΓΕΛΟΥ ΜΩΡΑΚΗ
Security Expert