강제적 접근 제어 (MAC, Mandatory Access Control) - 시스템 관리자가 보안 등급 라벨을 기반으로 접근을 강제하는 통제 방식
핵심 인사이트 (3줄 요약)
- 본질: MAC은 시스템 관리자가 모든 **주체(프로세스)**와 **객체(파일)**에 **보안 등급 라벨(Security Label)**을 부여하고, 이 라벨 간 관계를 기반으로 접근을 **강제(Mandatory)**로 통제하는 방식이다.
- 가치: 사용자가
chmod 777로 권한을 열어버려도, MAC 정책에 의해 최고 비밀 등급 파일에는 접근이 차단되어,万一(만약) 침해가 발생해도 손실 범위가 제한된다.- 한계: 정책 설정이 복잡하여 관리 오버헤드가 크고, 설정 오류 시 서비스 장애가 발생할 수 있다.
1. 개요 및 배경 (Context & Necessity)
1.1 DAC의 한계: Trojan Horse
DAC(임의적 접근 제어)에서는 사용자가 악성 프로그램을 실행하면, 그 프로그램이 사용자의 권한을 상속받는다. 따라서 사용자가 Root 권한으로 실행 중이었다면, 악성 프로그램도 Root 권한을 획득하게 된다.
1.2 MAC의 해결책
MAC에서는 소유자나 사용자의 의사와 무관하게 시스템 정책이 접근을 차단한다:
[ DAC 정책 ]
소유자가 "모든 사람에게 열기"로 설정 -> 접근 허용
[ MAC 정책 ]
시스템이 "최고 비밀 등급 사용자가 아니면 접근 불가"로 설정 -> 소유자여도 접근 차단
2. 아키텍처 및 핵심 원리 (Deep Dive)
2.1 보안 등급 라벨 (Security Label)
MAC에서는 모든 주체와 객체에 보안 등급 라벨을 부여한다:
[ 주체(프로세스) 라벨 ]
system_u:system_r:httpd_t:s0
[ 객체(파일) 라벨 ]
system_u:object_r:shadow_t:s0
2.2 격자 모델 (Lattice Model)
보안 등급은 격자(Lattice) 구조를 형성한다:
[ 보안 등급 격자 ]
TOP SECRET
/ \
SECRET CLASSIFIED
\ /
CONFIDENTIAL
|
UNCLASSIFIED
2.3 Bell-LaPadula 모델과의 관계
MAC의 구체적인 접근 규칙을 정의하는 대표적인 모델:
| 규칙 | 설명 |
|---|---|
| No Read Up (NRU) | 자기 등급보다 높은 문서를 읽을 수 없음 |
| No Write Down (NWD) | 자기 등급보다 낮은 등급에 문서를 쓸 수 없음 |
3. SELinux와 MAC
3.1 SELinux 개요
SELinux는 Linux 커널에 구현된 MAC의 대표적 구현이다:
[ 확인 방법 ]
$ ls -Z /etc/shadow
-rw-r-----. root root system_u:object_r:shadow_t:s0 /etc/shadow
[ 웹 서버 컨텍스트 ]
$ ps auxZ | grep httpd
system_u:system_r:httpd_t:s0 httpd
3.2 SELinux 동작 모드
| 모드 | 설명 |
|---|---|
| Enforcing | 정책 위반 시 접근 차단 |
| Permissive | 정책 위반 시 로그만 기록 |
4. 기대효과 및 결론
- 강제적 통제: 사용자의 의사와 무관하게 보안 정책이 적용되어, Trojan Horse 등 내부 위협으로부터 보호
- 세밀한 통제: 프로세스와 파일 단위의 접근 제어가 가능
- 관리 복잡성: 정책 설정과 관리에 전문 지식과 노력이 필요
관련 개념 맵 (Knowledge Graph)
| 관련 개념 | 설명 |
|---|---|
| DAC (578장) | MAC와 대칭되는 임의적 접근 제어 |
| SELinux (583장) | Linux에서 MAC을 구현한 대표적 시스템 |
| Bell-LaPadula (580장) | MAC의 접근 규칙을 정의하는 보안 모델 |
| Biba (581장) | 무결성 보호를 위한 MAC 모델 |
👶 어린이를 위한 3줄 비유 설명
-
MAC은 병원의 **"접종 증명 시스템"**과 같다. 어떤 환자가宣Drop(권한)이 있다고 주장해도, 시스템에 등록된 등급과 맞지 않으면 진찰을 받을 수 없다.
-
보안 라벨은 놀이공원의 **"입장 등급표"**와 같다. Silver 등급은 Silver 놀이기구만, Gold 등급은 Gold 놀이기구만 탈 수 있다. 등급표가 없으면 아무 놀이기구도 탈 수 없다.
-
관리 복잡성은 입장 등급표를 "새로 설정하거나 변경하려면 병원 전체의 규정을 수정해야" 하는 것과 같다. 한 명의 등급을 바꾸어도 전체 시스템에 영향을 미칠 수 있다.