Security Enhanced Linux 유승구 연구원
등장 배경 표준 리눅스 보안 : 임의적 접근 통제 방식 사용(DAC)_GUID, UUID 이로 인해 특정 권한을 가진 파일이나 루트 계정으로 손쉽게 보안이 뚫림 MAC(강제적 접근 통제 방식) 양자의 보안 정책에 따라 높은 보안을 필요로 하는 정보가 낮은 보안 수준의 주체에게 노출 되지 않도록 접근을 제한하는 방식 SELinux에서는 이러한 강제적 접근 통제 방식(MAC)를 사용하여 크래커가 시스템을 마음대로 할 수 없게 끔 하여 시스템의 접근 보안을 향상 시킨다.
SELinux <보안 아키텍쳐> 전반적인 보안 아키텍쳐 Flask라 명칭 보안 정책의 로직은 운영체제와 분리된 구성 요소 안에 요약 (커널의 서브 시스템이나 보안 서버로 불림) <SELinux 보안정책> 유형 시행(Type Enforcement) 보안 모델을 기초로 함 역할 기반 접근 제어(Role Based Access control) 보안 모델 사용 Multilevel security(MLS) 군사보안 이러한 정책은 checkpolicy라 하는 별도의 컴파일로 컴파일됨 checkpolicy는 부팅시마다 보안 서버에 의해 판독 파일은 /ss_policy로 레이블 되며 이는 보안 정책이 부팅 때마다 변함을 의미한다. security load policy를 사용하게 되면 시스템 운영 중에도 변함이 가 능하다.
SELinux <Flask> Security context - 보안레이블 가변 길이 스트링 Security identifier(SID) - 보안서버가 Security context에 맵핑(MAP)한 정수 이다. - 실제 컨텍스트에 대한 간단한 핸들(Handle)로서 시스템을 지원한다. - 오진 보안 서버만이 인터프리터 가능 함 구성체(construct) : 객체관리자 - Flask는 이 구성체를 이용해 실제 시스템을 Binding 한다. - 이를 통해 SID와 security context를 불투명하게 처리한다.
SELinux 보안 서버 - 합리적인 사용자 그룹, 역할, 타입, 선택적 MLS 범위를 포함하는 Security context에만 SID를 제공함 구성체(construct) : 객체관리자 - 보안 서버와 상의하여 한 쌍의 레이블(객체와 주체)과 객체 클래스에 기초한 접속을 결정한다.
SELinux 런타임 변경 가능 - 런타임 변경 발생시 보안 서버는 더 이상 권한이 없는 SID는 취소하고 SID Mapping을 갱신하고 Access Vector Cache(AVC)갱신한다.
SELinux 감사합니다.