SELinux acessa apenas arquivos abertos

1

Estou estudando o SELinux.

Usando o SELinux, um binário pode ter permissão para acessar arquivos abertos por seu processo pai e nenhum outro arquivo?

Se não puder, então devemos aprimorá-lo.

    
por porton 19.12.2013 / 01:11

1 resposta

2

Sim, isso pode ser feito.

O SELinux é um sistema de rotulagem, e o acesso para executar operações diferentes em arquivos (mas também usuários, processos, ...) é concedido com base no contexto de segurança do processo de origem.

A política de referência define o contexto de segurança de um processo:

# ps -defZ | grep httpd
system_u:system_r:httpd_t:s0    root      1085     1  0 21:22 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

Neste exemplo, o contexto de segurança tem os seguintes elementos:

  • system_u : o usuário do SELinux
  • system_r : o papel do SELinux
  • httpd_t : o atributo de aplicação do tipo SELinux.
  • s0 : o intervalo MLS / MCS, relevante em políticas diferentes da segmentada por padrão.

E também define em quais contextos de segurança um processo pode ter acesso:

# ll -dZ /srv/www/html/
drwxr-s---. root apache system_u:object_r:httpd_sys_content_t:s0 /srv/www/html/

# sesearch -s httpd_t -t httpd_sys_content_t -c file -p read -Ad
Found 1 semantic av rules:
   allow httpd_t httpd_sys_content_t : file { ioctl read getattr lock open } ;

No exemplo acima, dado o contexto de segurança do diretório /srv/www/html , você pode encontrar usando sesearch(1) se estiver definido na política que um processo rotulado httpd_t pode ter acesso de leitura a um diretório rotulado httpd_sys_content_t .

Verifique a página de manual de sesearch para mais opções.

Assim, para que um processo bifurcado seja restrito para acessar arquivos abertos por seu pai, você deve garantir que exista uma política que permita essa operação.

    
por 11.06.2014 / 22:14