Le but est d'empêcher même les utilisateurs de Root de désinstaller notre application sur leur mac.
Apparemment, de nombreuses applications de sécurité disposent de ce type de fonctionnalité dans laquelle un utilisateur (même avec le privilège Root) ne peut pas désinstaller ou modifier l'agent sur sa machine.
J'ai essayé de trafiquer/supprimer une application antivirus sur Catalina mais j'ai échoué et j'ai remarqué quelques choses intéressantes :
-
Il a une extension de noyau. Mais je ne peux pas supprimer l'extension du noyau (comme Root).
#kextunload /Library/Extensions/xxx.kext (kernel) Kext com.xxx.kext did not stop (return code 0x5). (kernel) Kext com.xxx.kext can't unload - module stop returned 0xdc008017. Failed to unload com.xxx.kext - (libkern/kext) kext (kmod) start/stop routine failed.
-
L'application est installée dans
/Library
plutôt que le répertoire habituel/Applications
répertoire.drwxr-xr-x 7 root wheel 224 Oct 28 14:40 xxxx
Le dossier n'a pas d'attributs étendus. Je ne peux pas supprimer ce dossier ou l'un de ses sous-dossiers et je reçois une erreur de permission refusée même en tant que Root.
-
L'application a un tas de launchdaemons mais je ne peux pas les supprimer (j'ai encore essayé en tant que Root).
#launchctl remove com.xxx.xxx. Not privileged to remove service.
-
J'ai essayé de tuer les processus, mais là encore, l'opération n'est pas autorisée.
-
L'application est fournie avec un désinstalleur qui peut désinstaller l'application d'une manière ou d'une autre, mais il faut entrer un mot de passe spécial (distinct du mot de passe système) pour qu'il fonctionne.
De nombreuses applications et services d'Apple ont ce genre de comportement, mais ils sont fournis avec le système et bénéficient de la protection de l'intégrité du système.
Comment une application tierce peut-elle obtenir ce genre de comportement ? Ce n'est pas unique à cette application particulière, mais les antivirus ont des caractéristiques similaires. N'importe quelle idée sur la façon de réaliser ceci
Note : Notre application est une application d'entreprise qui sera installée sur des machines appartenant aux entreprises et gérées par le service informatique, mais les utilisateurs finaux auront un accès Root sur leur machine.