Trusted Solaris의 강제 액세스 제어에 있어 가장 핵심적인 사항은 바로 민감도 레이블(SL)과 클리어런스입니다. 이들 기능을 사용하면 어떤 사용자가 어떤 파일과 디렉토리에 액세스할 수 있는지를 결정할 수 있습니다. 또한 선택 기능인 정보 레이블(IL)을 활용하여 문서에 포함된 정보의 민감도를 추적할 수도 있습니다.
민감도 레이블과 정보 레이블은 프로그래머들에게는 매우 중요한 CMW 레이블이라는 구조에 통합되어 있습니다. 그러나 일반적으로 민감도 레이블과 정보 레이블은 독립된 엔티티로 간주할 수 있습니다.
이 절에서는 레이블, label_encodings 파일(모든 시스템 레이블의 원본) 및 사용자가 사용할 수 있는 레이블을 결정하는 여러 가지 요소와의 관계를 설명합니다.
Trusted Solaris는 보안 관련 트랜잭션이 시도될 때마다 개입합니다. Trusted Solaris는 액세스하는 엔티티와 액세스되는 엔티티의 민감도 레이블을 비교한 다음 두 레이블 사이의 지배 관계에 따라 트랜잭션을 허용하거나 허용하지 않습니다(아래 설명 참조). 그런 다음 두 엔티티의 정보 레이블을 비교하여 필요한 경우 이에 따른 문서의 정보 레이블을 부동(상승)시킵니다. (Trusted Solaris 사용 설명서의 제1장, "Trusted Solaris 소개 "에서 "정보 트랜잭션 감시" 참조)
엔티티의 레이블(민감도 또는 정보)은 다음 두 가지 조건이 충족되는 경우 상대 엔티티의 레이블에 대해 지배 관계에 있다라고 합니다.
첫 번째 엔티티의 민감도 레이블 분류 등급 구성 요소가 두 번째 엔티티의 분류 등급 구성 요소와 같거나 높다. (보안 관리자가 label_encodings 파일의 분류 등급에 번호를 할당하며, 지배 관계를 결정할 때 이들 번호가 비교됩니다.)
첫 번째 엔티티의 구획 집합(정보 레이블의 경우 표시도 포함)이 두 번째 엔티티의 구획(표시 포함)을 모두 포함한다.
이 두 레이블이 동일한 분류 등급과 동일한 구획 집합(정보 레이블의 경우 표시 포함)을 갖는 경우, 이들 레이블은 동등한 관계에 있다라고 합니다. 이런 경우에는 서로에 대해 대등한 지배 관계를 이루므로 액세스가 허용됩니다. 한 레이블의 분류 등급이 더 높거나, 이 레이블이 다른 레이블의 구획을 모두 포함하거나, 또는 두 가지 조건이 모두 충족되는 경우 첫 번째 레이블이 두 번째 레이블에 대해 완전한 지배 관계에 있다라고 합니다. 두 레이블 중 어느 것도 다른 레이블에 대한 지배 관계가 성립되지 않는 경우, 이 두 레이블은 분리되어 있다 또는 비교 불가능하다라고 합니다.
다음 표는 레이블 간의 지배 관계를 비교한 예제입니다.
표 1-1 레이블 관계 예제
레이블 1 |
관계 |
레이블 2 |
---|---|---|
TOP SECRET A B |
(엄격히) 지배 |
SECRET A |
TOP SECRET A B |
(엄격히) 지배 |
SECRET A B |
TOP SECRET A B Eye's Only |
(엄격히) 지배 |
SECRET A B Eye's Only |
TOP SECRET A B |
(엄격히) 지배 |
TOP SECRET A |
TOP SECRET A B |
지배 관계(동등) |
TOP SECRET A B |
TOP SECRET A B |
분리되어 있음 |
TOP SECRET C |
TOP SECRET A B |
분리되어 있음 |
SECRET C |
TOP SECRET A B |
분리되어 있음 |
SECRET A B C |
분류 등급, 구획, 표시 및 관련 규칙과 같은 시스템의 모든 레이블 구성 요소는 label_encodings라는 파일(/etc/security/tsol/에 위치)에 저장됩니다. 해당 사이트에 대한 label_encodings 파일 설정은 보안 관리자가 담당하며, 레이블 인코딩 파일에는 다음과 같은 내용이 수록됩니다.
구성 요소 정의 - 필요한 조합 및 제약 조건에 대한 규칙을 포함한 분류 등급, 민감도 레이블, 클리어런스 및 정보 레이블의 정의
인쇄 사양 - 인쇄 배너, 트레일러, 머리글, 바닥글 및 기타 출력물의 보안 기능에 대한 식별 및 취급 정보
사용자 정의 - 레이블 색상 코드, 분류 등급의 대체 이름, 구획, 그래픽 인터페이스 표시 및 기타 항목 등에 대한 로컬 정의
label_encodings 파일에 대한 자세한 내용은 label_encodings(4) 온라인 참조 페이지와 Trusted Solaris Label Administration 및 Compartmented Mode Workstation Labeling: Encodings Format을 참조하십시오.
시스템에는 여러 개의 레이블이 존재하므로 레이블은 최소, 최대 및 기타 제약 조건에 의해 정의되는 레이블 범위의 측면에서 이해하는 것이 좋습니다. 레이블 범위는 사용자 또는 사용자 클래스가 사용할 수 있는, 잠재적으로 사용 가능한 민감도 레이블 집합입니다. 레이블 범위는 최대 레이블과 최소 레이블 사이에 있는 레이블의 모든 조합처럼 단순하지는 않으며, 레이블 인코딩 파일에는 특정 조합에 대해 자격을 부여하지 않는 규칙이 포함되어 있을 수 있습니다. 레이블은 범주에 포함될 수 있도록 형식이 잘 구성되어 있어야 합니다. 즉 레이블 인코딩 파일에 있는 모든 적용 가능한 규칙에 따라 허용되어야 합니다. 반면 클리어런스의 형식은 레이블처럼 잘 구성될 필요는 없습니다. 예를 들어, 레이블 인코딩 파일이 민감도 레이블에 구획 A, B 및 C의 조합을 허용하지 않는다고 가정하면, TS A B C는 유효 클리어런스일 수는 있지만 유효 민감도 레이블은 될 수 없습니다. 클리어런스는 TS A, TS B 및 TS C로 레이블된 파일에 대해 액세스를 허용합니다.
Trusted Solaris는 ADMIN_HIGH 및 ADMIN_LOW라는 두 개의 특수 관리 레이블을 제공하는데, 이들 레이블은 민감도 레이블, 정보 레이블 및 클리어런스로 사용됩니다. 필요한 경우 label_encodings 파일에서 이 두 레이블의 이름을 변경할 수 있습니다. 이들 레이블은 일반 사용자가 아닌 관리자를 위한 것입니다.
ADMIN_HIGH는 시스템에서 민감도가 가장 높은 레이블이며, 관리 데이터베이스나 감사 내역과 같은 시스템 데이터가 노출되는 것을 방지합니다. 일반적으로 관리 역할을 수행하는 경우에는 ADMIN_HIGH에서 작업하거나 또는 현재 민감도 레이블에서 읽을 수 있는 특권으로 ADMIN_HIGH로 레이블 표시된 데이터를 읽을 수 있어야 합니다.
ADMIN_LOW는 시스템에서 가장 낮은 민감도 레이블입니다. 강제 액세스 제어는 해당 사용자가 민감도 레이블보다 낮은 민감도 레이블로 파일에 데이터 쓰기를 허용하지 않습니다. 따라서 파일에 가장 낮은 민감도 레이블인 ADMIN_LOW를 적용시키면 일반 사용자들은 파일을 읽을 수는 있지만 쓸 수는 없습니다. ADMIN_LOW는 일반적으로 공용 실행 파일과 구성 파일을 보호하는 것으로서, 파일이 수정되는 것을 방지합니다. ADMIN_LOW에서 작업하는 사용자나 또는 쓰기 특권을 가진 사용자만이 파일에 쓸 수 있기 때문입니다.
인가 범위는 사용자 클래스에 대한 레이블 범위입니다. 이 범위는 조직의 보안 정책의 일부로서 보안 관리자가 승인합니다. label_encodings 파일에서 정의된 인가 범위에는 다음의 두 가지가 있습니다.
시스템 인가 범위
사용자 인가 범위
시스템 인가 범위는 관리자를 위한, 잠재적으로 사용할 수 있는 민감도 레이블 및 정보 레이블의 완전한 집합입니다. 시스템 인가 범위에는 ADMIN_HIGH 및 ADMIN_LOW가 포함되며 label_encodings 파일의 규칙에 의해 제한됩니다. 시스템 인가 범위의 규칙에 따라 시스템에 허가될 가능성이 전혀 없는 레이블 조합에는 자격이 부여되지 않습니다.
다음 그림은 시스템 인가 범위에서 허용된 레이블에 대해 규칙이 어떻게 적용되는지 보여주는 예제입니다.
그림 1-1 (a)는 분류 등급 TS(TOP SECRET), S(SECRET) 및 C(CONFIDENTIAL)와 구획 A 및 B로 만들 수 있는 모든 조합을 나타냅니다.
그림 1-1 (b)는 label_encodings 파일의 REQUIRED COMBINATIONS 섹션의 일반적 규칙 및 효과를 나타냅니다. 화살표는 규칙에 의해 자격이 부여되지 않은 레이블을 가리키고 있으며 이들 레이블에는 선이 그어져 있습니다. 구문 B A는 B를 구획으로 가진 레이블은 모두 A를 포함해야 함을 의미합니다. 반대의 경우는 적용되지 않습니다. 구획 A는 다른 구획과 조합할 필요가 없기 때문입니다. 구획 B는 A와 조합할 수 있으므로 TS B, S B 및 C B 레이블은 형식이 잘 구성되지 않습니다. 따라서 이들은 시스템 인가 범위를 벗어납니다.
사용자 인가 범위는 단일 사용자가 액세스 가능한 최대 레이블 집합(시스템 인가 범위에서)입니다. 이 범위는 시스템 인가 범위의 일부로서 ADMIN_HIGH 및 ADMIN_LOW가 제외되며 label_encodings 파일의 ACCREDITAION RANGE 부분에 있는 규칙 집합의 제약을 받습니다. 사용자 인가 범위에 대한 규칙에 따라 관리자에게만 허가된 레이블 조합에 대한 자격이 부여되지 않습니다. 다음 그림의 사용자 인가 범위는 ACCREDITATION RANGE 섹션에 설명된 3개의 규칙 유형과 이들 유형이 사용자 인가 범위에 가진 효과를 나타내는 예제의 연장입니다. 화살표는 특정 규칙에 의해 허용된 양호한 형식 구성 상태의 레이블을 가리킵니다.
위의 그림과 같이 사용자 인가 범위에는 ADMIN_HIGH 및 ADMIN_LOW가 제외됩니다. 여기에는 TS B를 제외한 위에서 언급한 REQUIRED COMBINATION 규칙 B A에 의해 배제된(같은 이유로 인해 S B 및 C B는 허용되지 않음) 모든 TS 조합이 포함됩니다. S A B가 S 분류 등급을 위한 유일한 유효 조합입니다. C A를 제외한 모든 C 조합이 유효합니다(C B는 이미 배제되었음을 상기하십시오).
label_encodings 파일은 사용자가 사용할 수 있는 레이블에 대해 제약 조건을 추가로 부과합니다. 최소 클리어런스는 관리자가 사용자에게 할당할 수 있는 최저의 기본 클리어런스를 정의합니다. (인가) 최소 민감도 레이블은 Trusted Solaris 세션 동안 관리자가 사용자에게 할당하여 작동하도록 할 수 있는 양호한 형식의 최저 민감도 레이블입니다(이 최소 민감도 레이블은 시스템 전체에 적용되므로 개별 계정에 할당되는 최소 민감도 레이블과 혼동하면 안됩니다). 항상 그런 것은 아니지만 최소 클리어런스와 최소 민감도 레이블은 대개 동일한 값으로 설정됩니다. 또한 label_encodings 파일에는 다른 필요한 레이블 조합 및 제약 조건에 관련된 규칙이 수록됩니다.
계정 레이블 범위는 개별 사용자 또는 역할이 사용할 수 있는 효과적 범위의 민감도 레벨이며, 사용자가 처음 로그인할 때 세션 민감도 레이블 및 클리어런스 대화 상자에서의 레이블 선택을 결정합니다(Trusted Solaris 사용 설명서의 제2장, "Trusted Solaris 환경 액세스 및 종료"에서 "세션 레벨 설정" 참조). 계정 레이블 범위에서 사용할 수 있는 레이블은 다음을 나타내는 함수입니다.
사용자 인가 범위의 정의 - 사용자는 사용자 인가 범위에서 자격이 부여되지 않은 민감도 레이블을 사용할 수 없습니다.
label_encodings 파일의 (인가) 최소 민감도 레이블 - 사용자에게 할당할 수 있는 민감도 레이블의 절대 최소값을 정의합니다.
tsoluser 데이터베이스의 사용자 클리어런스 - 계정 레이블 범위의 상한을 정의합니다.
tsoluser 데이터베이스에는 사용자 및 역할의 보안 속성이 수록되며 관리자가 사용자 관리자(User Manager)를 사용하여 편집합니다.
tsoluser 데이터베이스의 (계정) 최소 민감도 레이블 - 계정 범위의 하한을 설정합니다. 단, label_encodings 파일의 (인가) 최소 민감도 레이블에 의해 무시되는 경우는 예외로 합니다.
계정 레이블 범위는 사용자 인가 범위의 일부로서 label_encodings 파일의 최소 민감도 레이블에 의한 제약을 받습니다. 다음 그림에 이전 절의 인가 예제에 기초한 계정 레이블 범위가 예시됩니다.
이 예제의 사용자에게는 상한에서는 사용자 클리어런스인 TS A B의 제약을 받으며 하한에서는 (계정) 최소 민감도 레이블인 C의 제약을 받는 계정 범위가 있습니다. 이렇게 정의된 결과로서 사용자는 TS A B, TS A, TS 또는 S A B에서 로그인하도록 제약됩니다. 사용자 (계정) 최소 민감도 레이블은 C로서 C는 label_encoding 파일의 최소 민감도 레이블과 일치합니다. 이들 최소값이 다른 경우, 두 최소값 중 높은 것이 계정 범위의 하한을 설정합니다.
사용자 클리어런스를 사용자 (계정) 최소 민감도 레이블과 동일하게 설정하면 관리자는 효과적으로 사용자가 이 민감도 레이블에서 단일 레이블 세션을 하도록 할 수 있습니다.
세션 범위는 Trusted Solaris 세션 중 사용자가 사용할 수 있는 민감도 레이블 집합입니다. 이 범위는 다음과 같은 내용의 함수입니다.
사용자 계정 레이블 범위
사용자의 세션 모드 선택(단일 레이블 또는 다중 레이블)
세션 민감도 레이블 대화 상자(단일 레이블 세션의 경우) 또는 클리어런스 대화 상자(다중 레이블 세션의 경우)에 사용자가 입력하는 값
사용자 워크스테이션에 대한 레이블 범위
클리어런스 대화 상자에 나타나는 세션 클리어런스는 사용자 클리어런스로부터 (인가) 최소 클리어런스 및 (계정) 최소 보안 레이블 중 높은 레이블에 이르기까지 다양하며 이는 label_encodings 파일의 클리어런스 규칙 정의의 추가 조합이나 제약 조건에 따라 결정됩니다. 단일 레이블 세션을 선택하는 경우 사용자는 동일한 범위의 레이블로부터 선택이 가능하지만 이 역시 label_encodings 파일의 민감도 규칙 정의의 필요한 조합이나 제약 조건의 적용에 따라 결정됩니다.
로그인 장치에 범위를 부여할 수도 있습니다. device_allocate 파일에서 최소 민감도 레이블 및 최소 민감도 레이블을 지정하면 됩니다. 자세한 설명은 "Trusted Solaris에서 장치 액세스를 제어하는 방법"을 참조하십시오.
한 예제로서, 사용자는 그림 1-3의 S A B와 TS A B 사이에서 양호한 형식의 레이블을 사용하여 세션 클리어런스를 지정할 수 있습니다. 사용자 클리어런스가 최소 클리어런스를 지배하지 않는 경우 사용자는 로그인할 수 없습니다. 사용자의 (계정) 최소 민감도 레이블이 (인가) 최소 민감도 레이블보다 낮을 경우 (인가) 최소 민감도 레이블이 세션 범위의 하한을 정의합니다.
그림 1-4 (a)는 사용자가 S A B 세션 클리어런스로 다중 레이블 세션을 선택한 경우, 사용할 수 있는 민감도 레이블 범위를 나타내고 있는 예제의 연장입니다. S A B 및 C 사이에 다른 잠재 레이블이 허용되지 않았기 때문에 사용자는 효과적으로 S A B, C A B 또는 C에서만 작업할 수 있습니다.
그림 1-4 (b)는 사용자가 C A B 세션 민감도 레이블로 단일 레이블 세션을 선택한 경우의 레이블 범위를 보여줍니다. C A B는 최소 클리어런스 미만이지만 사용자가 클러어런스가 아닌 세션 민감도 레이블을 선택하기 때문에 C A B에 액세스할 수 있습니다. 이 세션은 단일 레이블 세션이므로 사용자는 한 레이블에서만 작업할 수 있습니다. 이 예제에서 S A B 또는 C가 선택할 수 있었지만 사용자는 C A B를 지정했습니다.
다음 그림은 이 예제에서 사용 가능한 민감도 레이블을 점진적으로 제거하는 것을 요약하여 보여줍니다. 레이블이 필터링되어 후속 범위에서는 나타나지 않는 범위에서 제거된 민감도 레이블에는 선이 그어져 있습니다.
표 1-2는 사용자가 선택한 세션에 기초한 세션 레이블의 한계 및 가용성을 나타내며 앞의 예제의 연장입니다. 왼쪽 열은 세션에서 사용되는 레이블 설정 유형입니다. 중간의 두 개 열은 다중 레벨 세션에, 그리고 오른쪽의 두 개 열은 단일 레벨 세션에 적용됩니다. General Case라는 레이블이 표시된 열은 레이블 유형의 결정 방식을 나타냅니다. Example이라고 표시된 열은 로그인할 때 사용자의 일반적인 세션 선택을 나타냅니다.
표 1-2 Trusted Solaris 세션의 레이블
|
다중 레벨 세션 |
단일 레벨 세션 |
||
---|---|---|---|---|
|
일반 사례 |
1번 예제: [SECRET A B] 클리어런스를 가진 다중 레벨 |
일반 사례 |
2번 예제: [SECRET A B] 세션 민감도 레이블을 가진 단일 레벨 |
초기 작업 공간 SL |
계정 레이블 범위의 최저 민감도 레이블 |
[CONFIDENTIAL] |
사용자가 지정한 세션 민감도 레이블 |
[SECRET A B] |
가용 작업 공간 SL |
세션 클리어런스까지 계정 레이블 범위의 모든 민감도 레이블 |
[CONFIDENTIAL] [CONFIDENTIAL A B] [SECRET A B] |
사용자가 지정한 세션 민감도 레이블 |
[SECRET A B] |
1번 예제에서 초기 작업 공간은 [CONFIDENTIAL]이며, 민감도 레이블은 사용자 계정 레이블 범위의 하한으로 설정됩니다. 사용자는 [CONFIDENTIAL], [CONFIDENTIAL A B] 또는 [SECRET A B]의 민감도 레이블에서 작업할 수 있습니다.(사용자는 작업 공간의 민감도 레이블을 변경하고 버튼을 눌러 민감도 레이블을 전환합니다).
2번 예제에서 사용자의 초기 작업 공간 SL은 [SECRET A B]입니다. 이것은 단일 레벨 세션이기 때문에 [SECRET A B]만을 유일한 작업 공간 SL로 사용할 수 있습니다.
관리자는 자동으로 민감도 레이블, 정보 레이블 및 취급 정보를 프린터로 출력할 뿐 아니라 기타 보안 기능을 인쇄할 수 있도록 구성할 수 있습니다. 다음 그림은 전형적인 배너 페이지를 보여줍니다. Trusted Solaris의 인쇄 구성에 대한 자세한 설명은 Trusted Solaris Administrator's Procedures의 "Managing Printing" 및 Trusted Solaris Label Administration을 참조하십시오.