Η τεχνολογία περιορισμού των δικαιωμάτων πρόσβασης που υλοποιούν τα flatpaks εμφανίζει αστοχίες και δε λύνει το ζήτημα της ασφάλειας των εφαρμογών.
Χρησιμοποιείτε flatpaks; Εγώ όχι. Προσπαθώ να τα αποφεύγω στην καθημερινότητά μου, παρότι αντιλαμβάνομαι το πρόβλημα που επιχειρούν να λύσουν, γιατί έχω ενστάσεις ως προς τον τρόπο που υλοποιείται η σχετική τεχνολογία. Επιπλέον, δεν υπάρχει ιδιαίτερη ανάγκη για εμένα, αφού η διανομή που προτιμώ μου προσφέρει όλα όσα χρειάζομαι με τον συμβατικό τρόπο πακεταρίσματος.
Φυσικά, τα παραπάνω δε σημαίνουν ότι τα flatpaks δεν έχουν πρακτική αξία για κανέναν χρήστη ή πως σπαταλώνται άσκοπα πόροι στην ανάπτυξή τους. Όπως κάθε τεχνολογία, όμως, έτσι και αυτά έχουν ορθό και λανθασμένο τρόπο χρήσης μα και προβλήματα που, συνήθως, αμελούνται.
Δικαιώματα πρόσβασης στα flatpaks
Ένα από τα κύρια χαρακτηριστικά των flatpaks είναι η υλοποίηση του «sandboxing»1 που παρέχει τη δυνατότητα απομόνωσης των εφαρμογών. Μπορούμε να ορίσουμε ότι ένα πακέτο δε θα έχει πρόσβαση στο σύστημα αρχείων ή σε άλλους πόρους και να είμαστε ήσυχοι ότι τα δεδομένα μας θα παραμείνουν ασφαλή και πως το πακέτο αυτό δε θα εκτελέσει κάποια κακόβουλη ενέργεια· δε θα μπορεί να το κάνει.
Ακούγεται ωραίο αυτό, σωστά; Και είναι, τουλάχιστον στη θεωρία. Στην πραγματικότητα υπάρχει σοβαρό πρόβλημα με τα δικαιώματα στα flatpaks , σπανίως αυτά είναι ρυθμισμένα σωστά από προεπιλογή και ο συμβατικός τρόπος χρήσης ενός υπολογιστή (σ.σ. αυτός που συνηθίζεται μα δεν είναι απαραίτητα και ορθός) εκ των πραγμάτων έρχεται σε ευθεία αντίθεση με την ασφάλεια του sanbox.
Ατελείς προεπιλογές και παράκαμψη δικαιωμάτων
Ουσιαστικά, η απομόνωση εφαρμογών που προσφέρουν τα flatpaks είναι παραμύθι. Όχι βέβαια γιατί δεν υφίσταται ως δυνατότητα μα επειδή καταργείται στην πράξη για χάρη της ευκολίας και αυτού που αντιλαμβανόμαστε ως λειτουργικότητα.
Χαρακτηριστικό παράδειγμα είναι η περίπτωση όπου κάποιος εγκατέστησε μια γραφική εφαρμογή ως flatpak και παραπονιέται ότι αυτή δεν ακολουθεί την εμφάνιση του υπόλοιπου συστήματος. Αυτό συμβαίνει γιατί ο περιορισμός της πρόσβασης λειτουργεί σωστά και έτσι το συγκεκριμένο πακέτο δε μπορεί να δει τι υπάρχει στον φάκελο χρήστη, άρα ούτε και να χρησιμοποιήσει ένα θέμα εμφάνισης που βρίσκεται εκεί.
Κάτι που συνηθίζεται να προτείνεται ως «λύση» εδώ είναι το να επιτραπεί σε αυτήν την εφαρμογή να έχει πρόσβαση στον φάκελο χρήστη. Έτσι θα εφαρμοστεί το επιθυμητό θέμα και ο χρήστης θα είναι ικανοποιημένος. Αν, όμως, συμβεί αυτό, κυριολεκτικά παραβιάζεται η ασφάλεια που παρέχει το sandboxing. Αλλά ποιος νοιάζεται…
Το πρόβλημα με την παραβίαση του sanbox γίνεται πιο έντονο στην πλευρά των προγραμματιστών, αφού εδώ εμφανίζεται το αιώνιο δίλημμα που κανείς μέχρι σήμερα -ούτε η τεχνολογία των flatpaks- δεν έχει καταφέρει να λύσει: λειτουργικότητα για όλους ή ασφάλεια;
Αν ένας προγραμματιστής επιλέξει να διαθέσει κάποιο flatpak με σωστά ρυθμισμένα δικαιώματα πρόσβασης από προεπιλογή, η υλοποίηση αυτών θα ερμηνευτεί ως δυσλειτουργία από τους χρήστες και θα δυσαρεστηθούν. Αν δώσει βάση στην ικανοποίηση των χρηστών, τα δικαιώματα θα είναι μερικώς ή και καθόλου εφαρμοσμένα, και έτσι η υποτιθέμενη ασφάλεια θα περάσει σε δεύτερη μοίρα.
Κάπως έτσι καταλήγουμε με διάφορες εφαρμογές, κυρίως τις δημοφιλείς, να διατίθενται στο Flathub ως «sandboxed», φέροντας μάλιστα και σχετικό εικονίδιο που το επισημαίνει, ενώ στην πραγματικότητα δεν είναι και παραπλανούν τους χρήστες.
Ανεπαρκής τεχνολογία, προβληματική ενημέρωση
Το πρόβλημα με την παράκαμψη των δικαιωμάτων θα μπορούσε να λυθεί σε κάποιον βαθμό με τη δυνατότητα πιο λεπτομερούς ρύθμισής τους. Μόνο που η τεχνολογία αυτή δεν υπάρχει σήμερα. Κατά τη διάρκεια εγκατάστασης ενός flatpak, ο χρήστης δε μπορεί να αρνηθεί ένα συγκεκριμένο δικαίωμα πρόσβασης. Είναι υποχρεωμένος να επιτρέψει όλα τα δικαιώματα που ζητά το πακέτο ή να τα απορρίψει στο σύνολό τους.
Μεμονωμένα δικαιώματα μπορούν να αναιρεθούν μέσω του τερματικού ή μιας εφαρμογής σαν το Flatseal, μόνο αφότου έχουμε ήδη εγκαταστήσει το πακέτο αποδεχόμενοι τα πάντα. Κάτι τέτοιο, ειδικά όταν πρόκειται για διανομές που στοχεύουν τον «μέσο χρήστη», δεν είναι ούτε πρακτικό ούτε ακριβώς δέον —το «opt-out» δεν είναι ποτέ ορθή προσέγγιση σε ό,τι αφορά δικαιώματα πρόσβασης.
Προβληματικός είναι, επίσης, ο τομέας της ενημέρωσης σχετικά με τα δικαιώματα που ζητά ένα flatpak πακέτο. Ακριβέστερα, δεν υπάρχει καμία ενημέρωση. Τα flatpaks δηλώνουν τα δικαιώματα που χρειάζονται -πρόσφατα προστέθηκαν και σύντομες επεξηγήσεις σε καθημερινή γλώσσα- αλλά όχι και τον λόγο για καθένα από αυτά. Όταν, όμως, η πληροφόρηση είναι ελλιπής, η όποια απόφαση έχει μεγάλα περιθώρια λάθους.
Ίσως θα ήταν ωφέλιμο το να παρατηρήσουμε την υλοποίηση των δικαιωμάτων στα λειτουργικά συστήματα για φορητές συσκευές. Όχι πως αυτή είναι απροβλημάτιστη μα η κατά περίπτωση επιλογή συγκεκριμένων τύπων πρόσβασης, όπως και η στοιχειώδης ενημέρωση για τους λόγους που αυτοί απαιτούνται, είναι σημαντικές ιδιότητες που λείπουν από τα flatpaks.
Η πολυπλοκότητα των portals
Οι προγραμματιστές όχι μόνο γνωρίζουν αυτά τα προβλήματα αλλά έχουν ήδη ξεκινήσει την υλοποίηση της τεχνολογίας των portals που θα προσδώσει στα flatpaks τη δυνατότητα πολυεπίπεδης ρύθμισης των απαιτούμενων δικαιωμάτων πρόσβασης.
Δεν είμαι βέβαιος, όμως, ότι κινούνται προς τη σωστή κατεύθυνση. Φαίνεται πως είναι αντίθετοι με τη δημιουργία APIs τα οποία θα αξιοποιούν οι εφαρμογές για να ορίσουν τα δικαιώματα και προκρίνουν την προσαρμογή ολόκληρων βιβλιοθηκών λογισμικού, όπως οι GTK και Qt, ώστε αυτές να ενσωματώνουν τις δυνατότητες των flatpaks.
Αυτή η μέθοδος προδίδει κακό σχεδιασμό, αφού θα προσθέσει μεγάλη -και αχρείαστη- πολυπλοκότητα στα λογισμικά και, επιπλέον, είναι εντελώς αντίθετη με κάθε άλλη γνωστή υλοποίηση του sandboxing.
Τα flatpaks είναι μια υποτυπώδης λύση
Δεν έχω πρόθεση να υποτιμήσω τα θετικά στοιχεία των flatpaks και σίγουρα το ζήτημα της ασφάλειας των εφαρμογών στο ΕΛ/ΛΑΚ είναι σημαντικό, ίσως σήμερα περισσότερο από ποτέ άλλοτε. Πρέπει, όμως, να είμαστε ενήμεροι για τις σχετικές τεχνολογίες και να μην επαναπαύομαστε σε αυτά που λένε ότι προσφέρουν, αφού πολλές φορές η πραγματικότητα είναι κάπως διαφορετική.
Αναρωτιέμαι, επίσης, αν προσπαθούμε να λύσουμε ένα λανθασμένο πρόβλημα αλλά αυτή είναι μια συζήτηση για κάποιο μελλοντικό άρθρο.
Όπως αποδεικνύεται, τα flatpaks αποτελούν μια υποτυπώδη λύση και η τεχνολογία που τα συνοδεύει -τουλάχιστον στην τρέχουσα υλοποίησή της- δε μπορεί να καλύψει επαρκώς τις ανάγκες της ασφάλειας παρά τα όσα όμορφα λέγονται, ενώ ορισμένοι προγραμματιστές καταφεύγουν σε αστεία επιχειρήματα για να δικαιολογήσουν τις παρατυπίες.
Δεν αρκεί το να εγκαταστήσουμε πακέτα από το Flathub πιστεύοντας ότι έτσι το σύστημά μας θα είναι ασφαλές. Ας φροντίσουμε να ενημερωνόμαστε σωστά για τις πραγματικές δυνατότητες των flatpaks και να αποφασίζουμε ανάλογα.
Το αρχικό κείμενο είναι απο εδώ με by-nc-sa. Κρίθηκε ενδιαφέρον και μεταφέρθηκε αυτούσιο εδώ.