2. 윈도우 서버(Window Server) 취약점 진단

by Toff

   개요
이번 포스팅에서는 시스템 진단 중 윈도우 서버 취약점 진단에 대해서 알아보고자 한다. 윈도우 서버 취약점 진단에서는 배치 파일(=스크립트)을 사용하여 취약점 진단을 하며 해당 결과값을 토대로 인터뷰와 수동점검을 진행한다. 해당 배치 파일은 행정자치부에서 나온 주요정보통신기반시설 가이드를 기준으로 작성되었다. 고객사마다 환경은 모두 제 각각이기에 스크립트 결과물에서 취약한 부분뿐만 아니라 양호한 부분까지 반드시 수동으로 한번 더 진단해야 한다. 그렇기에 반드시 수동으로 점검해줘야 할 부분들과 기준은 있지만 고객사마다 상대적으로 진단해야 되는 부분들과 기타 알아두면 좋은 사항들에 대해 알아보도록 하자.


   주의 깊게 봐야할 항목들
주요정보통신기반시설 가이드 중 윈도우 서버 취약점 항목은 그림 1-1과 같다. 이 중에서 주의깊게 봐야하는 항목들만 살펴보도록 하자. 예시에서 보여주는 스크립트 결과의 진단 시각은 2017년 1월 13일로 가정한다. 각 항목에 대한 기본적인 설명은 아예 하지 않거나 가볍게 다루기에 주요정보통신기반시설 가이드와 같이 보도록 하자.

그림 1-1 주요정보통신기발시설 가이드 > 윈도우 서버 취약점 항목

1.3 불필요한 계정 제거
[ 불필요한 계정이 존재하지 않을 경우 양호 ]
- 해당 항목은 굉장히 애매모호할 수 있는 부분이다.
- 판단 기준으로는 "최근 로그인 시간", "비밀번호 변경 시간" 등이 있으며 확실하게 사용하는 계정만 있지 않는 이상 인터뷰에서 반드시 확인해야 한다.
- 그림 1-2 는 예시이다. 해당 계정은 데이터베이스 관리자로 추정되나 해당 계정에 1년 넘게 로그인 하지 않았기 취약/양호의 기준이 애매하다. 이런 경우에는 반드시 인터뷰를 통해 확인해야 한다.
그림 1-2 불필요한 계정 제거 예시


1.11 패스워드 최대 사용 기간
[ 최대 암호 사용 기간 설정이 90일 이하인 경우 양호  ]
- 로컬 사용자 및 그룹 > 사용자 > 일반 > "암호 사용 기간 제한 없음"에 체크가 되어 있다면 패스워드 최대 사용 기간이 의미가 없어진다. 그렇기에 해당 항목을 점검할때는 반드시 "암호 사용 기간 제한 없음" 항목도 확인해야 한다.
- 다시 말해 패스워드 최대 사용 기간이 양호인 90일로 되어 있어도 암호 사용 기간 제한 없음에 그림 1-3 과 같이 체크가 되어 있다면 취약이라고 판단한다.
그림 1-3 암호 사용 기간 제한 없음 체크


2.2 하드디스크 기본 공유 제거
[ 기본공유 항목(C$, D$)이 존재하지 않고 해당 레지스트리가 0일 경우 양호 ]
- 기본적으로 지정되어 있는 C$, D$, ADMIN$ 등 의 공유를 제거해야 한다.
- C$, D$ 같은 경우 레지스트리에 등록하지 않으면 재부팅했을 때 공유가 다시 올라오게끔 되어 있다. 그림 1-4 와 같이 진단 시에 공유는 존재하지 않으나 레지스트리 값이 등록되어 있지 않을 때는 취약이라고 판단한다.
그림 1-4 하드디스크 기본 공유 확인 취약


2.15 IIS 미사용 스크립트 매핑 제거
- 해당 항목은 굉장히 과거 취약점이기에 Win 2003 이후로는 아예 해당 사항이 없다.
- 그렇기에 양호/취약이 아닌 N/A로 판단한다.


2.16 IIS Exec 명령어 쉘 호출 진단
- 해당 항목도 위와 같이 굉장히 과거 취약점이기에 Win 2003 이후로는 아예 해당 사항이 없다.
- 그렇기에 양호/취약이 아닌 N/A로 판단한다.


2.19 FTP 서비스 구동 점검
[ FTP 서비스를 사용하지 않는 경우 양호 ]
- 어떠한 사유에서든 FTP가 구동되고 있다면 무조건 취약으로 판단한다.
- FTP는 잘 알려져 있듯이 스니핑에 굉장히 취약하기 때문이다.


2.25 최신 서비스팩 적용
[ 최신 서비스팩이 설치되어 있을 경우 양호 ]
- 해당 윈도우 서버에 맞는 서비스 팩이 적용되어 있는지 확인하는 항목이다
Q) win 2003은 service pack 2 까지만 나오고 서비스가 중단되었다. 고객사 서버가 win 2003 이며 service pack 2 일 경우 취약한가?
A) 서비스가 중단되었지만 결과적으로만 봤을때 최신 버전이기에 양호하다고 판단한다,


2.27 IIS 웹 서비스 정보 숨김
[ 400, 401, 403, 1, 500 에러에 대해 별도의 페이지가 지정되어 있는 경우 양호 ]
- 기본 에러 페이지는 서버의 정보를 노출할 수 있으므로 기본이 아닌 다른 임의의 페이지로 변경해줘야 한다.
Q) 기본 에러 페이지는 400.htm, 401.htm, 402.htm 이며, 스크립트 점검 결과 해당 에러 페이지가 기본인 400.htm, 401.htm, 402.thm 으로 출력되었다. 이때는 취약한가?
A) 페이지의 이름은 기본 에러 페이지 이름으로 되어 있지만 안의 내용을 고객사가 임의의 내용으로 변경했을 수도 있다. 인터뷰를 통해 확인해야 하는 부분이다.


2.28 SNMP 서비스 구동 점검
[  SNMP 서비스를 사용하지 않을 시 SNMP 서비스를 중지한 경우 양호 ]
- 기준에는 SNMP 서비스를 사용하는 경우 취약하다고 되어 있지만 특별한 사유가 있을 시에는 양호라고 판단한다. 그렇기에 서비스가 구동 중인 경우 인터뷰를 통해 반드시 확인이 필요하다


2.36 예약된 작업에 의심스러운 명령이 등록되어 있는지 점검
[ 예약된 작업에 의심스러운 명령이 등록되어 있지 않은 경우 양호 ]
- 예약된 작업에 불필요한 명령어나 파일이 없을 경우 양호라고 판단한다.
Q) 내부 서버에 Adobe Flash 로 시작하는 웹 서버 작동 시에 필요한 프로그램이 예약된 작업에 있을 경우 취약한가?
A) 기본적으로 내부 서버에는 외부와 통신이 되면 안된다. 그렇기에 외부로 웹 서버 통신을 할 때 필요한 Adobe Flash 등의 프로그램은 불필요하기에 취약하다고 판단한다.


3.1 최신 HOT FIX 적용
[ 최신Hotfix 또는 PMS(Patch Management System) Agent가 설치되어 있을 경우 양호 ]
- 해당 항목도 2.25 의 QA 와 비슷한 상황이 있을 수 있으니 참고하도록 하자. 여기서도 HOT FIX가 중단되어도 가장 최신 HOT FIX만 설치되어 있다면 양호하다고 판단한다.
Q) 고객사 서버에는 2016년 12월 5일의 HOT FIX가 가장 최신 HOT FIX이다. 하지만 MS에서 제공한 마지막 HOT FIX는 2017년 12월 6일이다. 이때는 취약하다고 볼수 있는가?
A) 고객사 서버의 상황과 인터뷰를 통해 판단한다. 2017년 12월 6일 배포가 IIS, FTP, SNMP 등의 HOT FIX 이고, 고객사에서는 IIS, FTP, SNMP 등의 서비스가 구동되고 있지 않다면 설치할 필요가 없는 HOT FIX 이므로 양호하다고 판단한다.


3.3 정책에 따른 시스템 로깅 설정
[ 이벤트 감사 설정이 아래와 같이 설정되어 있는 경우 양호 ]
Q) 기준에는 모든 감사에 대해 로그를 남겨야 한다고 가정해보자. 이때 스크립트 결과 물이 그림 1-5 와 같을 때 취약한가?
A) 스크립트 결과물만 봤을때는 취약하다. 하지만 고객사에서 접근 통제 솔루션, 로그 관리 시스템 등의 솔루션 등이 있을 수도 있다. 이럴 때는 양호라고 판단하기에 반드시 인터뷰를 통해 솔루션의 여부 또한 확인해야 한다.
그림 1-5 시스템 로깅 설정 예시


5.3 화면 보호기 설정
[ 화면 보호기를 설정하고, 암호를 사용하며, 대기 시간이 5분일 경우 양호 ]
Q) 만약 고객사에서 해당 서버를 작업하고 있기에 지금은 화면 보호기를 설정할 수 없다고 한다. 이때는 양호인가?
A) 취약하다고 판단한다. 어떠한 작업을 하더라도 해당 경우에는 취약하다고 판단한다.




윈도우 서버 2003 이전에는 서버 설치 후 아무런 값 설정을 하지 않아도 default로 값이 들어가 있기에 값을 불러오지 못하거나 그런 경우는 드물다. 하지만 윈도우 서버 2008 이후부터 설정에 아무런 값을 넣지 않았을 경우 값이 "null(공백)" 으로 되어 있다. 그럴 경우 대체적으로 그림 1-6 과 같이 레지스트리 값을 불러오지 못한다. 이럴 경우는 값 설정 자체가 되어있지 않기 때문에 취약하다고 판단한다.
그림 1-6 null 값

이 외에도 수동 점검과 인터뷰를 통해 확인해야 하는 항목들이 많다. 단순히 기준 값과 비교해서 양호/취약을 판단하는 것이 아니라, 고객사의 환경에 맞게 기준을 상대적으로 적용시킬 필요성이 있다.

또한 양호와 N/A 기준이 애매모호한 항목들도 있다. 예를 들어 2.19 FTP 서비스 구동 점검의 경우 FTP 서비스를 이용하지 않는다면 양호이다. 그 아래 항목 2.20 ~ 2.22는 FTP 세부 설정이다. 여기서 2.20, 2.21, 2.22 항목은 판단할 수 있는 사항이 없으므로 N/A 라고 판단한다. 결론적으로 고객사에 진단을 하기 앞서 양호, 취약, N/A에 대한 명확한 기준을 먼저 세우고 진단을 해야 편하다.