리눅스 커널 보안 모듈인 SELinux와 AppArmor에 대해 알아보기 전에 먼저 접근 통제에 대해 간단하게 알아보자
운영체제(OS)에서 접근 통제(Access Control)은 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것이다.
접근 통제에서 시스템 자원을 객체(Object)라고 하며 자원에 접근하는 사용자나 프로스세를 주체(Subject)라고 한다.
예를 들어 /etc/passwd 파일은 객체이고, 이 파일에 접근하여 암호를 변경하는 passwd라는 명령어는 주체이다.
주체(소유자/사용자)가 속해있는 그룹의 신원에 근거하여 객체(파일)에 대한 접근을 제안하는 방법이다.
특징
장점
단점
자원의 보안 레벨과 사용자의 보안 취금 인가를 비교하여 접근 제하는 방식이다.
즉, 정의된 정책을 활용해 사용자와 프로세스의 행동을 제어하는 것이다.
특징
장점
단점
SELinux(Security-Enhanced Linux)는 관리자가 시스템 액세스 권한을 효과적으로 제어할 수 있게 하는 Linux 시스템용 보안 아키텍처이다.
과거 리눅스는 소스코드가 공개되어 있기 때문에 보안에 취약했다. 이러한 취약점을 보안하기 위한 것이 SELinux이다.
미국 국가안보국(United States National Security Agency, NSA)이 LSM(Linux Security Module)을 사용하여 Linux 커널에 대한 일련의 패치로 개발하였다.
레드햇 계열 운영체제(RHEL, Fedora, CentOS)에서 많이 사용되며, MAC이 적용되었다. (전통적인 Linux는 DAC)
시스템 전체에 대한 보안 설정이 가능하다.
장점
한계
AppArmor(Application Armor)는 시스템 관리자가 프로그램 프로필 별로 프로그램의 역량을 제한할 수 있게 해주는 리눅스 커널 보안 모듈이다.
리눅스 버전 2.6.36부터 포함되었으며, 개발은 2009년부터 캐노니컬 사에 의해 지원되고 있다.
SUSE 계열(SUSE Linux), 데비안 계열(Debian, Ubuntu) 운영체제에서 주로 사용되며, MAC이 적용되었다. (전통적인 Linux는 DAC)
개별 응용프로그램을 보호하는 일에 집중되어 있으며, 응용프로그램 단위의 보안 모델이 구현되어 있다.
장점
단점
AppArmor을 설치하는 방법은 아래와 같다.
apt install apparmor apparmor-profiles apparmor-utils
AppArmor가 실행 중인지 확인하고 싶다면 아래 명령어를 입력하면 된다.
aa-status
참고
https://2infinity.tistory.com/59
https://kaite-story.tistory.com/54
https://lesstif.gitbooks.io/web-service-hardening/content/selinux.html
https://www.redhat.com/ko/topics/linux/what-is-selinux
https://ko.wikipedia.org/wiki/AppArmor
https://www.whonix.org/wiki/AppArmor#Introduction
https://omarine.org/blog/apparmor-vs-selinux/