Docker --privileged
Τι Επηρεάζει
Όταν εκτελείτε ένα container με τα δικαιώματα privileged, απενεργοποιείτε τις παρακάτω προστασίες:
Προσάρτηση /dev
Σε ένα privileged container, όλες οι συσκευές μπορούν να προσπελαστούν στο /dev/
. Επομένως, μπορείτε να δραπετεύσετε προσαρτώντας το δίσκο του host.
Ανάγνωση μόνο των αρχείων συστήματος του πυρήνα
Τα αρχεία συστήματος του πυρήνα παρέχουν ένα μηχανισμό για ένα διεργασία να τροποποιήσει τη συμπεριφορά του πυρήνα. Ωστόσο, όσον αφορά τις διεργασίες ενός εμπορεύματος, θέλουμε να τους εμποδίσουμε από το να κάνουν οποιεσδήποτε αλλαγές στον πυρήνα. Για τον λόγο αυτό, προσαρτούμε τα αρχεία συστήματος του πυρήνα ως μόνο για ανάγνωση μέσα στο εμπόρευμα, εξασφαλίζοντας ότι οι διεργασίες του εμπορεύματος δεν μπορούν να τροποποιήσουν τον πυρήνα.
Μάσκαρε τα αρχεία συστήματος πυρήνα
Το σύστημα αρχείων /proc είναι εκλεκτικά εγγράψιμο, αλλά για λόγους ασφαλείας, ορισμένα μέρη προστατεύονται από εγγραφή και ανάγνωση με την επικάλυψή τους με το tmpfs, εξασφαλίζοντας ότι οι διεργασίες του εμπορεύματος δεν μπορούν να έχουν πρόσβαση σε ευαίσθητες περιοχές.
Το tmpfs είναι ένα σύστημα αρχείων που αποθηκεύει όλα τα αρχεία στην εικονική μνήμη. Το tmpfs δεν δημιουργεί κανένα αρχείο στον σκληρό σας δίσκο. Έτσι, αν αποσυναρμολογήσετε ένα σύστημα αρχείων tmpfs, όλα τα αρχεία που βρίσκονται σε αυτό χάνονται για πάντα.
Δυνατότητες Linux
Οι μηχανές εκτέλεσης εμφυτεύουν τα containers με έναν περιορισμένο αριθμό δυνατοτήτων για να ελέγχουν τι συμβαίνει μέσα στο container από προεπιλογή. Τα προνομιούχα έχουν πρόσβαση σε όλες τις δυνατότητες. Για να μάθετε περισσότερα για τις δυνατότητες, διαβάστε:
pageLinux CapabilitiesΜπορείτε να παραμετροποιήσετε τις δυνατότητες που είναι διαθέσιμες σε ένα container χωρίς να τρέχει σε κατάσταση --privileged
χρησιμοποιώντας τις σημαίες --cap-add
και --cap-drop
.
Seccomp
Το Seccomp είναι χρήσιμο για να περιορίσει τις κλήσεις συστήματος που μπορεί να κάνει ένα container. Ένα προεπιλεγμένο προφίλ Seccomp είναι ενεργοποιημένο από προεπιλογή όταν τρέχουν τα containers του Docker, αλλά σε προνομιούχο καθεστώς είναι απενεργοποιημένο. Μάθετε περισσότερα για το Seccomp εδώ:
pageSeccompΕπίσης, σημειώστε ότι όταν το Docker (ή άλλα CRIs) χρησιμοποιούνται σε ένα Kubernetes cluster, ο φίλτρος seccomp είναι απενεργοποιημένος από προεπιλογή.
AppArmor
Το AppArmor είναι μια ενίσχυση του πυρήνα για τον περιορισμό των containers σε ένα περιορισμένο σύνολο πόρων με προφίλ ανά πρόγραμμα. Όταν εκτελείτε με τη σημαία --privileged
, αυτή η προστασία απενεργοποιείται.
SELinux
Η εκτέλεση ενός container με την σημαία --privileged
απενεργοποιεί τις ετικέτες SELinux, προκαλώντας την κληρονομική λήψη της ετικέτας της μηχανής του container, συνήθως unconfined
, παρέχοντας πλήρη πρόσβαση παρόμοια με τη μηχανή του container. Στη λειτουργία χωρίς ρίζες, χρησιμοποιείται το container_runtime_t
, ενώ στη λειτουργία ρίζας εφαρμόζεται το spc_t
.
Τι δεν επηρεάζεται
Ονοματοχώροι
Οι ονοματοχώροι ΔΕΝ επηρεάζονται από την σημαία --privileged
. Αν και δεν έχουν ενεργοποιημένους περιορισμούς ασφαλείας, δεν βλέπουν όλες τις διεργασίες στο σύστημα ή το δίκτυο του οικοδεσπότη, για παράδειγμα. Οι χρήστες μπορούν να απενεργοποιήσουν μεμονωμένους ονοματοχώρους χρησιμοποιώντας τις σημαίες --pid=host
, --net=host
, --ipc=host
, --uts=host
των μηχανισμών εκτέλεσης των εμπορευματοκιβωτίων.
Ονοματοχώρηση χρήστη
Από προεπιλογή, οι μηχανές εκτέλεσης εμπορευματοκιβωτίων δεν χρησιμοποιούν ονοματοχώρηση χρήστη, εκτός από τα εμπορευματοκιβώτια χωρίς ρίζα, τα οποία την απαιτούν για την προσάρτηση του συστήματος αρχείων και τη χρήση πολλαπλών UID. Η ονοματοχώρηση χρήστη, η οποία είναι απαραίτητη για τα εμπορευματοκιβώτια χωρίς ρίζα, δεν μπορεί να απενεργοποιηθεί και βελτιώνει σημαντικά την ασφάλεια περιορίζοντας τα προνόμια.
Αναφορές
Last updated