
하지만 일단 프로그램이 권한을 획득하고 나면, 그 다음부터는 전적으로 프로그램의 재량에 맡겨집니다. 어떤 프로그램이 사용자 동의를 통하든 보안 버그를 이용하든, 일단 관리자 권한을 얻은 후 시스템에 손상을 가할 경우, 이를 막기란 거의 불가능합니다.
SELinux는 이렇게 권한이 남용되는 사태를 막기 위해 존재합니다. SELinux는 사용자와 프로그램, 그리고 파일과 장치에 각각 다른 권한을 지정할 수 있습니다. 어떤 프로그램에 모든 권한을 주는 대신, 그 프로그램이 수행되기에 충분한 권한만 부여할 수 있습니다. 이것으로 리눅스 시스템의 보안을 크게 높일 수 있습니다.
예를 들어, 리눅스에서 1024 이하 포트는 원래 관리자(root)만 사용할 수 있습니다. 따라서 어떤 프로그램이 1024 이하 포트를 사용하게 하고 싶으면, 어쩔 수 없이 관리자 권한을 줘야 하지요. 하지만 SELinux를 이용하면, 특정 프로그램에 관리자 권한을 부여하지 않고도 1024 이하 포트를 열게 할 수 있습니다.
SELinux는 원래 미국 국가보안국(National Security Agency, NSA)이 처음 만들어서 오픈 소스로 발표한 것입니다. 페도라는 코어 2부터, 데비안은 4.0 etch부터, 젠투는 보안 강화(Hardened) 버전으로 지원하여 왔습니다. 이번에 우분투가 그 대열에 동참하게 된 것입니다.
그러나 SELinux 적용에는 부작용도 따릅니다. 가장 큰 문제는 역시 '과민 반응'입니다. SELinux가 지나치게 엄격한 기준을 적용해서 시스템 사용에 불편이 오는 것입니다. 이러한 기준을 '정책(policy)'이라고 하는데, 페도라의 경우 처음에 정책을 너무 엄격하게 설정했다가 나중에 기본값에서 제외한 적이 있습니다.
또한 SELinux의 적용을 받는 모든 소프트웨어에 맞추어 정책을 섬세하게 설정하여야 하는데, 이것 또한 큰 진통이 필요한 작업입니다. 게다가 사용 가능한 프로그램이 추가될 때마다 끝임없이 문제가 발생하지요.
그래서 이미 SELinux가 적용되어 있는 리눅스 배포판의 사용자 중 일부는 설치 후에 SELinux를 비활성화하기도 합니다.
위와 같은 이유 때문에 우분투는 SELinux를 기본값으로 포함하지는 않고, 위에서 설명한 것처럼 selinux 패키지를 설치해야 적용되도록 설정한 것이지요.
아무쪼록 이번 도입이 우분투의 보안성을 한층 높이는 계기가 되길 바랍니다.
Hardy SELinux
Security-Enhanced Linux
Posted by 랜덤여신

