macOS Security Protections
Last updated
Last updated
Gatekeeper est généralement utilisé pour faire référence à la combinaison de Quarantaine + Gatekeeper + XProtect, 3 modules de sécurité macOS qui vont essayer de empêcher les utilisateurs d'exécuter des logiciels potentiellement malveillants téléchargés.
Plus d'informations dans :
Le bac à sable de macOS limite les applications s'exécutant à l'intérieur du bac à sable aux actions autorisées spécifiées dans le profil du bac à sable avec lequel l'application s'exécute. Cela aide à garantir que l'application n'accédera qu'aux ressources attendues.
TCC (Transparence, Consentement et Contrôle) est un cadre de sécurité. Il est conçu pour gérer les autorisations des applications, en régulant spécifiquement leur accès aux fonctionnalités sensibles. Cela inclut des éléments tels que les services de localisation, les contacts, les photos, le microphone, la caméra, l'accessibilité et l'accès complet au disque. TCC garantit que les applications ne peuvent accéder à ces fonctionnalités qu'après avoir obtenu le consentement explicite de l'utilisateur, renforçant ainsi la confidentialité et le contrôle des données personnelles.
Les contraintes de lancement dans macOS sont une fonctionnalité de sécurité pour réguler l'initiation des processus en définissant qui peut lancer un processus, comment, et d'où. Introduites dans macOS Ventura, elles catégorisent les binaires système en catégories de contraintes dans un cache de confiance. Chaque binaire exécutable a des règles définies pour son lancement, y compris des contraintes auto, parentales et responsables. Étendues aux applications tierces en tant que Contraintes d'Environnement dans macOS Sonoma, ces fonctionnalités aident à atténuer les exploitations potentielles du système en régissant les conditions de lancement des processus.
L'outil de suppression de logiciels malveillants (MRT) est une autre partie de l'infrastructure de sécurité de macOS. Comme son nom l'indique, la fonction principale de MRT est de supprimer les logiciels malveillants connus des systèmes infectés.
Une fois qu'un logiciel malveillant est détecté sur un Mac (soit par XProtect, soit par d'autres moyens), MRT peut être utilisé pour supprimer automatiquement le logiciel malveillant. MRT fonctionne silencieusement en arrière-plan et s'exécute généralement chaque fois que le système est mis à jour ou lorsqu'une nouvelle définition de logiciel malveillant est téléchargée (il semble que les règles que MRT doit suivre pour détecter les logiciels malveillants sont à l'intérieur du binaire).
Bien que XProtect et MRT fassent partie des mesures de sécurité de macOS, ils remplissent des fonctions différentes :
XProtect est un outil préventif. Il vérifie les fichiers lors de leur téléchargement (via certaines applications), et s'il détecte des types de logiciels malveillants connus, il empêche l'ouverture du fichier, empêchant ainsi le logiciel malveillant d'infecter votre système en premier lieu.
MRT, en revanche, est un outil réactif. Il intervient après la détection d'un logiciel malveillant sur un système, dans le but de supprimer le logiciel offensant pour nettoyer le système.
L'application MRT se trouve dans /Library/Apple/System/Library/CoreServices/MRT.app
macOS alerte désormais à chaque fois qu'un outil utilise une technique bien connue pour persister l'exécution du code (comme les éléments de connexion, les démons...), afin que l'utilisateur sache mieux quel logiciel persiste.
Cela fonctionne avec un démon situé dans /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd
et l'agent dans /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app
La façon dont backgroundtaskmanagementd
sait qu'un élément est installé dans un dossier persistant est en obtenant les FSEvents et en créant des gestionnaires pour ceux-ci.
De plus, il existe un fichier plist qui contient des applications bien connues qui persistent fréquemment maintenues par Apple situé dans : /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist
Il est possible de recenser tous les éléments d'arrière-plan configurés en exécutant l'outil en ligne de commande Apple :
De plus, il est également possible de répertorier ces informations avec DumpBTM.
Ces informations sont stockées dans /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm
et le Terminal a besoin de FDA.
Lorsqu'une nouvelle persistance est trouvée, un événement de type ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD
est déclenché. Ainsi, toute méthode pour empêcher l'envoi de cet événement ou pour alerter l'utilisateur de l'agent aidera un attaquant à contourner BTM.
Réinitialisation de la base de données: Exécuter la commande suivante réinitialisera la base de données (devrait la reconstruire à partir de zéro), cependant, pour une raison quelconque, après l'exécution de cette commande, aucune nouvelle persistance ne sera signalée tant que le système n'aura pas été redémarré.
root est requis.
Arrêter l'Agent : Il est possible d'envoyer un signal d'arrêt à l'agent afin qu'il ne prévienne pas l'utilisateur lorsque de nouvelles détections sont trouvées.
Bug: Si le processus qui a créé la persistance existe rapidement juste après, le démon essaiera de récupérer des informations à son sujet, échouera, et ne pourra pas envoyer l'événement indiquant qu'une nouvelle chose persiste.
Références et plus d'informations sur BTM: