접근 통제에서 시스템 자원을 객체(Object)라고, 자원에 접근하는 사용자나 프로세스는 주체(Subject)라고 정의한다.
DAC - 임의접근제어, Discretionary Access Control
사용자나 그룹이 객체의 소유자라면 다른 주체에 대해 이 객체에 대한 접근 권한을 설정할 수 있다.
소유자는 자신의 판단에 의해서 권한을 줄 수 있고 구현이 용이하고 사용이 간편하기 때문에 전통적으로 유닉스나 윈도우등 대부분의 운영체제의 기본 접근 통제 모델로 사용되고 있다.
임의적 접근 통제는 사용자가 임의로 접근 권한을 지정하므로 사용자의 권한을 탈취당하면 사용자가 소유하고 있는 모든 객체의 접근 권한을 가질 수 있게 되는 치명적인 문제가 있다.
MAC - 강제접근통제, Mandatory Access Control
미리 정해진 정책과 보안 등급에 의거하여 주체에게 허용된 접근 권한과 객체에게 부여된 허용 등급을 비교하여 접근을 통제하는 모델.
높은 보안을 요구하는 정보는 낮은 보안 수준의 주체가 접근할 수 없으며 소유자라고 할 지라도 정책에 어긋나면 객체에 접근할 수 없으므로 강력한 보안을 제공한다.
출처 : https://www.lesstif.com/ws/access-control-dac-mac-43843837.html
SELinux - Security Enhanced Linux
관리자가 시스템 액세스 권한을 효과적으로 제어할 수 있게 하는 Linux 시스템용 보안 아키텍처다.
MAC
시스템 전체에 보안 설정
모든 걸 차단하고 필요한 것만 허용한다.
SELinux는 setuid 비트가 켜져 있거나 루트로 실행되는 데몬 프로세스 프로그램들은 샌드박스안에서 별도의 도메인으로 격리되어 낮은 등급으로 실행되므로 루트 권한을 탈취해도 해당 도메인에만 영향을 미치고 전체 시스템에 미치는 영향을 최소화 한다.
출처 : https://www.lesstif.com/ws/selinux-48988428.html
AppArmor - Application Armor
시스템 관리자가 프로그램 프로필 별로 프로그램의 역량을 제한할 수 있게 해주는 리눅스 커널 보안 모듈이다.
MAC
개별 응용프로그램을 보호. 응용프로그램 단위 보안.