Mensagens de Negação AVC

Quando algum processo tenta realizar alguma operação não permitida pela política de segurança vigente e o SELinux está configurado para registrar a tentativa, isso irá gerar uma entrada no arquivo /var/log/audit/audit.log do tipo:

\fbox{
\begin{minipage}{0.95\textwidth} % 3/4 da largura de texto
Dec 4 17:11:0...
...ontext=system\_u:object\_r:hplip\_port\_t:s0 tclass=tcp\_socket
\end{minipage}}

Essa entrada no log é chamada de AVC deny messages. Alguns ítens no log ajudam a identificar o ocorrido, como tipo de acesso negado, número do processo, contexto de segurança de origem, contexto de segurança de destino, classe de objeto e objeto. As mensagens do AVC também podem ser exibidas utilizando o comando: ``ausearch -m avc''. Apesar dessa entrada do log assustar um pouco pela sua complexidade, existe um utilitário que auxilia na sua leitura, como o programa audit2why:

\fbox{
\begin{minipage}{0.95\textwidth} % 3/4 da largura de texto
\char93  audit...
...ow rules by running audit2allow with this audit message as input
\end{minipage}}

A maioria dos erros reportados como AVC são rótulos incorretos nos arquivos. Um exemplo que um label incorreto pode gerar AVCs:

Assim como no modelo de segurança DAC, os comandos ``cp'' e ``mv'' podem preservar ou não o contexto de segurança e permissão de acesso quando um arquivo é movido ou copiado, conforme a tabela 3.2.


Table Tabela 3.2:: Comportamento dos comandos cp e mv
Comando Comportamento
mv o arquivo mantém o rótulo original. Isso pode causar problemas como visto no exemplo acima, confusões ou perda de segurança.
cp cria uma cópia do arquivo usando o comportamento padrão baseado no domínio do processo que o chamou e o tipo do diretório destino. Por exemplo, copiar um arquivo para o diretório home de um usuário irá mudar o seu tipo para unconfined_home_t.
cp -p cria uma cópia do arquivo, preservando os atributos e os contextos de segurança, se possível.
cp -Z $<$usuário:papel:tipo$>$ cria uma cópia do arquivo com os rótulos especificados. Sinônimo da opção -context.

Como muitos programas e scripts alteram os arquivos no /etc (como no exemplo o /etc/resolv.conf), foi criado um programa chamado ``restorecond''. Ele roda como um daemon que fica observando se o contexto de algum arquivo que está listado em
/etc/selinux/restorecond.conf foi modificado e o restaura automaticamente, tirando esse problema do administrador [WALSH 2006:2].

Jeronimo Zucco 2008-04-26