특정 SELinux/AVC 오류 해독

특정 SELinux/AVC 오류 해독

이 SELinux avc 오류(에 의해 생성됨 ausearch)는 나를 혼란스럽게 합니다.

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

저는 whereisFirefox에서 하나를 만들었고 그것이 어디에 있는지 들었습니다 /usr/bin/firefox. 에 대한 심볼릭 링크입니다 /opt/firefox/firefox. 내가 찾은 Firefox 컨텍스트에 대한 추가 검사:

 # 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

그러면 그것은 어디에서 오는가 initrc_t?

또한, 주제와 목표는 무엇입니까? 나는 이 주제가 다음과 같다고 확신합니다 /opt/firefox/firefox. 하지만 맥락을 고려하면 의심스럽습니다. 목표가 무엇인지 전혀 모르겠습니다.

게다가, execmem이 맥락에서 무엇입니까? (그 문제에 대해 메시지는 다음과 같습니다 syscall=9. 어떤 시스템 호출 번호가 무엇에 매핑되는지 어디서 찾을 수 있습니까?) Google은 AVC 오류에만 나타나는 것을 보여줍니다.

나는 이 질문에 대한 구체적인 답변보다는 avc 오류를 더 정확하게 찾아내는 답변을 선호합니다.

답변1

를 사용하면 ausearch -i시스템 -i호출이 사람들에게 더 유용하도록 "해석"됩니다. Syscall 9는 "mmap"으로, execmem 거부(SELinux가 쓰기 가능 또는 실행 가능 메모리 영역 생성을 프로세스에서 중지할 때 발생하는 것으로 보임)를 기반으로 의미가 있습니다. 이를 방지하는 것이 좋습니다. 하지만 반드시 활성화해야 하는 경우 allow_execstack부울 값을 true로 설정하여 활성화할 수 있습니다.

initrc_t실행 중인 파일이 아닌 실행 중인 사용자의 대상 입니다 . 감사 메시지로 판단하면 Firefox는 아마도 여기의 init 스크립트에서 시작되었을 것입니다(initrc_t를 기반으로 감사 UID는 -1"초기화되지 않음"이라고도 하며 TTY가 없습니다).

나는 이 문제가 이제 사라졌다고 생각합니다. 아마도 SELinux가 비활성화되었기 때문일 것입니다. 이것은 사람들이 일반적으로 이상한 SELinux 문제를 해결하는 방법인 것 같습니다. :) 하지만 어쨌든 다음 사람이 시작할 수 있도록 답변이 여기에 있습니다.

관련 정보