리눅스 보안 강화의 멋진 대안, SE리눅스

일반입력 :2005/07/06 18:27

Michael Mullins

중요한 데이터를 호스팅하거나 전송하는데 리눅스를 사용한다면 SE(Security-Enhanced)리눅스를 한번 검토해 볼만하다.미국 국가안전국(NSA)이 개발했으며 무료로 배포되고 있는 SE리눅스는 2001년 1월 최초로 공개됐으며 NSA가 오픈소스 리눅스 커널을 향상시키기 위해 탄생시킨 연구 프로젝트다.목적은 데이터 오염에 대한 대책을 강화하고 애플리케이션 보안절차를 우회하려는 시도를 방지하며 악성 혹은 불량 애플리케이션으로 인해 발생할 수 있는 파괴 현상을 완화하려는 것이다.일반 리눅스 vs. SE리눅스일반 리눅스 시스템의 보안은 커널, 그리고 setuid/setgid 바이너리를 통해 구축된 의존성을 통해 구축돼 있다.이와 같은 기존 보안 메커니즘 하에서는 특권을 가진 애플리케이션, 설정, 프로세스를 통해 결함을 악용하려 한다면 전체 시스템이 영향을 받는 경우가 다반사다. 이 문제는 대다수 최신 운영체제에 모두 적용되는데 더욱 복잡해지고 애플리케이션 호환성을 확보하려는 와중에 생긴 것이다.이에 비해 SE리눅스에서는 보안을 커널과 보안 설정 정책에만 의존하고 있다.보안 시스템을 올바로 설정했다면 잘못된 애플리케이션 설정이나 결함 있는 애플리케이션/데몬을 악용한다 해도 사용자 프로그램과 그 프로그램의 시스템 데몬에만 영향이 미치게 된다. 다른 사용자 프로그램과 데몬의 보안은 영향을 받지 않으며 기저에 깔린 보안 시스템 구조도 마찬가지다.즉 간단히 말하자면 SE리눅스에서는 단일 애플리케이션을 잘못 설정했거나 악용하더라도 전체 시스템에 영향을 주지 못한다는 것이다.SE리눅스의 커널과 유틸리티, 데몬/유틸리티 패치, 문서는 SE리눅스 웹사이트에서 다운로드할 수 있다. 새로운 커널을 컴파일하고 시스템 패키지 원본에 접근하려면 정상적으로 작동하는 리눅스 시스템을 갖고 있어야 한다.개발자들은 현재 레드햇 리눅스 배포판을 이용해 SE리눅스 최신 버전을 테스트하고 있다. 바이너리 파일들은 기존 리눅스 애플리케이션과 호환되며 보안 기능을 갖춘 애플리케이션에 쓰이는 시스템 콜이 포함돼 있다.또한 커널이 허용(permissive) 모드로 작동되도록 컴파일할 수도 있다. 허용 모드에서는 기설치된 사용자 애플리케이션, 그리고 시스템 운영에 필요한 권한을 결정하는 보안 설정 정책을 감사할 수 있다. 시스템을 재구축하지 않아도 허용모드에서 일반모드로 언제든지 전환할 수 있다.사용자·애플리케이션 별 권한 설정 가능SE리눅스를 구현하는 가장 큰 이유는 실행에 필요한 최소 권한만을 갖도록 사용자 프로그램을 제한함으로써 강제적인 접근 제어를 적용시키려는 것이다.이외에 일반 리눅스에 비해 눈에 띄는 개선점으로는 아래와 같은 것들이 있다.

  • 커널 오브젝트, 서비스에 대한 접근 제어
  • 프로세서 초기화, 상속, 프로그램 수행에 대한 접근 제어
  • 파일 시스템, 디렉토리, 파일, 오픈 파일 명세에 대한 접근 제어
  • 소켓, 메시지, 네트워크 인터페이스에 대한 접근 제어
  • 패치·업데이트의 압박에서 벗어나자SE리눅스는 시스템 고장을 방지하려면 사용자와 시스템 애플리케이션 모두를 지속적으로 업그레이드해야만 한다는 요구사항에서 벗어날 수 있도록 해준다. 편리한 시간에 패치, 업데이트를 적용하면 되기 때문이다.SE리눅스는 아직도 개발중인 프로젝트다. 따라서 NSA는 핵심 정보를 담고 있거나 보호하는 시스템에 사용하는 것을 권장하지 않는다. 그러나 지난해 필자가 SE리눅스를 운영해본 결과 시스템 고장은 전혀 없었다.스스로 테스트해보고 판단해보라. 무료이면서도 잘 동작한다. @