Vous pouvez essayer d'écrire une règle udev pour donner aux disques durs supplémentaires des noms suffisamment uniques.
Une autre idée: chaque fois que vous pouvez formuler une exigence de sécurité comme "Ce n'est pas qui le fait, c'est la façon dont ils le font", vous parlez d'application de type, et dans la plupart des distributions Linux, TE se fait au niveau MAC. La plupart de mon expérience MAC est avec "SELinux"
Vous ne pouvez pas le verrouiller au niveau du DAC, sinon vous ne seriez pas en mesure d'effectuer des E / S sur le périphérique (pas nécessairement une défaillance du DAC en tant que modèle de sécurité, c'est juste que la stratégie DAC actuelle est uniquement basée sur l'identité, donc tous les programmes exécutés sous une identité particulière obtiennent des droits identiques sans expression administrative supplémentaire possible). Le verrouillage au niveau MAC peut être effectué de sorte que les composants de l'espace utilisateur normal ne puissent rien faire avec le fichier de blocage, contrairement à vos utilitaires racine et à certaines parties de la plate-forme. Sur Fedora, c'est déjà un peu le cas avec les périphériques de bloc qui apparaissent avec le type SELinux fixed_disk_device_t
et grub ayant bootloader_exec_t
l'exemple suivant:
[root@localhost ~]# ls -lhZ $(which grub2-install)
-rwxr-xr-x. root root system_u:object_r:bootloader_exec_t:s0 /sbin/grub2-install
[root@localhost ~]# ls -lhZ /dev/sda
brw-rw----+ root disk system_u:object_r:fixed_disk_device_t:s0 /dev/sda
[root@localhost ~]# sesearch --allow | egrep bootloader | grep fixed
allow bootloader_t fixed_disk_device_t : lnk_file { read getattr } ;
allow bootloader_t fixed_disk_device_t : chr_file { ioctl read write getattr lock append open } ;
allow bootloader_t fixed_disk_device_t : blk_file { ioctl read write getattr lock append open } ;
[root@localhost ~]#
Alors qu'il dd
a une étiquette bin_t régulière:
[root@localhost ~]# ls -lhZ $(which dd)
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /bin/dd
bin_t
(apparemment) peut toujours écrire sur des périphériques bloqués, mais la création d'un nouveau type de contexte de fichier pour fdisk
et dd
et l'écriture d'une règle selinux pour interdire l'accès au nouveau type fixed_disk_device_t
ne devrait pas être trop difficile. Vous auriez juste besoin de le faire pour que les rôles d'utilisateur normaux ne puissent pas le faire mais les utilisateurs avec le sysadm_t
peuvent le faire, puis n'oubliez pas de faire un newrole -r root:sysadm_r
avant d'essayer de re-partitionner le disque ou de faire un dd
sur le périphérique de bloc (ce qui ne devrait pas t être une affaire énorme car ce n'est pas comme si vous couriez fdisk
tous les jours toute la journée).
Probablement plus de travail que ce que vous recherchiez, mais TE est le mécanisme qui résout le problème général que vous rencontrez. Personnellement, la udev
règle est probablement que vous êtes le pari le plus sûr. Je ne mentionne que les trucs TE au cas où vous souhaiteriez résoudre un ensemble plus large de problèmes similaires à celui-ci.