Retour au blog
macOS security system tools

Ce processus Mac est-il un virus ? Comment vérifier si un processus macOS est sûr

Processus Mac inconnu dans Moniteur d’activité ? Vérifiez son chemin, sa signature, son processus parent et son comportement pour savoir s’il est légitime.

Vous ouvrez Moniteur d’activité parce que votre Mac semble lent et découvrez nsurlsessiond, photoanalysisd ou trustd en haut de la liste. Vous n’avez jamais installé de logiciel portant ce nom, et les réponses trouvées sur les forums se contredisent. Ce guide propose quatre vérifications reproductibles pour distinguer un service macOS normal d’un processus qui mérite réellement une enquête.

Réponse rapide

La plupart des processus Mac aux noms étranges sont des services système ordinaires, mais leur nom ne suffit pas à prouver qu’ils sont sûrs. Commencez par vérifier où se trouve l’exécutable et si sa signature est valide et cohérente avec l’identité annoncée. Un nom système exécuté depuis un dossier temporaire ou accessible en écriture, une signature invalide ou un signataire inattendu sont des signaux d’alerte. Ils ne constituent toutefois pas une preuve à eux seuls : le processus parent, la persistance et le comportement comptent aussi. Moniteur d’activité n’affiche pas les détails de signature ; ProcXray les présente avec le chemin complet de l’exécutable.

Pourquoi le nom ne suffit pas

macOS exécute plusieurs centaines de processus en arrière-plan. Beaucoup portent des noms courts destinés au système, comme bird, secd, distnoted, rapportd ou hidd.

Un logiciel malveillant peut également s’appeler WindowServer ou mdworker. Le nom est précisément l’attribut le plus facile à copier. Il faut donc examiner l’emplacement, l’identité du code et le contexte d’exécution.

Vérification 1 : où se trouve l’exécutable ?

macOS place ses exécutables dans quelques emplacements protégés. Catalina a introduit un volume système dédié en lecture seule ; Big Sur y a ajouté les protections cryptographiques du Signed System Volume. Lorsque la configuration de sécurité normale est intacte, un logiciel en cours d’exécution ne peut pas simplement ajouter un binaire dans /System/. System Integrity Protection limite également les modifications d’autres emplacements protégés.

Emplacements courants des logiciels système légitimes :

Emplacements qui demandent davantage d’attention :

Pour afficher rapidement le nom et le parent à partir d’un PID :

ps -o pid,ppid,user,comm -p <pid>

Pour consulter la ligne de commande déclarée :

ps -ww -o pid,ppid,user,args -p <pid>

Considérez comm et surtout args comme des indices : un processus peut modifier les arguments visibles dans ps, qui ne révèle pas toujours le véritable chemin de l’exécutable. Moniteur d’activité peut montrer l’exécutable parmi Fichiers et ports ouverts, mais pas dans une colonne dédiée. Consultez aussi Comment afficher les processus en cours sur Mac.

Vérification 2 : qui l’a signé ?

Il faut distinguer la vérification cryptographique de l’affichage de l’identité :

# Vérifier l’intégrité de la signature. Aucun résultat signifie que la vérification réussit.
codesign --verify --strict --verbose=2 /usr/libexec/trustd

# Afficher les détails de signature.
codesign -dvvv /usr/libexec/trustd

La première commande vérifie la signature ; codesign -d seul ne fait qu’afficher des métadonnées. La sortie varie selon la version de macOS et le binaire :

Résultats à examiner :

Pour évaluer une application avec Gatekeeper :

spctl --assess --verbose=4 /Applications/SomeApp.app

accepted avec source=Notarized Developer ID signifie que le service automatisé d’Apple a analysé cette version et émis un ticket. C’est un bon signal, pas une garantie. rejected signifie seulement que l’application ne satisfait pas la politique évaluée ; un ancien logiciel ou un build local peut également être rejeté.

Vérification 3 : qu’est-ce qui l’a lancé ?

ps -o pid,ppid,user,args -p <pid>

Si le PPID vaut 1, launchd est le parent actuel. Il peut avoir lancé le processus comme tâche configurée ou avoir adopté un processus dont le parent a quitté. Cela ne signifie pas automatiquement qu’il redémarrera : ce comportement dépend notamment de KeepAlive et des déclencheurs à la demande.

Inspectez les emplacements de persistance possibles :

# Tâches de l’utilisateur
ls -la ~/Library/LaunchAgents/

# Tâches de tous les utilisateurs
ls -la /Library/LaunchAgents/ /Library/LaunchDaemons/

Les tâches Apple résident dans /System/Library/LaunchAgents/ et /System/Library/LaunchDaemons/. Les dossiers /Library/ sans /System sont utilisés par les installateurs tiers, légitimes ou non. Un fichier .plist inconnu pointant vers un exécutable temporaire ou situé dans le dossier personnel mérite une enquête.

Un navigateur, un lecteur de documents, un shell ou un installateur comme parent constitue également une piste utile.

Vérification 4 : que fait-il ?

Lorsque le chemin, la signature et le parent correspondent à l’identité annoncée, le niveau d’urgence diminue, sans pour autant prouver que le comportement est sûr :

Processus souvent pris pour des virus

Tous les processus suivants font normalement partie de macOS.

ProcessusRôleEmplacement courant
kernel_taskNoyau et gestion de la charge thermiqueAucun chemin : c’est le noyau
launchdPID 1, lance et supervise les services/sbin/
WindowServerCompose l’affichage à l’écran/System/Library/PrivateFrameworks/
mds, mds_stores, mdworkerIndexation Spotlight/System/Library/Frameworks/
nsurlsessiondTransferts d’arrière-plan des apps et d’iCloud/usr/libexec/
trustdÉvalue la confiance des certificats TLS/usr/libexec/
syspolicydGatekeeper et politiques de sécurité/usr/libexec/
birdSynchronisation des documents iCloud Drive/usr/libexec/
clouddDonnées CloudKit des applications/System/Library/PrivateFrameworks/
secdTrousseau et synchronisation iCloud Keychain/usr/libexec/
photoanalysisdAnalyse les visages et scènes dans Photos/System/Library/PrivateFrameworks/
mediaanalysisdTexte en direct et Recherche visuelle/System/Library/PrivateFrameworks/
rapportdContinuité, Handoff et Presse-papiers universel/usr/libexec/
sharingdAirDrop et services de partage/usr/libexec/
distnotedNotifications distribuées entre processus/usr/sbin/
coreaudiodSous-système audio/usr/sbin/
hiddClavier, trackpad et périphériques d’entrée/usr/libexec/
backupdTime Machine/System/Library/CoreServices/
com.apple.WebKit.WebContentProcessus de rendu Safari ou WebKitDans le framework WebKit

Ces chemins sont indicatifs et Apple peut déplacer des composants entre les versions de macOS. Un nom identique dans un dossier accessible en écriture est un signal fort ; un autre chemin système protégé doit être vérifié avant d’être déclaré malveillant. Consultez les guides sur kernel_task, WindowServer et mds_stores.

Ce qui paraît réellement suspect

  1. Un nom système exécuté depuis un chemin non système. Un WindowServer dans /Users/Shared/ n’est pas le véritable WindowServer.
  2. Une signature absente ou ad hoc dans un emplacement inhabituel.
  3. Un signataire qui ne correspond pas à l’identité annoncée.
  4. Un nom presque identique, avec un caractère échangé, doublé ou un espace final.
  5. Un LaunchAgent dans ~/Library/LaunchAgents/ qui pointe vers un dossier temporaire ou de téléchargement.
  6. Un processus qui réapparaît rapidement avec un nouveau PID sans tâche Apple identifiable.

XProtect détecte et bloque automatiquement les logiciels malveillants connus et inclut une technologie de remédiation qui recherche périodiquement les infections. L’absence d’alerte réduit le risque lié aux menaces connues, mais ne prouve pas que chaque processus est sûr. Voir Comment détecter les processus suspects sous macOS.

Effectuer les quatre vérifications avec ProcXray

ProcXray rassemble ces informations dans un seul panneau :

Les nouveaux processus sont surlignés en vert et ceux qui quittent restent visibles en rouge, ce qui rend un redémarrage évident. La recherche regex couvre les noms, PID, arguments et chemins. Ne considérez cependant pas tout ce qui se trouve hors de /System comme tiers : de nombreux processus Apple résident dans /usr/libexec, /usr/sbin, /usr/bin et /sbin.

FAQ

nsurlsessiond est-il un virus ?

Non. C’est le service Apple chargé des transferts réseau qui continuent en arrière-plan, notamment pour iCloud et les applications utilisant URLSession. Il réside normalement dans /usr/libexec/ et est signé par Apple.

Comment savoir si un processus Mac est légitime ?

Commencez par son chemin, puis exécutez codesign --verify --strict --verbose=2 <chemin> pour vérifier la signature et codesign -dvvv <chemin> pour examiner l’identité. Chemin protégé, signature cohérente, parent attendu et comportement explicable sont des signaux complémentaires ; aucun contrôle isolé ne constitue une preuve absolue.

Pourquoi Moniteur d’activité ne dit-il pas si un processus est sûr ?

Il présente surtout l’utilisation des ressources. Il n’offre aucune colonne pour la signature, l’autorité ou la notarisation, et le chemin n’est accessible qu’indirectement dans les fichiers ouverts.

Un logiciel malveillant peut-il imiter un processus système ?

Il peut copier son nom. Avec la configuration de sécurité normale, il ne peut toutefois pas simplement ajouter un fichier au Signed System Volume ni créer une signature valide en tant qu’Apple. Le volume système en lecture seule date de Catalina et la protection cryptographique SSV de Big Sur.

Dois-je arrêter un processus inconnu ?

Pas avant de l’identifier. Certains services sont essentiels, d’autres seront relancés selon leur configuration. Si le logiciel est indésirable, il faut supprimer proprement son mécanisme de persistance plutôt que seulement tuer le processus.

macOS intègre-t-il une protection contre les logiciels malveillants ?

Oui. XProtect recherche du contenu malveillant connu au premier lancement, lorsqu’une app change et lorsque ses signatures sont mises à jour. Gatekeeper vérifie les logiciels téléchargés et la notarisation ajoute une analyse automatisée. Ces protections constituent une base solide, pas une garantie.

Sources et références

Télécharger ProcXray → — version de base gratuite et essai Premium de 14 jours, macOS Sonoma ou version ultérieure.