SELinux 아키텍처

SELinux 는 리눅스 커널의 일부이며 다음과 같은 아키텍처를 갖고 있습니다. 모든 시스템 콜은 SELinux 보안 모듈을 통해 내부의 캐시된 보안 정책을 통해서 권한을 검사한 후에 실행됩니다.

캐시된 정책은 AVC(Access Vector Cache) 라고 불리우며 시스템의 성능을 떨어뜨리지 않기 위해 질의에 최적화 되어서 정책을 추가/변경/삭제하는 작업은 매우 시간이 오래 걸리지만 AVC 에서 정책을 질의하는 것은 빠르게 처리됩니다.


사용자 관점에서 보면 프로세스가 특정 리소스(파일, 디렉터리, 소켓등)를 요청하면 기존의 임의 접근 통제(DAC) 방식의 권한이 부여되어 있는지 확인하고 다시 SELinux 내의 강제 접근 통제(MAC) 에서도 허용된 요청인지를 보안 컨텍스트를 통해 확인하고 이를 통과하면 접근을 허용하게 됩니다.