강제적 접근 제어 (MAC, Mandatory Access Control) - 시스템 관리자가 보안 등급 라벨을 기반으로 접근을 강제하는 통제 방식

핵심 인사이트 (3줄 요약)

  1. 본질: MAC은 시스템 관리자가 모든 **주체(프로세스)**와 **객체(파일)**에 **보안 등급 라벨(Security Label)**을 부여하고, 이 라벨 간 관계를 기반으로 접근을 **강제(Mandatory)**로 통제하는 방식이다.
  2. 가치: 사용자가 chmod 777로 권한을 열어버려도, MAC 정책에 의해 최고 비밀 등급 파일에는 접근이 차단되어,万一(만약) 침해가 발생해도 손실 범위가 제한된다.
  3. 한계: 정책 설정이 복잡하여 관리 오버헤드가 크고, 설정 오류 시 서비스 장애가 발생할 수 있다.

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줄 비유 설명

  1. MAC은 병원의 **"접종 증명 시스템"**과 같다. 어떤 환자가宣Drop(권한)이 있다고 주장해도, 시스템에 등록된 등급과 맞지 않으면 진찰을 받을 수 없다.

  2. 보안 라벨은 놀이공원의 **"입장 등급표"**와 같다. Silver 등급은 Silver 놀이기구만, Gold 등급은 Gold 놀이기구만 탈 수 있다. 등급표가 없으면 아무 놀이기구도 탈 수 없다.

  3. 관리 복잡성은 입장 등급표를 "새로 설정하거나 변경하려면 병원 전체의 규정을 수정해야" 하는 것과 같다. 한 명의 등급을 바꾸어도 전체 시스템에 영향을 미칠 수 있다.