SCO protège ses environnements Unix

Date :17 Juin 2005

Publication: Article

Ce mois-ci, SCO a publié deux avis de sécurité concernant un renforcement de la sécurité des environnements UnixWare. Les modifications  proposées visent à améliorer la protection de l'environnement restreint ("chroot") du système, ainsi que la gestion des répertoires temporaires liés aux sockets réseau.

Environnement "chroot"

La notion de "chroot" permet de restreindre l'exécution d'un processus dans un environnement cloisonné. Concrètement, la racine du système d'exploitation est simulée pour un programme donné dans un répertoire défini. On parle aussi de "prison" ("jail").

Cette protection est généralement appliquée à des processus ayant une forte interactivité avec Internet comme par exemple les services DNS, Web, FTP, ... Elle permet de protéger le système d'exploitation contre des intrusions utilisant des faiblesses de ces services. Seul l'environnement restreint sera impacté par l'intrusion.

Cependant, plusieurs études ont montré la limitation de ce type de protection lorsque l'environnement restreint était trop riche en fonctionnalités. Il a ainsi été démontré que des environnements restreints (ou "chrootés) contenant un compte "root" et des compilateurs C ou PERL pouvaient être contournés lors d'une intrusion à partir d'un service réseau (service s'exécutant dans l'environnement restreint avec les privilèges "root"). Sans les conditions précédemment citées, l'environnement restreint reste étanche et il est quasiment impossible de le contourner.

SCO, dans son avis "SCOSA-2005.2", propose une fonctionnalité permettant de sécuriser le système de fichiers contre le contournement des environnements restreints. En fait, ce mécanisme permet de protéger des environnements "chrootés" présentant les caractéristiques mentionnées ci-dessus (selon SCO, de le protéger contre un programme d'exploitation connu).

Ce mécanisme est l'ajout d'une "option" (activée par défaut) "CHROOT_SECURITY" dans le module de gestion du système de fichiers. Cette option est paramétrable dans les fichiers de configuration de "mtune", "/etc/conf/dtune.d/fs" et "/etc/conf/mtune.d/fs".

Pour plus d'information :

 

Environnement des sockets réseau

Les "sockets" sont un modèle de communication inter-processus (IPC - "Inter Processus Communication") qui permet à divers processus de communiquer aussi bien sur une même machine qu'à travers un réseau TCP/IP.

Ces communications sont matérialisées sur le système par la création de répertoires temporaires dans le répertoire "/tmp".

SCO, dans son avis "SCOSA-2005.8", propose de renforcer la sécurité de tels répertoires en les obligeant à appartenir à l'utilisateur "root" et à avoir le "sticky-bit" activé. Dans le cas contraire, le système tentera de rétablir ces permissions, et si cette opération devient impossible, le système génèrera un message d'erreur. Cette protection permet d'éviter des tentatives de détournement de sockets au profit d'utilisateurs malveillants, ayant un compte sur le système, notamment au travers des sockets générées par l'environnement graphique X.

Nota : Sous Unix, le "sticky bit" (le "x" de l'exécutabilité pour le propriétaire est remplacé par un "t" dans l'affichage des droits) a une signification différente selon qu'il s'applique à un fichier ou à un répertoire :

  • Sur un fichier exécutable, lors de la terminaison d'une exécution, le texte exécutable n'est pas effacé, ce qui facilite et accélère son rechargement lors d'un nouvel appel.
  • Sur un répertoire autorisé en écriture, ce bit empêche un utilisateur d'effacer des fichiers ne lui appartenant pas. Ce mécanisme est surtout utilisé pour les répertoires temporaires.

Pour plus d'information :