macOS Security Protections
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ο Gatekeeper χρησιμοποιείται συνήθως για να αναφέρεται στον συνδυασμό Quarantine + Gatekeeper + XProtect, 3 μονάδες ασφαλείας του macOS που προσπαθούν να αποτρέψουν τους χρήστες από το να εκτελούν δυνητικά κακόβουλο λογισμικό που έχει κατεβεί.
Περισσότερες πληροφορίες στο:
macOS Gatekeeper / Quarantine / XProtectΤο MacOS Sandbox περιορίζει τις εφαρμογές που εκτελούνται μέσα στο sandbox στις επιτρεπόμενες ενέργειες που καθορίζονται στο προφίλ Sandbox με το οποίο εκτελείται η εφαρμογή. Αυτό βοηθά να διασφαλιστεί ότι η εφαρμογή θα έχει πρόσβαση μόνο σε αναμενόμενους πόρους.
macOS SandboxTCC (Transparency, Consent, and Control) είναι ένα πλαίσιο ασφαλείας. Είναι σχεδιασμένο για να διαχειρίζεται τις άδειες των εφαρμογών, ρυθμίζοντας συγκεκριμένα την πρόσβασή τους σε ευαίσθητες δυνατότητες. Αυτό περιλαμβάνει στοιχεία όπως υπηρεσίες τοποθεσίας, επαφές, φωτογραφίες, μικρόφωνο, κάμερα, προσβασιμότητα και πλήρη πρόσβαση στο δίσκο. Το TCC διασφαλίζει ότι οι εφαρμογές μπορούν να έχουν πρόσβαση σε αυτές τις δυνατότητες μόνο μετά από ρητή συγκατάθεση του χρήστη, ενισχύοντας έτσι την ιδιωτικότητα και τον έλεγχο των προσωπικών δεδομένων.
macOS TCCΟι περιορισμοί εκκίνησης στο macOS είναι μια λειτουργία ασφαλείας για να ρυθμίζουν την εκκίνηση διαδικασιών καθορίζοντας ποιος μπορεί να εκκινήσει μια διαδικασία, πώς και από πού. Εισήχθη στο macOS Ventura, κατηγοριοποιούν τα συστήματα δυαδικών αρχείων σε κατηγορίες περιορισμών εντός ενός trust cache. Κάθε εκτελέσιμο δυαδικό αρχείο έχει καθορισμένους κανόνες για την εκκίνηση του, συμπεριλαμβανομένων των self, parent και responsible περιορισμών. Επεκτάθηκε σε εφαρμογές τρίτων ως Environment Constraints στο macOS Sonoma, αυτές οι δυνατότητες βοηθούν στη μείωση πιθανών εκμεταλλεύσεων του συστήματος ρυθμίζοντας τις συνθήκες εκκίνησης διαδικασιών.
macOS Launch/Environment Constraints & Trust CacheΤο Malware Removal Tool (MRT) είναι ένα άλλο μέρος της υποδομής ασφαλείας του macOS. Όπως υποδηλώνει το όνομα, η κύρια λειτουργία του MRT είναι να αφαιρεί γνωστό κακόβουλο λογισμικό από μολυσμένα συστήματα.
Μόλις ανιχνευθεί κακόβουλο λογισμικό σε ένα Mac (είτε από το XProtect είτε με κάποιο άλλο μέσο), το MRT μπορεί να χρησιμοποιηθεί για να αφαιρέσει αυτόματα το κακόβουλο λογισμικό. Το MRT λειτουργεί σιωπηλά στο παρασκήνιο και συνήθως εκτελείται κάθε φορά που το σύστημα ενημερώνεται ή όταν κατεβαίνει μια νέα ορισμός κακόβουλου λογισμικού (φαίνεται ότι οι κανόνες που έχει το MRT για την ανίχνευση κακόβουλου λογισμικού είναι μέσα στο δυαδικό αρχείο).
Ενώ τόσο το XProtect όσο και το MRT είναι μέρος των μέτρων ασφαλείας του macOS, εκτελούν διαφορετικές λειτουργίες:
XProtect είναι ένα προληπτικό εργαλείο. Ελέγχει τα αρχεία καθώς κατεβαίνουν (μέσω ορισμένων εφαρμογών), και αν ανιχνεύσει οποιοδήποτε γνωστό τύπο κακόβουλου λογισμικού, αποτρέπει το άνοιγμα του αρχείου, αποτρέποντας έτσι το κακόβουλο λογισμικό από το να μολύνει το σύστημα σας εξαρχής.
MRT, από την άλλη πλευρά, είναι ένα αντιδραστικό εργαλείο. Λειτουργεί αφού ανιχνευθεί κακόβουλο λογισμικό σε ένα σύστημα, με στόχο την αφαίρεση του ενοχλητικού λογισμικού για να καθαρίσει το σύστημα.
Η εφαρμογή MRT βρίσκεται στο /Library/Apple/System/Library/CoreServices/MRT.app
macOS τώρα ειδοποιεί κάθε φορά που ένα εργαλείο χρησιμοποιεί μια γνωστή τεχνική για την επιμονή εκτέλεσης κώδικα (όπως τα Login Items, Daemons...), ώστε ο χρήστης να γνωρίζει καλύτερα ποιο λογισμικό επιμένει.
Αυτό λειτουργεί με έναν daemon που βρίσκεται στο /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd
και τον agent στο /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app
Ο τρόπος που backgroundtaskmanagementd
γνωρίζει ότι κάτι είναι εγκατεστημένο σε έναν επίμονο φάκελο είναι μέσω της λήψης των FSEvents και της δημιουργίας ορισμένων handlers για αυτά.
Επιπλέον, υπάρχει ένα αρχείο plist που περιέχει γνωστές εφαρμογές που συχνά επιμένουν και διατηρούνται από την Apple που βρίσκεται στο: /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist
Είναι δυνατόν να καταμετρήσετε όλα τα ρυθμισμένα στοιχεία παρασκηνίου που εκτελούνται με το εργαλείο cli της Apple:
Επιπλέον, είναι επίσης δυνατό να καταχωρήσετε αυτές τις πληροφορίες με το DumpBTM.
Αυτές οι πληροφορίες αποθηκεύονται στο /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm
και το Terminal χρειάζεται FDA.
Όταν βρεθεί μια νέα επιμονή, δημιουργείται ένα γεγονός τύπου ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD
. Έτσι, οποιοσδήποτε τρόπος για να αποτραπεί αυτή η εκδήλωση από το να σταλεί ή η υπηρεσία από το να ειδοποιήσει τον χρήστη θα βοηθήσει έναν επιτιθέμενο να παρακάμψει το BTM.
Επαναφορά της βάσης δεδομένων: Η εκτέλεση της παρακάτω εντολής θα επαναφέρει τη βάση δεδομένων (θα πρέπει να την ξαναχτίσει από την αρχή), ωστόσο, για κάποιο λόγο, μετά την εκτέλεση αυτού, καμία νέα επιμονή δεν θα ειδοποιηθεί μέχρι να επανεκκινήσει το σύστημα.
Απαιτείται root.
Σταματήστε τον Πράκτορα: Είναι δυνατόν να στείλετε ένα σήμα διακοπής στον πράκτορα ώστε να μην ειδοποιεί τον χρήστη όταν εντοπίζονται νέες ανιχνεύσεις.
Σφάλμα: Αν η διαδικασία που δημιούργησε την επιμονή υπάρχει γρήγορα αμέσως μετά από αυτήν, ο δαίμονας θα προσπαθήσει να λάβει πληροφορίες γι' αυτήν, θα αποτύχει, και δεν θα μπορέσει να στείλει το γεγονός που υποδεικνύει ότι ένα νέο πράγμα επιμένει.
Αναφορές και περισσότερες πληροφορίες σχετικά με το BTM:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)