Όταν σκοπεύετε να εγκαταστήσετε το Ubuntu με γνώμονα την ασφάλεια πρώτα θα πρέπει να ελαχιστοποιήσετε την «επιφάνεια επίθεσης» (Φυσική και Δικτύου) στο σύστημά σας και έπειτα μπορείτε να συνεχίσετε με την ασφάλεια σε επίπεδο εφαρμογής.
Σε περίπτωση που ανοίξετε ένα κακόβουλο αρχείο στο σύστημά σας, θα έχει ο θύτης πρόσβαση σε όλα τα αρχεία του υπολογιστή; Οι πιθανότητες είναι πολύ πιο λίγες εάν ενεργοποιήσετε τις κατάλληλες άμυνες.
Η σειρά άρθρων μέχρι σήμερα:
- Μέτρα ασφάλειας λειτουργικού συστήματος Ubuntu – Μέρος 1 (Physical Attack Defense)
- Μέτρα ασφάλειας λειτουργικού συστήματος Ubuntu – Μέρος 2 (Network Attack Defense)
- Ο σημερινός οδηγός : Μέτρα ασφάλειας λειτουργικού συστήματος Ubuntu – Μέρος 3 (Application – Sandboxing)
- Μέτρα ασφάλειας λειτουργικού συστήματος Ubuntu – Μέρος 4 (Auditing, Antivirus, Monitoring)
Σε αυτό το τρίτο μέρος της σειράς μας για την ενίσχυση της ασφάλειας του Ubuntu, θα μάθετε
- πώς λειτουργούν τα αποθετήρια πακέτων του Ubuntu,
- ποια repos θα πρέπει να αποφύγετε και πώς να τα ενημερώσετε.
- πώς μπορείτε να εισαγάγετε επιπλέον προφίλ AppArmor για να περιορίσετε τους πόρους που μπορούν να χρησιμοποιήσουν οι εφαρμογές,
- καθώς και να δημιουργήσετε sandboxes (απομόνωση εφαρμογών) για να απομονώσετε εντελώς τις μη ασφαλείς εφαρμογές από το λειτουργικό σύστημα.
Βήμα 1: Εγκαταστήστε τις τελευταίες ενημερώσεις συστήματος του Ubuntu
Μέρος της διατήρησης της ασφάλειας του συστήματός σας είναι οι ενημερώσεις εφαρμογών του λειτουργικού και των προγραμμάτων που έχουν εγκατασταθεί.
Για μια ολική προσέγγιση στην ενημέρωση και τον καθαρισμό του συστήματος χρησιμοποιείστε το δικό μας εργαλείο uCareSystem
- uCareSystem : Για όσους δεν θυμούνται, το ucaresystem όταν το τρέξετε, αυτόματα και χωρίς να ζητάει την παρέμβασή σας εκτελεί κάποιες βασικές διεργασίες συντήρησης του Ubuntu, τις οποίες σε διαφορετική περίπτωση θα έπρεπε να τις εκτελείτε μια μια και να πατάτε Y/N κάθε φορά
Για ποια αποθετήρια παρέχεται υποστήριξη στο Ubuntu
Το Ubuntu χρησιμοποιεί διάφορα αποθετήρια (servers) που περιέχουν πακέτα (λογισμικό και εξαρτήσεις) που έχουν ελεγχθεί από την Canonical, τους προγραμματιστές του Ubuntu και την ομάδα ασφάλειας. Όμως, δεν ελέγχονται από την ομάδα του Ubuntu όλα τα αποθετήρια του Ubuntu.
Τα αποθετήρια Ubuntu περιλαμβάνουν τις ακόλουθες κατηγορίες όπως έχουμε δει στο άρθρο «Τι είναι τα αποθετήρια λογισμικού«:
- Main: περιλαμβάνει εφαρμογές που είναι ελεύθερο λογισμικό, μπορούν να αναδιανεμηθούν ελεύθερα και υποστηρίζονται πλήρως από την ομάδα του Ubuntu. Αυτό περιλαμβάνει τις πιο δημοφιλείς και πιο αξιόπιστες διαθέσιμες εφαρμογές ανοιχτού κώδικα, πολλές από τις οποίες περιλαμβάνονται από προεπιλογή κατά την εγκατάσταση του Ubuntu (εκτός και αν επιλέξετε minimal εγκατάσταση) . Όταν εγκαθιστούμε λογισμικό από το κύριο αποθετήριο, είμαστε βέβαιοι ότι το λογισμικό θα έρθει με ενημερώσεις ασφαλείας και ότι η υποστήριξη είναι διαθέσιμη από το Canonical.
- Universe: Το αποθετήριο του Universe είναι μια συλλογή του ανοιχτού λογισμικού. Η Canonical θα παρέχει τακτικές ενημερώσεις ασφαλείας για το λογισμικό στο του universe, όταν αυτές διατίθενται από την κοινότητα. Δημοφιλή ή καλά υποστηριζόμενα κομμάτια λογισμικού μπορούν να μετακινηθούν από το universe στο main εάν υποστηρίζονται από διαχειριστές που είναι πρόθυμοι να ανταποκριθούν στα πρότυπα που ορίζει η ομάδα του Ubuntu.
- Restricted: Η δέσμευση του Ubuntu είναι να προωθεί μόνο το ελεύθερο λογισμικό, δηλαδή το λογισμικό που διατίθεται υπό ελεύθερη άδεια. Ωστόσο, υπάρχουν εξαιρέσεις για ένα μικρό σύνολο εργαλείων και προγραμμάτων οδήγησης που χρειάζονται για να είναι δυνατή η χρήση κάποιον hardware. Αυτοί οι οδηγοί (drivers) διατηρούνται στο Restricted. Λάβετε υπόψη ότι ενδέχεται να μην είναι δυνατή η παροχή πλήρους υποστήριξης για αυτό το λογισμικό, επειδή οι προγραμματιστές του Ubuntu δεν είναι σε θέση να διορθώσουν το λογισμικό, αλλά να διαβιβάζουν τις αναφορές προβλημάτων στους πραγματικούς συγγραφείς των οδηγών αυτών. Κατα την εγκατάσταση του Ubuntu θα χρησιμοποιούν μόνο λογισμικό ανοικτού κώδικα αλλά όταν δεν υπάρχει άλλος τρόπος λειτουργίας του hardware θα χρησιμοποιηθεί το συγκεκριμένο αποθετήριο.
- Multiverse: Το αποθετήριο Multiverse περιέχει λογισμικό που δεν είναι ελεύθερο λογισμικό, πράγμα που σημαίνει ότι οι απαιτήσεις αδειοδότησης αυτού του λογισμικού δεν πληρούν την πολιτική άδειας χρήσης του Ubuntu. Η ευθύνη εναπόκειται σε εσάς να επαληθεύσετε τα δικαιώματά σας για να χρησιμοποιείτε αυτό το λογισμικό και να συμμορφώνεστε με τους όρους αδειοδότησης του κατόχου πνευματικών δικαιωμάτων. Αυτό το λογισμικό δεν υποστηρίζεται και συνήθως δεν μπορεί να διορθωθεί ή να ενημερωθεί. Χρησιμοποιήστε το με δική σας ευθύνη.
Απενεργοποίηση μη ασφαλών αποθετηρίων
Αν λοιπόν σας ενδιαφέρει η σταθερότητα και η ασφάλεια, θα πρέπει να θυσιάσετε κάποιες «ευκολίες». Πριν ενημερώσετε τυχόν πακέτα, ανοίξτε το παράθυρο «Λογισμικό & ενημερώσεις» στην καρτέλα «Software Ubuntu» και απενεργοποιήστε τα αποθετήρια:
- multiverse
- restricted
Αυτά τα αποθετήρια διανέμουν λογισμικό κλειστού κώδικα, δεν μπορούν να ελεγχθούν από τους προγραμματιστές του Ubuntu.

Στη συνέχεια, μεταβείτε στην καρτέλα «Άλλο Λογισμικό» και καταργήστε την επιλογή «Canonical Partners».

Απενεργοποίηση των Backports
Τα Backports προσφέρουν έναν τρόπο να έχετε νεότερες εκδόσεις λογισμικού σε παλαιότερες εκδόσεις του Ubuntu. Συχνά, η ομάδα Backports θα παρέχει νέες εκδόσεις ανεξάρτητων εφαρμογών οι οποίες μπορούν να ενημερωθούν με ασφάλεια χωρίς να επηρεάσουν το υπόλοιπο σύστημα. Ωστόσο, η ομάδα ασφαλείας του Ubuntu δεν ενημερώνει τα πακέτα των Backports. Για το λόγο αυτό, συνιστάται η απενεργοποίηση των backports. Στην καρτέλα «Ενημέρωση», βεβαιωθείτε ότι δεν είναι επιλεγμένο το «Unsupported updates«.

Από προεπιλογή, το Ubuntu θα πρέπει να κάνει λήψη και ενημέρωση των ενημερώσεων ασφαλείας αυτόματα σε καθημερινή βάση. Ελέγξτε απλά οτι είναι ενεργό το «When there are security updates: Download and install»
Βήμα 2: Χρησιμοποιήστε τα AppArmor profiles
Το AppArmor είναι μια ιδιότητα του πυρήνα που περιορίζει τις εφαρμογές και τα προγράμματα σε ένα απομονομένο σύνολο πόρων.
Για παράδειγμα, ρυθμίζοντας το AppArmor, είναι δυνατό να περιορίσετε την πρόσβαση ενός προγράμματος προβολής PDF στο διαδίκτυο σε προκαθορισμένους καταλόγους στο λειτουργικό σύστημα. Εάν ανοίξει ένα κακόβουλο αρχείο PDF, δεν θα επιτρέπεται η προβολή συγκεκριμένων καταλόγων οπότε και περιορίζεται η πρόσβαση του εισβολέα. Το AppArmor είναι ήδη εγκατεστημένο και ενεργοποιημένο σε κάθε εγκατάσταση του Ubuntu. Αυτό μπορεί να επαληθευτεί χρησιμοποιώντας την παρακάτω εντολή.
~$ sudo aa-status
Εγκατάσταση επιπρόσθετων AppArmor Profiles
Χρησιμοποιήστε την παρακάτω εντολή για να προσθέσετε περισσότερα προφίλ AppArmor.
~$ sudo apt install apparmor-profiles apparmor-utils
Ενεργοποίηση νέου Profile
Στη συνέχεια, χρησιμοποιήστε την ακόλουθη εντολή για να ενεργοποιήσετε όλα τα νέα προφίλ που προστέθηκαν.
~$ sudo aa-enforce /etc/apparmor.d/*
Είναι επίσης δυνατό να δημιουργήσετε profile scripts για οποιαδήποτε εφαρμογή στο λειτουργικό σύστημα. Για περισσότερες πληροφορίες σχετικά με το AppArmor, χρησιμοποιήστε την εντολή man για να δείτε τα εγχειρίδια.
~$ man apparmor
~$ man aa-status
~$ man aa-enforce
Βήμα 3: Απομονώστε αρχεία και εφαρμογές σε Sandboxed περιβάλλον
Το Firejail, μειώνει τον κίνδυνο παραβιάσεων της ασφάλειας, χρησιμοποιώντας μια τεχνολογία απομόνωσης ώστε οι εφαρμογές να περιορίζονται σε sandboxed περιβάλλοντα.
Τόσο το Firejail όσο και το AppArmor μπορούν να χρησιμοποιηθούν μαζί (συνεργατικά) ή ανεξάρτητα το ένα από το άλλο. Εάν ένας από αυτούς δεν κατάφερε να περιορίσει ένα συγκεκριμένο αρχείο ή κατάλογο, θα ήταν δυνατό για τον άλλο να αντισταθμίσει και να περιορίσει την ευπάθεια.
Το Firejail υποστηρίζει μια σειρά από χαρακτηριστικά:
- Blacklisting: Απαγορεύεται η πρόσβαση σε συγκεκριμένα αρχεία και καταλόγους. Οι απόπειρες πρόσβασης καταγράφονται στο /var/log/syslog.
- Whitelisting: Να επιτρέπονται μόνο τα αρχεία και οι κατάλογοι που καθορίζονται από τον χρήστη.
- Temporary filesystem: Τοποθετήστε ένα προσωρινό σύστημα αρχείων μέσα από έναν κατάλογο.
- Private: Τοποθετήστε αντίγραφα αρχείων και καταλόγων και απορρίψτε τα όταν κλείσετε το sandbox.
- Restricted home: Μόνο ο τρέχων κατάλογος user /home είναι διαθέσιμος μέσα στο sandbox.
- Reduced system information leakage: Περιορίστε την πρόσβαση σε ευαίσθητους καταλόγους, όπως /boot, /proc και /sys.
Εγκατάσταση του Firejail
Μπορείτε να κάνετε εγκατάσταση το Firejail με την παρακάτω εντολή:
~$ sudo apt install firejail
Χρησιμοποιήστε το όρισμα –help για να δείτε τις διαθέσιμες επιλογές της Firejail και βεβαιωθείτε ότι έχει εγκατασταθεί σωστά.
~$ firejail --help
Το Firejail έχει πάρα πολλά χαρακτηριστικά για να τα καλύψουμε σε αυτό το άρθρο, γι ‘αυτό θα σας δείξω δύο πρακτικές χρήσεις του.
1) Sandboxing σε μη ασφαλή PDF που βρέθηκαν στο διαδίκτυο
Ένα από τα μεγαλύτερα χαρακτηριστικά του Firejail είναι η ικανότητά του να δημιουργεί προσωρινά sandboxes, τα οποία «καταστρέφονται» όταν κλείνει η εφαρμογή. Χρησιμοποιήστε την παρακάτω εντολή για να δημιουργήσετε μια αυστηρή προσωρινή διαμόρφωση του sandbox.
~$ firejail --seccomp --nonewprivs --private --private-dev --private-tmp --net=none --x11 --whitelist=/tmp/unsafe.pdf evince /tmp/unsafe.pdf
Αρκετά πράγματα συμβαίνουν στην παραπάνω εντολή, οπότε θα τα αναλύσω ένα προς ένα.
- –seccomp: Το Seccomp (ασφαλής λειτουργία) είναι ενεργοποιημένο από προεπιλογή, αλλά το έχω συμπεριλάβει στην εντολή επειδή είναι ένα από τα καλύτερα χαρακτηριστικά του Firejail. Το Seccomp είναι μια εγκατάσταση ασφάλειας υπολογιστών στον kernel του Linux και δεν επιτρέπει σε μια διαδικασία να μπορεί να πραγματοποιήσει κλήσεις συστήματος. Εάν μια εφαρμογή μέσα στο sandbox επιχειρήσει οποιαδήποτε άλλη κλήση συστήματος, ο πυρήνας θα τερματίσει επιθετικά τη διαδικασία.
- –nonewprivs: Αυτή η επιλογή σάς επιτρέπει να περιορίσετε τις διαδικασίες από την απόκτηση νέων προνομίων μέσα στο container. Αυτό εξασφαλίζει ότι οι υπο-διεργασίες δεν μπορούν να αποκτήσουν νέα δικαιώματα χρησιμοποιώντας κλήσεις συστήματος.
- –private: Δημιουργήστε /root και /home/user καταλόγους σε προσωρινά συστήματα αρχείων. Όλες οι τροποποιήσεις απορρίπτονται όταν κλείσει το sandbox.
- –private-dev: Ο κατάλογος /dev περιέχει γενικά αρχεία συσκευών. Χρησιμοποιώντας το όρισμα –private-dev, το Firejail θα δημιουργήσει έναν νέο (προσωρινό) /dev κατάλογο που θα απομονωθεί από τις πραγματικές συσκευές του /dev.
- –private-tmp: Ο κατάλογος /tmp σε ένα λειτουργικό σύστημα Ubuntu περιέχει συνήθως αρχεία προσωρινής αποθήκευσης που δημιουργούνται από την εκτέλεση εφαρμογών. Τα δεδομένα σε αυτά τα αρχεία ενδέχεται να είναι ευαίσθητα και θα πρέπει να απομονώνονται από τις εφαρμογές sandboxed.
- –net=none: Η μόνη διαθέσιμη διασύνδεση στο sandbox είναι μια νέα διεπαφή loopback (lo). Χρησιμοποιήστε αυτήν την επιλογή για να αρνηθείτε πρόσβαση στο δίκτυο σε προγράμματα που δεν χρειάζονται πραγματικά πρόσβαση στο διαδίκτυο.
- –x11: Θα εμποδίζει την έναρξη εφαρμογών screenshot και keylogger μέσα στο sandbox από την πρόσβαση σε clients που εκτελούνται εκτός του sandbox.
- –whitelist: Οι τροποποιήσεις στα αρχεία που βρίσκονται σε λίστα με whitelist θα λειτουργούν απρόσκοπτα ενώ όλα τα άλλα απορρίπτονται όταν κλείνει το sandbox.
- evince /tmp/unsafe.pdf: Αυτό το τελικό κομμάτι της εντολής καλεί τον λογισμικό Evince PDF και ανοίγει το καθορισμένο αρχείο.
2) Sandboxing σε Web Browsers
Για μια πιο επιεική ομάδα κανόνων sandboxing, χρησιμοποιήστε την παρακάτω εντολή.
~$ firejail --seccomp --nonewprivs --private --private-tmp firefox
Αυτό θα ανοίξει τον Firefox σε περιβάλλον sandboxed και θα διαθέτει τα αρχεία που έχουν αποθηκευτεί στους temporary /home καταλόγους που δημιουργούνται από το --private
όρισμα.
Για περισσότερα, ανατρέξτε στην επίσημη σελίδα του καθώς και στο Firetools, το προαιρετικό γραφικό περιβάλλον εργασίας του Firejail.
Παραπομπές
Απαραίτητα τα άρθρα, θέλει να κάτσουμε να στρωθουμε να τα διαβάσουμε προσεκτικά και να τα εμπεδώσουμε.ευχαριστω