ACLs - DACLs/SACLs/ACEs

Reading time: 10 minutes

tip

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

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

Λίστα Ελέγχου Πρόσβασης (ACL)

Μια Λίστα Ελέγχου Πρόσβασης (ACL) αποτελείται από ένα διατεταγμένο σύνολο Εισόδων Ελέγχου Πρόσβασης (ACEs) που καθορίζουν τις προστασίες για ένα αντικείμενο και τις ιδιότητές του. Στην ουσία, μια ACL ορίζει ποιες ενέργειες από ποιους ασφαλιστικούς φορείς (χρήστες ή ομάδες) επιτρέπονται ή απορρίπτονται σε ένα συγκεκριμένο αντικείμενο.

Υπάρχουν δύο τύποι ACLs:

  • Διακριτική Λίστα Ελέγχου Πρόσβασης (DACL): Καθορίζει ποιους χρήστες και ομάδες έχουν ή δεν έχουν πρόσβαση σε ένα αντικείμενο.
  • Λίστα Ελέγχου Πρόσβασης Συστήματος (SACL): Ρυθμίζει την παρακολούθηση των προσπαθειών πρόσβασης σε ένα αντικείμενο.

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

Κύρια Συστατικά

  • DACL: Περιέχει ACEs που παραχωρούν ή απορρίπτουν δικαιώματα πρόσβασης σε χρήστες και ομάδες για ένα αντικείμενο. Είναι ουσιαστικά η κύρια ACL που καθορίζει τα δικαιώματα πρόσβασης.
  • SACL: Χρησιμοποιείται για την παρακολούθηση της πρόσβασης σε αντικείμενα, όπου οι ACEs καθορίζουν τους τύπους πρόσβασης που θα καταγράφονται στο Αρχείο Συμβάντων Ασφαλείας. Αυτό μπορεί να είναι πολύτιμο για την ανίχνευση μη εξουσιοδοτημένων προσπαθειών πρόσβασης ή την επίλυση προβλημάτων πρόσβασης.

Αλληλεπίδραση Συστήματος με ACLs

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

Η Τοπική Αρχή Ασφαλείας (LSASS) επεξεργάζεται τα αιτήματα πρόσβασης σε αντικείμενα εξετάζοντας το DACL για ACEs που ταιριάζουν με τον ασφαλιστικό φορέα που προσπαθεί να αποκτήσει πρόσβαση. Η πρόσβαση παραχωρείται αμέσως αν δεν βρεθούν σχετικές ACEs. Διαφορετικά, η LSASS συγκρίνει τις ACEs με το SID του ασφαλιστικού φορέα στο διακριτικό πρόσβασης για να καθορίσει την επιλεξιμότητα πρόσβασης.

Συνοπτική Διαδικασία

  • ACLs: Ορίζουν δικαιώματα πρόσβασης μέσω DACLs και κανόνες παρακολούθησης μέσω SACLs.
  • Διακριτικό Πρόσβασης: Περιέχει πληροφορίες χρήστη, ομάδας και προνομίων για μια συνεδρία.
  • Απόφαση Πρόσβασης: Λαμβάνεται συγκρίνοντας τις ACEs του DACL με το διακριτικό πρόσβασης; οι SACLs χρησιμοποιούνται για παρακολούθηση.

ACEs

Υπάρχουν τρία κύρια είδη Εισόδων Ελέγχου Πρόσβασης (ACEs):

  • ACE Απορριπτόμενης Πρόσβασης: Αυτή η ACE απορρίπτει ρητά την πρόσβαση σε ένα αντικείμενο για καθορισμένους χρήστες ή ομάδες (σε ένα DACL).
  • ACE Επιτρεπόμενης Πρόσβασης: Αυτή η ACE παραχωρεί ρητά την πρόσβαση σε ένα αντικείμενο για καθορισμένους χρήστες ή ομάδες (σε ένα DACL).
  • ACE Ελέγχου Συστήματος: Τοποθετημένη μέσα σε μια Λίστα Ελέγχου Πρόσβασης Συστήματος (SACL), αυτή η ACE είναι υπεύθυνη για τη δημιουργία αρχείων ελέγχου κατά τις προσπάθειες πρόσβασης σε ένα αντικείμενο από χρήστες ή ομάδες. Καταγράφει αν η πρόσβαση επιτράπηκε ή απορρίφθηκε και τη φύση της πρόσβασης.

Κάθε ACE έχει τέσσερα κρίσιμα συστατικά:

  1. Το Αναγνωριστικό Ασφαλείας (SID) του χρήστη ή της ομάδας (ή το κύριο όνομά τους σε γραφική αναπαράσταση).
  2. Ένα σημείο που προσδιορίζει τον τύπο της ACE (απορριπτόμενη, επιτρεπόμενη ή έλεγχος συστήματος).
  3. Σημεία κληρονομιάς που καθορίζουν αν τα παιδικά αντικείμενα μπορούν να κληρονομήσουν την ACE από τον γονέα τους.
  4. Ένα μάσκα πρόσβασης, μια 32-bit τιμή που προσδιορίζει τα παραχωρημένα δικαιώματα του αντικειμένου.

Η καθορισμός πρόσβασης διεξάγεται εξετάζοντας διαδοχικά κάθε ACE μέχρι:

  • Μια ACE Απορριπτόμενης Πρόσβασης να απορρίπτει ρητά τα ζητούμενα δικαιώματα σε έναν διαχειριστή που προσδιορίζεται στο διακριτικό πρόσβασης.
  • ACE Επιτρεπόμενης Πρόσβασης να παραχωρεί ρητά όλα τα ζητούμενα δικαιώματα σε έναν διαχειριστή στο διακριτικό πρόσβασης.
  • Μετά την εξέταση όλων των ACEs, αν οποιοδήποτε ζητούμενο δικαίωμα δεν έχει ρητά επιτραπεί, η πρόσβαση απορρίπτεται σιωπηρά.

Σειρά των ACEs

Ο τρόπος που οι ACEs (κανόνες που λένε ποιος μπορεί ή δεν μπορεί να έχει πρόσβαση σε κάτι) τοποθετούνται σε μια λίστα που ονομάζεται DACL είναι πολύ σημαντικός. Αυτό συμβαίνει επειδή μόλις το σύστημα παραχωρήσει ή απορρίψει πρόσβαση με βάση αυτούς τους κανόνες, σταματά να εξετάζει τους υπόλοιπους.

Υπάρχει ένας καλύτερος τρόπος να οργανωθούν αυτές οι ACEs, και ονομάζεται "κανονική σειρά." Αυτή η μέθοδος βοηθά να διασφαλιστεί ότι όλα λειτουργούν ομαλά και δίκαια. Εδώ είναι πώς γίνεται για συστήματα όπως Windows 2000 και Windows Server 2003:

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

Αυτή η ρύθμιση βοηθά με δύο σημαντικούς τρόπους:

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

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

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

Παράδειγμα GUI

Παράδειγμα από εδώ

Αυτή είναι η κλασική καρτέλα ασφαλείας ενός φακέλου που δείχνει την ACL, DACL και ACEs:

http://secureidentity.se/wp-content/uploads/2014/04/classicsectab.jpg

Αν κάνουμε κλικ στο κουμπί Προχωρημένες επιλογές, θα λάβουμε περισσότερες επιλογές όπως η κληρονομιά:

http://secureidentity.se/wp-content/uploads/2014/04/aceinheritance.jpg

Και αν προσθέσετε ή επεξεργαστείτε έναν Ασφαλιστικό Φορέα:

http://secureidentity.se/wp-content/uploads/2014/04/editseprincipalpointers1.jpg

Και τέλος έχουμε το SACL στην καρτέλα Ελέγχου:

http://secureidentity.se/wp-content/uploads/2014/04/audit-tab.jpg

Εξήγηση του Ελέγχου Πρόσβασης με Απλό Τρόπο

Όταν διαχειριζόμαστε την πρόσβαση σε πόρους, όπως ένας φάκελος, χρησιμοποιούμε λίστες και κανόνες που ονομάζονται Λίστες Ελέγχου Πρόσβασης (ACLs) και Εισόδους Ελέγχου Πρόσβασης (ACEs). Αυτές καθορίζουν ποιος μπορεί ή δεν μπορεί να έχει πρόσβαση σε ορισμένα δεδομένα.

Απορρίπτοντας Πρόσβαση σε Μια Συγκεκριμένη Ομάδα

Φανταστείτε ότι έχετε έναν φάκελο ονόματι Κόστος, και θέλετε όλοι να έχουν πρόσβαση εκτός από μια ομάδα μάρκετινγκ. Ρυθμίζοντας σωστά τους κανόνες, μπορούμε να διασφαλίσουμε ότι η ομάδα μάρκετινγκ απορρίπτεται ρητά πριν επιτραπεί σε όλους τους άλλους. Αυτό γίνεται τοποθετώντας τον κανόνα που απορρίπτει την πρόσβαση στην ομάδα μάρκετινγκ πριν από τον κανόνα που επιτρέπει την πρόσβαση σε όλους.

Επιτρέποντας Πρόσβαση σε Ένα Συγκεκριμένο Μέλος μιας Απορριπτόμενης Ομάδας

Ας πούμε ότι ο Μπομπ, ο διευθυντής μάρκετινγκ, χρειάζεται πρόσβαση στον φάκελο Κόστος, αν και η ομάδα μάρκετινγκ γενικά δεν θα έπρεπε να έχει πρόσβαση. Μπορούμε να προσθέσουμε έναν συγκεκριμένο κανόνα (ACE) για τον Μπομπ που του παραχωρεί πρόσβαση, και να τον τοποθετήσουμε πριν από τον κανόνα που απορρίπτει την πρόσβαση στην ομάδα μάρκετινγκ. Με αυτόν τον τρόπο, ο Μπομπ αποκτά πρόσβαση παρά τον γενικό περιορισμό στην ομάδα του.

Κατανόηση των Εισόδων Ελέγχου Πρόσβασης

Οι ACEs είναι οι ατομικοί κανόνες σε μια ACL. Προσδιορίζουν χρήστες ή ομάδες, καθορίζουν ποια πρόσβαση επιτρέπεται ή απορρίπτεται, και καθορίζουν πώς αυτοί οι κανόνες εφαρμόζονται σε υπο-αντικείμενα (κληρονομιά). Υπάρχουν δύο κύριοι τύποι ACEs:

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

Κάθε ACE περιέχει σημαντικές πληροφορίες όπως ποιος ισχύει ο κανόνας (χρησιμοποιώντας ένα Αναγνωριστικό Ασφαλείας ή SID), τι επιτρέπει ή απορρίπτει ο κανόνας (χρησιμοποιώντας μια μάσκα πρόσβασης), και πώς κληρονομείται από άλλα αντικείμενα.

Κύριες Διαφορές Μεταξύ Τύπων ACE

  • Γενικές ACEs είναι κατάλληλες για απλές σενάρια ελέγχου πρόσβασης, όπου ο ίδιος κανόνας ισχύει για όλες τις πτυχές ενός αντικειμένου ή για όλα τα αντικείμενα εντός ενός κοντέινερ.
  • Ειδικές για Αντικείμενα ACEs χρησιμοποιούνται για πιο σύνθετα σενάρια, ειδικά σε περιβάλλοντα όπως το Active Directory, όπου μπορεί να χρειαστεί να ελέγξετε την πρόσβαση σε συγκεκριμένες ιδιότητες ενός αντικειμένου διαφορετικά.

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

Διάταξη Εισόδου Ελέγχου Πρόσβασης

Πεδίο ACEΠεριγραφή
ΤύποςΣημείο που υποδεικνύει τον τύπο της ACE. Τα Windows 2000 και Windows Server 2003 υποστηρίζουν έξι τύπους ACE: Τρεις γενικούς τύπους ACE που συνδέονται με όλα τα ασφαλίσιμα αντικείμενα. Τρεις ειδικούς για αντικείμενα τύπους ACE που μπορούν να συμβούν για αντικείμενα Active Directory.
ΣημείαΣύνολο σημείων bit που ελέγχουν την κληρονομιά και την παρακολούθηση.
ΜέγεθοςΑριθμός byte μνήμης που έχει κατανεμηθεί για την ACE.
Μάσκα πρόσβασης32-bit τιμή των οποίων τα bits αντιστοιχούν σε δικαιώματα πρόσβασης για το αντικείμενο. Τα bits μπορούν να ρυθμιστούν είτε σε ενεργό είτε σε ανενεργό, αλλά η σημασία της ρύθμισης εξαρτάται από τον τύπο ACE. Για παράδειγμα, αν το bit που αντιστοιχεί στο δικαίωμα ανάγνωσης δικαιωμάτων είναι ενεργοποιημένο, και ο τύπος ACE είναι Απορρίπτω, η ACE απορρίπτει το δικαίωμα να διαβάσει τα δικαιώματα του αντικειμένου. Αν το ίδιο bit είναι ενεργοποιημένο αλλά ο τύπος ACE είναι Επιτρέπω, η ACE παραχωρεί το δικαίωμα να διαβάσει τα δικαιώματα του αντικειμένου. Περισσότερες λεπτομέρειες της μάσκας πρόσβασης εμφανίζονται στον επόμενο πίνακα.
SIDΠροσδιορίζει έναν χρήστη ή μια ομάδα της οποίας η πρόσβαση ελέγχεται ή παρακολουθείται από αυτή την ACE.

Διάταξη Μάσκας Πρόσβασης

Bit (Εύρος)ΣημασίαΠεριγραφή/Παράδειγμα
0 - 15Δικαιώματα Πρόσβασης Ειδικά για ΑντικείμεναΑνάγνωση δεδομένων, Εκτέλεση, Προσθήκη δεδομένων
16 - 22Τυπικά Δικαιώματα ΠρόσβασηςΔιαγραφή, Γράψιμο ACL, Γράψιμο Ιδιοκτήτη
23Μπορεί να έχει πρόσβαση στο ACL ασφαλείας
24 - 27Κρατημένα
28Γενικό ΟΛΑ (Ανάγνωση, Γράψιμο, Εκτέλεση)Όλα τα παρακάτω
29Γενικό ΕκτέλεσηΌλα τα πράγματα που είναι απαραίτητα για την εκτέλεση ενός προγράμματος
30Γενικό ΓράψιμοΌλα τα πράγματα που είναι απαραίτητα για να γράψετε σε ένα αρχείο
31Γενικό ΑνάγνωσηΌλα τα πράγματα που είναι απαραίτητα για να διαβάσετε ένα αρχείο

Αναφορές

tip

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

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