2024-04-24 22:15 (수)
[김석의 보안특강①] 솔라리스 11로 배우는 유닉스 보안
상태바
[김석의 보안특강①] 솔라리스 11로 배우는 유닉스 보안
  • 길민권
  • 승인 2014.02.14 05:32
이 기사를 공유합니다

솔라리스 11을 기준으로 유닉스 시스템 보안 강화 방법 소개
[김 석 수석컨설턴트] 대부분의 관리자라면 보안사고 위협으로부터 시스템의 보안을 유지하기 위해서 어떤 노력을 기울여야 하는지에 대해서 고민해 봤을 것이다.
 
규모가 제법 있는 기업이나 금융권은 외부 컨설팅을 통한 진단이나, 체크리스트를 통해 점검을 수행하겠지만, 규모가 작은 중소기업의 경우는 시스템 유지 보수 업체에게 의존할 수 밖에 없다.
 
통상적으로 보안을 고려하게 되면 네트워크 기반의 접근제어를 통해 운영하는 것이 비용적으로도, 효율성면에서도 뛰어나다.
 
네트워크 보안은 매우 중요하지만 보안에서 중요한 핵심 자산은 시스템에 위치하는 경우가 일반적이므로 시스템 보안의 중요성을 간과 하면 안된다.
 
조직의 가장 중요한 정보를 가진 것은 데이터베이스나 어플리케이션 서버 등의 토대가 되는 시스템이기 때문이다.
 
시스템 보안에서 가장 중요한 것은 시스템의 특징과 기능을 이해하고 적용해야 한다. 특정 보안 솔루션에 의존해서는 안되며, 일반적인 수준의 체크리스트 보다 조직의 업무에 최적화된 체크리스트가 필요하다. 이러한 점은 이미 시스템 관리자 및 보안 관리자 누구나가 공감하는 부분이다.
 
통상적으로 업무가 세분화된 조직의 경우는 시스템 운영, 개발, 보안부서가 분리되고 있고, 상호간의 업무 특징으로 인해 반목하기 쉽다.
 
가령 보안 부서 입장에서 시스템에 대한 고려 없이 범용화된 체크리스트를 적용하게 되면 생각지 않은 장애를 종종 경험하게 되며 이러한 장애로 인해 시스템 운영 부서와의 업무적 괴리가 생기기 쉽다.
 
따라서 보안 부서는 조직에서 사용중인 시스템과 응용프로그램에 대한 전반적인 특징을 이해하고 영향성 평가를 통해 보안성 향상을 고려해야 한다.
 
시스템이 구축된 현장을 경험하다 보면 해당 시스템이 가진 보안을 활용함으로써 많은 위협을 제거 할 수 있음에도 불구하고 번거롭다 등의 여러 이유로 이를 도입하지 않는 경우가 많다. 그럼에도 불구하고, 시스템에 내장된 보안 기능을 활용하는 것은 여러모로 장점이 있다.
 
첫째, 비용이 추가로 발생되지 않는다는 점이다. (운영체제에 포함되어 있는 기능이므로 추가 비용 부담이 없다.)
 
둘째, 호환성 문제가 발생할 여지가 적다. (당연하겠지만 시스템 내장 보안 기능이므로 이미 수많은 검증을 거쳐 출시되었다.)
따라서 시스템이 보유한 내장 보안 기능을 활용하여 보안성 향상을 검토하는 것은 매우 바람직하다고 할 수 있다.
 
이번 기고에서는 가장 최신의 솔라리스 11을 기준으로 유닉스 시스템 보안 강화 방법에 대해서 정리해 보고자 한다.
 
최초의 클라우드 OS인 솔라리스 11은 기존의 솔라리스 시스템과는 많은 부분에서 차이점을 가지고 있지만, 대부분의 유닉스 시스템도 유사한 기능을 제공하므로 도움이 되리라 생각한다. 현재 가장 최신 버전은 11.1이며 곧 11.2가 출시 될 예정이다.
 
1)솔라리스 보안 구성
1. OS 설치와 불필요한 서비스 제거
OS 설치시에 대부분 큰 이슈가 없는 한 기본 설치를 적용하는 것이 일반적이다. 당연하겠지만, OS에 설치된 패키지 및 서비스가 많다는 것은 많은 위험을 내포한다는 것이다.
 
그 만큼 많은 소프트웨어 버그가 존재 할 수 있기 때문에 위협이 더 많아지고, 관리적으로도 패치해야 할 소프트웨어가 늘어나므로 비효율적이라고 할 수 있다.
 
최근의 시스템은 기본적으로 패키지의 리포지토리를 지원하므로 사내에 리포지토리 서버를 설치 구성해 두면 시스템 설치 시 추후 라이브러리 문제를 고려하여 불필요하게 많은 패키지를 설치하지 않아도 된다.
 
즉, 필요할 때 마다 리포지토지를 이용해서 패키지를 설치하면 되고, 이러한 리포지토리를 이용한 방식의 장점은 패키지 의존성 문제를 해결해 주므로 매우 유용하다고 할 수 있다. 또한 불필요한 서비스를 제거하여 보안상의 다양한 취약점을 줄여 줄 수 있다. 그러나 대부분의 관리자들은 어느 서비스가 불필요한 서비스 인지 파악하지 못하고 있다. 임의로 특정 서비스를 중지하는 순간 때때로 서비스 장애로 이어지기 때문에 충분한 확인과 검토 후에 반영하도록 해야 한다.
 
2. 배너 경고 메시지 활성화
필자가 가장 강조하는 부분 중 하나이기도 하다. 통상적으로 /etc/issue 파일에 배너 메시지를 넣을 수 있다. 이는 간단한 수준의 배너 메시지를 삽입할 수도 있지만, 보다 강력한 법적 처벌 조항 및 경고를 적시 하여 공격자는 물론, 내부자의 부정을 사전에 예방할 수 있다.
 
/etc/motd 파일과 달리 /etc/issue 파일은 로그인 여부와 관계 없이 접속시도를 하는 모든 사용자에게 적용되며, 필요시 법적 자문을 통해 법적 책임에 대한 경고를 강력하게 적용함으로써 공격자의 공격 시도 및 내부자의 부정행위 시도를 사전에 예방할 수 있다.
솔라리스 11에서도 마찬가지로 해당 메시지 파일을 통해 경고 메시지를 작성할 수 있다.
해당 파일은 텔넷 등의 연결시도시에 출력되므로 ssh 에서도 issue 파일의 내용을 반영하려면 sshd_config 파일의 Banner 항목을 활성화 하고 ssh 서비스를 재시작함으로써 적용할 수 있다.
 
<수정 전>
# Banner to be printed before authentication starts.
#Banner /etc/issue
 
<수정 후>
# Banner to be printed before authentication starts.
Banner /etc/issue
 
<서비스 재시작>
#svcadm restart ssh
 
3. 무결성 검증 도구를 활용한 베이스 라인 생성
개발서버 등 잦은 변화가 생기는 시스템이 아니면 대부분의 시스템은 초기설치 후 안정화 되면 시스템의 사용자 및 파일의 변화가 크지 않다. 주기적으로 해당 정보를 기록하고 추후 변화에 따른 비교를 통해 이상징후를 발견할 수 있다.
 
이러한 도구들 중에 파일 무결성 검증 도구는 tripwire가 가장 유명하다. 솔라리스에서는 BART 라는 기능을 통해 베이스라인을 생성할 수 있는 기능을 제공해 준다.
 
이 기능은 다른 명령어와 병행하여 사용 가능하므로 솔라리스 시스템을 운영한다면 반드시 사용해 보기를 권장한다. 이와 관련한 내용은 필자의 블로그에서 “솔라리스 Basic Audit Reporting Tool” 내용의 문건을 참고하기 바란다.
 
4. 취약점 점검 도구의 활용
Nessus 와 같은 강력한 취약점 스캐너를 이용하여 사내 정보시스템의 취약점을 점검할 수 있지만 비용 문제 등으로 회사에서 도입이 어려운 경우가 많다. 이럴 경우 오픈 소스 기반의 취약점 도구가 큰 도움을 준다. OpenVAS나 NexPose 등의 도구를 비롯하여 많은 제품이 제공되므로 취약점 점검을 통해 사전에 널리 알려진 취약점을 제거해야 한다.
 
5. 사용자 접근 제어를 위한 RBAC
필자가 솔라리스 시스템의 보안 기능중에서 가장 쓸만하다고 추천하는 기능중 하나이다. role (역할)기반 사용자 접근 제어를 구성하여 외부 공격자 및 내부 사용자의 권한을 최소권한의 원칙에 부합하게 제한하여 사용할 수 있다.
 
이는 시스템에서 일반 사용자는 매우 제한적인 권한을 사용하지만 root 또는 administrator 사용자는 매우 강력한 권한을 수행한다. 고의로 했던, 실수로 했던 관리자의 권한을 통해 수행되는 명령어는 시스템에 매우 위협적이다.
 
필자가 경험한 많은 전산실에서는 전산실 내의 직원들끼리 root 또는 administrator 계정을 공유하는 일이 비일비재했다. root 또는 administrator 사용자가 아니면 시스템을 관리하는 것이 제한적이기 때문인데 , 역할기반 사용자 접근제어를 사용하면 이러한 권한 문제를 해결 할 수 있다.
 
6. 존 기능을 이용한 서비스별 제한(가상화 보안)
솔라리스 시스템을 ZONE이라는 가상화를 제공한다. 이를 이용해 여러개의 서비스를 격리 운영할 수 있으며 실제로 매우 훌륭한 성능을 보여준다. 존 기능을 이용하여 서비스별 제한을 적용할 수 있고, 가상 스위치 및 가상 네트워크에 대한 패킷필터링, 로드밸런싱 등을 수행할 수 있다.
 
7. Audit 의 기능과 VM 추적 기능
감사 기능이라고 불리우는 Audit 기능을 활용할 수 있다. 근래에 나온 대부분의 시스템은 모두 지원을 하고 있다. 다만, 솔라리스 시스템에서는 이러한 감사 기능을 통해 다양한 레벨의 로깅을 수행할 수 있다. 최신 솔라리스에서는 가상 시스템 별 로깅도 별도로 지원하므로 VM 들에 대한 로그 트랙킹 또한 가능하다.
 
8. Trusted Extension(TE)의 활용
이 기능은 통상적인 조직환경에서 일반적으로 사용되는 기능은 아니다. 이 기능은 국방부와 같이 Labeled Security 가 필요한 조직에서 사용이 가능하다. 과거 솔라리스 시스템은 트러스티드 솔라리스라는 별도의 제품을 통해 NSA에서 요구하는 보안적합성을 충족시켰다. TE를 활용하면 존을 이용하여 Laebled Security를 구현할 수 있다. 솔라리스 OS 내장기능으로 재탄생하여 무료로 구현이 가능하다.
 
9. 파일시스템 암호화
솔라리스 시스템은 전통적인 파일시스템인 UFS를 솔라리스 11부터 과감히 걷어 내고 솔라리스 10에서 선보인 ZFS 로 변경하였다. ZFS는 확장성도 뛰어난 파일시스템이긴 하지만, 전통적인 UNIX 파일시스템에서 제공하는 단순한 rwx 권한이 아닌 ACE (Access Control Entry)를 제공한다.
 
10. IP 필터 및 TCP Wrapper
IP 필터를 이용하여 패킷 기반의 접근제어를 수행할 수 있다. 리눅스 시스템의 netfiler 와 같이 솔라리스에서는 BSD에서 사용했던 IP fileter를 이용하여 패킷 필터링을 수행할 수 있으며 TCP Wrapper를 이용하여 기본적인 필터링을 수행할 수 있다. IP 필터와 달리 TCP Wrapper는 IP 기반 서비스로 신뢰성이 높지는 않지만 구현이 용이하므로 구현해 두는 것이 바람직하다.
 
그 외에도 다양한 보안 기능을 가지고 있고, 이외에도 다양한 오픈소스를 이용하여 보안을 강화 할 수 있다. 추후 위에서 언급한 기능에 대해서 상세하게 기고하도록 하겠다.
(바쁘신 가운데 알찬 내용 연재로 준비해 주신 점 감사드립니다. -편집자 주-)
 
[필자 소개]
김 석. 現 노브레이크 수석컨설턴트, 안산대학교 IT 응용보안과 겸임교수, 오라클 ACE Director(솔라리스). 이외 활동으로 김재벌의 IT이야기 블로그(blog.solaris.co.kr) 운영, 솔라리스 테크넷, 솔라리스 스쿨 운영자로 활동중.
-이메일: ostoneo@nobreak.co.kr



■ 보안 사건사고 제보 하기

▷ 이메일 : mkgil@dailysecu.com

▷ 제보 내용 : 보안 관련 어떤 내용이든 제보를 기다립니다!

▷ 광고문의 : jywoo@dailysecu.com

★정보보안 대표 미디어 데일리시큐 / Dailysecu, Korea's leading security media!★