Decifrando um erro específico do SELinux / AVC

0

Este erro avc do SELinux (como gerado por ausearch ) me confundiu.

time->Fri Nov 13 16:04:49 2015
type=PROCTITLE msg=audit(1447452289.136:242): proctitle="/opt/firefox/firefox"
type=SYSCALL msg=audit(1447452289.136:242): arch=c000003e syscall=9 success=yes exit=140443907256320 a0=0 a1=10000 a2=7 a3=22 items=0 ppid=3742 pid=4212 auid=4294967295 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=(none) ses=4294967295 comm="firefox" exe="/opt/firefox/firefox" subj=system_u:system_r:initrc_t:s0 key=(null)
type=AVC msg=audit(1447452289.136:242): avc:  denied  { execmem } for  pid=4212 comm="firefox" scontext=system_u:system_r:initrc_t:s0 tcontext=system_u:system_r:initrc_t:s0 tclass=process permissive=1

Eu faço um whereis no firefox e me disseram que ele está em /usr/bin/firefox . Este é um link simbólico para /opt/firefox/firefox . Além disso, verificando o contexto do firefox eu acho:

 # ls -Z /usr/bin/firefox 
 system_u:object_r:bin_t:SystemLow /usr/bin/firefox
 # ls -Z /opt/firefox/firefox
 system_u:object_r:usr_t:SystemLow /opt/firefox/firefox

Então, de onde veio o initrc_t ?

Além disso, quais são o assunto e o alvo? Tenho certeza que o assunto é /opt/firefox/firefox mas, dado o contexto, estou tendo dúvidas. Qual é o alvo, estou totalmente no escuro.

Além disso, o que é execmem neste contexto? (Por falar nisso, a mensagem diz syscall=9 . Onde posso descobrir o que os números syscall mapeiam para quê?) O Google só mostra isso aparecendo em erros avc.

Eu preferiria uma resposta para descobrir melhor os erros de avc, em vez de uma resposta específica para esse problema.

    
por TLOlczyk 16.11.2015 / 02:24

1 resposta

0

Se você usar ausearch -i , o -i "interpretará" os syscalls para que eles sejam mais úteis para as pessoas. Syscall 9 é "mmap", o que faz sentido com base na negação execmem (o que parece acontecer quando o SELinux impede que um processo crie uma região de memória gravável ou executável). É uma boa ideia parar isso - mas, se for absolutamente necessário ativá-lo, defina o allow_execstack booleano como verdadeiro.

O initrc_t é o destino do usuário em execução, não o arquivo que está sendo executado. Parece que a mensagem de auditoria como o Firefox pode estar sendo iniciado a partir de um script de inicialização aqui (baseado no initrc_t, o UID de auditoria sendo -1 - AKA "não inicializado" e não havendo TTY).

Eu assumo que este problema já foi resolvido, provavelmente pelo SELinux sendo desativado; parece que as pessoas geralmente consertam problemas estranhos do SELinux. :) Mas aqui está uma resposta para começar a próxima pessoa de qualquer maneira.

    
por 22.12.2017 / 05:49

Tags