Buscar

SO-A1-Funcionamento do MAC do SELinux

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Funcionamento do MAC do SELinux
O Linux possui um alto nível de segurança, e este é um dos principais fatores que contribui para o usuário a optar por sistemas baseados em Unix. Existe uma proteção adicional que é possível adicioná-la ao sistema, o SELinux (Security-Enhanced Linux), que é um mecanismo de controle de acesso que restringe ao máximo os privilégios de usuário (inclusive o root), aumentando a proteção de usuários, arquivos e processos inseridos no sistema Linux. O SElinux pode ser implantado ao sistema, habilitando no Kernel o MAC (Mandatory Access Control). Com o SELinux instalado ao sistema Linux, é possível implementar políticas de segurança, e gerenciar as interações entre o usuário e as aplicações, processos e arquivos de sistema.
Os usuários do sistema operacional, podem ser gerenciados através do SELinux, criando regras, atribuindo papéis ou herdar permissões. Os usuários do SELinux não são os mesmos do Linux.
O Mandatory Access Control (MAC), provido pelo SELinux, restringe o nível de controle que os usuários tem sobre os objetos que eles criam, e adiciona categorias e rótulos a todos os objetos do sistema de arquivos, ou seja, a hierarquia do MAC é maior que o DAC (Discretionary Access Control), que é utilizado pela maioria dos sistemas, para prover segurança aos objetos, usuários, aplicações e etc.
Quando o MAC está implantado ao sistema, usuários e processos devem ter acesso adequado a estas categorias e rótulos para que então possam interagir com esses objetos, assim garantindo ao sistema uma defesa mais robusta e consistente.
Veja o exemplo a seguir de restrição de uso à um arquivo:
O usuário apache está sendo utilizado para executar o software Apache. Durante sua execução, devido uma falha de programação no código da página, o processo recebe uma requisição para acessar o arquivo /etc/passwd. As permissões do arquivo são as seguintes:
# ls -l /etc/passwd 
-rw-r--r-- 1 root root 1760 Out 23 11:12 /etc/passwd
Como aplicação do SELinux, o que se tem são rótulos contendo informações relevantes para a segurança de processos e arquivos. Essa informação é chamada de Contexto SELinux (SELinux context), e pode ser obtida utilizando a opção “-Z” no comando “ls”:
# ls -lZ /etc/passwd 
-rw-r--r--. root root system_u:object_r:etc_t:s0 /etc/passwd 
No arquivo acima temos o contexto do usuário (system_u), a regra (object_r), o tipo (etc_t) e o nível (s0). Estas informações são utilizadas para determinar o acesso do usuário ao arquivo. Agora, vamos voltar ao exemplo anterior, e considerar que neste sistema o SELinux está ativo. Verificaremos então o contexto do processo do Apache:
# ps axZ | grep httpd 
unconfined_u:system_r:httpd_t:s0 6906 ? Ss 0:00 /usr/sbin/httpd 
 Logo, como o contexto do processo não coincide com o contexto do arquivo, o acesso ao mesmo será NEGADO, mesmo que nas permissões DAC o mesmo tenha permissão para tanto.
Referência:
SELinux - Aprimorando a segurança do sistema Linux - E-tinet (e-tinet.com)
https://e-tinet.com/linux/selinux/#:~:text=%20Estrutura%20do%20SELinux%20%201%20SELinux%20user,ele%20classifica%20objetos%20%28arquivos%29%20e%20sujeitos...%20More%20
SELinux: Um importante aliado na Segurança de Servidores Linux (unicamp.br)
https://www.security.unicamp.br/blog/54-selinux-um-importante-aliado-na-seguranca-de-servidores-linux-parte-1/

Continue navegando