ISMS나 ISO27001 심사와 관련된 업무를 수행하다 보면 서버를 들여다 봐야 하는 일이 종종 발생한다. 솔직히 서버를 들여다 보는 일은 개인적으로 즐겁기도 하지만 안타까움을 느끼게 될 때가 더 많다. 왜냐하면 서버 내의 보안 수준이 생각보다 높지 않기 때문이다.
이는 서버를 운영하는 운영자 혹은 관리자들이 서버 운영체제와 서버에서 구동되는 DBMS나 WAS 등 SW의 관계, 권한 설정등에 대한 이해수준이 높지 않기 때문이거나 이해수준은 높더라도 보안과 연관지어 어떤 위협이 존재하는지 알지 못하는 경우가 많기 때문이다.
그렇다보니 서버 운영체제에 대한 취약점 점검이 단순한 체크리스트(그마저도 제대로 적용하지 못한다) 방식으로 진행되고 ISO나 ISMS 인증심사 때도 그 체크리스트 중에서 몇개를 샘플로 선정해 점검하는 수준을 벗어나지 못하는 경우가 많다.
예를 들어….
“공개서버인 웹서버에서 Zeroday 취약점이 발견되어 해커가 이를 악용하였고 결국 웹서버가 실행중인 계정의 권한이 탈취되었을 경우 어떤 위협이 발생할 수 있으며 이에 대비하여 어떤 보호대책을 적용해야 하는가?“
라는 질문을 던졌을 때 … 제대로 답변할 수 있는 보안담당자나 컨설턴트가 몇이나 되겠는가?
솔직하게 이야기해서 서버보안시스템 구축과 정책수립 등의 업무를 오랫동한 했기에 이에 대해 답변할 수 있지 그렇지 않았다면 아마도 나 또한 제대로 답변할 수 없을 것이다.
Secure OS(RedCastle)를 이용한 공개 서버 보안 강화
많은 기업들은 공개서버의 앞에 방화벽이나 IPS, 웹방화벽과 같은 네트워크 기반의 보안 솔루션을 도입하여 인터넷을 통해 시도되는 공격으로부터 공개서버들을 보호하고 있다.
바로 홈페이지가 구동중인 웹 서버와 메일서버 등이 대표적이다. 그리고 웹서버나 메일서버는 아니지만 기업들 B2B 구간에도 인터넷에 공개할 수 밖에 없는 서버가 존재한다. 그리고 이렇게 인터넷에 공개되는 서비스들은 대부분 HTTP 혹은 FTP 등을 통해 연결되는 경우가 많다. 다른 서비스는 모두 차단되어 있지만 웹서비스를 수행하는 TCP/80과 TCP/21 등은 기업으로서도 어쩔 수 없는 아킬레스건과 같은 존재다.
해커들은 이렇게 인터넷에 열려 있는 웹서버, FTP서버 등을 그대로 내버려두지 않으며 인터넷을 통해 서버로 침투하는 경로로 이용된다.
이런 웹서버, 메일서버, FTP서버 등의 공개서버에서는 Apache, Tomcat, Weblogic, Webtob, Jeus 등 수많은 웹/FTP 서비스 관련 응용프로그램들이 설치되고 실행된다. 이러한 응용프로그램들은 인터넷을 통해 수많은 사용자의 PC와 통신을 하고 있고 인터넷 어디서든 개방되어 있는 서비스 포트를 통해 서버와 연결할 수 있기 때문에 해커들은 이런 서비스 대몬의 취약점 혹은 웹 서버에서 실행되는 PHP, JSP, Servlet 등의 취약점을 찾기 위해 혈안이 되어 있다.
해커들이 웹서버를 공격하기 위해 사용하는 대표적인 취약성으로 OWASP 10대 취약점을 이야기하곤 한다. OWASP는 Open Web Application Security Project의 약자로서 이 프로젝트에서는 매년 10대 웹 취약점을 발표하고 있다. 여기에서 발표된 대부분의 취약점은 웹 응용프로그램 즉 PHP, JSP, ASP, Servlet 등을 개발할 때 프로그램 소스 수준에서 발생할 수 있는 취약점들을 담고 있으며 취약점이 포함된 웹 응용프로그램을 구동할 경우 홈페이지 위/변조 및 악성코드 삽입 더 나아가 웹 응용프로그램의 관리자 권한 및 운영체제의 계정 탈취 혹은 운영체제의 관리자 권한 탈취까지도 이루어질 수 있게 된다. 게다가 서버SW가 자체적으로 갖고 있는 취약점도 종종 발견되곤 한다.
여기서 중요한 것은 외부에 서비스를 제공하는 웹서버와 같은 어플리케이션SW와 운영체제의 격리다. 최근 어플리케이션의 관리를 편하게 하고 개발과 유지보수 관리의 부담을 줄이기 위해 어플리케이션 가상화인 도커(Docker)가 인기를 끌고 있다. 도커 또한 운영체제와 어플리케이션을 격리하는 솔루션의 한 종류이기 때문에 보안관점에서 효과를 볼 수도 있지만 근본적인 해결책은 될 수 없다.
그렇다면 서버 운영체제와 서버에서 실행되는 어플리케이션의 격리를 위해 적용할 수 있는 보안솔루션은 무엇이 있을까?
이런 보안솔루션에 가장 근접하고 있는 보안솔루션이 바로 SecureOS다.
웹서버(IIS) 소스파일 변조 공격 방어 사례
특히 다음과 같은 부분에서는 다른 어떤 보안 솔루션도 따라오지 못할 만큼의 강력한 보안기능을 제공할 수 있다.
1. PHP, JSP, JS, ASP, HTML, Servlet 등 웹 응용프로그램의 위/변조 혹은 공격을 위한 소스 및 파일 업로드 차단
2. 웹 기반 어플리케이션 대몬 (httpd, java 등)의 취약성을 이용한 운영체제의 명령어 실행 차단 및 중요 파일에 대한 접근 차단
3. 기타 어플리케이션의 취약점을 이용한 운영체제의 명령어 실행 및 파일 접근 차단
4. 업로드 취약성을 이용해 공격도구를 업로드 하고 실행시키는 공격의 차단.
5. 임시 디렉토리의 접근 권한이 있음을 이용해 공격 경유지로 이용하는 행위의 차단.
6. 서버의 일반 계정 권한을 탈취하여 수퍼유저 권한을 탈취하려는 시도의 차단.
7. 서버의 계정 권한을 탈취하여 인접한 타 서버로의 접근을 시도하는 행위의 차단.
이러한 보안 기능을 제공할 수 있는 이유는 Secure OS가 커널수준에서 다음의 기능을 수행할 수 있기 때문이다.
1. 웹 서버 대몬 혹은 어플리케이션 서버가 구동중인 계정에서 소스파일 혹은 설정파일에 대해 특정 프로그램 이외에는 쓰기(Write, Create, Delete, Modify)를 하지 못하도록 할 수 있다.
2. 웹 서버 대몬(httpd, java 등)이 운영체제의 주요 명령어를 실행(Excute System Call)하지 못하도록 할 수 있다.
3. root 계정에서 웹 소스파일에 접근하지 못하도록 할 수 있다.
4. 업로드 경로 및 웹 소스의 경로에서 파일의 실행을 차단할 수 있다.
5. 웹 서버 대몬 혹은 웹 서버가 구동중인 계정에서 운영체제의 임시디렉토리에 접근하는 것을 차단할 수 있다.
6. 일반계정에서 root 계정으로의 이동을 원천적으로 차단할 수 있으며 백도어의 실행도 원천적으로 차단할 수 있다.
7. SETUID/SETGID가 설정된 파일의 변조를 실시간으로 탐지하여 실행을 차단하며 새로운 파일이 생성될 경우 또한 실행을 차단할 수 있다.
Secure OS는 MAC(강제적 접근제어)와 DAC(임의적 접근제어) 보안 모델을 적절하게 적용함으로서 위의 기능들을 제공한다. 또한 웹 서버 뿐만 아니라 모든 서버의 내부에서 일어나는 행위에 대한 통제를 적절하게 수행할 수 있다.
SecureOS는 서버를 보호하기 위한 보안의 최종 수비수다.