Κίνδυνοι και Μέτρα Αντιμετώπισης που Συνδέονται με τη Χρήση Βιβλιοθηκών κατά την Κατασκευή Επαγγελματικών Συστημάτων
Στη σύγχρονη εποχή, η δημιουργία ενός επαγγελματικού συστήματος απαιτεί αναγκαστικά τη χρήση των λεγόμενων “βιβλιοθηκών” ως συστατικά μέρη του συστήματος. Ωστόσο, η χρήση βιβλιοθηκών συνεπάγεται και κινδύνους. Η απρόσεκτη χρήση τους μπορεί να προκαλέσει προβλήματα και, στη χειρότερη περίπτωση, να οδηγήσει σε σοβαρές ζημιές όπως η διαρροή πληροφοριών. Σε αυτό το άρθρο θα αναλύσουμε τους κινδύνους που κρύβει η χρήση βιβλιοθηκών και τα μέτρα προστασίας που μπορούν να ληφθούν.
Τι είναι η Βιβλιοθήκη (Library)
Κατά την κατασκευή ενός επαγγελματικού συστήματος, σπάνια μια εταιρεία συστημάτων δημιουργεί όλα τα απαραίτητα προγράμματα από το μηδέν. Αντ’ αυτού, συνήθως χρησιμοποιεί «έτοιμα τμήματα λογισμικού» ως βάση και δημιουργεί τα λείποντα μέρη ανάλογα με τις ανάγκες. Αυτά τα έτοιμα τμήματα λογισμικού αναφέρονται ως «βιβλιοθήκες». Η χρήση βιβλιοθηκών για την ανάπτυξη γενικών λειτουργιών είναι η καθιερωμένη πρακτική. Ο όρος γενικές λειτουργίες αναφέρεται σε δυνατότητες όπως «η λειτουργία σύνδεσης» ή «η λειτουργία ανάκτησης δεδομένων από μια βάση δεδομένων», οι οποίες είναι υψηλής ζήτησης σε κάθε βιομηχανία και σε κάθε χώρα. Για αυτές τις πολύ ζητούμενες λειτουργίες υπάρχουν αντίστοιχες βιβλιοθήκες. Από την άλλη πλευρά, για λειτουργίες που δεν είναι γενικές και πρέπει να ικανοποιήσουν μοναδικές ανάγκες των πελατών, δεν υπάρχουν έτοιμες βιβλιοθήκες, οπότε η εταιρεία συστημάτων πρέπει να τις δημιουργήσει εξαρχής.
Επιπλέον, υπάρχει ένας όρος παρόμοιου νοήματος με τη βιβλιοθήκη, ο οποίος είναι το «πλαίσιο εργασίας» ή framework. Υπάρχει επίσης ο όρος OSS (Open Source Software – Λογισμικό Ανοιχτού Κώδικα), ο οποίος στο πλαίσιο των επαγγελματικών συστημάτων αναφέρεται σε συστατικά του συστήματος και είναι ισοδύναμος με τις βιβλιοθήκες που αναφέρονται σε αυτό το άρθρο, αλλά μπορεί να είναι πιο γνωστός όρος. Ωστόσο, σε αυτό το άρθρο θα χρησιμοποιήσουμε ενιαία τον όρο βιβλιοθήκη.
Τα Πλεονεκτήματα της Βιβλιοθήκης: Γρήγορη και Ασφαλής
Υπάρχουν δύο λόγοι για τους οποίους οι εταιρείες συστημάτων προτιμούν τη χρήση βιβλιοθηκών αντί για την αυτοσχεδιασμένη ανάπτυξη.
- Η δημιουργία είναι γρηγορότερη από την αυτοσχεδιασμένη
- Η ασφάλεια είναι υψηλότερη από την αυτοσχεδιασμένη
Το να είναι κάτι γρήγορο όταν χρησιμοποιείται ένα έτοιμο προϊόν είναι αναμενόμενο, αλλά ένα σημαντικό χαρακτηριστικό είναι ότι είναι επίσης ανώτερο σε θέματα ασφάλειας. Αυτό συμβαίνει επειδή οι διάσημες βιβλιοθήκες αναπτύσσονται, ελέγχονται και χρησιμοποιούνται συνεχώς σε παραγωγικά περιβάλλοντα από κορυφαίους μηχανικούς και εταιρείες σε όλο τον κόσμο, έτσι ώστε να έχουν ληφθεί μέτρα για γνωστές μεθόδους επίθεσης και να μπορούν να ενημερώνονται γρήγορα όταν ανακαλύπτονται νέες μέθοδοι επίθεσης. Αντίθετα, όταν προσπαθείτε να αναπτύξετε κάτι από την αρχή χωρίς να χρησιμοποιήσετε βιβλιοθήκες, μπορεί να χρειαστεί να επιστρατεύσετε ειδικούς για να εξετάσουν τα ζητήματα ασφάλειας, πράγμα που συνεπάγεται επιπλέον κόστος και προσπάθεια. Σε αυτή την περίπτωση, η βελτίωση της ασφάλειας μπορεί να οδηγήσει σε αυξημένο κόστος. Λαμβάνοντας υπόψη όλες αυτές τις παραμέτρους, η χρήση βιβλιοθηκών γίνεται σημαντική για την επίτευξη μιας ταχύτερης και ασφαλέστερης ανάπτυξης συστημάτων.
Τα μειονεκτήματα της χρήσης βιβλιοθηκών
Η χρήση βιβλιοθηκών μπορεί να επιτρέψει την ταχεία και ασφαλή δημιουργία συστημάτων, προσφέροντας σημαντικά οφέλη τόσο στους πελάτες όσο και στις εταιρείες συστημάτων. Ωστόσο, η χρήση τους συνοδεύεται από ορισμένο κόστος. Επιπλέον, υπάρχει το δίλημμα ότι αν δεν γίνουν ενημερώσεις, μπορεί να εισχωρήσουν «ευπάθειες» στο σύστημα, ενώ αν γίνουν ενημερώσεις, υπάρχει πιθανότητα το σύστημα να σταματήσει να λειτουργεί.
Αν δεν γίνουν ενημερώσεις, υπάρχουν ευπάθειες
Εγκληματίες που στοχεύουν στην κλοπή προσωπικών δεδομένων, πληροφοριών πιστωτικών καρτών ή εταιρικών μυστικών, αναζητούν καθημερινά ασφαλιστικά κενά σε βιβλιοθήκες (και σε οποιοδήποτε λογισμικό). Αυτά τα ασφαλιστικά κενά αποκαλούνται στην IT ορολογία ως «ευπάθειες». Υπάρχουν πολλά παραδείγματα όπου επιτήδειοι εκμεταλλεύτηκαν ευπάθειες σε βιβλιοθήκες και προκάλεσαν ζημιές. Για παράδειγμα, ένα περιστατικό διαρροής περίπου 200.000 πελατών δεδομένων από την ιστοσελίδα ερωτηματολογίων του Ιαπωνικού Υπουργείου Υποδομών και Μεταφορών, όπου επιτέθηκαν σε μια ευπάθεια της βιβλιοθήκης Struts2, και ένα άλλο περιστατικό όπου ένας ιστότοπος πώλησης εισιτηρίων που χρησιμοποιούσε το Struts2 ενδέχεται να έχει διαρρεύσει πληροφορίες για 30.187 πιστωτικές κάρτες. Είναι δυνατόν ευπάθειες σε βιβλιοθήκες που δεν ήταν γνωστές κατά την παράδοση του συστήματος να αποκαλυφθούν αργότερα.
Οι ενημερώσεις συνοδεύονται από τον κίνδυνο διακοπής του συστήματος
Στην πράξη, υπάρχουν περιπτώσεις που δεν είναι δυνατόν να γίνουν ενημερώσεις παρά την ύπαρξη ευπαθειών, επειδή υπάρχει ο κίνδυνος το σύστημα να σταματήσει προσωρινά να λειτουργεί μετά από μια ενημέρωση. Οι βιβλιοθήκες δεν είναι γραμμένες από την εταιρεία συστημάτων, οπότε είναι πρακτικά δύσκολο να κατανοηθεί πλήρως το περιεχόμενό τους. Έτσι, υπάρχει πάντα ο κίνδυνος να προκύψουν απρόβλεπτα προβλήματα μετά από μια ενημέρωση, που μπορεί να προκαλέσουν προσωρινή διακοπή της λειτουργίας του συστήματος. Οι πελάτες μπορεί να αισθάνονται δυσαρέσκεια προς την εταιρεία συστημάτων επειδή δεν γνωρίζουν το περιεχόμενο του παραδοθέντος συστήματος. Ωστόσο, η πραγματικότητα είναι ότι οι βιβλιοθήκες που χρησιμοποιούνται στα σύγχρονα συστήματα είναι τόσο πολλές και ποιοτικές που δεν μπορούν να διαχειριστούν εύκολα από μια μόνο εταιρεία συστημάτων. Για παράδειγμα, υπάρχει η δημοφιλής βιβλιοθήκη «React» για την κατασκευή διεπαφών χρήστη, η οποία δημιουργήθηκε από μηχανικούς της εταιρείας Facebook και είναι πολύ προηγμένη από ποιοτική άποψη, ενώ από ποσοτική άποψη περιλαμβάνει 195,486 γραμμές κώδικα (※1).
(※1) Στις 23 Ιουνίου 2019, 7:57 π.μ. GMT+9, βάσει του master https://github.com/facebook/react/commit/39b97e8eb87b2b3b0d938660e1ac12223470fdf5 μετρήθηκε με την έκδοση 1.82 του cloc. |
Περιπτώσεις Αδυναμιών που Οδήγησαν σε Δίκη
Όταν προκύψουν ζημιές λόγω αδυναμιών που οφείλονται σε βιβλιοθήκες, τίθεται το ερώτημα ποιος φέρει την ευθύνη. Ένα σημαντικό παράδειγμα αποτελεί η απόφαση του Περιφερειακού Δικαστηρίου του Τόκιο της 23ης Ιανουαρίου του έτους Heisei 26 (2014). Ο ενάγων ανέθεσε στον εναγόμενο, μια εταιρεία συστημάτων, την κατασκευή ενός συστήματος πωλήσεων. Ωστόσο, μετά την ενεργοποίηση του συστήματος, λόγω των αδυναμιών του, διέρρευσαν πληροφορίες πιστωτικών καρτών των τελικών χρηστών και ο ενάγων υπέστη ζημιές περίπου 32 εκατομμυρίων γιεν, προκαλώντας διαφωνία. Στη σύμβαση που είχαν συνάψει ο ενάγων και ο εναγόμενος, υπήρχε μια ρήτρα απαλλαγής ευθύνης που περιόριζε το ποσό της αποζημίωσης στο ποσό της σύμβασης σε περίπτωση ζημιάς λόγω αμέλειας του εναγόμενου. Το κύριο ζήτημα ήταν εάν η ρήτρα απαλλαγής ευθύνης θα μπορούσε να εφαρμοστεί. Η απόφαση έκρινε ότι ο εναγόμενος είχε σοβαρή αμέλεια και σε περίπτωση σοβαρής αμέλειας, η ρήτρα απαλλαγής δεν εφαρμόζεται, επιβάλλοντας στον εναγόμενο αποζημίωση που υπερβαίνει το ποσό της σύμβασης.
Ο εναγόμενος, ως εταιρεία που ασχολείται με τον σχεδιασμό συστημάτων πληροφορικής, την παραγωγή ιστοσελίδων και την ανάπτυξη επιχειρησιακών συστημάτων, αναπτύσσει την επιχείρησή του χρησιμοποιώντας εξειδικευμένες γνώσεις προγραμματισμού και παρέχοντας την εν λόγω εφαρμογή ιστού ως μέρος της επιχείρησής του, και ο ενάγων συνήψε τη σύμβαση ανάθεσης του συστήματος εμπιστευόμενος αυτές τις εξειδικευμένες γνώσεις, κάτι που μπορεί να συναχθεί, και ο βαθμός της απαιτούμενης προσοχής από τον εναγόμενο θεωρείται σχετικά υψηλός. Όπως αναφέρθηκε προηγουμένως, ήταν δυνατόν για τον εναγόμενο να προβλέψει ότι, εάν δεν ληφθούν μέτρα κατά των SQL Injection, ένας τρίτος θα μπορούσε να εκτελέσει μια επίθεση SQL Injection και να προκαλέσει διαρροή προσωπικών δεδομένων από τη βάση δεδομένων. Επιπλέον, δεδομένου ότι το Υπουργείο Οικονομίας, Εμπορίου και Βιομηχανίας και το IPA είχαν επισημάνει τις επιθέσεις SQL Injection ως μια από τις κύριες μεθόδους επίθεσης σε εφαρμογές ιστού και είχαν προειδοποιήσει για αυτές, ήταν εύκολο για τον εναγόμενο να προβλέψει ότι θα μπορούσε να συμβεί αυτή η κατάσταση. Επιπλέον, η χρήση του μηχανισμού δέσμευσης ή η εκτέλεση διαδικασιών διαφυγής θα μπορούσε να αποφύγει τη διαρροή δεδομένων, και δεν υπάρχουν αποδείξεις που να υποδηλώνουν ότι η αποφυγή της διαρροής δεδομένων θα απαιτούσε σημαντική προσπάθεια ή κόστος. Συνεπώς, μπορεί να θεωρηθεί ότι ο εναγόμενος είχε σοβαρή αμέλεια.
Απόφαση του Περιφερειακού Δικαστηρίου του Τόκιο, 23 Ιανουαρίου Heisei 26 (2014)
Η ερμηνεία αυτής της απόφασης στο πλαίσιο των αδυναμιών των βιβλιοθηκών παρέχεται στην παρακάτω περιγραφή από το Ίδρυμα Πληροφοριών Λογισμικού.
Αν λάβουμε υπόψη τη λογική αυτής της απόφασης, ακόμη και αν προκύψουν ζημιές στον χρήστη λόγω ελαττωμάτων (αδυναμιών κ.λπ.) του OSS, εάν αναγνωριστεί ότι ο προμηθευτής αμέλησε να αντιμετωπίσει τις αδυναμίες με πρόθεση ή σοβαρή αμέλεια, τότε, όπως και στην παρούσα υπόθεση, η εφαρμογή της ρήτρας απαλλαγής ευθύνης (ρήτρα περιορισμού ευθύνης) μπορεί να περιοριστεί και η απαλλαγή από την ευθύνη να μην είναι δυνατή. Ωστόσο, εάν οι πληροφορίες για την αντιμετώπιση των αδυναμιών του OSS δημοσιευτούν αμέσως μετά την επίθεση, η ευκολία αποφυγής του αποτελέσματος μπορεί να αρνηθεί και η σοβαρή αμέλεια να μην αναγνωριστεί.
Συλλογή Ερωτήσεων & Απαντήσεων για τη Χρήση του OSS στην Εποχή του IoT [PDF] (σελίδα 84)
Έτσι, ακόμη και αν οι αδυναμίες προέρχονται από βιβλιοθήκες, εάν αυτές είναι γνωστές αδυναμίες και η πρόβλεψη της επίθεσης θεωρείται εύκολη, τότε είναι πιθανό να θεωρηθεί ότι η εταιρεία συστημάτων φέρει την ευθύνη.
Ποια είναι τα πιο ρεαλιστικά μέτρα αντιμετώπισης των ευπαθειών;
Σε περίπτωση που προκύψει διαρροή πληροφοριών λόγω εσκεμμένης πράξης ή σοβαρής αμέλειας από μια εταιρεία συστημάτων, νομικά αναμένεται να λάβετε αποζημίωση μέσω δικαστικής διαδικασίας. Ωστόσο, από πρακτικής άποψης, ουσιαστικό είναι να αποφεύγεται εξαρχής η διαρροή. Ακόμη και αν λάβετε αποζημίωση μέσω δικαστηρίου, η εμπιστοσύνη που χάσατε από τους τελικούς χρήστες λόγω διαρροής πληροφοριών δεν ανακτάται. Για αυτόν τον λόγο, τα ακόλουθα δύο σημεία είναι σημαντικά:
- Σύναψη συμβάσεων συντήρησης που περιλαμβάνουν ενημερώσεις βιβλιοθηκών
- Διαγνώσεις ευπαθειών
Σύναψη συμβάσεων συντήρησης που περιλαμβάνουν ενημερώσεις βιβλιοθηκών
Στις συμβάσεις κατασκευής επαγγελματικών συστημάτων, υπάρχει η περίπτωση να αναθέσετε μόνο την ανάπτυξη ή και τη συντήρηση. Εάν η εταιρεία σας δεν διαθέτει ειδικούς για τη συντήρηση, τότε είναι κατάλληλο να συνάψετε συμβάσεις συντήρησης. Μέσω της σύμβασης, μπορείτε να αναθέσετε στην εταιρεία συστημάτων τα μέτρα αντιμετώπισης ευπαθειών, περιλαμβανομένων των ενημερώσεων βιβλιοθηκών, και να καθορίσετε σαφώς τις υποχρεώσεις ανταπόκρισης της εταιρείας συστημάτων και τις αντίστοιχες υποχρεώσεις πληρωμής του πελάτη, προλαμβάνοντας έτσι προβλήματα. Είναι σημαντικό να υποχρεώσετε την εταιρεία συστημάτων να ανταποκριθεί ως ειδικός, ενώ ταυτόχρονα ο πελάτης πρέπει να αναλάβει το κόστος που απαιτείται για την ειδικευμένη αυτή υπηρεσία.
Διαγνώσεις ευπαθειών
Ο όγκος των δεδομένων που διαχειρίζεται ένα σύστημα και οι αυξημένες απαιτήσεις στο περιβάλλον χρήστη (UI) αυξάνονται καθημερινά, ενώ ταυτόχρονα συνεχίζει να αυξάνεται και ο αριθμός των νέων ευπαθειών που ανακαλύπτονται. Εξαιτίας αυτού, η εταιρεία συστημάτων μόνη της δυσκολεύεται να αποτρέψει πλήρως την εισαγωγή ευπαθειών. Εδώ γίνεται απαραίτητη η διαγνωστική αξιολόγηση των ευπαθειών. Σύμφωνα με το IPA, πάνω από το 50% των επιχειρήσεων συνολικά και το 80% των μεγάλων εταιρειών διενεργούν διαγνώσεις ευπαθειών.
Οι διαγνώσεις ευπαθειών ποικίλλουν από δωρεάν εργαλεία έως ακριβές χειροκίνητες διαδικασίες. Ειδικά όταν διαχειρίζεστε πληροφορίες των οποίων η διαρροή θα ήταν καταστροφική, είναι απαραίτητο να αναθέσετε τις διαγνώσεις ευπαθειών σε ειδικευμένες εταιρείες και να διαθέσετε επαρκές κόστος για την αντιμετώπισή τους. Επιπλέον, δεδομένου ότι οι ευπαθείες ανακαλύπτονται καθημερινά, είναι σημαντικό να διενεργείτε συνεχείς διαγνώσεις ευπαθειών (σελίδα 15) όχι μόνο κατά την παράδοση αλλά και μετά από αυτήν.
Συνοπτικά
Στο παρόν άρθρο, αναλύσαμε τους κινδύνους που συνδέονται με τη χρήση βιβλιοθηκών και τους τρόπους αντιμετώπισής τους. Οι βιβλιοθήκες είναι εξαιρετικά χρήσιμες, αλλά αν δεν ενημερώνονται τακτικά, μπορεί να προκύψουν ευπάθειες που οδηγούν σε διαρροή πληροφοριών και άλλες ζημιές. Από νομικής πλευράς, εάν υπάρχει σοβαρή αμέλεια από την πλευρά της εταιρείας συστημάτων, μπορεί να υπάρξει δυνατότητα αποζημίωσης για τη διαρροή πληροφοριών. Ωστόσο, στην πράξη, είναι πιο σημαντικό να λαμβάνονται μέτρα ώστε να μην συμβεί καθόλου διαρροή πληροφοριών. Για αυτό το λόγο, θα ήταν σκόπιμο να συμφωνηθούν στη σύμβαση οι προσπάθειες ενημέρωσης των βιβλιοθηκών και οι διαγνώσεις ευπαθειών. Χωρίς τη χρήση βιβλιοθηκών, είναι σχεδόν αδύνατο να επιτευχθούν τα απαιτούμενα επίπεδα παράδοσης και λειτουργικότητας. Για να απολαύσετε τα οφέλη των βιβλιοθηκών αποφεύγοντας ταυτόχρονα τα προβλήματα, είναι απαραίτητη η συναίνεση με την εταιρεία συστημάτων σχετικά με το κόστος ενημέρωσης και τα μέτρα αντιμετώπισης των ευπαθειών. Για να μην υποστεί η επιχείρησή σας καίριο πλήγμα από διαρροή πληροφοριών, είναι σημαντικό να δίνετε επαρκή προσοχή όχι μόνο σε στοιχεία όπως η λειτουργικότητα, η διάταξη της οθόνης και η τιμή, αλλά και στην ασφάλεια από τη στιγμή της σύναψης της σύμβασης.
Category: IT
Tag: ITSystem Development