강제적 접근 제어 (MAC)
Jan 27, 2026
핵심 개념
섹션 제목: “핵심 개념”강제적 접근 제어(Mandatory Access Control, MAC)는 시스템 정책에 의해 접근이 제어되며, root 사용자조차 이를 우회할 수 없는 보호 메커니즘입니다. 임의적 접근 제어(DAC)는 자원 소유자가 권한을 설정하므로 실수나 악의로 부적절한 권한 부여가 가능하며, root는 모든 제한을 무시할 수 있어 침해 시 피해가 큽니다.
동작 원리
섹션 제목: “동작 원리”시스템 정책은 개별 사용자나 root보다 상위에 있습니다.
메커니즘
섹션 제목: “메커니즘”- 레이블(Label): 객체(파일, 디바이스)와 주체(프로세스)에 식별자(문자열) 할당
- 정책(Policy): 어떤 레이블의 주체가 어떤 레이블의 객체에 어떤 연산을 수행할 수 있는지 정의
- 동작 흐름:
- 프로세스가 객체에 연산 요청
- OS가 프로세스의 레이블과 객체의 레이블 확인
- 정책에 따라 허용/거부 결정
- root라도 정책에 어긋나면 거부
DAC (Discretionary):소유자 → 권한 설정 → 다른 사용자 접근root → 모든 접근 가능
MAC (Mandatory):시스템 정책 → 레이블 기반 접근 제어 ↓root도 정책에 종속레이블 계층
섹션 제목: “레이블 계층”┌──────────────────────────────────────────┐│ Top Secret ││ ┌──────────────────────────────────┐ ││ │ Secret │ ││ │ ┌──────────────────────────┐ │ ││ │ │ Unclassified │ │ ││ │ └──────────────────────────┘ │ ││ └──────────────────────────────────┘ │└──────────────────────────────────────────┘
→ 내부 레이블 프로세스는 외부 레이블 객체에 접근 불가주요 구현
섹션 제목: “주요 구현”- SELinux: Linux의 MAC 구현 (NSA 개발), 대부분의 Linux 배포판에 통합
- TrustedBSD/macOS: FreeBSD MAC 구현, Apple이 macOS/iOS에 채택
- Windows MIC: Windows Vista 이후 Mandatory Integrity Control
프로세스 P (레이블: “secret”)가 파일 F (레이블: “top_secret”) 읽기 시도:
-
MAC 정책: “secret은 top_secret보다 낮으므로 읽기 불가”
-
결과: root 권한으로 실행해도 접근 거부
-
심지어 ls 명령으로도 top_secret 파일이 보이지 않음
-
장점: root 권한 탈취 시에도 피해 제한, 일관된 시스템 전체 정책, 규제 준수 용이
-
단점: 정책 설정 복잡성, 기존 애플리케이션 호환성 문제, 학습 곡선