파일에 할당될 때 system_u는 무엇을 의미합니까?

파일에 할당될 때 system_u는 무엇을 의미합니까?

내 질문은 다음과 같습니다

  1. system_u가 SELinux로 할당된 파일이 있는 경우 system_u/unconfined_u에 매핑된 사용자만 파일에 액세스할 수 있다는 의미입니까?
  2. 이 레이블이 실행 파일에 할당되면 이 exec를 실행하는 모든 사람이 system_u/system_r 레이블을 사용하여 프로세스를 시작한다는 의미입니까?
  3. 아니면 파일에 system_u 또는 system_r을 할당하는 것은 의미가 없습니다. 단지 자리 표시자일 뿐입니다.

답변1

system_u가 SELinux로 할당된 파일이 있는 경우 system_u/unconfined_u에 매핑된 사용자만 파일에 액세스할 수 있다는 의미입니까?

보안 모델에 따라 다르지만 일반적으로 보안 컨텍스트의 사용자 속성은 나머지 보안 컨텍스트를 Linux 사용자/그룹 ID에 연결하는 데만 사용됩니다. 이 보안 모델을 ID 기반 액세스 제어라고 합니다. 속성의 주요 목적은 다음 문제를 해결하는 것입니다. 기존 Linux 액세스 제어 모델을 어떻게 향상/확장/현대화할 수 있습니까? IBAC는 이 둘을 연결하는 역할을 합니다.

그러나 사용자 속성은 SELinux 사용자 ID(IBAC 분리)를 기반으로 엔터티를 분리하는 데 추가로 사용될 수도 있습니다. 그러나 이 보안 모델은 일반적으로 활성화되지 않습니다(그러나 selinux 참조 정책에는 이 옵션이 있습니다).

이 레이블이 실행 파일에 할당되면 이 exec를 실행하는 모든 사람이 system_u/system_r 레이블을 사용하여 프로세스를 시작한다는 의미입니까?

아니요, 하지만 (내 생각에는) 그럴 수 있습니다. 기본 동작은 소위 "기본 규칙"을 사용하여 보안 정책에서 사용자 정의할 수 있습니다. 기본적으로 파일을 실행할 때 새 프로세스는 "호출 프로세스"의 보안 컨텍스트에서 사용자 속성과 연결된 식별자를 상속합니다.

바라보다:https://github.com/SELinuxProject/selinux-notebook/blob/main/src/default_rules.md#default_user

아니면 파일에 system_u 또는 system_r을 할당하는 것은 의미가 없습니다. 단지 자리 표시자일 뿐입니다.

파일과 관련된 system_r을 거의 볼 수 없습니다. 대신 파일과 연결된 object_r을 볼 수 있습니다. object_r은 실제로 개체와 연결된 보안 컨텍스트에서 selinux 역할 보안 속성 필드를 채우는 데 사용되는 자리 표시자입니다. 이는 기본적으로 역할이 "역할 기반 액세스 제어"라는 보안 모델을 구현하는 데 사용되며 이 모델은 파일이 아닌 사용자 프로세스에만 적용되기 때문입니다. 선택적으로 이 속성을 추가로 사용하여 역할 식별자를 기반으로 파일에 대한 액세스를 분리할 수 있는 RBAC 분리와 같은 사용자 정의 보안 모델을 적용할 수 있습니다.

보안 컨텍스트의 각 필드에는 최소한 하나의 의미가 있습니다. 이러한 필드와 관련된 속성 및 식별자는 보안 모델에 해당하며 보안 모델은 "특정 보안 문제를 해결하도록 설계되었습니다." 유일한 예외는 object_r 역할 식별자이지만 역할에 따라 파일에 대한 액세스가 분리되지 않았음을 알려주기 때문에 이 역시 의미가 있습니다.

관련 정보