ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SELinux
    카테고리 없음 2016. 10. 19. 13:58
    [참고]




    SELinux 란?


    페도라 코어(Fedora Core)의 SELinux (Security-Enhanced Linux)란 리눅스 보안 모듈 구조체 (Linux Security Modules (LSM) Framework)를 이용하여 리눅스 커널에 의무 접근 제어 (Mandatory Access Control - MAC)를 구현하는 것이다. 


    표준 리눅스 보안(Standard Linux Security)은 자유재량 접근 제어(Discretionary Access Controll - DAC) 모델이다, DAC 모델에서, 파일과 자원에 대한 결정권은 오직 해당 객체(objects)의 사용자(user id)에 있고 소유권(ownership)에 따라 이뤄진다. 각 사용자와 그 사용자에 의해 실행된 프로그램은 자기에게 할당된 객체에 대해 전적으로 자유재량권을 갖는다. 이러한 상황에서 악의 있는 일반 혹은 루트 사용자 (예로, setuid 와 setgid)가 실행시킨 결함이 있는 소프트웨어를 통해 주어진 객체로 원하는  어떠한 일을 해도 막아낼 방법이 없으며 보안 정책을 시스템 전체에 걸쳐 시행되도록 할 방법이 없다. 


    MAC 시스템은 위와 같은 빠져있는 요소들을 제공한다. 첫째, 보안 정책을 모든 프로세스나 객체에 대하여 관리차원으로 규정 지을 수 있다. 둘째, 커널에 SELinux를 구현하면, 모든 프로세스와 객체를 제어할 수 있다. 셋째, 결정은 단지 인증된 사용자(user identity)에 의해서가 아니라 이용 가능한(available) 모든 보안 관련 정보에 근거하여 이뤄진다.


    SELinux 하에서 MAC는 모든 주체(subject - 사용자, 프로그램, 프로세스)와 객체(파일, 디바이스)에 대해서 국부적으로 허가(granular permissions)해 줄 수 있다. 응용프로그램에서 불필요한 부분은 제외하고 오직 필요한 기능에 대해서만 사용 권한을 안전하게 부여한다. 


    SELinux 구현은 역할과 유형 시행(Type Enforcement - TE)에 기초하여 추상적 사용자 수준제어를 제공하는 역할 기반접근 제어를 사용한다. TE는 접근제어를 처리하기 위해서 테이블을 이용한다. 주체는 영역(domain)을 갖고 객체는 유형을 갖으므로, 매트릭스에서 교차조회하여 이들의 상호작용을 규정하낟. 이는 리눅스 시스템에 있는 모든 동작자에 대하여 극단적으로 국부 제어를 가능케 한다. 


Designed by Tistory.