Οι επαγγελματίες της ασφάλειας καλούνται να εφαρμόσουν μηχανισμούς ασφάλειας σε ραγδαία αναπτυσσόμενα περιβάλλοντα (φορητές συσκευές) που δεν μπορούν να ελέγξουν και επιπρόσθετα ελλοχεύει ο κίνδυνος υποκλοπής αυτών και κατ’ επέκταση η χρήση τους με κακόβουλο τρόπο.

Η αυξανόμενη ανάγκη για ανάπτυξη εφαρμογών φορητών συσκευών μπορεί να συγκριθεί με την ταχεία χρήση των ιστότοπων στα τέλη της δεκαετίας του ’90. Τότε οι Oργανισμοί είδαν τους ιστότοπους ως μέσο αύξησης της παρουσίας τους και νέων προοπτικών προώθησης προϊόντων και υπηρεσιών. Σήμερα οι Oργανισμοί βλέπουν τις εφαρμογές φορητών συσκευών να παρέχουν παρόμοιες προοπτικές.

Επιπλέον λειτουργούν ως εργαλεία αύξησης της παραγωγικότητας των εργαζομένων, υιοθετώντας για παράδειγμα μοντέλα τύπου «Φέρε τη Δική Σου Συσκευή» (Bring Your Own Device).

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

Νέες τεχνολογίες, νέοι ορίζοντες, συνεπώς νέες προκλήσεις ασφάλειας
Οι εφαρμογές φορητών συσκευών αντιπροσωπεύουν κάτι περισσότερο από το επόμενο βήμα στην τεχνολογία πληροφορικής. Στο προσεχές μέλλον θα διαμορφωθούν ως η κύρια μέθοδος πολλών δραστηριοτήτων, όπως ηλεκτρονικό εμπόριο, κοινωνική δικτύωση, εξ αποστάσεως εργασία, ακόμα και ψυχαγωγία. Συνεπώς δημιουργείται ένα νέο πεδίο δράσης για τις κακόβουλες οντότητες, θέτοντας σε κίνδυνο την ασφάλεια πληροφοριών των Oργανισμών και των χρηστών.
Παρατηρούμε ότι σημαντικό αποτρεπτικό παράγοντα για την ανάπτυξη και χρήση εφαρμογών φορητών συσκευών αποτέλεσε η ραγδαία αύξηση των περιστατικών παραβίασης ασφάλειας που έλαβαν χώρα το 2011. Συνεπώς, η πλειοψηφία των χρηστών και των Oργανισμών θεώρησε ότι εάν δεν μπορούν να προστατευτούν από παραβιάσεις ασφάλειας σε παραδοσιακές εφαρμογές στις οποίες έχουν επενδύσει σε συστήματα ασφάλειας και υπάρχει συσσωρευμένη τεχνογνωσία, ο κίνδυνος παραβίασης της ασφάλειας στις φορητές συσκευές είναι σαφώς υψηλότερος.
Οι επαγγελματίες της ασφάλειας καλούνται να εφαρμόσουν μηχανισμούς ασφάλειας σε ραγδαία αναπτυσσόμενα περιβάλλοντα (φορητές συσκευές) που δεν μπορούν να ελέγξουν και επιπρόσθετα ελλοχεύει ο κίνδυνος υποκλοπής αυτών και κατ’ επέκταση η χρήση τους με κακόβουλο τρόπο.

Απαιτείται αναπροσδιορισμός των κινδύνων; Σαφώς ναι.
Οι κίνδυνοι ασφάλειας δικτυακών εφαρμογών έχουν πεδίο δράσης και στις εφαρμογές φορητών συσκευών. Παρ’ όλα αυτά, οι φορητές συσκευές σχεδιάζονται με γνώμονα την προσωπική και επικοινωνιακή λειτουργικότητα, οπότε οι κίνδυνοι και οι μηχανισμοί ασφάλειας διαφοροποιούνται σε σημαντικό βαθμό σε σχέση με τις παραδοσιακές εφαρμογές.
Μέσω της εμπειρίας της KPMG σε έργα δοκιμών παρείσδυσης εφαρμογών φορητών συσκευών στην Ελλάδα και σε πανευρωπαϊκό επίπεδο, έχουν αναδειχθεί οι παρακάτω προκλήσεις:

  • Φυσική ασφάλεια: Η πιθανότητα κλοπής είναι πολύ υψηλή, θέτοντας σε κίνδυνο την εμπιστευτικότητα των προσωπικών δεδομένων καθώς και την πνευματική ιδιοκτησία των εφαρμογών.
  • Λογική πρόσβαση: Λόγω της έλλειψης επιπέδων πρόσβασης, ένας κακόβουλος χρήστης δύναται με σχετικά μη εξειδικευμένο τρόπο, να λάβει πρόσβαση με δικαιώματα διαχειριστή στη συσκευή (jail breaking, rooting) και κατ’ επέκταση στην εφαρμογή. Οι υφιστάμενοι μηχανισμοί λογικής πρόσβασης περιορίζονται σε επίπεδο συσκευής, μέσω των μηχανισμών application isolation των λειτουργικών συστημάτων.
  • Μηχανισμοί πιστοποίησης και αυθεντικοποίησης: Η εφαρμογή αυστηρών πολιτικών κωδικών πρόσβασης (ελάχιστο μήκος, σύμβολα, κλείδωμα μετά το πέρας προκαθορισμένου αριθμού αποτυχημένων προσπαθειών) σε φορητές συσκευές, παρουσιάζει αυξημένο κίνδυνο μη εφαρμογής αυτών, λόγω δυσλειτουργικότητας που παρέχουν οι συσκευές.
  • Εμπιστευτικότητα προσωπικών δεδομένων: Tα λειτουργικά συστήματα παρέχουν μη επαρκείς μηχανισμούς κρυπτογράφησης, δεδομένου ότι συνήθως το ιδιωτικό κλειδί κρυπτογράφησης βασίζεται στον κωδικό κλειδώματος της συσκευής (device unlock code) ή/και προκαθορισμένου κωδικού πρόσβασης του κατασκευαστή. Επιπρόσθετα, είναι δυνατή η υποκλοπή δεδομένων που δεν προστατεύονται από το περιβάλλον εφαρμογών (sandbox), όπως shared resources, OS caches κτλ.
  • Υποκλοπή συνδέσεων: Η διασύνδεση της εφαρμογής με το διαδίκτυο και κατ’ επέκταση με τους διακομιστές της εφαρμογής, ελλοχεύει τον κίνδυνο επιθέσεων τύπου υποκλοπής και παραποίησης συνδέσεων (man-in-the-middle attack), λαμβάνοντας υπόψη ότι το ενδιάμεσο δίκτυο – όπως τα κοινόχρηστα ασύρματα δίκτυα – ενδέχεται να μην πληροί αυστηρούς κανόνες ασφάλειας. (εικόνα 2)
  • Υποκλοπή πηγαίου κώδικα: Έχει παρατηρηθεί αυξημένος κίνδυνος στην εκτέλεση τεχνικών reverse engineering, με σκοπό τον εντοπισμό αδυναμιών (που δεν δύναται να εντοπιστούν μέσω του γραφικού περιβάλλοντος ή των μηνυμάτων λάθους της συσκευής) ή/και τεχνικών πληροφοριών που ενδέχεται να χρησιμοποιηθούν για την περαιτέρω παρείσδυση.

Οι υφιστάμενοι μηχανισμοί ασφάλειας επαρκούν; Έχουν γίνει βήματα προς τη σωστή κατεύθυνση, υπάρχουν όμως σημαντικά περιθώρια βελτίωσης.
Η φορητότητα δεν έχει διαφοροποιήσει τις βασικές αρχές ασφάλειας πληροφοριών. Όμως οι επαγγελματίες ασφάλειας θα πρέπει να αντιμετωπίσουν νέες προκλήσεις που σχετίζονται με την κλοπή, ανομοιομορφία λειτουργικών συστημάτων, μικρό χρονικό διάστημα ζωής συσκευών κτλ.
Η κοινότητα ασφάλειας αναγνωρίζοντας τις προαναφερόμενες προκλήσεις και κινδύνους έχει προβεί στην υλοποίηση προϊόντων διαχείρισης φορητών συσκευών (Mobile Device Management). Επίσης o μη κερδοσκοπικός Oργανισμός για την ασφάλεια των διαδικτυακών εφαρμογών OWASP, έχει δημιουργήσει σχετικές δράσεις που περιλαμβάνουν βέλτιστες πρακτικές ασφάλειας και εργαλειοθήκες για τον έλεγχο τρωτότητας. (εικόνα 3). Επίσης οι κατασκευαστές φορητών συσκευών έχουν προβεί στην υιοθέτηση προ-εγκατεστημένων μηχανισμών ασφάλειας.

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

Ενεργή συμμετοχή της ασφάλειας κατά τη διαδικασία ανάπτυξης.
Αποτελεί πλέον κοινοτοπία ότι οι Oργανισμοί αναγνωρίζουν την αξία της ασφάλειας μόνο μετά από περιστατικά παραβιάσεων ασφάλειας. Ο έγκαιρος σχεδιασμός των μηχανισμών ασφάλειας και ο έλεγχος αυτών σε κάθε στάδιο του κύκλου ζωής των εφαρμογών είναι όμως πολύ σημαντικός, κυρίως υπό το «φώς» νέων απαιτήσεων, όπως:

  • Η ελαχιστοποίηση του κώδικα (π.χ. μέθοδοι, δομή κ.λπ.) και της λειτουργικότητας σε επίπεδο εφαρμογής χρήστη, υλοποίησης των μηχανισμών ελέγχου δεδομένων και στοιχείων φορμών (input validation) σε επίπεδο διακομιστή.
  • Η υιοθέτηση αυστηρών κανόνων ανάπτυξης (coding standards). Έμφαση θα πρέπει να δοθεί σε αδυναμίες των C/C++ από επιθέσεις τύπου buffer, format string και double-frees overflows. Επίσης, απενεργοποίηση του μηχανισμού εμφάνισης σφαλμάτων.

Προστασία από τον πιο αδύναμο κρίκο της ασφάλειας
Η υλοποίηση αυστηρών μηχανισμών ασφάλειας σε επίπεδο φορητής συσκευής για τον περιορισμό των λανθασμένων ή/και εσκεμμένων ενεργειών από τους χρήστες των εφαρμογών, κρίνεται αναγκαία. Αρωγό στις περιπτώσεις των εταιρικών δικτύων αποτελεί η ύπαρξη μηχανισμών περιορισμού φυσικής και λογικής πρόσβασης σε επίπεδο σταθμού εργασίας. Λαμβάνοντας υπόψη ότι τα παραπάνω δεν είναι εφαρμόσιμα στις φορητές συσκευές, θα πρέπει να ληφθούν επιπρόσθετα μέτρα προστασίας (εικόνα 4):

  • Υλοποίηση μηχανισμών εντοπισμού, κλειδώματος ή/και διαγραφής εμπιστευτικών πληροφοριών σε περίπτωση απώλειας της συσκευής (wipe out).
  • Εγκατάσταση προκαθορισμένων ρυθμίσεων ασφάλειας σε επίπεδο εφαρμογής (application security permissions model) και έλεγχος παραποίησης αυτών κατά τη διαδικασία ενεργοποίησης της εφαρμογής.
  • Χρήση των μηχανισμών application isolation/sandbox των λειτουργικών συστημάτων και χρήση των κρυπτογραφημένων βιβλιοθηκών σε περίπτωση προσπέλασης της εφαρμογής σε τρίτες εφαρμογές (π.χ. πρόγραμμα πλοήγησης) ή/και πόρους (π.χ. drivers) του λειτουργικού συστήματος.
  • Εφαρμογή ισχυρών μηχανισμών πιστοποίησης/αυθεντικοποίησης (multifactor authentication) με τη χρήση μοναδικών κωδικών πρόσβασης (one-time passwords). Επανέκδοση των στοιχείων αυθεντικοποίησης μετά το πέρας προκαθορισμένου χρονικού διαστήματος.

Προστασία από κακόβουλες οντότητες
Το προφίλ κινδύνου κάθε εφαρμογής προσδιορίζεται και από το βαθμό εστίασης που δίνουν οι κακόβουλες οντότητες. Στην περίπτωση των φορητών συσκευών ο κίνδυνος κρίνεται αυξημένος, λαμβάνοντας υπόψη τις τεχνολογικές ιδιαιτερότητες και το επίπεδο ευκολίας στην προσέγγιση ανυποψίαστων χρηστών. Στο πλαίσιο αυτό κρίνεται αναγκαία η εφαρμογή ενεργειών όπως οι παρακάτω:

  • Η υλοποίηση επιπρόσθετων μηχανισμών κρυπτογράφησης σε επίπεδο εφαρμογής με τη χρήση αλγόριθμου κρυπτογράφησης σχεδιασμένου βάσει μοναδικών χαρακτηριστικών (π.χ. κωδικός χρήστη, serial number συσκευής, τυχαίος αριθμός, κτλ). Επίσης, υλοποίηση τεχνολογιών tokenization σε ευαίσθητα δεδομένα που σχετίζονται με την πιστοποίηση/ αυθεντικοποίηση, ηλεκτρονικές συναλλαγές, PII κτλ.
  • Η υλοποίηση ανιχνευτικών μηχανισμών για τον περιορισμό αποστολής κακόβουλων πακέτων (fuzzing) στα στοιχεία εισόδου-εξόδου της εφαρμογής, όπως application framework APIs, inter-component communication (ICC) και interprocess communication (IPC) και εφαρμογή μηχανισμών wipe out.
  • Η χρήση μηχανισμών κρυπτογράφησης TLS/SSL που να καλύπτουν το σύνολο της επικοινωνίας μεταξύ εφαρμογής και διακομιστή. Εφαρμογή ισχυρών αλγόριθμων και κλειδιών κρυπτογράφησης. Έλεγχος για επιθέσεις παραποίησης της αλυσίδας κρυπτογράφησης (SSL chain validation) σε επίπεδο διακομιστή, καθώς και σε επίπεδο εφαρμογής χρήστη μέσω της εμφάνισης σχετικού μηνύματος.
  • Η ανάπτυξη ασφαλούς προγράμματος πλοήγησης και κατάργησης των προ-εγκατεστημένων αντίστοιχων προγραμμάτων. Έλεγχος της χρήσης αυτού μέσω των παραμέτρων user-agent.
  • Η πιστοποίηση εφαρμογών (application signing) και χρήση πιστοποιητικών συσκευής (client certificates). Έλεγχος της ακεραιότητας τρίτων εφαρμογών και πόρων του λειτουργικού συστήματος, που ενδέχεται να χρησιμοποιεί η εφαρμογή.
  • Σε περιπτώσεις όπου κρίνεται αναγκαία η χρήση προσωρινών δεδομένων, η αποθήκευση αυτών θα πρέπει να γίνεται μόνο σε επίπεδο μνήμης, εντός του sandbox της εφαρμογής και σε κρυπτογραφημένη μορφή.

Η ασφάλεια αποτελεί μια συνεχή διαδικασία
Φαντάζει στοιχειώδες, αλλά η παραπάνω αρχή ασφάλειας κρίνεται ακόμα πιο αναγκαία στις φορητές συσκευές, λόγω των ραγδαίων τεχνολογικών εξελίξεων που διέπουν τον χώρο αυτό. Πιο συγκεκριμένα, ο συνήθης κύκλος ζωής των συσκευών και των λειτουργικών συστημάτων τους κυμαίνεται από 2 έως 4 μήνες, συνεπώς η ασφάλεια εφαρμογών φορητών συσκευών και οι σχετικές δράσεις θα πρέπει να περιλαμβάνουν πρακτικές:

  • Εναρμόνισης με τη γενικότερη διαδικασία διαχείρισης αλλαγών λογισμικού.
  • Περιοδικής (ή έπειτα από κρίσιμες αλλαγές) διεξαγωγής ανάλυσης κινδύνων και ευπαθειών, μέσω της οποίας θα αναπροσαρμόζεται το προφίλ κινδύνου της εφαρμογής.

Ο τρόπος και το επίπεδο υλοποίησης των προαναφερόμενων τεχνικών ασφάλειας θα πρέπει ως συνήθως να εναρμονίζεται με το προφίλ κινδύνου της εφαρμογής.
Ανάδειξη της ασφάλειας ως στρατηγικού συμμάχου
Όπως κάθε καινοτόμα τεχνολογία, η ασφάλεια των εφαρμογών φορητών συσκευών (κίνδυνοι, προδιαγραφές, μηχανισμοί κτλ.) έχει κληρονομήσει τις παραδοσιακές αδυναμίες ασφάλειας που σχετίζονται με την αρχή «productivity first, security later». Επιπρόσθετα, η επίτευξη ασφάλειας στις εν λόγω εφαρμογές απαιτεί καινοτόμες λύσεις σε σχέση με τους παραδοσιακούς μηχανισμούς ασφάλειας.
Ενδεχομένως για πρώτη φορά στην ιστορία της ασφάλειας πληροφοριών παρέχονται τα μέσα (τεχνολογίες, εμπειρία) για τη λειτουργία ασφαλών εφαρμογών φορητών συσκευών. Οι διοικήσεις των Οργανισμών θα πρέπει να αξιοποιήσουν τα παραπάνω, κατανοώντας τις νέες προκλήσεις και προχωρώντας σε σημαντικές επενδύσεις ασφάλειας. Από την πλευρά τους, οι ομάδες ανάπτυξης εφαρμογών και οι επαγγελματίες ασφάλειας, λόγω των προαναφερόμενων προκλήσεων θα πρέπει να υιοθετήσουν κουλτούρα “hacker”, αφού είναι de-facto ότι το περιβάλλον λειτουργίας της εφαρμογής θα χρησιμοποιείται από κακόβουλες οντότητες με σκοπό την παραβίαση της ασφάλειας.
Λόγω του γεγονότος ότι η βιωσιμότητα της νέας τεχνολογίας εξαρτάται από το βαθμό εμπιστοσύνης από τον τελικό χρήστη, ενδεχόμενη αποτυχία της ασφάλειας θα επιφέρει σημαντικές επιπτώσεις στη μη αξιοποίηση αυτής της τεχνολογίας.

Χρήστος Βιδάκης
CISA, CISSP, CISM, ISO 27001 LA
Senior Manager, Management and Risk Consulting
IT Advisory
KPMG Advisors AE
cvidakis@kpmg.gr