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 :
/System/Library/...— frameworks et composants système/usr/libexec/— nombreux petits services d’arrière-plan/usr/sbin/et/usr/bin/— utilitaires système/sbin/— outils essentiels, dontlaunchd/Applications/— applications installées ; cet emplacement ne garantit pas leur fiabilité
Emplacements qui demandent davantage d’attention :
/tmp/,/var/tmp/,/private/tmp/— inhabituel pour un processus persistant~/Library/— contient des assistants légitimes, mais est accessible à l’utilisateur/Users/Shared/— emplacement partagé parfois utilisé pour déposer des fichiers/usr/local/bin/et/opt/homebrew/bin/— emplacements Homebrew courants sur Mac Intel et Apple silicon ; leur présence ne prouve rien à elle seule
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 :
- Code système Apple — doit être validé et résider dans un emplacement système protégé. La sortie peut indiquer une chaîne Apple, un identifiant Apple ou des attributs de signature de plateforme. L’absence de
TeamIdentifierest normale pour de nombreux binaires système. Authority=Developer ID Application: Société (AB12CD34EF)— logiciel distribué hors App Store avec une identité délivrée par Apple. La société doit correspondre au produit attendu.Authority=Apple Mac OS Application Signing— application provenant du Mac App Store.
Résultats à examiner :
- Échec de la vérification — la signature est invalide, un composant scellé a changé ou le code ne satisfait plus ses exigences.
code object is not signed at all— possible pour un script ou un outil compilé localement, mais inhabituel pour une application téléchargée et persistante.Signature=adhochors emplacement système protégé — ne fournit aucune identité de développeur vérifiée. Certains composants système Apple utilisent aussi des signatures dont l’affichage ressemble à une signature ad hoc ; il faut donc tenir compte du chemin.
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 :
- Connexions réseau. Une communication continue avec un hôte inattendu mérite d’être expliquée. Des services comme
nsurlsessiondetclouddcommuniquent normalement avec les serveurs Apple. - Bibliothèques chargées. Une bibliothèque provenant d’un dossier accessible en écriture dans un processus système protégé est inhabituelle. Les applications tierces et hôtes de plugins peuvent toutefois charger légitimement des modules utilisateur. Voir Comment inspecter les modules chargés sous macOS.
- Utilisation prolongée sans déclencheur identifiable.
photoanalysisdpeut utiliser un cœur après l’importation de photos ; la même activité après plusieurs jours d’inactivité demande davantage d’explications.
Processus souvent pris pour des virus
Tous les processus suivants font normalement partie de macOS.
| Processus | Rôle | Emplacement courant |
|---|---|---|
kernel_task | Noyau et gestion de la charge thermique | Aucun chemin : c’est le noyau |
launchd | PID 1, lance et supervise les services | /sbin/ |
WindowServer | Compose l’affichage à l’écran | /System/Library/PrivateFrameworks/ |
mds, mds_stores, mdworker | Indexation Spotlight | /System/Library/Frameworks/ |
nsurlsessiond | Transferts d’arrière-plan des apps et d’iCloud | /usr/libexec/ |
trustd | Évalue la confiance des certificats TLS | /usr/libexec/ |
syspolicyd | Gatekeeper et politiques de sécurité | /usr/libexec/ |
bird | Synchronisation des documents iCloud Drive | /usr/libexec/ |
cloudd | Données CloudKit des applications | /System/Library/PrivateFrameworks/ |
secd | Trousseau et synchronisation iCloud Keychain | /usr/libexec/ |
photoanalysisd | Analyse les visages et scènes dans Photos | /System/Library/PrivateFrameworks/ |
mediaanalysisd | Texte en direct et Recherche visuelle | /System/Library/PrivateFrameworks/ |
rapportd | Continuité, Handoff et Presse-papiers universel | /usr/libexec/ |
sharingd | AirDrop et services de partage | /usr/libexec/ |
distnoted | Notifications distribuées entre processus | /usr/sbin/ |
coreaudiod | Sous-système audio | /usr/sbin/ |
hidd | Clavier, trackpad et périphériques d’entrée | /usr/libexec/ |
backupd | Time Machine | /System/Library/CoreServices/ |
com.apple.WebKit.WebContent | Processus de rendu Safari ou WebKit | Dans 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
- Un nom système exécuté depuis un chemin non système. Un
WindowServerdans/Users/Shared/n’est pas le véritableWindowServer. - Une signature absente ou ad hoc dans un emplacement inhabituel.
- Un signataire qui ne correspond pas à l’identité annoncée.
- Un nom presque identique, avec un caractère échangé, doublé ou un espace final.
- Un LaunchAgent dans
~/Library/LaunchAgents/qui pointe vers un dossier temporaire ou de téléchargement. - 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 :
- Signature et entitlements, avec l’autorité et l’identifiant d’équipe
- Chemin complet, arguments de lancement et contexte d’environnement
- Arborescence des processus, pour suivre le parent
- Connexions et fichiers ouverts
- Modules chargés, avec leur chemin
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
- Apple : Protection contre les logiciels malveillants dans macOS
- Apple : Sécurité du volume système signé
- Apple : À propos de System Integrity Protection
- Miroir des pages de manuel macOS : codesign(1)
- Miroir des pages de manuel macOS : spctl(8)
Télécharger ProcXray → — version de base gratuite et essai Premium de 14 jours, macOS Sonoma ou version ultérieure.