Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
macos_xprotect — Plongée pédagogique dans la protection intégrée d'Apple contre les malwares : bases de données de signatures, règles YARA, intégration de Gatekeeper, binaires de remédiation et flux de détection macOS. | Kitploit
Outils/GitHubGitHub/yo-yo-yo-jbo/macos_xprotect
Outils DéfensifsAnalyse de MalwareAnalyse de BinairesApprentissage et Éducation
GitHubyo-yo-yo-jbo/macos_xprotect

macos_xprotect

Plongée pédagogique dans la protection intégrée d'Apple contre les malwares : bases de données de signatures, règles YARA, intégration de Gatekeeper, binaires de remédiation et flux de détection macOS.

Voir le dépôt
3111il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Introduction à macOS - XProtect

Poursuivant ma série d'articles de blog sur l'introduction à macOS, j'ai décidé de consacrer un court article à XProtect.

Qu'est-ce que XProtect ?

XProtect est le système antivirus et de signatures de logiciels malveillants intégré d'Apple pour macOS.
Il fonctionne dans le cadre du service XProtectService, qui analyse les applications et autres contenus exécutables à la recherche de signatures de logiciels malveillants connues.
XProtect fonctionne en arrière-plan et est mis à jour silencieusement par Apple via le mécanisme XProtectRemediator (plus de détails plus loin).
Il a 3 fonctions principales :

  • Détection par signatures – Il analyse les fichiers par rapport à une base de données de signatures de logiciels malveillants connues.
  • Détection comportementale (XProtect Remediator) – Introduit dans macOS Monterey, cela permet à XProtect de rechercher et de supprimer de manière proactive les logiciels malveillants en se basant sur des comportements suspects plutôt que sur de simples signatures statiques.
  • Blocage en temps réel – XProtect empêche l'exécution de logiciels malveillants connus avant qu'ils ne puissent s'exécuter.

XProtect traditionnel

Le répertoire /Library/Apple/System/Library/CoreServices/XProtect.bundle est le principal bundle qui contient la configuration et les définitions de signatures de XProtect.
Il s'agit d'un répertoire système en lecture seule, mis à jour silencieusement par Apple via les mises à jour de XProtect.
Dans ce répertoire, on trouve certains fichiers intéressants, tous mis à jour périodiquement par Apple et protégés par System Integrity Protection (SIP).

XProtect.plist

Le fichier /Library/Apple/System/Library/CoreServices/XProtect.bundle/Contents/Resources/XProtect.plist stocke les signatures de logiciels malveillants utilisées par XProtect pour détecter les menaces connues.
Il contient des entrées associant des familles de logiciels malveillants à des règles de détection spécifiques, notamment des hashs et des modèles de noms de fichiers.
Voici un exemple d'une famille de logiciels malveillants - Bundalore :

<dict>
        <key>Description</key>
        <string>OSX.Bundlore.D</string>
        <key>LaunchServices</key>
        <dict>
                <key>LSItemContentType</key>
                <string>com.apple.application-bundle</string>
        </dict>
        <key>Matches</key>
        <array>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>46617364554153</string>
                </dict>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>20006500630068006F002000</string>
                </dict>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>20007C0020006F00700065006E00730073006C00200065006E00630020002D006100650073002D003200350036002D0063006600620020002D007000610073007300200070006100730073003A</string>
                </dict>
                <dict>
                        <key>MatchFile</key>
                        <dict>
                                <key>NSURLTypeIdentifierKey</key>
                                <string>com.apple.applescript.script</string>
                        </dict>
                        <key>MatchType</key>
                        <string>Match</string>
                        <key>Pattern</key>
                        <string>002D00730061006C00740020002D00410020002D00610020002D00640020007C002000620061007300680020002D0073</string>
                </dict>
        </array>
</dict>

C'est assez lisible, la seule partie notable est que l'argument string de chaque correspondance est en représentation hexadécimale, par exemple 002D00730061006C00740020002D00410020002D00610020002D00640020007C002000620061007300680020002D0073 correspond à -salt -A -a -d | bash -s.
C'est, bien sûr, une mine d'or pour les auteurs de logiciels malveillants, qui savent exactement quels modèles éviter.

XProtect.meta.plist

Le fichier /Library/Apple/System/Library/CoreServices/XProtect.bundle/XProtect.meta.plist est un fichier de métadonnées qui définit des règles supplémentaires pour XProtect, notamment les politiques d'application et les informations de version.
Il spécifie quelles versions de macOS appliquent certaines règles de XProtect et les actions prises lors de la détection, ainsi que les listes noires pour les plugins.
Voici un exemple :

<key>JavaWebComponentVersionMinimum</key>
<string>1.6.0_45-b06-451</string>
<key>PlugInBlacklist</key>
<dict>
        <key>10</key>
        <dict>
                <key>com.apple.java.JavaAppletPlugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>14.8.0</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.apple.java.JavaPlugin2_NPAPI</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>14.8.0</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.macromedia.Flash Player ESR.plugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>18.0.0.382</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.macromedia.Flash Player.plugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>32.0.0.101</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.microsoft.SilverlightPlugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>5.1.41212.0</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
                <key>com.oracle.java.JavaAppletPlugin</key>
                <dict>
                        <key>MinimumPlugInBundleVersion</key>
                        <string>1.8.51.16</string>
                        <key>PlugInUpdateAvailable</key>
                        <true/>
                </dict>
        </dict>
</dict>

Comme vous pouvez le voir, ceux-ci contiennent par exemple des informations de version pour les plugins "mis sur liste noire".

Télécharger l’outil