Linux 파일 보안에서 DAC(파일 권한), ACL 및 MAC(SELinux)은 어떤 역할을 합니까?

Linux 파일 보안에서 DAC(파일 권한), ACL 및 MAC(SELinux)은 어떤 역할을 합니까?

Linux 파일 보안에서 DAC, ACL 및 MAC가 수행하는 다양한 역할에 대한 설명/확인/세부화가 필요합니다.

문서를 조사한 결과 스택에 대한 나의 이해는 다음과 같습니다.

  1. SELinux에서는 파일 객체에 액세스할 수 있어야 합니다.
  2. 파일의 ACL(예: ACL 설치 setfacl의 경우 getfacl)이 객체에 대한 액세스를 명시적으로 허용/거부하는 경우 추가 처리가 필요하지 않습니다.
  3. 그렇지 않은 경우 파일의 권한(rwxrwxrwx DAC 모델)에 따라 다릅니다.

내가 뭐 놓친 거 없니? 이것이 사실입니까?아니요사례?

답변1

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

  1. 임의 액세스 제어(DAC)또는 사용자 지정 액세스 제어. 여기에는 고전적인 UNIX 스타일의 권한 확인이 포함됩니다.POSIX 액세스 제어 목록(ACL). 기존 UNIX 검사는 현재 프로세스 UID 및 GID를 액세스 중인 파일의 UID 및 GID와 비교하여 어떤 모드(읽기/쓰기/실행)가 설정되었는지 확인합니다. 액세스 제어 목록은 기존 UNIX 검사를 확장하여 더 많은 권한 제어 옵션을 허용합니다.

  2. 강제 액세스 제어(MAC)또는 정책 기반 액세스 제어. 이는 다음을 사용하여 달성됩니다.Linux 보안 모듈(LSM)더 이상 실제 모듈이 아닙니다(예전에는 있었지만 제거되었습니다). 이는 기존 UNIX 스타일 보안 검사 이외의 모델을 기반으로 하는 추가 검사를 지원합니다. 이러한 모든 모델은 어떤 프로세스가 어떤 컨텍스트에서 어떤 유형의 작업을 수행하도록 허용되는지 설명하는 정책을 기반으로 합니다.

다음은 내 대답을 뒷받침하는 온라인 링크가 포함된 inode 액세스(파일 액세스 포함)의 예입니다.리눅스 상호 참조. 주어진 "(filename:line)"은 function_nameLinux 커널 버전 3.14에 대한 것입니다.

기능 inode_permission(FS/이름i.c:449) 먼저 파일 시스템 자체에 대한 읽기 권한을 확인합니다 sb_permission(FS/이름i.c:425), 그런 다음 __inode_permission(FS/이름i.c:394) do_inode_permissioninode에서 읽기/쓰기/실행 권한과 POSIX ACL을 확인합니다(fs/namei.c:368) (DAC), 그 다음 security_inode_permission(보안/안전.c:550).

그 당시에는 오직하나이 순서에 대한 예외(DAC 다음 MAC): mmap 확인에 사용됩니다. 그러나 이 문제는 Linux 커널 3.15 버전에서 수정되었습니다(관련 제출물).

답변2

디지털-아날로그 변환기=임의 접근 제어
사과=필수 접근 제어
전방십자인대=액세스 제어 목록

ACL은 제어 방법(DAC 또는 MAC)을 통해 적용할 제어를 지정합니다. MAC는 명시적이고 중앙에서 제어되며 사용자가 명시적인 권한이 없는 한 개체에 권한을 부여하는 것을 허용하지 않는 반면 DAC는 사용자가 액세스 권한이 있는 개체에 대한 액세스 권한을 다른 사용자에게 부여할 수 있습니다.

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

SELinux는 Linux의 MAC 구현이며, 기존 rwx파일 권한이 속한 사용자 및 그룹과 결합되어 완전한 DAC ACL을 형성합니다. SELinux "정책"은 본질적으로 MAC ACL입니다.

setfacl파일 및 디렉터리에 대한 ACL을 여러 사용자 또는 그룹에 할당할 수 있도록 기본 파일 시스템 ACL이 확장되었습니다. 이것도 DAC 구현이므로 SELinux MAC ACL 이후에 적용됩니다.

답변3

조금 뜬금없어서 죄송합니다. 여기에 몇 가지 답변이 있을 것 같습니다.가능한부정확하다. 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 정책 규칙이 사용되지 않습니다.

관련 정보