강제적 접근통제
더 많은 작업
- MAC, Mandatory Access Control
- 보안 등급, 규칙 기반, 관리 기반의 접근통제 정책
- 모든 주체 및 객체에 대해 일정하며 어느 하나의 주체나 객체 단위로 접근 제한을 설정할 수 없다.
- 주체의 레이블과 주체가 접근하고자 하는 객체의 보안 레이블을 비교하여 보안 정책에 합당한 접근 통제 규칙에 의한 통제 방법이다.
- TCSEC에서는 규칙-기반 접근 통제 정책으로 MAC를 분류한다. Orange Book B등급
- 보안 등급에 따른 일차원적인 접근권한 차등화가 대표적인 MAC의 구현 예이다.
- 예를 들면 다음/네이버 카페에서 등급에 따라서 접근 가능한 게시판이 정해지는 예이다.
- 그누보드나 제로보드의 레벨 제도 또한 MAC에 해당한다.
- 다만 카페 등급이나 게시판 레벨은 운영자가 정한 등급으로 접근을 가른다는 점을 보여 주는 쉬운 비유이다. 엄밀한 의미의 MAC은 운영체제나 신뢰 컴퓨팅 기반(TCB)이 모든 주체와 객체에 보안 레이블을 붙이고, 사용자나 소유자가 이를 바꾸거나 우회할 수 없도록 강제한다.
강제적 접근통제는 접근 허용 여부를 객체의 소유자가 아니라 시스템 전체에 적용되는 보안 정책이 결정하는 방식이다. 시스템이 주체(사용자, 프로세스)에게는 보안 인가 등급(clearance)을, 객체(파일, 장치, 레코드)에게는 비밀 등급(classification)을 레이블로 붙이고, 접근 요청이 올 때마다 두 레이블을 비교해 허용 여부를 정한다. 파일을 만든 사람이라도 그 파일의 레이블을 마음대로 낮추거나 다른 사람에게 접근을 허락할 수 없다. 그래서 '강제적'이라고 부른다.
미국 국방부의 TCSEC(DoD 5200.28-STD, 1985년 12월)은 B 등급(Division B: Mandatory Protection)부터 MAC을 요구했고, B1 등급(Labeled Security Protection)에서 레이블 기반 MAC이 처음 등장한다. 군·정보기관처럼 비밀 등급 체계가 법령으로 정해진 환경에서 시작되었다.
TCSEC은 보안 레이블(sensitivity label)을 계층적 등급과 비계층적 범주의 조합으로 정의한다.
| 구성 | 의미 | 예 |
|---|---|---|
| 등급 (classification level) | 위아래 순서가 있는 계층적 수준. 높을수록 민감하다. | Ⅰ급 비밀 > Ⅱ급 비밀 > Ⅲ급 비밀(보안업무규정 제4조), 또는 Top Secret > Secret > Confidential > Unclassified |
| 범주 (category, compartment) | 순서가 없는 업무·프로젝트 구분. 알 필요(need to know)를 구현한다. | {핵}, {암호}, {작전} |
- 주체의 레이블이 객체의 레이블을 지배(dominate)할 때 읽기가 허용된다. 지배란 주체의 등급이 객체의 등급 이상이고, 주체의 범주 집합이 객체의 범주를 모두 포함한다는 뜻이다.
- 등급이 높아도 범주가 없으면 접근할 수 없다. 예를 들어 {2급 비밀, 작전} 인가를 가진 사용자는 {3급 비밀, 핵} 문서를 읽을 수 없다.
- TCSEC은 쓰기에 대해서는 반대로, 주체의 등급이 객체의 등급 이하이고 주체의 범주가 객체의 범주에 포함될 때만 허용하도록 정한다. 이는 벨-라파둘라 모델의 상위 읽기 금지(no read up)·하위 쓰기 금지(no write down)와 같은 구조이다.
레이블 사이의 '지배' 관계는 수학의 격자(lattice) 구조를 이룬다. 등급과 범주 조합마다 하나의 보안 수준이 있고, 어느 두 수준에 대해서도 둘을 모두 지배하는 가장 낮은 수준(최소 상한)과 둘 모두에게 지배받는 가장 높은 수준(최대 하한)이 정해진다. 이 때문에 MAC을 격자 기반 접근통제(lattice-based access control)라고도 부른다.
- 정보는 격자를 따라 위로만 흐를 수 있다. 낮은 수준의 정보는 높은 수준으로 옮겨질 수 있지만 반대는 막힌다. 이것이 기밀성 중심 MAC의 핵심이다.
- 무결성 중심으로 같은 구조를 뒤집은 것이 비바 무결성 모델이다.
| 구현 | 설명 |
|---|---|
| 군·정부 다중 등급 보안(MLS, Multi-Level Security) 시스템 | 한 시스템 안에서 여러 비밀 등급의 정보를 동시에 다루면서, 각 사용자가 자기 인가 등급과 범주에 맞는 정보만 보게 한다. 출력물에도 레이블을 찍는다. |
| SELinux | 미국 국가안보국(NSA)이 개발에 참여해 공개한 리눅스 보안 모듈. 기본 기능인 유형 강제(TE, Type Enforcement)는 프로세스를 도메인에 가두어, root로 실행되더라도 정책이 허용한 파일과 동작만 쓰게 한다. MLS 정책을 켜면 등급·범주 레이블을 쓰는 전통적인 MAC도 구현할 수 있다. |
| 기타 운영체제 | 윈도우의 무결성 수준(Mandatory Integrity Control), 모바일 운영체제의 앱 격리 정책도 사용자가 바꿀 수 없는 강제 정책이라는 점에서 MAC의 성격을 가진다. |
| 구분 | 강제적 접근통제 (MAC) | 임의적 접근통제 (DAC) |
|---|---|---|
| 권한 결정 주체 | 시스템 보안 정책(보안 관리자) | 객체 소유자 |
| 판단 근거 | 주체·객체의 보안 레이블 비교 | 주체의 신원(ID)과 ACL |
| 권한 위임 | 불가능. 사용자가 레이블을 바꾸지 못한다 | 가능. 소유자가 다른 사용자에게 권한을 줄 수 있다 |
| 트로이 목마 대응 | 강함. 레이블 규칙상 정보가 낮은 등급으로 새지 못한다 | 약함. 프로그램이 사용자 권한으로 실행되어 정보를 복사할 수 있다 |
| 유연성·관리 부담 | 낮은 유연성, 레이블 관리 부담이 큼 | 높은 유연성, 관리 쉬움 |
| TCSEC 등급 | B 등급(B1 이상) | C 등급(C1, C2) |
| 주 사용처 | 군·정보기관, 고보안 시스템 | 일반 상용 운영체제, 파일 공유 |
- MAC의 핵심어는 레이블, 등급(classification), 인가(clearance), 시스템이 강제이다. 선택지에 "소유자가 결정"이 있으면 DAC이다.
- 접근하려면 등급이 같거나 높아야 하고, 범주(알 필요)도 모두 갖춰야 한다. 등급만 높고 범주가 없으면 거부된다.
- 기밀성 MAC은 벨-라파둘라(no read up, no write down), 무결성 MAC은 비바(no read down, no write up)로 연결된다.
- 트로이 목마를 통한 정보 유출에 강한 쪽은 MAC이다.
- MAC은 비임의적 접근통제에 속하지만, 비임의적 접근통제가 모두 MAC인 것은 아니다. RBAC와 규칙 기반 접근통제도 비임의적이다.
- 데이터 분류 체계가 먼저 있어야 레이블을 붙일 수 있다. MAC 도입의 선행 조건은 분류 정책이다.
- DoD 5200.28-STD, Trusted Computer System Evaluation Criteria – 미국 국방부(NIST CSRC 보관본)
- NIST IR 7316, Assessment of Access Control Systems – NIST
- NIST CSRC Glossary: mandatory access control – NIST
- The SELinux Notebook: SELinux Overview – SELinux Project