시스템(Linux)

AppAmor 에 대해 알아보겠습니다.

forward error correction Circle 2024. 7. 1. 08:06
반응형

Ⅰ. AppAmor 란? 

AppArmor(Application Armor)은 리눅스 커널 보안 모듈로, 프로그램이 시스템에서 실행할 수 있는 작업을 제한하여 보안을 강화합니다. 이는 주로 애플리케이션의 권한을 제한하여 잠재적인 보안 위협을 최소화하는 데 사용됩니다.

또한, MAC(Mandatory Access Control) 기능을 제공합니다. 주로 시스템의 보안을 강화하기 위해 사용되며, 사용자나 프로그램의 자율적인 접근 권한 설정을 제한하여 체계적인 접근 제어를 가능하게 합니다.

 * MAC(Mandatory Access Control) 는 시스템 관리자가 정의한 정책에 따라 접근을 제어하는 보안 모델입니다.

Ⅱ. AppArmor 기본 설치된 운영체제

 

AppArmor는 여러 리눅스 배포판에서 기본적으로 설치되어 제공되며, 그 중에서도 특히 우분투(Ubuntu)에서 기본적으로 활성화된 상태로 제공됩니다. Red Hat 계열의 리눅스 배포판, 즉 RHEL(Red Hat Enterprise Linux), CentOS, Fedora 등에서는 기본적으로 AppArmor가 설치되지 않습니다. 대신, Red Hat 계열의 배포판에서는 SELinux(Security-Enhanced Linux)가 기본적으로 설치되고 활성화되어 사용됩니다.

  우분투 (Ubuntu) 데비안 (Debian) SUSE 리눅스 (SUSE Linux)
버전 7.10 (Gutsy Gibbon) 이후 모든 버전 10 (Buster) 이후 모든 버전 openSUSE 및 SUSE Linux Enterprise (SLE)
기본 설정 AppArmor는 기본적으로 설치되고 활성화되어 있습니다. AppArmor 패키지가 기본적으로 포함되어 있지만, 활성화는 사용자가 직접 해야 할 수 있습니다. AppArmor는 기본적으로 설치되고 활성화되어 있습니다.
특징 다양한 프로파일이 사전 설정되어 제공되며, 사용자는 추가적인 프로파일을 작성하거나 기존 프로파일을 수정할 수 있습니다. Debian에서도 AppArmor를 쉽게 설치하고 사용할 수 있으며, 기본 제공되는 프로파일을 사용할 수 있습니다. SUSE는 AppArmor의 개발을 주도한 배포판 중 하나로, AppArmor와 관련된 도구 및 지원이 잘 갖추어져 있습니다.

 

그외는 Arch Linux와 Fedora 있으며, Arch Linux에서 AppArmor는 기본적으로 포함되어 있지 않지만, 사용자는 패키지 매니저를 통해 쉽게 설치할 수 있습니다. Fedora에서는 기본적으로 SELinux가 활성화되어 있지만, 사용자는 선택적으로 AppArmor를 설치하고 사용할 수 있습니다.

 

Ⅲ. AppArmor 특징

ⅰ. 프로파일 기반 보안: 프로그램에 대해 개별적인 보안 프로파일을 정의합니다. 이 프로파일은 프로그램이 접근할 수 있는 파일, 네트워크 리소스, 그리고 시스템 호출 등을 구체적으로 명시합니다.
ⅱ. 사용자 친화적:
보안 정책을 관리하는 데 있어 비교적 사용하기 쉬운 구문을 제공합니다. 이로 인해 복잡한 보안 설정을 간편하게 할 수 있습니다.
ⅲ. 상태 모드:
Enforce 모드와 Complain 모드의 두 가지 상태 모드를 제공합니다. Enforce 모드에서는 정책 위반이 실제로 차단되며, Complain 모드에서는 위반이 기록되지만 차단되지 않습니다. Complain 모드는 보안 정책을 테스트하고 튜닝하는 데 유용합니다.
ⅳ. 상태 저장:
프로파일 변경 시, 변경 내용을 즉시 적용하여 시스템 재시작 없이도 보안 정책을 관리할 수 있습니다.

Ⅳ. AppArmor 주요 기능

ⅰ. 파일 접근 제어: 프로그램이 접근할 수 있는 파일과 디렉토리를 제어합니다. 이를 통해 불필요한 파일 접근을 차단하고, 프로그램이 허가된 파일만 다룰 수 있게 합니다.
ⅱ. 네트워크 접근 제어:
특정 프로그램의 네트워크 사용을 제한할 수 있습니다. 예를 들어, 프로그램이 특정 포트에만 접근하거나, 특정 IP 주소로의 통신만 허용할 수 있습니다.
ⅲ. 권한 제한:
프로그램이 실행할 수 있는 시스템 호출을 제한하여, 잠재적으로 악의적인 행동을 예방합니다.
ⅳ. 로그 기록:
모든 정책 위반 사항을 로그에 기록하여, 보안 감사 및 문제 해결에 활용할 수 있습니다.

Ⅴ.  AppArmor 설정 및 사용

ⅰ. AppArmor 상태 확인

[root@feccle]# aa-status


ⅱ. 프로파일 작성: /etc/apparmor.d/ 디렉토리 아래에 보안 프로파일을 작성합니다. 예를 들어, usr.bin.myapp이라는 프로파일을 작성하려면

[root@feccle]#  vi /etc/apparmor.d/usr.bin.myapp
[root@feccle]#  apparmor_parser -r /etc/apparmor.d/usr.bin.myapp

ⅲ. 프로파일 적용 모드 변경

Enforce 모드
[root@feccle]# aa-enforce /etc/apparmor.d/usr.bin.myapp

Complain 모드
[root@feccle]# aa-complain /etc/apparmor.d/usr.bin.myapp

 

ⅳ. 프로파일 관리 도구

새로운 프로파일을 생성할 때
[root@feccle]# aa-genprof

로그를 바탕으로 프로파일을 수정할 때
[root@feccle]# aa-logprof

Ⅵ. AppArmor와 SELinux 비교

AppArmor는 SELinux(Security-Enhanced Linux)와 함께 리눅스에서 널리 사용되는 두 가지 주요 MAC 시스템 중 하나입니다. 두 시스템의 차이점에 대해 알아보겠습니다.

  AppAmor SELinux
접근 제어 파일 경로 기반 접근 제어 태그 기반 접근 제어
사용방식 간단하고 사용자 친화적 파일과 프로세스에 보안 컨텍스트를 할당하며,
설정이 더 복잡하지만 더 강력한 보안 기능을 제공
  Ubuntu, SUSE 등에서 기본적으로 사용됨. Fedora, RHEL, CentOS에서 기본적으로 사용됨



반응형