Você pode tentar escrever uma regra do udev para fornecer nomes suficientes ao HDD suplementar.
Outra idéia: sempre que você pode definir um requisito de segurança como "Não é quem está fazendo, é como está fazendo", você está falando sobre imposição de tipos e, na maioria das distros do Linux, a TE é feita no nível MAC. A maior parte da minha experiência com MAC é com "SELinux"
Você não pode bloqueá-lo no nível do DAC, caso contrário, não seria capaz de executar E / S no dispositivo (não necessariamente uma falha do DAC como modelo de segurança, é apenas uma política atual do DAC que é baseada apenas na identidade, para todos os programas a execução sob uma identidade específica obtém direitos idênticos sem expressão administrativa adicional possível). O bloqueio no nível do MAC pode ser feito para que os componentes regulares do espaço do usuário não possam fazer nada com o arquivo de bloqueio, mas seus utilitários raiz e certas partes da plataforma. No Fedora, esse já é o caso dos dispositivos de bloco aparecendo com o tipo SELinux de fixed_disk_device_t
e grub, tendo bootloader_exec_t
o seguinte exemplo:
[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 ~]#
Considerando que dd
possui um rótulo bin_t regular:
[root@localhost ~]# ls -lhZ $(which dd)
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 /bin/dd
bin_t
(aparentemente) ainda pode escrever para dispositivos de bloco, mas a criação de um novo tipo de contexto de arquivo para fdisk
e dd
e escrever uma regra selinux para não permitir o novo tipo de acessar fixed_disk_device_t
não deve ser muito difícil. Você só precisaria fazê-lo para que as funções de usuário regulares não possam fazê-lo, mas os usuários com o sysadm_t
podem fazê-lo; lembre-se de fazer um newrole -r root:sysadm_r
antes de tentar re-particionar o disco ou executar um dd
dispositivo over-block (o que não deve ser ' Não é um grande negócio, já que não é como se você corresse fdisk
todos os dias o dia inteiro).
Provavelmente mais trabalho do que você procurava, mas o TE é o mecanismo que resolve o problema geral em que você está se deparando. Pessoalmente, a udev
regra é provavelmente a sua aposta mais segura. Menciono apenas o material da TE, caso você esteja interessado em resolver um conjunto maior de problemas semelhantes a este.