OS X El Capitan : comment SIP parachève la politique sécuritaire d’Apple

Anthony Nelzin-Santos |

Cet article est un extrait (remanié) de notre livre Les nouveautés d’OS X El Capitan, disponible sur l’iBooks Store pour 5,99 €.

Plus encore qu’« une mise à jour de performances et de stabilité », selon la formule consacrée, OS X El Capitan est une mise à jour de sécurité. Il intègre un nouveau « mécanisme de défense », baptisé System Integrity Protection, qui parachève la politique sécuritaire d'Apple en assujettissant l'utilisateur root lui-même. Ce que cela signifie ? Il faut remonter quelques années en arrière pour bien le comprendre.

En 2008, d’abord, au moment de l’introduction d’un système de quarantaine dans Mac OS X Leopard. Vous avez sans doute déjà vu cette boîte de dialogue vous demandant de confirmer l’ouverture d’un fichier ou d’une application téléchargée sur le web ? C’est une manifestation du système de quarantaine, qui est censé empêcher l’ouverture automatique d’un élément que vous n’auriez pas téléchargé volontairement.

Vous avez déjà vu ce message ? Bien sûr que vous avez déjà vu ce message. C’est la principale manifestation du système de quarantaine, qui bloque l’ouverture automatique des fichiers téléchargés sur le web.
Vous avez déjà vu ce message ? Bien sûr que vous avez déjà vu ce message. C’est la principale manifestation du système de quarantaine, qui bloque l’ouverture automatique des fichiers téléchargés sur le web.

Mais ce système n’est pas suffisant : qu’un élément ait été téléchargé volontairement ne veut pas dire qu’il est fiable. L’année suivante, Mac OS X Snow Leopard a donc renforcé sa sécurité avec XProtect. L’architecture d’OS X le protège de la plupart des virus, mais ils étaient déjà passés de mode à l’époque. Depuis, la menace provient plutôt des chevaux de Troie, des applications qui cachent leur dessein malveillant sous des atours aguicheurs. Ainsi, la première infection de grande ampleur ayant touché les Mac était due à un malware déguisé en programme d’installation d’Adobe Flash.

XProtect n’est rien d’autre qu’un anti-malware intégré au système. Chaque fois qu’une nouvelle menace est repérée, la liste XProtect de tous les Mac est mise à jour. Si un utilisateur essaye d’installer une application réputée malveillante, XProtect l’en empêchera. Et s’il l’a déjà fait, XProtect désactivera l’application en question. Il reçoit encore aujourd’hui une demi-douzaine de mises à jour annuelles, preuve de l’intérêt que provoque OS X auprès des malandrins de tout poil.

En 2011, OS X Lion s’est doté d’un système de sandboxing directement hérité de celui d’iOS. Une application a normalement accès à l’intégralité des données et des ressources que l’ordinateur peut lui offrir. Cette grande liberté a permis le développement d’utilitaires système, de pilotes, et plus généralement de fonctions avancées dans les applications. Mais elle permet aussi à une application de planter l’ensemble du système et de corrompre des données en cas de gros problème.

Le sandboxing est censé prévenir ce genre d’écueil. Pour une application placée en sandbox, rien d’autre n’existe que ce que le système lui permet de voir et d’utiliser. Dans son bac à sable, l’application ne peut compromettre la sécurité du système ou des autres applications en exécutant du code arbitraire ou en accédant directement aux fonctions matérielles. Le système lui fournit uniquement ce qu’il lui faut, et l’application ne peut sortir de son cadre, comme un enfant jouant sous l’œil attentif de ses parents.

Avec le sandboxing, les applications n’ont plus un accès illimité aux ressources matérielles et logicielles. Elles ne peuvent rien faire sans la permission du système, qui ne leur fournit rien de plus que ce dont elles ont strictement besoin, et surtout pas les données des autres applications.
Avec le sandboxing, les applications n’ont plus un accès illimité aux ressources matérielles et logicielles. Elles ne peuvent rien faire sans la permission du système, qui ne leur fournit rien de plus que ce dont elles ont strictement besoin, et surtout pas les données des autres applications.

L’année suivante, OS X Mountain Lion a renforcé le contrôle du système sur les applications avec Gatekeeper. Il impose que les applications soient « signées », c’est-à-dire qu’elles intègrent un certificat fourni par Apple. Ce certificat identifie l’application et son développeur : si une application se révèle malintentionnée, Apple peut désactiver son certificat, empêchant ainsi son utilisation sur tous les Mac sur laquelle elle est installée. Pis, cette révocation peut s’étendre à l’ensemble des applications du même développeur, bien que ce cas ne se soit jamais présenté.

Toutes les applications disponibles dans le Mac App Store doivent être signées, mais certaines applications téléchargeables sur internet ne le sont pas. Qu’à cela ne tienne : par défaut, OS X refuse d’exécuter les applications qui ne sont pas signées. Ce comportement correspond à l’option Autoriser les applications téléchargées de : Mac App Store et développeurs identifiés dans l’onglet Général de la section Sécurité et confidentialité des Préférences système. Vous pouvez désactiver Gatekeeper en sélectionnant N’importe où, mais Apple ne le recommande évidemment pas.

Derrière cette petite préférence se cache Gatekeeper.
Derrière cette petite préférence se cache Gatekeeper.

Les choses auraient pu s’arrêter là, mais trop d’utilisateurs cliquent sur les alertes de quarantaine sans les lire et donnent leur mot de passe à des applications à la provenance douteuse. Or « la plupart des Mac sont utilisés par une seule personne, qui possède les droits d’administration par défaut ». Que l’application se révèle malveillante, et ce sera trop tard : grâce à votre mot de passe, elle peut gagner l’accès à root et donc au contrôle de la machine.

Qui est root ? C’est l’utilisateur qui possède toutes les permissions du système. Lors de son installation, OS X prend garde à ne pas communiquer le mot de passe de root à l’utilisateur, mais le mot de passe de l’administrateur permet d’« emprunter » les droits de root, et même de changer son mot de passe. La plupart des utilisateurs de Mac utilisent un compte administrateur, compte dont le mot de passe peut donc compromettre root.

Voilà pourquoi OS X El Capitan et System Integrity Protection limitent encore un peu plus la portée des applications : même celles qui ont les droits de root n’ont plus tous les droits. Cela commence dès leur installation : les applications ne peuvent nicher de fichiers dans les dossiers /System, /bin, /usr ou /sbin. Les développeurs doivent désormais se contenter de /Library, ~/Library, /usr/local et /Applications.

Apple voit la sécurité d’OS X comme une citadelle de Vauban : System Integrity Protection n’est qu’une nouvelle ligne de défense.
Apple voit la sécurité d’OS X comme une citadelle de Vauban : System Integrity Protection n’est qu’une nouvelle ligne de défense.

Toutes les applications, y compris celles installées hors du Mac App Store qui ne sont pas soumises au sandboxing et ont accès à root, sont soumises à cette nouvelle politique. Un changement qui a une conséquence directe sur les applications modifiant le système à grands coups d’injection de code : cette pratique, déjà sévèrement restreinte ces dernières années, est désormais strictement interdite. Seuls les installeurs d’Apple et l’App Store peuvent modifier des binaires systèmes.

Les développeurs d’extensions du noyau (Kexts, « pilotes ») sont les premiers concernés par ces nouvelles restrictions. Leurs extensions doivent être signées avec un certificat spécifique, et ne peuvent plus être installées que dans /Library/Extensions. Apple a toutefois prévu que l’on puisse désactiver System Integrity Protection, ne serait-ce que pour développer des pilotes. Mais puisque root lui-même n’est pas censé y avoir accès, il faut passer par la partition de restauration (⌘R au redémarrage).

Pour désactiver System Integrity Protection, redémarrez votre Mac sur la partition de restauration en maintenant ⌘R au démarrage). Dans le menu des utilitaires, sélectionnez Security Configuration.
Pour désactiver System Integrity Protection, redémarrez votre Mac sur la partition de restauration en maintenant ⌘R au démarrage). Dans le menu des utilitaires, sélectionnez Security Configuration.

Cet article est un extrait (remanié) de notre livre Les nouveautés d’OS X El Capitan, disponible sur l’iBooks Store pour 5,99 €.

avatar Leadlike | 

Le problème avec ces initiales techniques c'est qu'au bout d'un moment on se retrouve avec le même nom pour deux services sans rapports !

avatar Ber16 | 

Très intéressant. Merci !
Je suis preneur pour des petits articles réguliers et simples à comprendre pour les débutants.

avatar Hercule Poirot | 

@Leadlike :
Dans ce cas je te conseille honnêtement d'acheter le livre. Il est vraiment très bien (d'ailleurs l'article en est un extrait...).

avatar Clement07 | 

Oui SIP pose problème pour l'application qui permet d'activer HandOff sur les vieux Mac "continuity activation tool".

avatar bompi | 

En fait, par défaut, root n'a pas de mot de passe, empêchant l'ouverture directe d'une session interactive graphique ou texte, tout en laissant toute latitude au système de travailler.

avatar bonnepoire | 

Pendant ce temps, sous windows, c'est la fête du slip pour malware et autres saloperies. D'ailleurs, dans un environnement windows en entreprise, on est obligé de gérer la sécurité en amont. Plutôt que de responsabiliser les gens on leur enlève tous les droits.
Bénis soient ceux qui peuvent financer un checkpoint.

avatar byte_order | 

> Plutôt que de responsabiliser les gens on leur enlève tous les droits.

Ici, c'est Apple qui enlève tous les droits plutôt que de responsabiliser les utilisateurs de Mac OS X.

Quelle différence, au final ?!

avatar bonnepoire | 

Sauf qu'un mac peut fonctionner sans aucune sécurité supplémentaire particulière.
Windows, quand tu veux sécuriser tu ralentis considérablement ta machine.

Sous Windows, un public averti doit faire pas mal d'entretien sans que ce soit le cas sur OS X. Les non avertis sous windows croulent sous les applications non sollicitées qui envoient plein de requêtes et ralentissent encore plus la machine et plus d'être dérangé par des fonctions ou animations intrusives alors que le non averti sous OS X profite juste de sa machine sans avoir à se tracasser de rien.

Alors, non, ce n'est pas comparable. Sur un mac en étant root, tu fais ce que tu veux donc ne viens pas avec "Apple c'est fermé" parce que c'est des conneries. iOS par contre est un autre sujet.

avatar byte_order | 

> Sauf qu'un mac peut fonctionner sans aucune sécurité supplémentaire particulière.

Preuve que non, puisque Apple a dû rajouter année après année un antimalware, du sandboxing, la signature des applications et restraindres les ressources modifiables sous root.

> Windows, quand tu veux sécuriser tu ralentis considérablement ta machine.

De quelle version de Windows on parle ici ? XP, 95 ou une version contemporaine ?

Ce n'est pas parce que les services IT des entreprises installent à tour de bras des antivirus pathétiques de performance que cela signifie pour autant que depuis Windows 7 la sécurité par défaut de Windows n'est pas suffisante et similaire à celle d'un Mac OS X.

> le non averti sous OS X profite juste de sa machine sans avoir à se tracasser de rien.

Ouais, sous BeOS & Haiku aussi, alors qu'on est tout le temps en root et que c'est une vraie passoire en terme de sécurité, et pourtant jamais aucun virus.
La part de marché de Windows attirent de facto plus nettement les *malandrins* que d'autres plateformes.

Et le non averti sous un Windows 8 ou 10 en profite tout pareil, merci de ne pas considérer la situation de Windows il ya 10 ans comme étant toujours d'actualité.

Attention, je ne suis pas un fan (mais alors pas du tout) de Windows, mais faut arrêter de croire que Windows n'a fait aucun progrès depuis le début de la guerre Wintel vs Mac, en particulier en matière de sécurité.

avatar marc_os | 

Petite remarque.
Certains kext peuvent être installés sans devoir désactiver SIP.

avatar umrk | 

Très bon article, et , qui plus est, très bien rédigé.

avatar instantcook | 

C'est l'occasion de faire un "petit dossier" sur la gestion des comptes utilisateurs : quel est la bonne pratique pour une seule personne sur un mac ? 1 admin et 1 user qu'on utilise au quotidien ? Et quid pour une famille ? Etc...
Merci d'avance d'y réfléchir chez Macg ;-)

avatar Stay hungry_Stay foolish (non vérifié) | 

Très bon article merci pour cette chronologie d'événements :)

avatar baptiste8b | 

Dis comme sa sa a l'air assez inviolable... Il n'y a réellement pas besoin d'antivirus tiers sur mac? J'avais cru entendre que les défenses natives d'OSX n'étaient plus suffisantes. Pouvez vous m'éclairer?

avatar françois bayrou | 

C'est inviolable.
Regardes bien le schéma : avec sandbox il y a un petit trait rouge qui bloque les méchants !
Fallait juste y penser !

avatar byte_order | 

J'imagine que Apple a déposé un brevet sur l'utilisation d'un contour rouge comme mécanisme de sécurité, indiquant le code Pantone, l'épaisseur du contour, le rayon de l'arrondi du contour (qui a fait l'objet d'un Design Patent à lui tout seul).

;-)

Ils sont vraiment géniaux chez Apple.

Enfin, sauf quand il s'agit de renouveler *avant* échéance le certificat utilisé pour signer la totalité des applications auprès de GateKeeper...

avatar jb18v | 

@baptiste8b :
Tant qu'on fait attention à ce qu'on fait et qu'on n'ouvre pas n'importe quoi, non. Mais tu peux aussi utiliser un antivirus pour te rassurer et/ou éviter d'être un vecteur sain pour des machines sous Windows :)

avatar TKOTOK | 

Même pour les tag c'est refusé ! Parfois ça va un peu loin !

avatar LaurentR | 

"Vous pouvez désactiver Gatekeeper en sélectionnant N’importe où, mais Apple ne le recommande évidemment pas."

Pour éviter ça et lancer quand même les applications qu'on souhaite, on peut aussi cliquer droit sur l'application concernée et choisir "Ouvrir". Mac OS X demandera de confirmer le lancement de l'application et la rajoutera dans la liste des applications autorisées pour les fois suivantes.

avatar mocmoc | 

L'appelation "Virus" est un Non-sens , incomparable aux virus organiques . J'explique :
Dans le corps humains les virus et les micro-organisme aident le corps. Oui ! , même les virus d'un point de vue hygiéniste. Je t'invite à te renseigner.

avatar mika944 (non vérifié) | 

Non seulement cet article est excellent, mais il met l'accent sur une mauvaise pratique (largement induite par Apple) qui est que l'utilisateur qui installe sa machine, créé souvent un premier compte avec son Nom+Prénom et son mot de passe en tant qu'administrateur. C'est ce que je constate depuis de nombreuses années et systématiquement sur les machines que je rencontre et que je ne gère pas. En faisant cela et même si le système pondère les privilèges administrateurs par des demandes du mot de passe lors d'accès aux ressources et espaces système, cela fait disparaitre une protection naturelle d'Unix. Pour éviter cela, il suffit de créer comme premier compte un "Admin" (compte administrateur) avec un mot de passe spécifique dédié aux actions de maintenances/installations/mises à jours. Puis un ou plusieurs comptes de travail (compte standard) au Nom+Prénom de chaque utilisateur. Il n'y a dans ce dernier cas, aucune limite fonctionnelle, Mac OS X étant assez bien conçu pour laisser un utilisateur standard faire tout ce dont il a besoin. Cela va même très loin lorsque ce dernier veux personnaliser son système en intervenant dans le répertoire Library de sa Home.

Il faut également sensibiliser un utilisateur sur le fait que la demande d'un identifiant et d'un mot de passe administrateur n'est pas anodine et qu'il est de sa responsabilité de le donner à bon escient.

CONNEXION UTILISATEUR