SELinux (Security-Enhanced Linux)
- 관리자가 시스템 액세스 권한을 효과적으로 제어할 수 있게하는 Linuxt시스템용 보안아키텍처
- 원래 미국 국가보안국이 LSM(Linux Security Module)을 사용해 Linux커널에 대한 패치로 개발한것
- 시스템의 애플리케이션, 프로세스, 파일에 대한 액세스 제어를 정의함 (보안정책을 사용하여 정책에서 허용된 액세스를 실행)
- SELinux를 설정하여 시스템을 보호하는 방법으로는 타겟정책, 다단계보안(Multi-Level Security, MLS)가 있음
- 타겟정책은 기본 옵션으로서 다양한 프로세스와 태스크 및 서비스를 처리, MLS는 매우 복잡하며 보통 정부기관에서 사용
- MAC(Mandatory Access Control) 사용
AppArmor (Application Armor)
- 시스템 관리자가 프로그램 프로필별로 프로그램의 역량을 제한할 수 있게 해주는 리눅스 커널 보안 모듈
- LSM커널 인터페이스를 사용해서 구현되었음
- SELinux를 대체하는 한 부분으로서 제공됨
- 프로그램에서 액세스 할 수 있는 파일을 지정하는 규칙에 따라 프로그램을 제한함
- 내외부적 위협으로부터 운영체제와 애플리케이션을 능동적으로 보호
- MAC을 제공함으로써 전통적인 유닉스 임의적 접근통제(DAC)를 보완함
- 응용프로그램별 프로필을 통해 프로그램별 보안설정 가능
- enforce모드 : 허가되지 않은 파일에 접근하는것을 거부
- complain모드 : 실질적으로 보안을 제공하는것은 아님. 대신 어플리케이션이 해야 할 행동이 아닌 다른 행동을 하는 경우에 로그를 남겨줌
DAC (임의적 접근 통제)
- Discretionary Access Control
- 전통적인 Linux와 UNIX시스템은 DAC를 사용
- 파일과 프로세스에 소유자가 있어 사용자 또는 그룹이 파일을 소유하도록 할 수 있음, 또한 사용자는 소유한 파일의 권한을 변경할 수 있음 (사용자나 그룹의신분을 기준으로 접근을 제한)
- 루트사용자는 DAC시스템으로 전체 액세스 제어 권한을 가짐
- 루트사용자는 다른 모든 사용자의 파일에 액세스하거나 작업을 수행할 수 있음
MAC (강제적 접근 통제)
- Mandatory Access Control
- SELinux와 같은 MAC시스템에서는 액세스 관련 관리정책이 설정되어 있음 (미리 정해진 정책과 보안등급에 의거하여 접근을 통제)
- 홈디렉토리의 DAC설정이 변경되더라도 다른 사용자나 프로세스가 디렉토리에 액세스 하지못하도록하는 SELinux정책을 통해 시스템 보호가 가능함
- 정책을 사용하여 사용자를 특정할 수 있고 수많은 프로세스를 처리할 수 있음
출처
https://www.redhat.com/ko/topics/linux/what-is-selinux
https://kubernetes.io/ko/docs/tutorials/security/apparmor