시스템의 다양한 부분과 자원에 액세스하려면 사용자는 사용 권한, 특권을 가지고 사용할 수 있는 응용프로그램 및 인증(대부분의 경우)이 필요합니다. 이 장에서는 Trusted Solaris 환경에서 데이터가 보호되는 방법의 확장된 예제를 제공합니다. 이것은 데이터 파일과 상호 작용하려는 프로세스에 액세스할 사용 권한을 부여하거나 거부하기 위해 사용자의 계정, 실행 파일, 프로세스 및 데이터 파일과 관련된 보안 속성이 어떻게 조합되는지 설명합니다.
Trusted Solaris는 다음을 조합하여 데이터를 보호합니다.
임의 액세스 제어(DAC) - 사용자가 설정한 UNIX 사용 권한 및 액세스 제어 목록
강제 액세스 제어(MAC) - 사이트의 보안 클리어런스 및 정보 보안 규칙
인증 및 특권 - 보안 관리자가 부여한 권한
이러한 제어 요소는 대략적으로 보안 속성으로 분류됩니다. 보안 속성은 보안 관련 Trusted Solaris 환경의 엔티티(파일, 디렉토리, 프로세스, 장치 또는 네트워크 인터페이스)의 등록 정보입니다. 보안 속성은 적용되는 곳에 따라 다음과 같이 분류됩니다.
사용자 계정 보안 속성
파일 보안 속성
프로세스 보안 속성
다음 그림은 Trusted Solaris 환경에서 보안 속성이 사용, 저장 및 유지관리되는 장소를 보여줍니다. 그림에서 왼쪽 열은 트랜잭션에서 보안 속성이 사용되는 장소를 나타내고, 가운데 열은 보안 속성 및 기타 정보를 저장하는 데이터베이스를 나타냅니다. 오른쪽 열은 관리자가 이 정보를 유지관리하는 데 사용하는 그래픽 도구를 나타납니다.
사용자의 보안 속성은 기타 계정 정보와 함께 tsoluser 데이터베이스에 저장됩니다. 이 데이터베이스는 사용자 관리자라는 도구를 통해 유지관리됩니다. 사용자 계정 정보는 7개의 범주로 구분됩니다. 각 범주는 사용자 관리자에서 액세스할 수 있는 별도의 대화 상자를 가지고 있습니다.
ID(Identity) - 사용자를 확인합니다.
홈(Home) - 홈 디렉토리 정보를 지정합니다.
암호(Password) - 암호 선택 방법 및 변경 기준을 정의합니다.
레이블(Labels) - 사용자의 레이블 범위 및 레이블 표시를 설정합니다.
프로파일(Profiles) - 사용자가 액세스할 응용프로그램 및 관련 보안 속성을 결정합니다.
역할(Roles) - 특수 기능으로 사용자의 액세스를 계정에 제공합니다.
유휴(Idle) - 워크스테이션이 사용되지 않을 최대 시간 및 최대 시간이 초과할 경우 취할 동작을 설정합니다.
역할은 로그인 후에 사용자가 가지는 간단한 특수 사용자 계정입니다. 지정된 역할 외에 다른 역할은 수행할 수 없습니다. 역할을 받은 사용자는 일련의 다른 보안 속성을 가지게 됩니다.
실행 파일의 보안 속성은 파일 관리자를 통해 유지관리됩니다. 파일 관리자의 선택 메뉴 및 팝업 메뉴에는 각 파일의 등록 정보, 특권 및 민감도 레이블(SL)을 변경할 수 있는 명령이 있습니다.
사용자가 일반 사용자로서 또는 역할에서 응용프로그램을 선택하면 실행 파일의 파일 보안 속성은 트랜잭션에서 역할을 실행합니다. 예를 들어, 사용자는 적절한 사용 권한 및 지배 SL 없이(사용자가 이를 무시하는 특권을 가지지 않은 경우) 실행 파일에 액세스할 수 없습니다.
실행 파일에 허용 특권과 강제 특권을 할당할 수 있습니다. 허용되지 않은 특권은 이 응용프로그램에서 사용할 수 없습니다. 허용 특권은 강제 특권으로서 할당되거나, 해당 사용자의 실행 프로파일 중 하나에 있는 응용프로그램에 할당된 상속 가능한 특권에 포함된 경우에 사용될 수 있습니다(특권에 대한 설명은 "특권 이해" 참조).
데이터 파일은 파일 보안 속성을 가지는 트랜잭션에서도 동작합니다. 이런 경우, 사용 권한 및 SL은 사용자가 호출한 프로세스가 데이터 파일에 액세스하도록 허가되는지를 결정합니다. 허용 특권과 강제 특권은 데이터 파일에 대해 사용될 수 있지만 실행 사용 권한(x)이 데이터 파일에서 의미가 없듯이 실제 의미는 없습니다.
프로세스 속성은 주로 사용자의 실행 프로파일에서 나옵니다. 강제 특권은 실행 파일의 파일 등록 정보에서 나옵니다. 사용자의 프로파일은 프로세스 및 관련 보안 속성을 호출할 수 있는 명령이나 동작을 포함합니다. 실행 프로파일은 tsolprof 데이터베이스에 저장되고 프로파일 관리자를 통해 유지관리됩니다. 프로파일 관리자에는 관련 보안 속성으로 실행 프로파일에 들어갈 수 있는 인증, 명령 및 동작의 세 가지 보기가 있습니다.
다음 그림은 데이터에 대해 동작하는 프로세스를 포함하는 트랜잭션을 보여주고 특정 보안 속성의 소스를 나타냅니다.
다음은 그림 2-2에 대한 설명입니다.
1. 사용자가 Trusted Solaris 환경에 들어갑니다 - Trusted Solaris 환경에 들어갈 때 사용자 이름과 암호를 입력해야 합니다. 이러한 입력 항목은 passwd 및 shadow 파일에 대해 확인됩니다. 사용자가 역할을 가지면 역할에 대한 암호도 입력해야 합니다. 감사를 위해, 사용자의 감사 UID는 언제나 역할 UID가 아니라 사용자의 개인 UID로 설정됩니다.
2. Trusted Solaris는 사용자 속성을 결정합니다 - Trusted Solaris 환경에 들어갈 때 사용자는 세션 유형(단일 또는 다중 레이블)의 적절한 SL에 대한 작업 공간 설정을 제공받습니다. 사용자가 다중 레이블 세션을 선택했으면 사용자는 사용자 계정에 할당된 최소 SL에서 해당 세션에서 허용된 최대 SL까지의 어떤 SL로든지 작업 공간 SL을 변경할 수 있습니다. 사용자의 UID 및 GID는 사용자가 특권을 사용하지 않고 액세스할 수 있는 파일을 결정합니다. 계정의 프로파일은 사용자에게 허가된 일련의 응용프로그램 및 보안 속성을 결정합니다. 사용자가 역할을 가지고 있으면 다른 응용프로그램과 보안 속성을 가집니다.
3. 사용자가 트랜잭션을 시도합니다 - 사이트가 All 실행 프로파일을 모든 사용자에게 지정하면 모든 사용자가 특권 없이 모든 명령이나 동작에 액세스할 수 있습니다. All 프로파일을 지정하지 않은 제한된 사이트에서 금지된 명령을 실행하면 command not in profile이라는 오류 메시지가 나타나며, 금지된 동작 아이콘은 인터페이스에 나타나지 않습니다. 또는 아이콘이 나타나 있는 경우에는 오류 메시지가 반환됩니다. Trusted Solaris가 프로파일에서 응용프로그램을 찾을 수 없으면 트랜잭션 요청이 거부됩니다.
4. Trusted Solaris는 주체(프로세스) 속성을 결정합니다 - 사용자가 응용프로그램을 선택하면 응용프로그램의 실행 파일 보안 속성의 조합에서 계정 보안 속성이 프로세스의 기능을 결정합니다. 응용프로그램이 들어 있는 프로파일은 상속 가능한 특권, 유효 UID/GID 및 프로세스의 최대 최소 민감도 레이블 보안 속성을 정의합니다. 인증은 이 프로파일에서와 이 UID에 할당된 기타 프로파일에서 사용할 수 있습니다. 실행 파일은 허용 특권과 강제 특권을 제공합니다.
5. Trusted Solaris는 객체(파일) 속성을 얻습니다 - 데이터 파일에 대한 액세스를 보호하는 보안 속성은 소유자, 그룹, ACL, 사용 권한 및 데이터 파일 SL입니다.
6. Trusted Solaris는 속성을 비교하고 인증을 확인합니다 - Trusted Solaris는 주체(프로세스) 속성을 객체(파일) 속성과 비교하여 트랜잭션을 허가할 것인지를 결정합니다. 다음은 몇 가지 테스트입니다.
프로세스의 민감도 레이블이 해당 파일의 디렉토리 레이블에 대해 지배적입니까? 지배적이지 않다면, 프로세스에 지배적이지 않은 상태로 디렉토리를 액세스할 수 있는 file_mac_search 특권이 있습니까?
프로세스의 사용 권한으로 해당 파일의 디렉토리에 액세스할 수 있습니까? 액세스할 수 없는 경우, 적절한 사용 권한 없이 디렉토리를 액세스할 수 있는 file_dac_search 특권이 있습니까?
프로세스의 민감도 레이블이 파일의 민감도 레이블에 대해 지배적입니까? 지배적이지 않다면, 프로세스에 지배적이지 않은 상태로 파일을 액세스할 수 있는 file_mac_read 특권이 있습니까?
프로세스의 사용 권한으로 파일에 액세스할 수 있습니까? 액세스할 수 없는 경우, 적절한 사용 권한 없이 파일에 액세스할 수 있는 file_dac_read 특권이 있습니까?
프로세스에 특수한 인증이 필요합니까?
두 예제에서, Sam이라는 사용자가 tar를 실행하여 testFile이라는 파일을 저장하려고 합니다. Sam은 tar를 실행할 수 있도록 허가 받고 testFile을 읽고 쓰는 데 필요한 사용 권한을 가지고 있습니다. 예제 1에서 Sam은 일반 사용자로서 트랜잭션을 시도하며, 실패합니다. 예제 2에서 Sam은 운영자 역할을 가정하여 트랜잭션을 성공적으로 완료합니다.
다음 그림에서 Sam의 사용자 계정은 All 실행 프로파일에 할당되었습니다. 이 프로파일은 특권 없이 tar에 액세스할 수 있게 합니다.
Sam이 tar를 사용하도록 허가 받으면 트랜잭션은 Trusted Solaris가 주체(tar 프로세스) 및 객체(testFile 파일)의 보안 속성을 모으고 비교하는 3단계부터 5단계까지를 진행합니다. 이 경우 조건부 테스트는 다음과 같습니다.
프로세스의 SL이 파일 및 디렉토리의 SL에 대해 지배적입니까? - Sam이 세션을 시작할 때 Sam의 세션 선택으로 인해 tar 프로세스의 SL는 C입니다. testFile 및 디렉토리도 프로세스의 SL이 지배하는 SL = C이므로(이 경우 동일함), 프로세스는 디렉토리를 읽기 위한 file_mac_search 특권이나 파일을 읽기 위한 file_mac_read 특권이 필요하지 않습니다.
프로세스의 사용 권한으로 파일의 디렉토리에 액세스할 수 있습니까? - Sam은 디렉토리 및 파일을 소유하고 있으므로 디렉토리에 액세스하기 위한 file_dac_search 특권이나 파일을 읽기 위한 file_dac_read 특권이 필요하지 않습니다.
프로세스에 특수한 인증이 필요합니까? - tar를 사용하면 사용 가능한 마그네틱 테이프 장치를 요청합니다. Sam은 관리자만 장치를 할당할 수 있는 보안 환경에서 작업합니다. Sam은 장치 할당 인증이 없으므로 트랜잭션을 완료할 수 없습니다.
Sam이 운영자 역할을 가정하면 아래 그림과 같이 트랜잭션이 성공합니다.
운영자 계정은 다른 파일들과 함께 할당된 Basic Media 실행 프로파일을 가지고 있습니다. Basic Media 실행 프로파일은 file_dac_search, file_dac_read, file_mac_read 및 기타 특권과 ADMIN_LOW에서 ADMIN_HIGH까지의 SL 범위를 갖는 tar 명령을 포함합니다. 이 경우에는 tar도 허용되므로, 트랜잭션은 3단계부터 5단계까지 진행됩니다. 이 때 트랜잭션은 다음과 같은 조건부 테스트를 통과합니다.
프로세스의 SL이 해당 파일 및 디렉토리의 SL에 대해 지배적입니까? - tar 프로세스의 SL은 Sam이 운영자 역할을 할 때 기본 SL인 ADMIN_LOW입니다. testFile 및 디렉토리의 SL은 C이므로, tar 프로세스는 SL을 지배하지 않고 file_mac_search 및 file_mac_read 특권을 실행해야 합니다.
프로세스의 사용 권한으로 해당 파일의 디렉토리에 액세스할 수 있습니까? - 운영자는 해당 디렉토리나 파일을 소유하지 않으므로 프로세스는 file_dac_search 및 file_dac_read 특권을 사용합니다.
프로세스에 특수한 인증이 필요합니까? - Sam은 일반 사용자로서는 실패했지만 Basic Media 실행 프로파일은 장치 할당 인증을 포함합니다. 운영자로서 Sam은 장치 관리자로부터 마그네틱 테이프를 할당하고 tar 트랜잭션을 수행할 수 있습니다.