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

Γιώργος Ασλανίδης
Cybersecurity Architecture & Solutions Manager, Cyber Noesis
Kωνσταντίνος Παπαδάτος
Founder & Managing Director, Cyber Noesis

Η ιστορία των πολιορκιών προσφέρει έναν ιδιαίτερα χρήσιμο παραλληλισμό για τη σύγχρονη κυβερνοανθεκτικότητα: η συνολική ανθεκτικότητα δεν εξασφαλίζεται από ένα και μόνο ισχυρό στοιχείο. Προκύπτει από την επιλογή ανθεκτικών επιμέρους στοιχείων και από έναν σχεδιασμό που προβλέπει ότι κάποιο από αυτά, αργά ή γρήγορα, μπορεί να αποτύχει.
Τα ισχυρά τείχη αποτελούσαν προφανώς βασική προϋπόθεση άμυνας. Δεν ήταν όμως τα μόνα. Πύργοι, τάφροι, ακροπόλεις, εσωτερικές οχυρώσεις, αποθήκες εφοδίων και διαφορετικές γραμμές άμυνας λειτουργούσαν ως επιμέρους στοιχεία ενός μεγαλύτερου αμυντικού συστήματος. Tο κρίσιμο χαρακτηριστικό μιας πραγματικά ανθεκτικής οχύρωσης δεν ήταν απλώς η δυσκολία παραβίασης του τείχους. Ήταν η δυνατότητα αντιμετώπισης μίας αποτυχίας, περιορίζοντάς τις επιπτώσεις της και αποτρέποντας τη συνολική κατάρρευση της πόλης.
Η αρχή αυτή βρίσκεται στον πυρήνα του σύγχρονου Secure-by-Design.
Το Secure-by-Design αντιμετωπίζει την ανθεκτικότητα όχι ως μεμονωμένο χαρακτηριστικό του τελικού προϊόντος, αλλά ως αποτέλεσμα τόσο των ιδιοτήτων των επιμέρους συστατικών του όσο και των αρχιτεκτονικών επιλογών που τα συνδέουν. Δεν αρκεί κάθε επιμέρους στοιχείο να είναι ασφαλές όταν εξετάζεται απομονωμένα. Είναι εξίσου σημαντικός ο τρόπος με τον οποίο τα επιμέρους στοιχεία αλληλεπιδρούν και, κυρίως, το πώς συμπεριφέρεται το σύστημα όταν ένα από αυτά αποτύχει.
Σε αντιστοιχία με τις πόλεις, αρχές, φορείς και επιχειρήσεις είναι οργανισμοί που χρησιμοποιούν ψηφιακές λύσεις για να πετύχουν το σκοπό τους. Κάθε ψηφιακή λύση είναι ένα σύνθετο προϊόν που αποτελείται από κώδικα, βιβλιοθήκες, open-source components, λειτουργικά συστήματα, μηχανισμούς ταυτοποίησης, interfaces, APIs, μηχανισμούς ενημέρωσης και εξαρτήσεις από τρίτους. Καθένα από αυτά, αποτελεί επιμέρους δομικό στοιχείο που επηρεάζει την ασφάλεια και, κατ’ επέκταση, την ανθεκτικότητα του προϊόντος αλλά και του οργανισμού που βασίζεται σ’ αυτό.
Από το Security στο Resilience
Εδώ και δεκαετίες, η βιομηχανία της κυβερνοασφάλειας επαναλαμβάνει μια βασική αρχή: η ασφάλεια πρέπει να είναι built–in και όχι bolt–on. Να αποτελεί δηλαδή εγγενές χαρακτηριστικό ενός προϊόντος και όχι ένα πρόσθετο επίπεδο προστασίας που επιχειρούμε να εφαρμόσουμε αφού έχουν ήδη ληφθεί οι βασικές σχεδιαστικές και αρχιτεκτονικές αποφάσεις.
Στην πράξη, όμως, για πολλά χρόνια σχεδιάζαμε συστήματα με πρωταρχικά κριτήρια τη λειτουργικότητα, την απόδοση, το κόστος, το time-to-market και επιχειρούσαμε στη συνέχεια να αντιμετωπίσουμε τους κινδύνους με πρόσθετα security controls. Είναι σαν να σχεδιάζουμε πρώτα την πόλη και, αφού ολοκληρωθεί, να αναζητούμε πού και πώς θα προσθέσουμε τις οχυρώσεις της.
Η ανθεκτικότητα του τελικού προϊόντος δεν μπορεί επομένως να προστεθεί εκ των υστέρων. Αποτελεί ιδιότητα που προκύπτει από την επιλογή των επιμέρους στοιχείων και τις αποφάσεις σχεδιασμού σε ολόκληρο τον κύκλο ζωής του. Και εδώ βρίσκεται μία από τις σημαντικότερες αλλαγές που φέρνει ο CRA.
Ο Cyber Resilience Act (CRA) έρχεται ουσιαστικά να μετατρέψει αυτή την επί δεκαετίες αναγνωρισμένη αρχή από best practice σε κανονιστική απαίτηση.
Ο CRA διευρύνει την ευθύνη του κατασκευαστή: από τις αρχικές σχεδιαστικές επιλογές και την ανάπτυξη μέχρι την παραγωγή και τη διάθεση στην αγορά, αλλά και στη διαχείριση ευπαθειών, τις ενημερώσεις ασφαλείας και την υποστήριξή του προϊόντος κατά την περίοδο που έχει προκαθοριστεί. Η κυβερνοασφάλεια δεν εξετάζεται πλέον ως χαρακτηριστικό που προστίθεται στο τελικό προϊόν, αλλά ως απαίτηση που πρέπει να λαμβάνεται υπόψη ήδη από τον σχεδιασμό του.
Αυτή είναι και η ουσιαστική διάκριση μεταξύ security και resilience. Η ασφάλεια επιδιώκει πρωτίστως να αποτρέψει ή να αντιμετωπίσει μια παραβίαση. Η ανθεκτικότητα προσθέτει μια ακόμη διάσταση: αναγνωρίζει ότι σε ένα σύνθετο σύστημα κάποιο μέτρο άμυνας ενδέχεται να αποτύχει και απαιτεί το σύστημα να μπορεί να αντέξει την αποτυχία, να περιορίσει τις συνέπειές της και να επανέλθει σε ασφαλή κατάσταση.
Κατ’ αναλογία, μια οχυρωμένη πόλη μπορούσε να διαθέτει εξαιρετικά ισχυρά τείχη και παρ’ όλα αυτά να είναι ευάλωτη, εάν η πτώση μιας πύλης επέτρεπε στον αντίπαλο να κινηθεί ανεμπόδιστα στο εσωτερικό της, χωρίς να υπάρχουν εσωτερικές γραμμές άμυνας.
Το ίδιο ισχύει για ένα ψηφιακό προϊόν. Η παραβίαση ενός component δεν πρέπει να οδηγεί αναγκαστικά σε πλήρη παραβίαση του προϊόντος. Η αρχή του least privilege, ο περιορισμός του attack surface, ο διαχωρισμός λειτουργιών, οι ασφαλείς προεπιλεγμένες ρυθμίσεις, η προστασία των δεδομένων και οι ασφαλείς ενημερώσεις υπηρετούν την ίδια σχεδιαστική αρχή: η αστοχία ενός επιμέρους στοιχείου να μην μετατρέπεται σε αστοχία του συνόλου.
Μια αλυσίδα ψηφιακών εξαρτήσεων.
Όμως, όπως η ανθεκτικότητα μιας πόλης δεν καθοριζόταν μόνο από τον σχεδιασμό της, έτσι και η ανθεκτικότητα ενός ψηφιακού προϊόντος δεν εξαρτάται μόνο από τα στοιχεία που αναπτύσσει ο ίδιος ο κατασκευαστής. Στον σύγχρονο ψηφιακό κόσμο, βιβλιοθήκες λογισμικού, open-source components, λειτουργικά συστήματα και άλλα στοιχεία τρίτων δημιουργούν μια σύνθετη αλυσίδα εξαρτήσεων. Μια ευπάθεια σε ένα από αυτά μπορεί να αποτελέσει τη σύγχρονη “Κερκόπορτα”, ακόμη και όταν το υπόλοιπο προϊόν έχει σχεδιαστεί με υψηλές προδιαγραφές ασφάλειας.
Υπό αυτή την οπτική, το «Resilience» στον CRA αποκτά ιδιαίτερη σημασία. Δεν αφορά μόνο τον ασφαλή κώδικα, αλλά ολόκληρο το οικοσύστημα δημιουργίας και υποστήριξης ενός ψηφιακού προϊόντος: τον σχεδιασμό και την ανάπτυξη, την επιλογή των επιμέρους components, τη διαχείριση των εξαρτήσεων και της εφοδιαστικής αλυσίδας, τη διαχείριση ευπαθειών, τις ενημερώσεις ασφαλείας και την υποστήριξη του προϊόντος.
Από το bolt-on security περνάμε πλέον στο built-in security. Από την προστασία του προϊόντος, στην αρχιτεκτονική της ανθεκτικότητάς του.







