Votre Mac execute des centaines de processus a tout moment. La plupart sont des services systeme legitimes et des applications que vous avez installees vous-meme. Mais un seul processus malveillant — non signe, s’executant depuis un chemin inhabituel, ou ouvrant discretement des connexions reseau — peut compromettre l’ensemble de votre machine. Savoir faire la difference entre un daemon systeme sain et un intrus suspect est l’une des competences de securite les plus pratiques qu’un utilisateur macOS puisse developper.
Reponse rapide
Pour detecter les processus suspects sur macOS, verifiez l’absence ou l’invalidite des signatures de code avec codesign -dvvv, confirmez l’approbation Gatekeeper avec spctl --assess, et inspectez le chemin de lancement, le processus parent, l’activite reseau et les droits d’acces de chaque processus. Les processus s’executant depuis /tmp, /var/folders ou des emplacements accessibles en ecriture par l’utilisateur sans signature Apple ou developpeur meritent une investigation immediate.
Signaux d’alerte : signes d’un processus suspect
Tout processus inconnu n’est pas forcement un malware, mais certains schemas doivent elever votre niveau de vigilance :
- Absence de signature de code ou signature ad-hoc. Les applications macOS legitimes sont signees par un developpeur identifie ou par Apple. Un binaire non signe s’executant de maniere persistante est un signal d’alerte.
- Chemin de lancement dans un repertoire temporaire ou cache. Les processus s’executant depuis
/tmp,/private/var,/var/foldersou des repertoires prefixes par un point (.hidden/) meritent un examen approfondi. Les applications legitimes se trouvent dans/Applications,/Systemou/usr. - Processus parent inhabituel. Un processus
curloupython3lance parbash, lui-meme lance parlaunchda l’ouverture de session — sans LaunchAgent correspondant que vous reconnaissez — est suspect. - Connexions reseau sortantes inattendues. Un processus que vous ne reconnaissez pas etablissant des connexions vers des adresses IP inconnues, en particulier sur des ports non standard, justifie une investigation.
- Utilisation elevee des ressources sans raison apparente. Les cryptomineurs et les outils d’exfiltration de donnees montrent souvent une utilisation soutenue du CPU ou des E/S reseau qui ne correspond a rien de ce que vous faites.
- Droits d’acces manquants ou excessivement larges. Un utilitaire simple reclamant
com.apple.security.cs.disable-library-validationoucom.apple.security.cs.allow-unsigned-executable-memoryest inhabituel.
Etape par etape : investigation d’un processus suspect
Lorsque vous reperer quelque chose d’inconnu dans votre liste de processus, effectuez ces verifications de maniere systematique.
1. Verifier la signature de code
La verification la plus importante. Executez codesign sur le binaire :
codesign -dvvv /chemin/vers/binaire-suspect
Recherchez la chaine Authority. Une application saine affiche quelque chose comme :
Authority=Developer ID Application: Company Name (TEAMID)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Si vous voyez code object is not signed at all ou que la chaine d’autorite est absente, ce binaire n’a jamais ete signe par un developpeur identifie.
2. Verifier le statut Gatekeeper et la notarisation
Gatekeeper d’Apple verifie que le logiciel est notarise — soumis a Apple pour une analyse automatisee des malwares :
spctl --assess --verbose /chemin/vers/binaire-suspect
Une application notarisee retourne accepted, source=Notarized Developer ID. Tout autre resultat signifie que le binaire a contourne ou precede l’exigence de notarisation d’Apple.
3. Inspecter le chemin de lancement et les arguments
Trouvez ou se trouve reellement le binaire du processus :
ps -eo pid,comm,args | grep <nom-du-processus>
Les processus systeme legitimes s’executent depuis /usr/libexec, /System/Library ou /Applications. Un processus nomme com.apple.something s’executant depuis /Users/vous/Library/LaunchAgents/ avec un binaire dans /tmp imite un service systeme.
4. Verifier les mecanismes de persistance
Les malwares installent generalement un LaunchAgent ou LaunchDaemon pour survivre aux redemarrages :
# Persistance au niveau utilisateur
ls ~/Library/LaunchAgents/
# Persistance au niveau systeme
ls /Library/LaunchDaemons/
ls /Library/LaunchAgents/
Ouvrez tout fichier .plist inconnu et verifiez la cle ProgramArguments pour voir quel binaire il lance.
5. Examiner les connexions reseau
Voyez avec quoi le processus communique :
lsof -i -n -P | grep <PID>
Recherchez les connexions vers des IP inconnues, en particulier sur des ports comme 4444, 8080 ou d’autres ports non standard couramment utilises par les serveurs C2 (command and control).
6. Examiner les droits d’acces
Les droits d’acces (entitlements) definissent a quelles ressources systeme un processus peut acceder :
codesign -d --entitlements - /chemin/vers/binaire
Un lecteur PDF legitime ne devrait pas avoir besoin de com.apple.security.device.camera ou com.apple.security.network.server.
Processus legitimes frequemment confondus avec des menaces
Avant de paniquer, consultez cette liste. Ces processus systeme Apple perturbent regulierement les utilisateurs :
| Processus | Ce qu’il fait reellement |
|---|---|
kernel_task | Noyau macOS ; une utilisation CPU elevee signifie souvent une limitation thermique, pas un malware |
mds / mds_stores | Moteur d’indexation Spotlight ; pics d’activite apres l’installation d’apps ou la copie de fichiers |
WindowServer | Compositeur pour l’ensemble de l’interface graphique ; une utilisation CPU elevee est generalement liee a la mise a l’echelle de l’affichage |
nsurlsessiond | Telechargements en arriere-plan pour les mises a jour de l’App Store et la synchronisation iCloud |
trustd | Daemon d’evaluation des certificats et de la confiance |
syspolicyd | Application des politiques Gatekeeper |
cloudd | Daemon de synchronisation iCloud Drive |
bird | Assistant de synchronisation de documents iCloud |
mediaanalysisd | Traitement ML de l’app Photos pour la reconnaissance faciale et d’objets |
suggestd | Suggestions Siri et indexation des connaissances Spotlight |
Si l’un de ces processus apparait avec des signatures Apple valides et s’execute depuis /usr/libexec ou /System/Library, il est presque certainement legitime.
Outils pour l’audit de securite des processus
Activity Monitor
Activity Monitor affiche le CPU, la memoire et les informations basiques des processus, mais il ne peut pas afficher les signatures de code, les droits d’acces, les arborescences parent-enfant des processus ni les chemins de lancement de maniere exploitable. Pour le travail de securite, c’est un point de depart au mieux.
Terminal : codesign et spctl
Les outils en ligne de commande codesign et spctl sont la reference pour la verification des signatures et de la notarisation. Ils sont essentiels mais fastidieux lorsque vous devez auditer des dizaines de processus — chacun necessite de trouver manuellement le chemin du binaire.
ProcXray
ProcXray integre la verification des signatures de code et l’inspection des droits d’acces directement dans une interface de surveillance des processus. Pour chaque processus en cours d’execution, vous pouvez voir :
- Statut de la signature en un coup d’oeil — signe, non signe ou invalide — sans executer de commandes terminal.
- Liste complete des droits d’acces — inspectez les capacites systeme reclamees par chaque processus.
- Vue arborescente des processus — tracez immediatement quel processus parent a lance un enfant suspect.
- Chemin de lancement et arguments — voyez exactement ou se trouve le binaire et comment il a ete invoque.
Au lieu d’executer manuellement codesign -dvvv sur chaque binaire, ProcXray expose le contexte de securite de chaque processus en temps reel. Lorsque vous reperer quelque chose de non signe ou s’executant depuis un emplacement inattendu, vous pouvez examiner sa lignee et son contexte reseau sans basculer vers le Terminal.
FAQ
Comment distinguer un malware d’un service systeme legitime ?
Verifiez trois choses : (1) la signature de code — executez codesign -dvvv et recherchez une chaine d’autorite Apple ou d’un developpeur identifie, (2) le chemin de lancement — les services legitimes s’executent depuis /System ou /usr/libexec, pas /tmp ou des repertoires caches, et (3) la persistance — verifiez ~/Library/LaunchAgents et /Library/LaunchDaemons pour des fichiers plist inconnus pointant vers le binaire.
Un malware peut-il se cacher d’Activity Monitor ?
Oui. Les rootkits peuvent intercepter les appels systeme pour masquer des processus aux outils en espace utilisateur. La Protection de l’integrite du systeme (SIP) de macOS rend cela considerablement plus difficile — si SIP est active (csrutil status), la dissimulation au niveau du noyau est bloquee sur les versions recentes de macOS. Cependant, les malwares peuvent toujours se deguiser en utilisant des noms d’apparence legitime ou en s’injectant dans des processus signes.
Gatekeeper protege-t-il contre tous les malwares ?
Non. Gatekeeper et la notarisation fournissent une premiere couche de defense solide — ils bloquent par defaut l’execution des logiciels non signes et non notarises. Mais si un utilisateur contourne explicitement Gatekeeper (clic droit > Ouvrir), ou si le malware est delivre via un processus deja en cours d’execution (par exemple, un exploit de navigateur), Gatekeeper est contourne. La defense en profondeur — verification des signatures, surveillance du comportement des processus et audit des mecanismes de persistance — reste essentielle.
Sources et references
- Apple : About Gatekeeper
- Apple : Notarizing macOS Software Before Distribution
- Apple : System Integrity Protection
- Apple :
codesignman page - Apple :
spctlman page - Apple : Entitlements Documentation
Telecharger ProcXray → — verification integree des signatures de code, macOS Sonoma+.