SELinux의 주요 기능은 무엇인가요?
_____Q1: SELinux란 무엇인가요?
A1:
- Security-Enhanced Linux의 약자로, 리눅스 커널에 추가된 강화된 접근 제어(MAC: Mandatory Access Control) 시스템입니다.
- NSA(미국 국가안보국) 주도로 개발되었으며, Red Hat, CentOS, Fedora 등 주요 배포판에 통합되어 있습니다.
Q2: SELinux의 가장 핵심 기능은 무엇인가요?
A2:
- 강제 접근 제어(MAC): 시스템 자원에 대한 접근 권한을 커널 레벨에서 정책에 따라 엄격히 관리
- 타입 강제(type enforcement): 프로세스·파일 등 객체를 레이블(label)로 구분하여 상호작용을 제어
- 역할 기반 제어(RBAC): 사용자·프로세스에 부여된 역할(role)에 따라 수행 가능한 작업 제한
- 다단계 보안(MLS): 기밀 등급(secrecy level)에 따라 정보 흐름 통제
Q3: 타입 강제(type enforcement)란 무엇인가요?
A3:
- 모든 객체(파일·포트·프로세스)에 타입 레이블을 부여
- 프로세스 타입과 객체 타입 간의 상호작용 허용 여부를 정책(policy)으로 정의
- 예: httpd_t(웹 서버 프로세스)만 httpd_sys_content_t(웹 콘텐츠) 읽기 가능
Q4: 역할 기반 접근 제어(RBAC)는 어떻게 동작하나요?
A4:
- 사용자(identity) → 역할(role) → 타입(type) 계층으로 권한 부여
- 각 역할에는 수행 가능한 작업 세트(permission)가 매핑
- 일반 사용자가 root 역할에 접근 불가하도록 추가 보안 계층 제공
Q5: 다단계 보안(MLS, Multi-Level Security)이란 무엇인가요?
A5:
- 보안 등급(security level)을 레이블에 추가하여 정보 흐름 통제
- 상위 등급의 데이터가 하위 등급으로 흘러가는 것을 방지(비승인 정보 누출 차단)
Q6: 레이블(label) 기반 제어는 어떤 이점이 있나요?
A6:
- 파일·프로세스·네트워크 포트 등 모든 자원을 통일된 방식으로 관리
- 정책 변경 시 레이블만 수정하면 되어 일관성 있는 보안 정책 적용
- 세분화된 접근 제어로 최소 권한 원칙 구현
Q7: SELinux 정책(policy)의 종류는 무엇인가요?
A7:
- Targeted Policy: 주요 서비스만 SELinux 제어, 나머지는 허용(디폴트)
- Strict Policy: 시스템 전반에 대해 모든 프로세스·자원을 제어(고강도 보안)
- MLS Policy: 다단계 보안 요구 사항이 있는 환경용
Q8: SELinux 모드는 어떻게 나뉘나요?
A8:
- Enforcing: 정책 위반 시 접근 차단 및 로그 기록
- Permissive: 접근 차단 없이 위반 시 로그만 기록(문제 진단용)
- Disabled: SELinux 기능 완전 비활성화
Q9: 감사(auditing) 기능은 왜 중요한가요?
A9:
- 접근 시도·차단 내역을 상세히 기록하여 침입 시도 탐지
- /var/log/audit/audit.log 파일에 이벤트 저장
- ausearch, audit2why, audit2allow 등의 도구로 분석·정책 보완 가능
Q10: SELinux 적용 시 유의할 점은 무엇인가요?
A10:
- 초기 설정 복잡: 모드 전환 전에 정책·로그를 충분히 검토
- 타사 애플리케이션 호환성 확인: 커스텀 모듈·예외(policy module) 작성 필요
- 성능 영향 최소화: Targeted Policy 사용, Permissive 모드로 테스트 후 Enforcing 전환
SELinux는 기본적으로 리눅스 시스템에서 실행되는 프로세스와 파일 간의 접근 권한을 제어하여, 시스템의 보안을 높이고 악성 코드나 해커의 공격으로부터 보호하는 데 중요한 역할을 합니다.
SELinux의 주요 기능은 다음과 같습니다.
1. Mandatory Access Control (MAC) SELinux는 전통적인 Discretionary Access Control(DAC)과는 달리, 시스템 관리자가 설정한 정책에 따라 모든 접근을 제어합니다.
이는 사용자가 파일이나 프로세스에 대한 접근 권한을 임의로 변경할 수 없도록 하여 보안을 강화합니다.
MAC은 시스템의 보안 정책을 중앙에서 관리하고, 이를 통해 권한 상승 공격을 방지합니다.
2. 정책 기반 보안 SELinux는 다양한 보안 정책을 지원합니다.
기본적으로 제공되는 정책은 "targeted"와 "strict"가 있으며, 사용자는 필요에 따라 맞춤형 정책을 작성할 수 있습니다.
이러한 정책은 프로세스와 파일 간의 관계를 정의하고, 어떤 프로세스가 어떤 자원에 접근할 수 있는지를 명확히 규정합니다.
3. 컨텍스트 기반 접근 제어 SELinux는 각 파일, 프로세스, 포트 등에 보안 컨텍스트를 할당합니다.
이 컨텍스트는 사용자, 역할, 타입, 레벨 등으로 구성되어 있으며, 이를 통해 SELinux는 접근 제어 결정을 내립니다.
예를 들어, 특정 프로세스가 특정 파일에 접근하려고 할 때, 해당 프로세스와 파일의 보안 컨텍스트를 비교하여 접근을 허용하거나 거부합니다.
4. 로깅 및 감사 기능 SELinux는 모든 접근 시도에 대한 로그를 기록하여, 보안 감사 및 문제 해결에 유용한 정보를 제공합니다.
이를 통해 시스템 관리자는 어떤 프로세스가 어떤 자원에 접근했는지를 추적할 수 있으며, 보안 위반이 발생했을 경우 신속하게 대응할 수 있습니다.
5. 정책 모드 SELinux는 세 가지 모드를 지원합니다: Enforcing, Permissive, Disabled. - Enforcing 모드 : SELinux 정책이 강제로 적용되며, 정책에 위배되는 접근 시도가 차단됩니다.
- Permissive 모드 : SELinux 정책이 적용되지만, 위반 시도는 차단되지 않고 로그에 기록됩니다.
이 모드는 정책을 테스트하거나 디버깅할 때 유용합니다.
- Disabled 모드 : SELinux가 비활성화되어 모든 접근이 허용됩니다.
6. 역할 기반 접근 제어 (RBAC) SELinux는 역할 기반 접근 제어를 통해 사용자와 프로세스의 역할을 정의하고, 각 역할에 따라 접근 권한을 부여합니다.
이를 통해 시스템 관리자는 특정 역할에 필요한 최소한의 권한만을 부여하여 보안을 강화할 수 있습니다.
7. 보안 강화 SELinux는 시스템의 보안을 강화하기 위해 다양한 기능을 제공합니다.
예를 들어, 네트워크 포트에 대한 접근 제어, 프로세스 간의 통신 제한, 파일 시스템의 특정 디렉토리에 대한 접근 제한 등을 통해 시스템의 공격 표면을 줄입니다.
8. 커뮤니티 및 지원 SELinux는 오픈 소스 프로젝트로, 활발한 커뮤니티와 지원을 받습니다.
다양한 배포판에서 SELinux를 지원하며, 문서화와 교육 자료도 풍부하여 사용자가 SELinux를 효과적으로 활용할 수 있도록 돕습니다.
SELinux는 리눅스 시스템의 보안을 강화하는 데 필수적인 도구로, 다양한 기능을 통해 시스템의 무결성과 기밀성을 보호합니다.
이를 통해 시스템 관리자는 보다 안전한 환경을 구축하고, 잠재적인 보안 위협으로부터 시스템을 방어할 수 있습니다.
작성자:
정윤서 [비회원]
| 작성일자: 1년 전
2024-12-28 07:21:21
조회수: 150 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 150 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.