Mac OS ralentit-il? - Catalina vérifie tout code non signé sur Internet au démarrage

De nombreux utilisateurs après avoir opté pour Catalina ont commencé à se plaindre des freins. Des collègues occidentaux ont découvert la raison: MacOS envoie un hachage de tout code non signé aux serveurs Apple.

Cela crée de sérieux retards d'exécution, qui peuvent être facilement vérifiés:

echo $'#!/bin/sh\necho Hello' > /tmp/test.sh && chmod a+x /tmp/test.sh
time /tmp/test.sh && time /tmp/test.sh

Les résultats sont surprenants:

$ time /tmp/test.sh && time /tmp/test.sh
Hello

real    0m1.417s
user    0m0.001s
sys 0m0.003s
Hello

real    0m0.003s
user    0m0.001s
sys 0m0.002s

Pourquoi ça arrive? Apple utilise le mécanisme de notarisation depuis un certain temps - avec lui, les utilisateurs peuvent être sûrs qu'un programme signé par un Developer-ID valide ne contient pas de composants malveillants. Autrement dit, en plus du fait que l'application est signée, Apple vérifiera également automatiquement la présence d'éléments malveillants.
Fait intéressant, à l'avenir, Apple prévoit généralement d'interdire le lancement de programmes non notariés. Citation:
Important

À partir de macOS 10.14.5, les logiciels signés avec un nouveau certificat d'ID développeur et toutes les extensions de noyau nouvelles ou mises à jour doivent être notariés pour fonctionner. À partir de macOS 10.15, tous les logiciels créés après le 1er juin 2019 et distribués avec Developer ID doivent être notariés.

Maintenant, apparemment, pour pénétrer, tout nouveau code non signé que vous exécutez est envoyé au serveur AAPL. Cela peut être facilement vérifié en exécutant n'importe quel analyseur de réseau et en voyant les appels vers le domaine api.apple-cloudkit.com. Il convient de noter que ce n'est pas le code lui-même qui est transmis, mais le montant du hachage. Vous pouvez vérifier cela de deux manières: comparez la quantité de données transmises sur le réseau pour des scripts de différentes tailles; ainsi que la consultation du contenu du démon responsable de l'envoi des données ( otool -tV / usr / libexec / syspolicyd ). Cependant, avec une connexion Internet lente, les retards peuvent être de quelques secondes - un utilisateur chinois écrit un retard de 5,47 secondes.

D'une part, Apple peut comprendre - il se soucie cependant de la sécurité des utilisateurs, tout en transformant en enfer le processus de tout développement sur leur plate-forme.

Mais je veux citer le développeur qui a d'abord attiré l'attention sur le problème:
ce comportement du système d'exploitation indique de graves problèmes de conception lorsque deux méthodes de l'API système de bas niveau (par exemple, exec et getxattr) effectuent des appels réseau synchrones avant de renvoyer le résultat.

Liens:

lapcatsoftware.com/articles/catalina-executables.html
news.ycombinator.com/item?id=23275922
sigpipe.macromates.com/2020/macos-catalina-slow-by-design

All Articles