Openshift - SCC

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Ο αρχικός συγγραφέας αυτής της σελίδας είναι Guillaume

Ορισμός

Στο πλαίσιο του OpenShift, SCC σημαίνει Security Context Constraints. Οι Security Context Constraints είναι πολιτικές που ελέγχουν τις άδειες για pods που εκτελούνται σε clusters OpenShift. Ορίζουν τις παραμέτρους ασφαλείας υπό τις οποίες επιτρέπεται να εκτελείται ένα pod, συμπεριλαμβανομένων των ενεργειών που μπορεί να εκτελέσει και των πόρων που μπορεί να έχει πρόσβαση.

Οι SCC βοηθούν τους διαχειριστές να επιβάλλουν πολιτικές ασφαλείας σε όλο το cluster, διασφαλίζοντας ότι τα pods εκτελούνται με κατάλληλες άδειες και τηρούν τα οργανωτικά πρότυπα ασφαλείας. Αυτές οι περιορισμοί μπορούν να καθορίσουν διάφορες πτυχές της ασφάλειας των pods, όπως:

  1. Linux capabilities: Περιορισμός των δυνατοτήτων που είναι διαθέσιμες σε containers, όπως η ικανότητα εκτέλεσης προνομιακών ενεργειών.
  2. SELinux context: Επιβολή SELinux contexts για containers, που καθορίζουν πώς οι διαδικασίες αλληλεπιδρούν με τους πόρους στο σύστημα.
  3. Read-only root filesystem: Αποτροπή των containers από την τροποποίηση αρχείων σε ορισμένους καταλόγους.
  4. Allowed host directories and volumes: Καθορισμός των καταλόγων και των όγκων του host που μπορεί να προσαρτήσει ένα pod.
  5. Run as UID/GID: Καθορισμός των αναγνωριστικών χρήστη και ομάδας υπό τα οποία εκτελείται η διαδικασία του container.
  6. Network policies: Έλεγχος της δικτυακής πρόσβασης για pods, όπως ο περιορισμός της εξόδου κυκλοφορίας.

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

Βασικά, κάθε φορά που ζητείται μια ανάπτυξη pod, εκτελείται μια διαδικασία αποδοχής όπως η παρακάτω:

Αυτή η επιπλέον στρώση ασφαλείας από προεπιλογή απαγορεύει τη δημιουργία προνομιακών pods, την προσαρμογή του συστήματος αρχείων του host ή την ρύθμιση οποιωνδήποτε χαρακτηριστικών που θα μπορούσαν να οδηγήσουν σε κλιμάκωση προνομίων.

Pod Escape Privileges

Λίστα SCC

Για να καταγράψετε όλα τα SCC με τον Openshift Client :

$ oc get scc #List all the SCCs

$ oc auth can-i --list | grep securitycontextconstraints #Which scc user can use

$ oc describe scc $SCC #Check SCC definitions

Όλοι οι χρήστες έχουν πρόσβαση στο προεπιλεγμένο SCC “restricted” και “restricted-v2” που είναι τα αυστηρότερα SCC.

Χρήση SCC

Το SCC που χρησιμοποιείται για ένα pod ορίζεται μέσα σε μια αναφορά:

$ oc get pod MYPOD -o yaml | grep scc
openshift.io/scc: privileged

Όταν ένας χρήστης έχει πρόσβαση σε πολλαπλά SCCs, το σύστημα θα χρησιμοποιήσει αυτό που ευθυγραμμίζεται με τις τιμές του security context. Διαφορετικά, θα προκαλέσει ένα σφάλμα απαγόρευσης.

$ oc apply -f evilpod.yaml #Deploy a privileged pod
Error from server (Forbidden): error when creating "evilpod.yaml": pods "evilpod" is forbidden: unable to validate against any security context constrain

SCC Bypass

OpenShift - SCC bypass

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks