Sécurisation des systèmes et des périphériques connectés dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Allocation de périphériques

L'allocation de périphériques peut protéger votre site contre la perte de données, les virus informatiques et d'autres failles de sécurité. Contrairement à la stratégie de périphériques, l'allocation de périphériques est facultative. L'allocation de périphériques utilise des autorisations pour limiter l'accès aux périphériques allouables.

Composants de l'allocation de périphériques

    Les composants du mécanisme d'allocation de périphériques sont les suivants :

  • Le service svc:/system/device/allocate. Pour plus d'informations, reportez-vous à la page de manuel smf(5) et aux pages de manuel concernant les commandes d'allocation de périphériques.

  • Les commandes allocate, deallocate, dminfo et list_devices. Pour plus d'informations, reportez-vous à la section Commandes d'allocation de périphériques.

  • Les profils de droits Device Management (gestion des périphériques) et Device Security (sécurité des périphériques). Pour plus d'informations, reportez-vous à la section Profils de droits Device Allocation (allocation de périphériques).

  • Les scripts de nettoyage de périphériques pour chaque périphérique allouable.

    Ces commandes et scripts utilisent les fichiers locaux suivants pour mettre en oeuvre l'allocation de périphériques :

  • Le fichier /etc/security/device_allocate. Pour plus d'informations, reportez-vous à la page de manuel device_allocate(4).

  • Le fichier /etc/security/device_maps. Pour plus d'informations, reportez-vous à la page de manuel device_maps(4).

  • Un fichier de verrouillage, dans le répertoire /etc/security/dev, pour chaque périphérique allouable.

  • Les attributs modifiés du fichier de verrouillage qui sont associés à chaque périphérique allouable.

Service d'allocation de périphériques

Le service svc:/system/device/allocate contrôle l'allocation de périphériques. Ce service est désactivé par défaut.

Profils de droits Device Allocation (allocation de périphériques)

Les profils de droits Device Management (gestion des périphériques) et Device Security (sécurité des périphériques) sont requis pour gérer et allouer des périphériques, respectivement.

    Ces profils de droits comprennent les autorisations suivantes :

  • solaris.device.allocate : nécessaire pour allouer un périphérique

  • solaris.device.cdrw : nécessaire pour lire et écrire un CD-ROM

  • solaris.device.config : nécessaire pour configurer les attributs d'un périphérique

  • solaris.device.mount.alloptions.fixed : nécessaire pour spécifier des options de montage lors du montage d'un périphérique fixe

  • solaris.device.mount.alloptions.removable : nécessaire pour spécifier des options de montage lors du montage d'un périphérique amovible

  • solaris.device.mount.fixed : nécessaire pour monter un périphérique fixe

  • solaris.device.mount.removable : nécessaire pour monter un périphérique amovible

  • solaris.device.revoke : nécessaire pour révoquer ou récupérer un périphérique

Commandes d'allocation de périphériques

Avec les options en majuscules, les commandes allocate, deallocate et list_devices sont des commandes d'administration. Dans le cas contraire, ces commandes sont des commandes d'utilisateur. Le tableau suivant répertorie les commandes d'allocation de périphériques.

Table 4-4  Commandes d'allocation de périphériques
Page de manuel pour les commandes
Description
Réserve un périphérique allouable pour une utilisation par un autre utilisateur.
Par défaut, un utilisateur doit disposer de l'autorisation solaris.device.allocate pour allouer un périphérique. Vous pouvez modifier le fichier device_allocate pour ne pas exiger l'autorisation de l'utilisateur. Tout utilisateur du système peut demander que le périphérique soit alloué pour l'utilisation.
Supprime la réserve d'allocation d'un autre périphérique.
Recherche un périphérique allouable par type, nom et nom du chemin d'accès complet.
Répertorie les statuts des périphériques allouables.
Répertorie tous les fichiers spécifiques à un périphérique qui sont associés à tout périphérique répertorié dans le fichier device_maps.
Avec l'option –U, répertorie les périphériques qui sont allouables ou alloués à l'ID utilisateur indiqué. Cette option vous permet de vérifier les périphériques allouables ou alloués à un autre utilisateur. Vous devez avoir l'autorisation solaris.device.revoke.
Autorisations pour les commandes d'allocation

Par défaut, les utilisateurs doivent avoir l'autorisation solaris.device.allocate pour réserver un périphérique allouable. Pour créer un profil de droits afin d'inclure l'autorisation solaris.device.allocate, reportez-vous à la section Autorisation des utilisateurs à allouer un périphérique.

Les administrateurs doivent disposer de l'autorisation solaris.device.revoke pour modifier l'état d'allocation d'un périphérique. Par exemple, l'option –U des commandes allocate et list_devices et l'option –F de la commande deallocate nécessitent l'autorisation solaris.device.revoke.

Pour plus d'informations, reportez-vous à la section Commandes sélectionnées nécessitant des autorisations du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .

Etat d'erreur d'allocation

Un périphérique est placé dans un état d'erreur d'allocation en cas d'échec des commandes deallocate ou allocate . Lorsqu'un périphérique allouable est dans un état d'erreur d'allocation, le périphérique doit être libéré de force. Seul un utilisateur ou un rôle bénéficiant du profil de droits Device Management (gestion des périphériques) ou Device Security (sécurité des périphériques) peut gérer un état d'erreur d'allocation.

La commande deallocate avec l'option –F force la libération. Vous pouvez également utiliser allocate -U pour affecter le périphérique à un utilisateur. Une fois le périphérique alloué, vous pouvez analyser les messages d'erreur qui s'affichent. Après la correction des problèmes liés au périphérique, vous pouvez forcer la libération.

Fichier device_maps

Les listes de périphériques sont créées lors de la configuration de l'allocation de périphériques. Le fichier /etc/security/device_maps inclut les noms de périphérique, types de périphérique, fichiers spécifiques au périphérique qui sont associés à chaque périphérique allouable.

Le fichier device_maps définit les mappages de fichiers spécifiques à un périphérique pour chaque périphérique, ce qui n'est pas intuitif dans de nombreux cas. Ce fichier permet aux programmes de découvrir les fichiers spécifiques à un périphérique à mapper aux périphériques. Vous pouvez utiliser la commande dminfo, par exemple, pour récupérer le nom et le type de périphérique, et les fichiers spécifiques au périphérique à spécifier lorsque vous paramétrez un périphérique allouable. La commande dminfo utilise le fichier device_maps pour rapporter ces informations.

Chaque périphérique est représenté par une entrée sur une seule ligne, au format suivant :

device-name:device-type:device-list
Exemple 4-11  Exemple d'entrée device_maps

L'exemple suivant montre une entrée dans un fichier device_maps.

audio0:\
audio:\
/dev/audio /dev/audioctl /dev/dsp /dev/dsp0 /dev/mixer0 /dev/sound/0 
/dev/sound/0ctl /dev/sound/audio810\:0mixer /dev/sound/audio810\:0dsp 
/dev/sound/audio810\:0 /dev/sound/audio810\:0ctl

Dans le fichier device_maps, les lignes peuvent être terminées par une barre oblique inverse (\) pour poursuivre l'entrée sur la ligne suivante. Des commentaires peuvent également être inclus. Un signe dièse (#) introduit des commentaires sur le texte suivant jusqu'à la prochaine nouvelle ligne qui n'est pas immédiatement précédée d'un backslash. Les espaces en début et fin sont autorisés dans n'importe quel champ. Les champs sont définis de la manière suivante :

device-name

Spécifie le nom du périphérique. Pour obtenir une liste des noms de périphériques courants, reportez-vous à la section Affichage d'informations d'allocation sur un périphérique.

device-type

Spécifie le type de périphérique générique. Le nom générique est le nom de la classe de périphériques, comme st, fd, rmdisk ou audio. Le champ device-type regroupe logiquement les périphériques liés.

device-list

Répertorie les fichiers spécifiques à un périphérique qui sont associés au périphérique physique. device-list doit contenir tous les fichiers spécifiques qui permettent d'accéder à un périphérique en particulier. Si la liste est incomplète, un utilisateur malveillant peut toujours obtenir ou modifier des informations privées. Les entrées valides pour le champ device-list reflètent les fichiers de périphériques qui sont situés dans le répertoire /dev.

Fichier device_allocate

Vous pouvez modifier le fichier /etc/security/device_allocate pour rendre des périphériques allouables non allouables ou pour ajouter de nouveaux périphériques.

Une entrée dans le fichier device_allocate ne signifie pas que le périphérique peut être alloué, sauf si cette entrée le définit comme tel.

Dans le fichier device_allocate, chaque périphérique est representé par une entrée sur une seule ligne dans le format suivant :

device-name;device-type;reserved;reserved;auths;device-exec

Voici un exemple de fichier device_allocate.

st0;st;;;;/etc/security/lib/st_clean
fd0;fd;;;;/etc/security/lib/fd_clean
sr0;sr;;;;/etc/security/lib/sr_clean
audio;audio;;;*;/etc/security/lib/audio_clean

Notez l'astérisque (*) dans le cinquième champ de l'entrée de périphérique audio.

Dans le fichier device_allocate, les lignes peuvent être terminées par une barre oblique inverse (\) pour poursuivre l'entrée sur la ligne suivante. Des commentaires peuvent également être inclus. Un signe dièse (#) introduit des commentaires sur le texte suivant jusqu'à la prochaine nouvelle ligne qui n'est pas immédiatement précédée d'un backslash. Les espaces en début et fin sont autorisés dans n'importe quel champ. Les champs sont définis de la manière suivante :

device-name

Spécifie le nom du périphérique. Pour obtenir une liste des noms de périphériques courants, reportez-vous à la section Affichage d'informations d'allocation sur un périphérique.

device-type

Spécifie le type de périphérique générique. Le nom générique est le nom de la classe de périphériques, tel que st, fd et sr. Le champ device-type regroupe logiquement les périphériques liés. Lorsque vous rendez un périphérique allouable, récupérez le nom du périphérique du champ device-type dans le fichier device_maps.

réservé

Oracle réserve les deux champs qui sont marqués reserved pour une utilisation ultérieure.

auths

Indique si le périphérique peut être alloué. Un astérisque (*) dans ce champ indique que le périphérique n'est pas allouable. Une chaîne d'autorisation ou un champ vide indique que le périphérique est allouable. Par exemple, la chaîne solaris.device.allocate dans le champ auths indique que l'autorisation solaris.device.allocate est requise pour allouer le périphérique. Un signe arobase (@) dans ce fichier indique que le périphérique est allouable par n'importe quel utilisateur.

device-exec

Fournit le nom de chemin d'un script à invoquer pour une manipulation spéciale, telle que le nettoyage et la protection contre la réutilisation des objets durant le processus d'allocation. Le script device-exec est exécuté chaque fois qu'une commande deallocate est effectuée sur le périphérique.

Par exemple, l'entrée suivante pour le périphérique sr0 indique que l'unité de CD-ROM est allouable par un utilisateur ayant l'autorisation solaris.device.allocate :

sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean

Vous pouvez accepter les périphériques par défaut et leurs caractéristiques définies. Après l'installation d'un nouveau périphérique, vous pouvez modifier les entrées. Tout périphérique devant être alloué avant l'utilisation doit être défini dans les fichiers device_allocate et device_maps pour le système de ce périphérique. Actuellement, les lecteurs de bande de cartouche, unités de disquette, unités de CD-ROM, périphériques de médias amovibles et puces audio sont considérés comme allouables. Ces types de périphériques disposent de scripts de nettoyage de périphériques.


Remarque -  Les lecteurs de bande Xylogics et Archive utilisent également le script st_clean fourni pour les périphériques SCSI. Vous devez créer vos propres scripts de nettoyage de périphériques pour d'autres périphériques, tels que des terminaux, des tablettes graphiques et d'autres périphériques allouables. Le script doit remplir des critères de réutilisation des objets pour ce type de périphérique.

Scripts de nettoyage de périphériques

L'allocation de périphériques satisfait en partie ce que les auditeurs de sécurité appellent les besoins en matière de réutilisation des objets. Le script device-clean remplit l'exigence de sécurité selon laquelle toutes les données utilisables doivent être purgées d'un périphérique physique avant sa réutilisation. Les données sont effacées avant que le périphérique ne devienne allouable par un autre utilisateur. Par défaut, les lecteurs de bande de cartouche, les unités de disquette, les unités de CD-ROM et les périphériques audio nécessitent des scripts de nettoyage de périphériques, qui sont fournis par Oracle Solaris. Cette section décrit les actions effectuées par les scripts de nettoyage de périphériques.

Script de nettoyage de périphériques pour bandes

    Le script de nettoyage de périphériques st_clean prend en charge trois périphériques à bande :

  • Bande SCSI ¼ pouces

  • Bande Archive ¼ pouces

  • Bande Open-reel ½ pouces

Le script st_clean utilise l'option –rewoffl avec la commande mt pour nettoyer le périphérique. Pour plus d'informations, reportez-vous à la page de manuel mt(1). Si le script s'exécute pendant l'initialisation du système, il interroge le périphérique pour déterminer si celui-ci est en ligne. Si le périphérique est en ligne, le script détermine si le périphérique dispose de supports. Les périphériques à bande ¼ pouces disposant de médias à l'intérieur sont placés dans l'état d'erreur d'allocation. L'état d'erreur d'allocation oblige l'administrateur à nettoyer manuellement le périphérique.

En fonctionnement normal du système, lorsque la commande deallocate est exécutée en mode interactif, l'utilisateur est invité à supprimer le média. La libération est reportée jusqu'à ce que le média soit supprimé du périphérique.

Scripts de nettoyage de périphériques pour disquettes et unités de CD-ROM

    Les scripts suivants de nettoyage de périphériques sont fournis pour les unités de disquette et de CD-ROM :

  • fd_clean, script – Script de nettoyage de périphériques pour les disquettes.

  • sr_clean, script – Script de nettoyage de périphériques pour les lecteurs de CD-ROM.

Les scripts utilisent la commande eject pour supprimer les médias de l'unité. Si la commande eject échoue, le périphérique est placé dans l'état d'erreur d'allocation. Pour plus d'informations, reportez-vous à la page de manuel eject(1).

Script de nettoyage de périphériques audio

Les périphériques audio sont nettoyés à l'aide d'un script audio_clean. Le script effectue un appel système ioctl AUDIO_GETINFO pour lire le périphérique. Le script effectue ensuite un appel système ioctl AUDIO_SETINFO pour rétablir la configuration par défaut d'un périphérique.

Ecriture de nouveaux scripts de nettoyage de périphériques

Si vous ajoutez plusieurs périphériques allouables au système, vous devrez peut-être créer vos propres scripts de nettoyage de périphériques. La commande deallocate transmet un paramètre aux scripts de nettoyage de périphériques. Le paramètre, qui est indiqué ici, est une chaîne qui contient le nom du périphérique. Pour plus d'informations, reportez-vous à la page de manuel device_allocate(4).

clean-script -[I|i|f|S] device-name

Les scripts de nettoyage de périphériques doivent renvoyer la valeur "0" en cas d'exécution correcte et une valeur supérieure à "0" en cas d'échec. Les options –I, –f et –S déterminent le mode d'exécution du script :

–I

Nécessaire uniquement lors de l'initialisation du système. Toutes les sorties doivent aller à la console du système. L'échec ou l'incapacité à éjecter de force le média doivent mettre le périphérique dans l'état d'erreur d'allocation.

–i

Similaire à l'option –I, à l'exception du fait que la sortie est supprimée.

–f

Pour le nettoyage forcé. L'option est interactive et suppose que l'utilisateur est disponible pour répondre aux invites. Un script exécuté avec cette option doit tenter de terminer le nettoyage si une partie du nettoyage échoue.

–S

Nettoyage standard. L'option est interactive et suppose que l'utilisateur est disponible pour répondre aux invites.