AppArmor
WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλου λογισμικού.
Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αναλήψεων λογαριασμών και των επιθέσεων με αντάλλαγμα λύτρων που προκύπτουν από κακόβουλο λογισμικό που κλέβει πληροφορίες.
Μπορείτε να ελέγξετε τον ιστότοπό τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:
Βασικές Πληροφορίες
Το AppArmor είναι μια ενίσχυση πυρήνα σχεδιασμένη για να περιορίζει τους πόρους που είναι διαθέσιμοι σε προγράμματα μέσω προφίλ ανά πρόγραμμα, εφαρμόζοντας αποτελεσματικά τον Επιβεβλημένο Έλεγχο Πρόσβασης (MAC) δεσμεύοντας τα χαρακτηριστικά ελέγχου πρόσβασης απευθείας στα προγράμματα αντί για τους χρήστες. Αυτό το σύστημα λειτουργεί με τον φόρτωση προφίλ στον πυρήνα, συνήθως κατά την εκκίνηση, και αυτά τα προφίλ καθορίζουν ποιους πόρους μπορεί να έχει πρόσβαση ένα πρόγραμμα, όπως συνδέσεις δικτύου, πρόσβαση σε ροές socket και άδειες αρχείων.
Υπάρχουν δύο λειτουργικές καταστάσεις για τα προφίλ AppArmor:
Λειτουργία Επιβολής: Αυτή η λειτουργία επιβάλλει ενεργά τις πολιτικές που έχουν οριστεί στο προφίλ, αποκλείοντας ενέργειες που παραβιάζουν αυτές τις πολιτικές και καταγράφοντας οποιεσδήποτε προσπάθειες παραβίασής τους μέσω συστημάτων όπως το syslog ή το auditd.
Λειτουργία Διαμαρτυρίας: Αντίθετα με τη λειτουργία επιβολής, η λειτουργία διαμαρτυρίας δεν αποκλείει ενέργειες που παραβιάζουν τις πολιτικές του προφίλ. Αντ' αυτού, καταγράφει αυτές τις προσπάθειες ως παραβιάσεις πολιτικής χωρίς να επιβάλλει περιορισμούς.
Στοιχεία του AppArmor
Πυρήνας Ενότητας: Υπεύθυνος για την επιβολή των πολιτικών.
Πολιτικές: Καθορίζουν τους κανόνες και τους περιορισμούς για τη συμπεριφορά του προγράμματος και την πρόσβαση σε πόρους.
Αναλυτής: Φορτώνει τις πολιτικές στον πυρήνα για επιβολή ή αναφορά.
Προγράμματα Χρηστών: Αυτά είναι προγράμματα λειτουργίας χρήστη που παρέχουν μια διεπαφή για την αλληλεπίδραση και τη διαχείριση του AppArmor.
Διαδρομές Προφίλ
Τα προφίλ Apparmor συνήθως αποθηκεύονται στο /etc/apparmor.d/
Με την εντολή sudo aa-status
θα μπορείτε να καταλογίσετε τα δυαδικά που περιορίζονται από κάποιο προφίλ. Αν μπορείτε να αλλάξετε το χαρακτήρα "/" με ένα τελεία από τη διαδρομή κάθε καταχωρημένου δυαδικού, θα λάβετε το όνομα του προφίλ apparmor μέσα στο αναφερόμενο φάκελο.
Για παράδειγμα, ένα προφίλ apparmor για /usr/bin/man θα βρίσκεται στο /etc/apparmor.d/usr.bin.man
Εντολές
Δημιουργία προφίλ
Για να υποδείξετε τον επηρεαζόμενο εκτελέσιμο, επιτρέπονται απόλυτα μονοπάτια και μπαλαντέρ (για file globbing) για την καθορισμό αρχείων.
Για να υποδείξετε την πρόσβαση που το δυαδικό θα έχει σε αρχεία μπορούν να χρησιμοποιηθούν οι ακόλουθοι έλεγχοι πρόσβασης:
r (ανάγνωση)
w (εγγραφή)
m (χαρτογράφηση μνήμης ως εκτελέσιμο)
k (κλείδωμα αρχείου)
l (δημιουργία σκληρών συνδέσμων)
ix (για να εκτελέσετε ένα άλλο πρόγραμμα με το νέο πρόγραμμα να κληρονομεί την πολιτική)
Px (εκτέλεση υπό άλλο προφίλ, μετά τον καθαρισμό του περιβάλλοντος)
Cx (εκτέλεση υπό προφίλ παιδιού, μετά τον καθαρισμό του περιβάλλοντος)
Ux (εκτέλεση χωρίς περιορισμούς, μετά τον καθαρισμό του περιβάλλοντος)
Μεταβλητές μπορούν να οριστούν στα προφίλ και μπορούν να ρυθμιστούν από έξω από το προφίλ. Για παράδειγμα: @{PROC} και @{HOME} (προσθέστε #include <tunables/global> στο αρχείο προφίλ)
Οι κανόνες απαγόρευσης υποστηρίζονται για να αντικαταστήσουν τους κανόνες επιτροπής.
aa-genprof
Για να ξεκινήσετε εύκολα τη δημιουργία ενός προφίλ, το apparmor μπορεί να σας βοηθήσει. Είναι δυνατόν να κάνετε το apparmor να ελέγξει τις ενέργειες που εκτελεί ένα δυαδικό και στη συνέχεια να σας επιτρέψει να αποφασίσετε ποιες ενέργειες θέλετε να επιτρέψετε ή να απαγορεύσετε. Απλά χρειάζεται να εκτελέσετε:
Στη συνέχεια, σε ένα διαφορετικό τερματικό, εκτελέστε όλες τις ενέργειες που συνήθως θα εκτελούσε το δυαδικό αρχείο:
Στη συνέχεια, στην πρώτη κονσόλα πατήστε "s" και στις καταγεγραμμένες ενέργειες υποδείξτε εάν θέλετε να αγνοήσετε, επιτρέψετε, ή οτιδήποτε άλλο. Όταν τελειώσετε, πατήστε "f" και το νέο προφίλ θα δημιουργηθεί στο /etc/apparmor.d/path.to.binary
Χρησιμοποιώντας τα πλήκτρα βέλους μπορείτε να επιλέξετε τι θέλετε να επιτρέψετε/απαγορεύσετε/οτιδήποτε άλλο
aa-easyprof
Μπορείτε επίσης να δημιουργήσετε ένα πρότυπο ενός προφίλ apparmor ενός δυαδικού με:
Σημειώστε ότι από προεπιλογή σε ένα δημιουργημένο προφίλ τίποτα δεν επιτρέπεται, οπότε όλα απορρίπτονται. Θα πρέπει να προσθέσετε γραμμές όπως /etc/passwd r,
για να επιτρέψετε στο δυαδικό να διαβάσει το /etc/passwd
για παράδειγμα.
Στη συνέχεια μπορείτε να επιβάλετε το νέο προφίλ με
Τροποποίηση ενός προφίλ από τα logs
Το παρακάτω εργαλείο θα διαβάσει τα logs και θα ρωτήσει τον χρήστη εάν επιθυμεί να επιτρέψει κάποιες από τις ανιχνευμένες απαγορευμένες ενέργειες:
Χρησιμοποιώντας τα πλήκτρα βέλους μπορείτε να επιλέξετε τι θέλετε να επιτρέώσετε/απαγορεύσετε/οτιδήποτε
Διαχείριση ενός Προφίλ
Αρχεία καταγραφής
Παράδειγμα ΑΥΤΙΣΜΟΥ και ΑΠΟΡΡΙΨΗΣ καταγραφών από το /var/log/audit/audit.log του εκτελέσιμου service_bin
:
Μπορείτε επίσης να λάβετε αυτές τις πληροφορίες χρησιμοποιώντας:
Apparmor στο Docker
Σημειώστε πως το προφίλ docker-profile του docker φορτώνεται από προεπιλογή:
Από προεπιλογή το προφίλ Apparmor docker-default δημιουργείται από https://github.com/moby/moby/tree/master/profiles/apparmor
Περίληψη προφίλ docker-default:
Πρόσβαση σε όλο το δίκτυο
Δεν έχει οριστεί κάποια ικανότητα (Ωστόσο, μερικές ικανότητες θα προέλθουν από τη συμπερίληψη βασικών κανόνων βάσης, δηλαδή #include <abstractions/base>)
Απαγορεύεται η εγγραφή σε οποιοδήποτε αρχείο /proc
Άλλοι υποκατάλογοι/αρχεία του /proc και /sys έχουν απαγορευμένη πρόσβαση για ανάγνωση/εγγραφή/κλείδωμα/σύνδεση/εκτέλεση
Δεν επιτρέπεται η τοποθέτηση (mount)
Η Ptrace μπορεί να εκτελεστεί μόνο σε ένα διεργασία που περιορίζεται από το ίδιο προφίλ apparmor
Μόλις εκτελέσετε ένα container docker, θα πρέπει να δείτε την ακόλουθη έξοδο:
Σημειώστε ότι το apparmor θα αποκλείσει ακόμα και τα προνόμια δικαιωμάτων που έχουν χορηγηθεί στον ελατήριο από προεπιλογή. Για παράδειγμα, θα μπορεί να αποκλείσει την άδεια εγγραφής μέσα στον φάκελο /proc ακόμα κι αν έχει χορηγηθεί η δυνατότητα SYS_ADMIN επειδή από προεπιλογή το προφίλ apparmor του docker αρνείται αυτήν την πρόσβαση:
Πρέπει να απενεργοποιήσετε το apparmor για να παρακάμψετε τους περιορισμούς του:
Σημειώστε ότι από προεπιλογή το AppArmor θα απαγορεύσει στο container να κάνει mount φακέλους από μέσα ακόμα και με τη δυνατότητα SYS_ADMIN.
Σημειώστε ότι μπορείτε να προσθέσετε/αφαιρέσετε δυνατότητες στο docker container (αυτό θα παραμείνει περιορισμένο από μεθόδους προστασίας όπως το AppArmor και το Seccomp):
--cap-add=SYS_ADMIN
προσθέτει τη δυνατότηταSYS_ADMIN
--cap-add=ALL
προσθέτει όλες τις δυνατότητες--cap-drop=ALL --cap-add=SYS_PTRACE
αφαιρεί όλες τις δυνατότητες και δίνει μόνο τηνSYS_PTRACE
Συνήθως, όταν ανακαλύπτετε ότι έχετε μια προνομιούχα δυνατότητα διαθέσιμη μέσα σε ένα docker container αλλά κάποιο τμήμα του exploit δεν λειτουργεί, αυτό οφείλεται στο ότι το docker apparmor το εμποδίζει.
Παράδειγμα
(Παράδειγμα από εδώ)
Για να εικονογραφήσω τη λειτουργικότητα του AppArmor, δημιούργησα ένα νέο προφίλ Docker "mydocker" με την παρακάτω γραμμή προστεθειμένη:
Για να ενεργοποιήσουμε το προφίλ, πρέπει να κάνουμε τα ακόλουθα:
Για να εμφανίσουμε τα προφίλ, μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή. Η παρακάτω εντολή εμφανίζει το νέο προφίλ AppArmor μου.
Όπως φαίνεται παρακάτω, λαμβάνουμε σφάλμα όταν προσπαθούμε να αλλάξουμε το "/etc/" επειδή το προφίλ του AppArmor αποτρέπει την εγγραφή πρόσβασης στο "/etc".
Παράκαμψη AppArmor Docker1
Μπορείτε να βρείτε ποιο προφίλ apparmor εκτελείται από ένα container χρησιμοποιώντας:
Στη συνέχεια, μπορείτε να εκτελέσετε την παρακάτω γραμμή για να βρείτε το ακριβές προφίλ που χρησιμοποιείται:
Παράκαμψη AppArmor Docker2
Το AppArmor βασίζεται στα μονοπάτια, αυτό σημαίνει ότι ακόμα και αν προστατεύει αρχεία μέσα σε έναν κατάλογο όπως το /proc
, αν μπορείτε να ρυθμίσετε πώς θα εκτελείται το container, μπορείτε να προσαρτήσετε τον κατάλογο proc του κεντρικού συστήματος μέσα στο /host/proc
και δεν θα προστατεύεται πλέον από το AppArmor.
Παράκαμψη Shebang του AppArmor
Σε αυτό το σφάλμα μπορείτε να δείτε ένα παράδειγμα πώς ακόμα κι αν αποτρέπετε την εκτέλεση του perl με συγκεκριμένους πόρους, αν απλώς δημιουργήσετε ένα shell script προσδιορίζοντας στην πρώτη γραμμή #!/usr/bin/perl
και εκτελέσετε το αρχείο απευθείας, θα μπορείτε να εκτελέσετε ό,τι θέλετε. Π.χ.:
WhiteIntel είναι ένας μηχανισμός αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλων λογισμικών.
Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αναλήψεων λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλα λογισμικά που κλέβουν πληροφορίες.
Μπορείτε να ελέγξετε την ιστοσελίδα τους και να δοκιμάσετε τον μηχανισμό τους δωρεάν στο:
Last updated