3.10. 유닉스 계열 시스템을 위한 전문적인 보안 확장

방대한 양의 연구과 개발이 다양한 커뮤니티의 보안 요구를 지원하기 위해 유닉스 계열 시스템을 확장해왔다. 예를 들어, 몇가지 유닉스 계열 시스템은 미국의 다중 수준의 군용 보안을 지원하기 확장되어졌다. 소프트웨어를 개발하려면 이러한 확장과 함께 작동될 수 있도록 소프트웨어 설계를 하려고 노력해야 한다.

FreeBSD 는 jail(2) 라는 새로운 시스템 호출을 갖고 있다. jail 시스템 호출은 환경을 많은 가상 머신으로 하부-파티셔닝할 수 있게 지원한다 (``super-chroot" 의미); 이는 인터넷 서비스 공급업자 (ISP) 가 가상 머신 서비스를 제공할 수 있는 환경을 구축하는데 있어 매우 널리 사용되고 있다. jail 내에서 모든 프로세스 (루트 소유의 프로세스일지라도) 는 jail 로 제한된 요청 범위를 갖는다. FreeBSD 가 처음 설치되어 부팅될 때 어떠한 프로세스도 jail 내에는 존재하지 않을 것이다. 프로세스가 jail 내에 놓일 때 그 프로세스 및 모든 자손 프로세스는 그 jail 내에 존재할 것이다. 일단 jail 내에 있다면 파일 네임-공간은 chroot(2) (일반적인 chroot 이스케이프 루트 (route) 는 블럭되어 있다) 를 통해서만 접근할 수 있으며 네트워크 자원은 특정 IP 주소의 경우만 바인딩할 수 있다. 또한 시스템 자원 조작 및 특권을 갖는 연산을 수행할 수 있는 능력은 갑자기 축소되며 다른 프로세스와 상호작용할 수 있는 능력도 동일 jail 내의 프로세스로만 제한된다. 각 jail 은 하나의 IP 주소에 바운드되어 있음을 주목해라; jail 내의 프로세스는 나가거나 들어오는 접속에 대해 다른 모든 IP 주소를 사용할 수 없을 것이다.

POSIX 능력과 특별한 마운트-time 옵션과 같이 리눅스에서 사용할 수 있는 약간의 확장은 이미 논의되었으며 리눅스 시스템에 대해 제한된 실행 환경을 생성하기 위해 약간의 노력이 있어 왔다; 많은 다른 접근 방법이 있다. 미국의 National Security Agency (NSA) 는 전문화된 언어로 보안 정책의 정의를 지원하고 이 정책을 적용하는 Security-Enhanced Linux (Flask) 를 개발했다. Medusa DS9 은 커널 수준에서 사용자 공간 인가 서버를 지원함으로써 리눅스를 확장한다. LIDS 는 관리자로 하여금 시스템을 로크 다운 (lock down) 할 수 있게 함으로써 파일과 프로세스를 보호한다. ``Rule Set Based Access Control" 시스템 RSBAC 는 Abrams 와 Lapadula 에 의한 Generalized Framework for Access Control (GFAC) 에 기초하는데 몇몇 커널 모듈에 기초해 접근 제어를 할 수 있는 유연한 시스템을 제공한다. Subterfugue 는 ``observing and playing with the reality of software" 의 뼈대로 시스템 호출을 가로채 그 매개변수와/또는 반환값을 변경해 sandbox, 추적기 등을 구현할 수 있다; 이는 변경없이 (어떠한 커널 수정도 필요하지 않다) 리눅스 2.4 하에서 작동한다. Janus 는 제한된 실행 환경내에서 신뢰되지 않은 애플리케이션을 sandboxing 하기 위한 보안 도구이다. 어떤 사람은 sandbox 구현으로 "Linux on Linux" 을 구현한 User-mode Linux 도 사용했다. 더욱 복잡한 보안 모델을 구현하기 위한 많은 다른 접근 방법이 있기 때문에 Linus Torvals 는 상이한 보안 정책이 삽입될 수 있도록 일반적인 접근 방법이 개발되어야 한다고 요청했다; 이에 대한 더욱 자세한 정보는 http://mail.wirex.com/mailman/listinfo/linux-security-module 를 보라.

다양한 유닉스 계열 시스템에서 보안에 대해 많은 다른 확장들이 있지만 이는 실제로 이 문서가 다루는 범위를 넘어선다.