Linux 파일 보안에서 DAC (파일 권한), ACL 및 MAC (SELinux)의 역할은 무엇입니까? 설명 / 확인

Linux 파일 보안에서 다른 역할 DAC, ACL 및 MAC에 대한 설명 / 확인 / 세련이 필요합니다.

문서에서 약간의 연구를 한 후에, 이것은 스택에 대한 나의 이해입니다.

  1. SELinux는 파일 객체에 대한 액세스를 허용해야합니다.
  2. 파일의 ACL을 (예를 들어, 만약 setfacl, getfacl명시 있도록하는 ACL 마운트가) / 개체에 대한 액세스를 거부, 더 이상의 처리가 필요하다.
  3. 그렇지 않으면 파일 권한 (rwxrwxrwx DAC 모델)에 달려 있습니다.

뭔가 빠졌습니까? 그렇지 않은 상황이 있습니까?



답변

프로세스가 파일에 대한 작업을 수행 할 때 Linux 커널은 다음 순서로 검사를 수행합니다.

  1. DAC (임의 액세스 제어) 또는 사용자 지시 액세스 제어. 여기에는 클래식 UNIX 스타일 권한 검사와 POSIX 액세스 제어 목록 (ACL) 이 모두 포함됩니다 . Classical UNIX 검사는 현재 프로세스 UID 및 GID와 설정된 모드 (읽기 / 쓰기 / eXecute)와 관련하여 액세스중인 파일의 UID 및 GID를 비교합니다. 액세스 제어 목록은 기존 UNIX 검사를 확장하여 권한 제어와 관련된 추가 옵션을 허용합니다.

  2. MAC (필수 액세스 제어) 또는 정책 기반 액세스 제어. 이것은 더 이상 실제 모듈이 아닌 LSM (Linux Security Modules) 을 사용하여 구현됩니다 (이전에는 사용되었지만 삭제되었습니다). 기존 UNIX 스타일 보안 검사 이외의 다른 모델을 기반으로 추가 검사를 수행 할 수 있습니다. 이러한 모든 모델은 어떤 상황에서 어떤 프로세스에 어떤 종류의 양식이 허용되는지를 설명하는 정책을 기반으로합니다.

다음은 온라인 Linux Cross Reference 링크로 내 답변을 뒷받침하는 inodes 액세스 (파일 액세스 포함) 예제입니다 . 주어진 ” function_name(filename : line)”은 3.14 버전의 Linux 커널 용입니다.

기능 inode_permission( FS / namei.c : 449 ) (파일 시스템 자체에 대한 읽기 권한 체크한다 sb_permission에서 FS / namei.c : 425 ) 후 호출 __inode_permission( FS / namei.c : 394 )의 읽기 / 쓰기를 확인 / 실행할 do_inode_permission( fs / namei.c : 368 ) (DAC) 의 inode에 대한 권한 및 POSIX ACL 및 security_inode_permission( security / security.c : 550 )의 LSM 관련 권한 (MAC)

이 주문 에는 단 하나의 예외 가있었습니다 (DAC, MAC) : mmap 검사에 대한 것이 었습니다. 그러나 이것은 3.15 버전의 Linux 커널 ( 관련 commit )에서 수정되었습니다.


답변

DAC== Discretionary Access Control, http://en.wikipedia.org/wiki/Discretionary_access_control
MAC == Mandatory Access Control, http://en.wikipedia.org/wiki/Mandatory_access_control
ACL == Access Control List, http://en.wikipedia.org/wiki/Access_control_list

ACL지정 제어가 제어의 방법에 의해 도포 될 DACMAC. MAC명시 적이며 중앙에서 제어되며 사용자에게 명시적인 권한이없는 한 개체에 대한 권한을 부여 할 수 없지만 사용자 DAC는 다른 사용자에게 액세스 할 수있는 개체에 대한 액세스 권한을 부여 할 수 있습니다.

MAC ACLs는 항상 요청에 먼저 적용되며 액세스가 거부되면 처리가 중지됩니다. 액세스가 허용되면 DAC ACLs가 적용되고 액세스가 거부되면 처리가 중지됩니다. MAC및에 의해 액세스 권한이 부여 된 경우에만 DAC ACL사용자가 요청한 개체에 액세스 할 수 있습니다.

SELinuxMACLinux에 대한 구현이며 (기타가 있음) 기존 rwx파일 권한은 소유 사용자 및 그룹과 결합하여 complete를 형성합니다 DAC ACL. SELinux‘정책은’본질적이다 MAC ACL.


답변

기발하게해서 죄송하지만 여기에있는 답변 중 일부 가 잘못 되었을 수도 있습니다. Fedora의 http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux/Working_with_SELinux-SELinux_Contexts_Labeling_Files.html 에서 직접 :

SELinux 정책 규칙은 DAC 규칙 다음에 확인됩니다. DAC 규칙이 먼저 액세스를 거부하면 SELinux 정책 규칙이 사용되지 않습니다.


답변