SELinux 보안정책 (SELinux Security Policy)
쉽게 풀면
일반적인 리눅스에서는 프로그램이 한 번 실행되면 그 사용자의 권한 안에서는 비교적 자유롭게 파일에 접근할 수 있습니다. SELinux 보안정책은 여기에 한 겹의 규칙을 더 씌워서, 웹서버 프로그램은 웹 관련 파일만, 데이터베이스 프로그램은 데이터베이스 관련 파일만 건드릴 수 있도록 세밀하게 제한합니다. 마치 회사에서 직원증마다 출입 가능한 구역이 정해져 있는 것과 비슷합니다. 정책 파일 하나가 사실상 시스템 전체의 출입 규정 역할을 합니다.
왜 중요한가
웹서버나 데이터베이스처럼 외부와 직접 통신하는 프로그램이 취약점을 통해 뚫리더라도, SELinux 보안정책이 잘 설정되어 있으면 공격자가 시스템 전체로 권한을 확장하기가 훨씬 어려워집니다. 이 때문에 정보보안학에서는 침해사고 대응력을 높이는 심층 방어(defense in depth) 기법의 대표 사례로 자주 다뤄집니다.
논문에서는 이렇게 쓰입니다
정책을 실제로 적용해서 규칙을 위반하는 행위를 차단하는 모드로 실험을 진행했다는 의미입니다.
프로세스(도메인)와 자원(타입) 사이의 관계를 규칙으로 정의해서 접근 여부를 결정하는 방식이라는 설명입니다.
조금 더 깊게 보면
SELinux는 타입 강제(Type Enforcement), 역할 기반 접근통제(RBAC), 다단계 보안(MLS) 등 여러 모델을 결합해서 동작합니다. 정책은 강제 모드(enforcing)와 허용 모드(permissive)로 운영할 수 있는데, 허용 모드에서는 위반 사항을 로그로만 남기고 실제로 차단하지는 않아 정책 개발 및 디버깅 단계에서 활용됩니다.
주의할 점
정책이 지나치게 복잡해지면 운영자가 오류 로그를 정확히 해석하지 못해 정책을 아예 꺼버리는 경우가 생기는데, 이는 강제적 접근통제가 주는 보호 효과를 스스로 포기하는 것과 같습니다.