SecurityInsider
Le blog des experts sécurité Wavestone

Comment Apple veut renforcer OS X contre les malware avec System Integrity Protection



De plus en plus ciblé par les attaquants et régulièrement sous le feu des projecteurs à cause de failles de sécurité sur OS X, Apple essaie de nouveau de renforcer la sécurité de son système d’exploitation. Pour OS X El Capitan, cela passera par une révision en profondeur du fonctionnement de son noyau et par la protection de l’utilisateur contre ses propres actions.

Aujourd’hui, OS X Yosemite propose déjà plusieurs niveaux de sécurité permettant de limiter les impacts de l’exécution d’une application malveillante sur le système :
·         Gatekeeper
Seules les applications en provenance du Mac App Store ou signées par un certificat délivré par Apple peuvent être exécutées sur le système.
·         Sandboxing
Cloisonnement applicatif permettant de limiter les accès aux données. Une application prenant en charge le sandboxing ne peut accéder qu’aux données qui lui sont propres. Ce mécanisme est obligatoire pour les applications en provenance du Mac App Store et recommandé pour les autres applications.
·         POSIX
Système de permissions classiques d’un système UNIX. Les accès aux données des autres utilisateurs ou aux données systèmes ne sont pas possibles si l’utilisateur ne dispose pas des droits adéquats.
·         Keychain
Espace de stockage de tous les secrets de l’utilisateur (mots de passe, certificats, etc.). Les applications ne peuvent accéder qu’aux secrets qu’elles ont elles-mêmes enregistrées.


Différents niveaux de sécurité d’OS X Yosemite

Toutes ces mesures de sécurité sont certes efficaces mais laissent le système d’exploitation relativement vulnérable face aux utilisateurs eux-mêmes :
·         Les utilisateurs sont souvent administrateurs de leur Mac et utilisent des mots de passe trop faibles (voire aucun mot de passe).
·         Ce mot de passe est trop souvent fourni aux applications sans réflexion complémentaire. Il  est d’ailleurs souvent difficile de savoir pourquoi l’application nécessite une élévation de privilèges.
·         Ce mot de passe constitue la seule barrière entre un logiciel et la compromission du système.  Les privilèges qui en découlent permettent l’accès en tant que super administrateur (« root ») au système et donc la désactivation de toutes les mesures de protection, soit un contrôle total de la machine.
·         Un malware se faisant passer pour un logiciel légitime pourrait ainsi inciter l’utilisateur à saisir son mot de passe sous prétexte de son installation, en profiter pour récupérer les droits « root » sur la machine et compromettre le système en profondeur.

Face à ce constat, Apple a décidé d’ajouter une nouvelle couche de sécurité appelée « System Integrity Protection » pour limiter le pouvoir du compte « root ». Contrairement à gatekeeper et au sandboxing dont l’intégration est laissée au bon vouloir des développeurs, ce mécanisme de sécurité s’applique à tous les processus en cours d’exécution et protège les fichiers du système aussi bien sur le disque qu’à l’exécution. Quatre fonctions clés sont ainsi proposées :
·         Protection en écriture des répertoires et fichiers système
Le noyau d’OS X empêche toute écriture par une application, même avec les privilèges « root », dans les répertoires ou fichiers systèmes protégés (/System, /bin, /usr et /sbin).


Répertoires système protégés sous OS X El Capitan

·         Protection des composants système en cours d’exécution
Un nouveau flag est ajouté à la structure mémoire des processus et sera positionné pour tous les binaires protégés sur le disque ou signés par et pour Apple afin de permettre au noyau d’identifier les processus restreints. Il ne sera ainsi plus possible pour une application tierce de s’attacher et d’injecter du code à un processus système.

·         Signature des extensions
Toutes les extensions du système (Kexts) doivent maintenant être signées avec un ID développeur valide et placées à un emplacement spécifique (« /Library/Extensions »).

Au final, seules les installeurs d’Apple et le système de mise à jour du Mac App Store pourront modifier les fichiers et binaires du système. Pour toutes les autres applications, les actions suivantes seront maintenant restreintes :
·         Modification de binaires ou de framework système ;
·         Installation de contenu dans des emplacements système ;
·         Inspection de la mémoire d’un processus système ;
·         Injection de librairies dans un processus système.

Il restera cependant possible pour des besoins précis de désactiver System Integrity Protection en démarrant sur la partition de récupération d’OS X El Capitan (cmd + R au démarrage), un utilitaire de configuration dédié ayant été ajouté à cet effet. La configuration a été ici volontairement séparée du système lui-même pour empêcher tout accès illégitime par un malware. Par ailleurs, ce paramètre est sauvegardé dans la NVRAM du Mac et s’applique ainsi à toutes les partitions contenues sur le disque dur de l’ordinateur.

En conclusion, les travaux effectués par Apple vont dans le bon sens et offrent ici des mesures de défense intéressantes pour contrer la persistance des malwares sur le système. Il reste maintenant à savoir si ces mesures de protection ne pourront pas être contournées.

Note : toutes ces fonctionnalités ont été présentées par Apple lors de la conférence annuelle des développeurs du mois de juin (WWDC 2015) et concernent la première préversion d’OS X El Capitan. Des changements pourront être apportés par Apple avant la sortie de la version finale du système.

Sources :

Florent DAQUET

1 commentaire:

  1. Bonjour,
    oui oui pourquoi pas 2 disques dur le premier pour l'OS, avec une coupure au disque physiquement pourl'écriture et le 2 ième pour les logicièles additionnel

    RépondreSupprimer