[Linux] SELinux와 AppArmor 비교

Austin·2024년 12월 10일

Linux

목록 보기
3/10

Linux 보안 모듈 비교(SELinux와 AppArmor)

SELinux란?

SELinux(Security-Enhanced Linux)는 미국 국가안보국(NSA)이 개발한 리눅스 커널 보안 모듈로, 강력한 접근 제어 정책을 통해 시스템 보안을 강화한다.
SELinux는 강제 접근 제어(MAC, Mandatory Access Control)를 기반으로 하며, 시스템의 모든 프로세스와 객체에 보안 컨텍스트를 부여하여 세밀한 권한 관리를 가능하게 한다.

AppArmor란?

AppArmor(Application Armor)는 Novell(SUSE)이 개발한 리눅스 보안 프레임워크로, 응용 프로그램별로 프로파일을 작성하여 해당 프로그램이 접근할 수 있는 리소스를 제한한다.
AppArmor 역시 강제 접근 제어(MAC)를 구현하지만, 파일 경로 기반의 접근 제어를 사용하여 설정과 관리가 비교적 간단하다.
사용자는 텍스트 형식의 프로파일을 통해 쉽게 보안 정책을 적용할 수 있다.

SELinux vs AppArmor

특성SELinuxAppArmor
작동 원리보안 컨텍스트 기반(라벨링)로 리소스에 대한 접근을 결정경로 기반으로 파일 시스템 경로를 기준으로 접근 제어
설정 및 관리초기 설정 및 정책 관리가 복잡 (정책 작성 필요)상대적으로 설정이 간단하며 템플릿 기반 관리 가능
정책 표현력매우 세부적인 제어 가능, 고도로 구성 가능한 보안 정책특정 애플리케이션에 대해 쉽게 구성 가능
지원 환경기본적으로 Red Hat 계열 (CentOS, Rocky 등)에서 최적화기본적으로 Debian 및 Ubuntu 계열에서 최적화
유연성강력하지만 사용자에게 더 많은 학습 곡선 요구간단하지만 특정한 경우에는 제한적일 수 있음
성능고급 정책 처리로 인해 약간의 성능 저하 가능경로 기반으로 성능 영향이 적음
디버깅 및 로깅자세하고 정교한 디버깅 및 로깅 도구 제공설정이 더 간단한 만큼 디버깅 및 로깅은 단순한 경향

DebianAppArmor를 기본적으로 지원하고 있으며, 초기 설정과 정책 구성이 간단하다.
Debian을 사용하고 VM을 처음 사용 하는 사용자는 AppArmor를 사용하는게 유리하다.

AppArmor 사용법

  • sudo apt install apparmor apparmor-utils
    AppArmor 설치 (대부분의 Ubuntu 및 Debian 시스템에 기본 설치됨)
  • sudo systemctl enable apparmor.service
    AppArmor 서비스가 시스템 부팅 시 자동으로 시작되도록 설정
  • sudo systemctl start apparmor.service
    AppArmor 서비스를 즉시 시작하는 명령어
  • sudo aa-status
    AppArmor가 올바르게 설치되고 활성화 되었는지 확인하는 명령어

활성화 확인 방법

sudo aa-status 명령어로 활성화 확인 했을 때 나오는 메시지 확인 방법이다.

  • AppArmor 모듈 상태
    출력의 첫 줄에서 apparmor module is loaded. 메시지를 확인해야 한다.
    이는 AppArmor 커널 모듈이 정상적으로 로드된 것을 나타낸다.
  • X profiles are loaded.
    여기서 X는 로드된 프로파일의 수(X)를 나타낸다.
  • X profiles are in enforce mode.
    enforce mode가 실제 적용되는 프로파일 수(X)을 나타낸다.
    enforce mode는 보안 위협이 되는 부분을 차단한다.
  • X profiles are in complain mode.
    complain mode가 실제 적용되는 프로파일 수을 나타낸다.
    complain mode는 로그만 기록하고 실제로 제한을 가하지 않는다.

0개의 댓글