7 votes

Comment Charles Proxy peut-il modifier les paramètres sans droits d'administrateur après la première fois ?

Procuration de Charles dispose d'une fonction qui lui permet de configurer automatiquement les paramètres de proxy de votre système lorsqu'il démarre.

Toutes les méthodes programmatiques que j'ai trouvées pour modifier ces paramètres (par exemple networksetup) nécessitent une élévation des privilèges pour être utilisées, mais cette application parvient à le faire avec des autorisations d'utilisateur standard. La seule fois où elle nécessite une élévation des privilèges, c'est lors de sa toute première exécution.

Où ses autorisations peuvent-elles être gérées afin d'apporter des modifications à l'avenir, par exemple en lui demandant à nouveau des privilèges ?

6voto

Graham Miln Points 39606

Aide privilégiée

Si Charles Proxy suit Recommandations d'Apple les autorisations obtenues lors de l'installation initiale seront codées en tant qu'assistant privilégié.

Sous MacOS, le dossier /Library/PrivilegedHelperTools contient des outils qui ont été préalablement authentifiés et autorisés par l'utilisateur.

Le dossier /Library/LaunchDaemons contient le launchd qui lancent et déterminent l'accès aux outils.

Il existe d'autres approches, telles que

Exécution avec des privilèges élevés

Si vous devez exécuter du code avec des privilèges élevés, plusieurs approches sont possibles :

  • Vous pouvez exécuter un démon avec des privilèges élevés que vous appelez lorsque vous avez besoin d'effectuer une tâche privilégiée. La méthode préférée pour lancer un démon est d'utiliser le démon launchd (voir launchd). Il est plus facile d'utiliser launchd pour lancer un démon et plus facile de communiquer avec un démon que de créer son propre processus privilégié.
  • Vous pouvez utiliser la commande authopen pour lire, créer ou mettre à jour un fichier (voir authopen).
  • Vous pouvez utiliser un appel système BSD pour modifier le niveau de privilège (voir Appels pour modifier le niveau de privilège). Ces commandes ont une sémantique confuse. Vous devez faire attention à les utiliser correctement, et il est très important de vérifier les valeurs de retour de ces appels pour s'assurer qu'ils ont réussi.

3voto

bradleyjkemp Points 103

Après de plus amples recherches, j'ai trouvé cette description de Common Vulnerabilities and Exposures (CVE). CVE-2017-15358 Accès local à la racine dans Charles Proxy 4.2 :

La mise en place d'un proxy à l'échelle du système nécessite des autorisations Root, ce qui est géré par un binaire suid situé dans le dossier de l'application Charles :

/Applications/Charles.app/Contents/Resources/Charles Proxy Settings Il indique que lors de sa première installation, Charles Proxy crée un binaire setuid qui est utilisé lors des exécutions suivantes pour modifier les paramètres du proxy.

Le lien dans la réponse de Graham indique que cette méthode est une ancienne façon d'accomplir ce comportement et qu'elle n'est plus recommandée.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X