1day/원데이/하루/일용직/호스팅/서버호스팅/자료실/강좌/커뮤니티
웹호스팅    |  도메인등록    |  홈페이지 관리 서비스    |   문의하기    |  강좌    |  서비스 안내 및 가격
HOME
회원로그인
ID:
PW:

     0 분
     4 분
 
웹호스팅
서비스이용안내
웹호스팅 신청방법
서비스이용약관
호스팅 신청하기
입금내용 알리기
신청리스트 *
입금리스트 *
도메인신청리스트
고객지원 FAQ
문의하기
고객지원
파일질라설정(ftp)
pop3란?
SMTP란?
아웃룩세팅법
네임서버
   1차 : ns1.1day.co.kr
..........222.234.223.31
   2차 : ns2.1day.co.kr
..........222.234.223.32
계좌번호 안내
....우리은행(원데이)
....1005-902-808446
이메일 문의
.... 1day@1day.co.kr
전화번호안내
   고객지원
   T. 050-6447-2515
자료실/강좌
HTML 태그
자바스크립트강좌
리눅스기초강좌
리눅스중급강좌
 


윈도우 NT서버 및 IIS 보안 관리
 1day  | 2004·02·01 11:42 | HIT : 25,342 | VOTE : 6,447 |

윈도우 NT서버 및 IIS 보안 관리

2000. 8.

정현철/CERTCC-KR

hcjung@{certcc,kisa}.or.kr

Ⅰ. 개요

윈도우 NT는 윈도우 95/98의 GUI와 거의 유사하여 일반 PC 사용자에게 대단히 친숙한 사용자 환경을 제공하며, 다양한 응용프로그램들이 제공되고 있어 편리하다. 또한 서버급 운영체제로서 PC에서도 설치가 가능하여 저렴하게 운영할 수 있는 등 여러 가지 이유로 인해 윈도우 NT의 사용이 늘어가고 있다. 하지만 시스템에 대한 전문지식없이도 NT 관리가 가능하기 때문에 체계적인 보안대책을 생각하고 NT를 운영하는 경우는 지극히 드물다.

윈도우 NT는 전혀 보안이 이루어지지 않은 수준에서부터 많은 정부기관에서 요구하는 C2 레벨까지 다양한 보안수준으로 구축이 가능하다.

윈도우 NT는 C2레벨 보안 서버를 구축할 정도로 많은 보안과 관련된 서비스들을 제공하고 있지만 실제 대부분의 NT서버는 전혀 보안이 이루어지지 않은 상태에서 운영이 되고 있다. 이는 윈도우 NT 운영체제의 폐쇄성으로 인해 NT보안에 대한 전문가가 부족하며, NT보안 관련 자료들이 UNIX에 비해 상대적으로 극히 미비하다. 그러나 최근 윈도우 시스템의 활용도가 급격하게 증가하면서 이들 시스템에 대한 공격도 급격히 증가하고 있다.

다음 그림은 한 해킹당한 홈페이지를 모아 놓는 국외 보안관련 인터넷 사이트에서 해킹당한 웹서버의 운영체제별로 분류한 것이다.

Yellow: NT, White: Linux, Orange: BSD, Green: Solaris, Purple: All Other
<출처 : http://www.attrition.org/mirror/attrition/os-graphs.html>

지난 1년동안의 웹서버 해킹통계를 보더라도 윈도우 NT 웹서버에 대한 해킹사고가 전체 사고의 절반이상을 차지하고 있을 정도로 NT가 많은 공격을 받고 있다는 것을 쉽게 알 수 있다. 국내에서는 윈도우 NT는 대부분 웹서버 구축을 위해 많이 운용되고 있는데 보안에 특히 주의를 기울일 필요가 있다. 실제 이 사이트에서는 국내 홈페이지가 해킹당한 화면들도 어렵지 않게 볼 수 있다.

본 고에서는 윈도우 NT 서버 자체에서 고려해야할 보안설정 항목, 웹서비스를 위한 IIS(Internet Information Service)에서 고려해야할 보안설정 항목, 서버 및 응용프로그램 패치를 위한 서비스팩과 핫픽스 설치에 대해 알아보도록 한다. 마지막으로 이러한 보안설정들이 안전하게 이루어졌는지 점검할 수 있는 NT용 공개도구들을 소개하도록 한다.

윈도우 NT를 비롯해서 모든 단, 본 고에서 소개되는 윈도우 NT 설정은 일반적인 환경에서의 설정을 다루고 있으며, 각 설치환경에 따라 차이가 있을 수 있으므로 주의하여야 한다.

Ⅱ. 윈도우 NT 서버 보안설정

1. 로그온

가. 로그온시 메시지 출력

모든 사용자는 로그온 하기전에 <CTRL+ALT+DEL> 키를 눌러야만 한다. 이 키를 누르면 계정 패스워드를 입력받기 위한 사용자 인증창(로그온 정보)이 뜬다. 윈도우 NT에서는 <CTRL+ALT+DEL>키를 누르고 사용자 인증창이 뜨기 전에 특정한 캡션(제목)과 텍스트를 메시지 박스에 출력할 수 있다. 일반적으로 이 메시지 박스는 관리자가 모든 사용자들에게 합법적인 경고 메시지를 출력하도록 사용할 수 있는데 사용자들은 시스템 사용을 위해서 관리자가 설정한 메시지를 주지한 후 "확인" 버튼을 누름으로써 패스워드를 넣을 수 있는 로그온 정보 대화 박스가 나온다.

이 메시지는 레지스트리 키를 편집함으로써 가능한데 레지스트리 편집기는 "regedt32.exe" 또는 "regedit.exe" 명령을 통해 열 수 있다.

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrent VersionWinlogon에서 LegalNoticeCaption과 LegalNoticeText라는 두 개의 레지스트리 키에 각각 관리자가 원하는 제목과 메시지를 입력하면 된다.

이처럼 변동된 레지스트리 키의 내용은 시스템을 재시작한 후 반영이 된다.

나. 로그 오프나 워크스테이션 잠김(Locking)

사용자들은 시스템에서 얼마동안 떨어져 있을 경우에는 로그오프하거나 워크스테이션 잠김을 하여야만 한다. 로그오프는 다른 사람이 어떤 계정에 대한 패스워드를 알고 있을 때 로그온하는 것을 허락하지만 워크스테이션 잠김은 설정한 사용자에 의해서만 해지가 가능하다. 워크스테이션 잠김은 스크린 세이버 패스워드를 이용하여 일정기간동안 사용하지 않으면 자동으로 잠김이 되도록 설정할 수 있다.

2. 사용자 계정 관리

가. 사용자 계정 및 그룹

일반적으로 사용자 계정과 패스워드는 컴퓨터를 사용하기 위해 필요하다. NT에서는 "관리도구 | 도메인 사용자 관리자"를 이용하여 사용자 추가, 삭제, 정지 등의 작업을 할 수 있다. 사용자 관리자는 패스워드 정책을 설정하고 사용자 계정을 그룹으로 묶을 수도 있다. 또한 각 사용자의 로그온 시간 및 로그온 할 수 있는 워크스테이션을 정의, 계정 사용기간 정의, RAS(Remote Access Service) 기능을 사용할 경우 Call-back 기능 등 대단히 다양한 보안기능을 그래픽환경에서 편리하게 설정할 수 있다. 사용자 권한 정책의 변화는 사용자가 다음에 로그온할 때 적용된다.

나. 관리자 계정 vs. 사용자 계정

일반적으로 관리자를 위한 계정과 일반 사용자들을 위한 계정을 분리하여 사용하는 것이 바람직하다. 만일 그 사람이 시스템 관리자라면 관리업무를 위한 계정과 일반업무를 위한 계정 시스템에 두 개의 계정을 가지는 것이 좋다. 하나는 관리업무를 위한 것이고, 다른 하나는 일반적인 일을 하기 위한 것이다. 예를들어 일반사용자 권한으로부터 활성화된 바이러스에 비해 관리자 권한을 가진 계정으로부터 활성화된 바이러스라면 시스템에 훨씬 많은 피해를 줄 수 있다.

또한 관리자 계정으로 설정되어져 있는 "Administrator" 계정을 다른 이름으로 바꾸는 것도 좋은 생각이다. 또한 관리자 계정을 다른 이름으로 바꾸고 "Administrator"라는 가짜 계정을 만들어 아무런 권한도 주지 않을 수도 있다. 이러한 방법은 "모호함을 통한 보안(Security through obscurity)"의 한 예이다.

이 강력한 계정은 로그온시 몇번이고 실패해도 절대 접속을 차단하지 않기 때문에 시스템을 공격하려는 사람들은 이 계정의 패스워드 유추를 계속 시도할 수 있다. 관리자 계정의 이름을 바꿈으로써 공격자는 패스워드뿐만 아니라 계정이름도 유추하여야하는 어려움을 줄 수 있다. 또 하나의 방법은 아래와 같은 명령을 실행함으로써 공격자가 burute force 공격이나 사전공격을 할 경우 관리자 계정을 잠글 수 있다.

passprop /adminlockout /* 테스트 결과 이러한 명령이 없었음??? */

이는 "사용자 관리자 | 정책 | 계정"에서 계정 잠금이 설정되어 있을 경우 적용된다.

다. Guest 계정

이미 만들어진 "Guest" 계정을 통해 아무나 시스템에 제한된 접속을 허용한다.

이 계정은 윈도우 NT가 설치될 때 자동으로 생성되는데 윈도우 NT 4에서는 디폴트로 disable되어 있고 그 이전 버전에서는 enable되어 있다. 이 계정은 어떤 환경에서는 enable될 필요가 있다. 가령 인터넷 서비스 제품이 구동될 때라든지, IIS 서버도 설치될 때 익명계정을 생성한다. 만일 이 계정이 필요에 의해 삭제하지 못한다면 이 계정이 주요 파일 시스템이나 레지스트리 키들에 대한 쓰기 및 삭제 권한을 금하여야만 한다.

이를 점검하기 위한 가장 좋은 방법은 이 계정으로 로그온해서 시스템에 어떤 손상을 입힐 수 있는지 직접 테스트해 보는 것이다.

라. 패스워드

계정과 패스워드를 알고 있는 사람이라면 누구나 시스템에 로그온할 수 있다. 사용자들은 자신들의 패스워드를 보호하기 위해 주의하여야만 한다. 패스워드 설정시 다음의 사항을 고려해 보자.

- 패스워드는 자주 바꾸고 재사용을 피한다.
- 사전에 있는 단어와 같이 누구나 유추가능한 패스워드를 금하고 영문과 숫자를 조합하여 사용한다.
- 종이 등에 기록하지 않는다. 본인이 기억하기 쉬운 패스워드를 선택한다.

패스워드 길이는 1자에서 14자까지 사용가능하지만 [빈 암호 허용]을 선택할 경우 0이 될 수도 있다. 패스워드는 최소한 9자를 넘도록 설정하는 것이 안전하다. 많은 크랙 공격으로부터 8자 또는 그 이하를 패스워드를 사용하는 것 보다 훨씬 안전하다. 또한 영문자와 숫자의 조합뿐만 아니라 !@#$%^&*()와 같은 심블을 같이 사용하는 것도 패스워드 유추를 어렵게 한다.

다음 그림은 "사용자 관리자 | 계정 정책" 화면이다. 여기에는 패스워드 최소 길이, 잘못된 로그인 시도시 계정 잠금, 최소/최대 암호사용기간, 이전에 사용하였던 암호와 동일한지의 검사 등을 설정할 수 있다.

3. 파일시스템 보호 및 백업

가. 파일 및 디렉토리 보호

NTFS 파일 시스템은 FAT 시스템에 비해 좀더 많은 보안기능을 제공해 주고 있고 보안을 고려하여 사용하여야만 한다. 윈도우 NT의 NTFS 방식 포맷은 모든 파일과 디렉토리에 소유권과 사용 권한을 제공해 줄 수 있으며, 접근통제목록(Access Control List)를 제공해 줄 수 있다. 따라서 보안을 감안한다면 FAT 파일시스템의 사용보다는 NTFS의 사용을 권장할 수 있는데, 기존에 FAT 파일시스템을 사용하다가 NTFS로 변환하기 위해서는 "convert.exe" 명령을 사용할 수 있다. 하지만 FAT 파일시스템으로 운영중에 변환할 경우는 디폴트 ACL이 적용되지 않으므로 가능한 초기 설치시 NTFS 파일시스템을 선택하는 것이 보다 안전하다.

윈도우 NT는 초기 인트라넷을 기반으로 제작되었기 때문에 처음 사용자 권한을 설정할 때는 디폴트로 모든 사용자를 지칭하는 그룹인 Everone 그룹에 모든 권한을 부여 하는 방식의 시스템 보안 설정이 이루어진다. 하지만 인터넷에 컴퓨터가 접속하고 있다면 이러한 보안설정은 매우 큰 문제가 된다. 도메인 Guest 로그온이 허용되어 있다면 이런 설정으로 컴퓨터를 사용하는 것은 전 세계 누구든 자신의 컴퓨터에 접근하여 마음대로 공유자원을 사용할 수 있도록 해 놓는 위험천만한 설정이다.

나. 불필요한 ODBC/OLE-DB 데이터 소스와 드리이브 제거

어떤 샘플 에플리케이션은 샘플 데이터베이스를 위해서 ODBC 데이터 소스를 설치하거나 불필요한 ODBC/OLE-DB 데이터베이스 드라이브를 설치한다. 불필요한 데이터 소스나 드라이버는 ODBC 데이터 소스 관리자 도구를 이용해서 제거하는 것이 안전하다.

다. 백업

하드웨어 고장이나 관리자의 실수 또는 바이러스와 같은 악성 프로그램으로부터 데이터를 보호하기 위해서는 정기적으로 백업을 받아야만 한다.

보편적으로 사용되는 백업장비는 DAT로 이것은 대용량의 파일을 안정하게 보관할 수 있는 장점이 있지만 백업 시간이 매우 오래 걸린다. 윈도우 NT의 백업 명령어는 ntbackup이다.

백업 권한은 administrator와 backup operator에게 제한되어 있다.

디스크 백업과 함께 시스템 환경설정 파일들을 백업하여 복구디스크를 만들어 놓는 것도 유사시를 대비하여 중요한 작업이라 할 수 있다. 복구 디스크는 "rdis /s" 명령을 실행함으로써 생성 가능하다.

4. 접근 통제

가. 서버 접근통제

각 네트워크 카드에 어떤 포트를 허용할 것인지를 정의하여 TCP/IP 필터링을 하도록 설정한다. "제어판 | 네트워크 | 프로토콜 | TCP/IP | 고급 | 보안사용(구성)" 으로 이동해서 다음과 같이 정의한다.

- 80/TCP 허용
- 443/TCP 허용(만일 SSL을 사용할 경우)
- UDP 포트 차단
- IP 프로토콜 6(TCP) 허용

그 결과 외부에서 포트스캔 결과 다른 80번 서비스가 제공되고 있지 않음을 확인할 수 있다. 이때 다른 시스템과 파일 공유 등의 할 수 없게 되지만 윈도우 NT는 많은 애플리케이션이 자체에서 구동가능하고 웹문서 작성에도 어려움이 없으므로 보안을 위해 이 정도의 불편함쯤은 감수할 수 있지 않을까?

[root@linux80 /root]# nmap -O 172.16.2.154
Starting nmap V. 2.54BETA1 by fyodor@insecure.org ( www.insecure.org/nmap/ )
WARNING: OS didn't match until the 2 try
Interesting ports on (172.16.2.154):
(The 1524 ports scanned but not shown below are in state: closed)
Port State Service
80/tcp open http
TCP Sequence Prediction: Class=trivial time dependency
Difficulty=11 (Easy)
Remote operating system guess: Windows NT4 / Win95 / Win98
Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds

나. 인터넷을 통한 NetBios 접근

NetBIOS(Network Basic Input/Output System)는 IBM PC를 위한 네트워크 인터페이스 체계로 네임, 세션, 데이터그램의 세가지 서비스를 제공하고 있다. 파일시스템이나 프린트를 공유하기 위해서도 NetBIOS가 필요하다. 윈도우 NT 시스템이 인터넷에 직접연결되어 있을 경우 공격자가 쉽게 파일시스템을 사용할 수 있으므로 NetBIOS 에 대한 접근통제가 필요하다. 다음의 두가지 방법을 고려해 볼 수 있다.

첫째, 라우터나 침입차단스템에서 접근통제 한다.

외부에서 윈도우 NT 시스템으로의 모든 NetBIOS 트래픽을 차단하기 위하여 135/UDP, 137/UDP(NetBIOS name), 138/UDP(NetBIOS datagram), 139/TCP(NetBIOS session) 포트로의 접속을 차단한다.

윈도우 NT서버 한 대에 대해서만 접근통제를 하기 위해서는 위에서 살펴본 "서버 접근통제"를 이용할 수도 있지만 내부 네트워크 내에 많은 윈도우 시스템이 존재하고 있으므로 외부에서 내부 윈도우 시스템들에 대한 접근을 일괄적으로 적용하기 위해서는 라우터나 침입차단시스템에서 통제할 필요가 있다. 다음은 시스코 라우터의 경우 다음과 같이 설정할 수 있다.

interface xy
ip access-group 101 in
access-list 101 deny udp any host NT_IP_ADDRESS eq 135
access-list 101 deny udp any host NT_IP_ADDRESS eq 137
access-list 101 deny udp any host NT_IP_ADDRESS eq 138
access-list 101 deny tcp any host NT_IP_ADDRESS eq 139

하지만, 네트워크 전체의 접근통제 정책을 세울 때 이처럼 NT 서버에 대한 NetBIOS 트래픽만을 차단하고 나머지 트래픽을 허용하는 것보다는 반드시 필요한 서비스만 허용하고 나머지는 모두 차단하는 정책(Deny unless it is expressly allowed)이 바람직하다. 물론 이 경우에도 NetBIOS 트래픽을 허용해서는 않된다.

둘째, 네트워크 제어판을 이용하여 TCP/IP와 NetBIOS 간의 바인딩(binding) 제거한다. 바인딩이 제거되면 TCP/IP를 거치게 되는 파일 공유서비스는 제공되지 않고 당연히 인터넷에서의 공유자원에 대한 접근시도도 불가능하게 된다. 이러한 NetBIOS 서비스는 라우터를 거치지 않은 내부 네트워크에서는 여전히 가능하다.

개인적으로 이들 두 가지 방법 중 외부 네트워크와 연결되는 게이트웨이 즉, 라우터나 침입차단시스템에서 모든 NetBIOS 트래픽을 원천적으로 차단하는 것이 좀더 안전하고 내부 네트워크에서 공유자원을 사용하는데도 별다른 제약사항이 없어 권고할 만하다고 생각된다.

다. 레지스트리 보호

윈도우 NT에 의해 사용되는 모든 초기화와 환경설정 정보는 레지스트리에 저장되어 있다. 일반적으로 레지스트리의 킷값은 제어판과 같은 관리 도구들을 통해서 간접적으로 변경되어 진다. 이 방법을 권장하고 있지만 레지스트리 편집기를 이용하여 직접적으로 바꿀 수도 있다. 레지스트리 편집기는 원격접속으로도 그 키를 바꿀 수 있는데 이는 대단히 위험한 것으로 네트워크를 통한 레지스트리 접속을 차단하는 것이 바람직하다. 다음과 같이 레지스트리 키를 생성함으로써 원격에서 레지스트리 접속을 제한할 수 있다.

HKEY_LOCAL_MACHINESystemCurrentcontrolSetControlSecurePipeServerswinreg

디폴트 윈도우 NT 워크스테이션 설치는 이 키를 정의하고 있지 않는데 이는 레지스트리에 대한 원격접속을 제한하지 않는 것이다. 윈도우 NT 서버는 오직 관리자만 원격에서 레지스트리에 접속을 허용하고 있다.

레지스트리 편집기를 사용할 때는 시스템에 대한 정확한 이해를 하고 있어야 하며, 잘못 레지스트리 키가 바뀌면 시스템을 사용할 수 없을 수도 있으므로 주의해야만 한다.

백업 유틸리티는 파일과 디렉토리뿐만 아니라 레지스트리도 백업할 수 있으므로 주기적인 백업이 필요하다.

5. 감사

감사정책을 설정에는 디스크 공간, CPU 사용량 등 많은 시스템 자원을 필요로 하므로 이러한 감사에 소요되는 비용과 감사로 인해 발생되는 이득을 비교하여 적정하게 설정하여야 할 것이다.

다음은 일반적인 보안 위협과 이들을 추적하기 위한 감사정책 설정의 예이다.

위협
감사항목
완료/실패
비고
임의의 패스워드 유추 공격 로그온 및 로그오프 실패
훔친 패스워드로 침입 로그온 및 로그오프 완료 실제 사용자와 가짜 사용자가 구분되지 않으므로 휴일이나 일과시간 이후 등 비정상적인 시간대에 접속한 로그를 탐지
사용자의 관리자 권한 남용 사용자 권한 사용 완료 사용자나 그룹관리, 보안정책변경, 시스템 재시작/중지, 시스템 이벤트를 위해 사용
바이러스 침입 파일 및 개체 액세스 완료/실패 .exe, .dll 확장자를 가진 파일등과 같은 프로그램에 대한 쓰기를 기록
민감한 파일에 대한 부적절한 접근 파일 및 개체 액세스 완료/실패 이 설정과 더불어 파일관리자(winfile)에서 의심스러운 사용자나 관리자에 의한 민감한 파일의 읽기 쓰기에 대한 감사가 설정되어 있어야함
프린터에 대한 부적절한 접근 파일 및 개체 액세스 완료/실패 이 설정과 더불어 프린터관리자에서 의심스러운 사용자나 관리자에 의한 프린터 접속에 대한 감사가 설정되어 있어야함


아래 그림은 "관리도구 | 사용자 관리자 | 정책 | 감사"의 감사정책 설정 화면이다.

이벤트 로그는 기본적으로 guest에게도 시스템 로그와 응용프로그램 로그를 볼 수 있도록 설정되어 있지만 보안 로그는 열람이 금지되어 있다. 감사정책에 의해 생성된 로그는 "관리도구 | 이벤트 표시기"를 통해서 확인할 수 있다.

Ⅲ. IIS 보안 설정

1. 최소한의 인터넷 서비스 제공

공격가능성을 최소화하기 위해서는 서버에서 제공되는 서비스를 최소화하여야만 한다. "제어판 | 서비스"를 이용하여 사용하지 않는 서비스들을 중지시키는 것이 바람직하다. 다음은 IIS를 사용하기 위해 필요한 서비스들이다.

·Event Log
·License Logging Service
·Windows NTLM Security Support Provider
·Remote Procedure Call (RPC) Service
·Windows NT Server or Windows NT Workstation
·IIS Admin Service
·MSDTC
·World Wide Web Publishing Service
·Protected Storage

일반적으로 다음의 서비스들은 불필요한 서비스들인데 반드시 필요하지 않은 경우에는 중지시키는 것이 안전하다.

·Alerter
·ClipBook Server
·Computer Browser
·DHCP Client
·Messenger
·NetBIOS Interface
·NetLogon
·Network DDE & Network DDE DSDM
·Scheduler
·Server Service
·Simple TCP/IP Services
·Spooler
·TCP/IP NetBIOS Helper
·WINS Client (TCP/IP)
·Workstation Service

다음 그림은 서비스 설정 화면이다.

이 대화 상자를 사용하여 컴퓨터에서 사용할 수 있는 각 서비스를 시작하거나, 멈추거나, 잠깐 멈추거나, 계속할 수 있으며, 시작 매개 변수를 해당 서비스에 전달할 수도 있다.

2. IIS 로그

IIS는 효율을 극대화하기 위한 튜닝을 위해 사용되기도 하지만 공격사실을 탐지하는데도 많은 도움을 준다.

IIS에 포함된 각 서비스는 서버에 액세스한 사용자와 액세스한 정보에 관한 내용을 로그하도록 구성할 수 있다. 이 데이터로 사이트의 세부 사항 조정, 사이트에 정기적으로 액세스하는 다수의 사용자에 대한 계획, 내용의 액세스, 보안 감사 등을 할 수 있다.

IIS 로그는 텍스트 파일이나 ODBC(Open Database Connectivity) 데이터베이스로 기록할 수 있는데 IIS설치시 default 로깅방식은 텍스트 파일 형식이다. 텍스트 파일로 로깅하는 것은 속도면에서 좀 더 빠르며, ODBC 데이터베이스는 데이터 검사하는데 좀 더 유연성을 제공하는 장점을 가지고 있다.

IIS에서 제공되는 서비스들에 대한 관리는 "Micorosoft 인터넷 서버 | 인터넷 서비스 관리자"에서 제공되며, 각종 홈디렉토리, 로깅설정, 접근통제 등을 정의할 수 있다.

로깅은 [매일], [매주], [매달] 옵션 중 하나가 작동하면 inyymmdd(연, 월, 일)형태로 저장된다. Default로 C:WINNTSystem32LogFiles 디렉토리 아래에 저장된다.

생성된 로그의 각 필드는 다음의 내용을 가지고 있다.

클라이언트의 IP 주소
클라이언트의 사용자 이름
날짜
시간
서비스
컴퓨터 이름
서버의 IP 주소
경과 시간
수신된 바이트
전송된 바이트
서비스 상태 코드
Windows NT 상태 코드
작업 이름 작업 목표

아래는 실제 NT서버에 대한 네트워크 스캔공격을 하였을 때 웹로그에 남은 정보이다.

8월 24일 14시 56분경 비정상적으로 많은 접속요청이 왔었으며, 이것은 정상적인 웹서버 접속이 아님을 쉽게 알 수 있다.

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 30, 17, 198, 200, 0, HEAD, /Default.htm, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 10, 21, 101, 400, 123, GET, /*.idc, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 931, 203, 500, 122, GET, /default.asp

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 50, 32, 163, 200, 0, GET, /msadc/msadcs.dll, hr=80070057,CSoapStub::HttpExtensionProc,,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 41, 273, 403, 5, GET, /scripts/iisadmin/bdir.htr, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 46, 127, 404, 3, GET, /iissamples/issamples/query.idq, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 46, 127, 404, 3, GET, /iissamples/issamples/fastq.idq, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 50, 127, 404, 3, GET, /iissamples/exair/search/search.idq, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 50, 127, 404, 3, GET, /iissamples/exair/search/query.idq, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 39, 127, 404, 3, GET, /prxdocs/misc/prxrch.idq, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 143, 127, 404, 3, GET, /iissamples/issamples/oop/qfullhit.htw, CiWebHitsFile=/iissamples/issamples/oop/qfullhit.htw&CiRestriction=none&CiHiliteType=Full,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 143, 127, 404, 3, GET, /iissamples/issamples/oop/qsumrhit.htw, CiWebHitsFile=/iissamples/issamples/oop/qsumrhit.htw&CiRestriction=none&CiHiliteType=Full,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 51, 273, 403, 5, GET, /scripts/samples/search/qfullhit.htw, -,

172.16.2.34, -, 00-08-24, 14:56:20, W3SVC, 정보, 172.16.2.154, 0, 51, 273, 403, 5, GET, /scripts/samples/search/qsumrhit.htw, -,

표준 형식(Microsoft Professional Internet Services 형식)의 로그를 NCSA(National Center for Supercomputing Applications) Common Log File 형식으로 변환이 가능한데 Convlog.exe 명령어를 이용할 수 있다.

convlog -s[f|g|w] -t [emwac | ncsa[:GMTOffset] | none]

-o [output directory] -f [temp file directory] -h LogFilename

-d<m:[cachesize]>

3. 샘플 에플리케이션 제거

샘플 에플리케이션은 디폴트로 설치되지 않으나 옵션팩 설치시 설치되어 있다면 제거하는 것이 안전하다. 다음은 샘플 파일들의 위치이다.

종류
위치
IIS c:inetpubiissamples
IIS SDK c:inetpubiissamplessdk
Admin Scripts c:inetpubAdminScripts
Data access c:Program FilesCommon FilesmsadcSamples

4. RDS 제거

주의 :

이 취약점은 마이크로소프트사에서 제공되고 있는 "Microsoft Internet Information Server 4.0 Security Checklist"를 비롯한 IIS 보안과 관련된 다수의 문서에서 반드시 보안설정하여야할 취약점으로 얘기되고 있다.

RDS는 MDAC(Microsoft Data Access Componets)의 한 컴포넌트로 RDS(Remote Data Services)가 잘못 설정되어 있을 경우 서비스거부 공격이나 원격에서 관리자 권한으로 임의의 명령을 실행할 수 있는 취약점이 있다.

IIS와 MDAC가 부주의하게 설치될 경우 이 취약점이 발생될 수 있는데 IIS와 MDAC 1.5는 윈도우 NT 4 옵션팩에서 디폴트로 설치되어 진다. 대부분의 취약점들이 서비스팩이나 핫 픽스로 결함이 제거되지만 이 취약점을 제거하기 위해서는 관리자가 수동으로 레지스트리 키를 조작해야 하며 일반적인 패킷 필터링 파이어월로도 공격차단이 불가능하기 때문에 관리자들의 주의를 요하고 있다. RDS로부터의 공격을 차단하기 위해서는 MDAC의 버전별로 설정을 달리하여 운영하거나 RDS가 불필요할 경우 차단하는 것이 안전하다.

RDS를 제거하기 위해서는 MDAC의 버전에 상관없이 다음의 조치를 취할 수 있다.

첫째, 디폴트 웹 사이트로부터 /msadc 가상 디렉토리를 제거한다.

"Microsoft 인터넷 서버 | 인터넷 서비스 관리자 | WWW 서비스 등록정보"에서 "디렉토리" 항목 중 Msadc를 제거한다.

둘째, 다음의 레지스트리 키를 제거한다.

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services W3SVCParameters ADCLaunch RDSServer.DataFactory

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services W3SVCParameters ADCLaunch AdvancedDataFactory

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services W3SVCParameters ADCLaunch VbBusObj.VbBusObjCls

셋째, msadcs.dll 파일을 제거한다.

msadcs.dll은 RDS 인터페이스를 제공해주는 DLL이다.

넷째, msadc 디렉토리를 삭제한다.

C:Program FilesCommon FilesSystemMsadc 아래 서브디렉토리와 파일들을 삭제한다.

이 방법들은 대단히 무식한(?) 방법이지만 가장 확실한 방법이다. 이 중 하나만 수행하더라도 RDS 기능을 제거할 수 있다.

이 취약점에 대한 공격도구들은 인터넷상에 이미 공개되어 있으며 많은 IIS 서버들이 이로 인해 공격을 받고 있다. 서비스팩, 핫픽스 설치만으로 해결되지 않는 취약점인 만큼 대단히 위험한 취약점이다. 좀더 자세한 보안대책에 대한 설명은 마이크로 소프트의 공식 사이트를 참고하기 바란다.

http://www.microsoft.com/technet/security/bulletin/fq99-025.asp

이 취약점에 대한 스캔 및 공격이 빈번한 만큼 IIS 로그를 정기적으로 검사해서 공격흔적을 탐지하는 것도 필요하다.

1999-10-24 20:38:12 - POST /msadc/msadcs.dll ...

다음의 명령을 이용하여 자동으로 찾을 수도 있다.

find /i "msadcs" logfile.log

5. 입력값 점검

많은 웹사이트에서 사용자들이 다른 코드를 호출하거나 질의어(SQL)를 직접 사용하기 위해 입력값을 받는다. 일반적으로 사용자들의 입력이 유효하고 악의적이지 않은 입력이라고 간주하는 경우가 많다. 하지만 실제 악의적인 입력값을 넣음으로써 서버에 불법적으로 접근하거나 피해를 입히는 경우가 대단히 많다. 따라서 사용자들의 <FORM> 입력을 다른 프로세스에게 전달해주기 전에 파일시스템이나 데이터베이스 등의 자원을 불법적으로 사용하지 않는지 점검해야만 한다.
사용자 입력을 점검하기 위해 JScript 나 VBScript를 사용할 수 있다.

다음 문장은 "0-9a-zA-Z 그리고 _"이 아닌 문자들을 제거해 준다.

Set reg = New RegExp
reg.Pattern = "W+"
strUnTainted = reg.Replace(strTainted, "")

다음 문장은 '|' 연산자(일반적으로 명령어 수행 연산자) 이후의 문장을 전부 제거한다.

Set reg = New RegExp
reg.Pattern = "^(.+)|(.+)" ' Any character from the start of the string to a '|'
strUnTainted = reg.Replace(strTainted,"$1")

또한 사용자의 입력한 파일명에 따라 특정 파일을 열거나 생성하지 않도록 하여야만 한다. 사용자가 시리얼 포트를 열거나 프린트를 열려고 시도할 수도 있다. 다음은 비정상적인 파일이름을 제거하는 JScript 코드이다.

var strOut = strIn.replace(/(AUX|PRN|NUL|COMd|LPTd)+s*$/i,"");

6. 상위패스 중지

상위패스 '..'의 사용을 중지시킨다. 디폴트로 이 옵션은 enable 되어 있는데 웹사이트의 root 디렉토리로 가서 오른쪽 버튼을 클릭하여 "등록정보 | 홈디렉토리 | 환경설정 | App 옵션"에서 "Enable Parent Paths"를 체크하지 않는다.

7. #exec 명령쉘 호출 중지

명령어가 웹서버에서 임의의 명령을 호출하도록 사용될 수도 있다. IIS는 디폴트로 이것이 중지되어 있으며 이를 가능하게 하는 레지스트리 키가 '0'로 셋팅되어 있는 것을 확인할 수 있다.

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW3SVCParametersSSIEnableCmdDirective

Ⅳ. 서비스팩(Service Pack)과 핫픽스(Hot Fix)

서비스팩은 윈도우 NT를 마이크로소프트에서 출시하고 난 뒤 윈도우 NT와 관련된 응용프로그램, 서비스, 실행파일 등 여러 수정 파일들을 모아 놓은 프로그램이다. 서비스팩은 필요에 따라 일년에 몇번씩 발표된다.

현재까지 발표된 가장 최신의 서비스팩은 SP6a으로 다음의 마이크로소프트 사이트에서 구할 수 있다.

http://www.microsoft.com/ntserver/nts/downloads/recommended/SP6/allSP6.asp

핫픽스는 즉시 교정되어야만 하는 주요한 취약점(주로 보안과 관련된)을 패치하기 위해서 배포되는 프로그램이다. 핫픽스는 각각의 서비스팩이 발표된 후 특화되어서 발표된다.

한가지 주의할 것은 간혹 서로 다른 핫픽스가 동일한 파일을 변경하는 경우가 있으므로 핫픽스 설치시 먼저 배포된 것을 먼저 설치하는 것이 안전하다. 예를들어 SP5 배포판 이후에 IGMP-fix와 Spoof-fix 핫픽스가 배포되었는데 두 핫픽스 모두 tcpip.sys를 포함하고 있다. tcpip.sys 파일은 IGMP-fix에서는 99년 8월 14일짜이고 Spoof-fix에서는 99년 9월 17일짜이고 좀더 파일사이즈가 크다. 이 경우 IGMP 핫픽스를 먼저 설치하고 Spoof 핫 픽스를 나중에 설치하여야만 한다.

핫픽스는 국가별, NT버젼별로 제공된다.

ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/xxx/yyy/zzz
xxx : 국가, yyy : NT 버전, zzz : Hot Fix 디렉토리

관리자가 서비스팩과 핫픽스를 개별적으로 설치할 경우 설치 순서도 고려해야 하고 매번 시스템을 재 부팅하여야만 하므로 대단히 불편하고 시간이 많이 소요될 수 있다.
아래 스크립트는 서비스팩 6a 설치 및 핫픽스 설치를 자동화할 수 있는 것이다.
(출처 : http://www.securityfocus.com/data/tools/sp6script.zip)

@echo off

REM Created by: "Davis, Rob" <rdavis@lucentncg.com>
REM Last modified by Security Focus on 02/17/00
REM Obtain service pack 6a and desired hot-fixes.
REM - Please test before applying
REM Not all of the hot-fixes are required on every machine.
REM Comment out or delete the hot-fixes you won't use.

REM uncompress hot-fixes and service pack 6a into required directories
REM note - use /x switch to uncompress without installing

echo -----------------
REM ** SP6a
REM SP switches
REM -u -- unattended
REM -f -- force other apps to close at shutdown
REM -n -- do not backup files for uninstall
REM -o -- overwrite OEM files without prompting
REM -q -- quiet - no user interaction
REM -z -- no automatic reboot after installation
echo Installing Service Pack 6a (this may take a few minutes...)
.sp6updateupdate.exe /q /z /o /n
echo -----------------
echo SP6a installed - now installing hotfixes ...
REM Hotfix switches
REM -y -- perform uninstall (requires -m and -q)
REM -f -- force other apps to close at shutdown
REM -n -- do not create uninstall directory
REM -z -- no automatic reboot after installation
REM -q -- quiet - no user interaction
REM -m -- unattended (different from SP)
REM -l -- list installed hotfixes
echo -----------------
REM ** spooler-fix
echo Installing spooler-fix
spooler-fixhotfix.exe /m /q /z
echo -----------------
REM ** rasman-fix
echo Installing rasman-fix
.rasman-fixfixrasi
echo -----------------
REM ** new srvsvc.dll
echo Installing patched srvsvc.dll
.srvsvchotfix.exe /m /q /z
echo -----------------
REM ** ISN fix
Echo Installing ISN fix
.isnfixhotfix.exe /m /q /z
echo -----------------
REM ** LPC fix
Echo Installing LPC fix
.lpcfixhotfix.exe /m /q /z
REM This one is for Terminal Server only
REM UnREM if appropriate
REM echo -----------------
REM ** Rdisk fix
REM Echo Installing Rdisk fix
REM .rdiskfixhotfix.exe /m /q /z
echo -----------------
REM ** RTF fix
Echo Installing RTF fix
.rtffixhotfix.exe /m /q /z
echo -----------------
REM ** Recycle fix
Echo Installing RTF fix
.recyclehotfix.exe /m /q /z
echo Patches Completed (reboot machine before patches will take effect)
echo on

Ⅴ. NT 공개 보안 도구

윈도우 NT 내부의 환경설정과 서비스팩 및 핫픽스 설치로 시스템을 안전하게 설치한 후 이러한 설정이 정말 안전한지를 점검해 볼 필요가 있을 것이다.
본 절에서는 윈도우 NT의 보안취약점을 점검할 수 있는 몇 개의 공개 점검 도구를 소개하기로 한다.

가. Cerberus' Internet Scanner (http://www.cerberus-infosec.co.uk)

이 툴은 영국의 Cerberus Information Security 사에서 개발된 것으로 기존의 NT Info Scanner를 수정 보완한 것이다. 기본적으로 WWW, SQL, ftp, various NT checks, SMTP, POP3, DNS, finger 등 12개의 점검 모듈로 구성되어 있으며 세부적으로 약 300여개의 점검항목을 포함한다. 특히, 이 툴이 NT Info Scanner를 확장한 도구로써 IIS 웹서버 취약점과 관련된 점검항목이 풍부하다. 12개의 점검모듈들은 dll 형태로 제공되고 점검항목의 업데이트는 자동업데이트 기능을 이용하여 dll 파일을 교체하면 된다.

설치환경은 윈도우 NT, 윈도우 2000에서 가능하고, 깔끔한 웹기반 GUI 환경으로 사용이 대단히 편리하다.

점검결과도 HTML 형태로 제공되고 발견된 취약점에 대한 설명은 하이퍼링크를 통해 관련문서를 연결해 주고 있다.

나. L0pht Crack (http://www.l0pht.com/l0phtcrack/)

L0pht Crack은 NT 사용자 패스워드를 크랙하는 프로그램이다.

먼저, 패스워드에 대한 공격은 3단계를 통해서 이루어지는데, 먼저 단어사전에 등록된 단어와 비교하는 사전공격(Dictionary Attack)을 수행하고 사전에 등록된 단어에서 변형된 단어와 비교하는 Hybrid 공격을 수행하고 마지막으로 임의의 문자를 조합하여 공격하는 Brute Force 공격을 수행하게 된다.

이 툴을 이용해서 어느 한 회사의 패스워드를 점검해 본 결과 10분 이내에 18%의 패스워드가 크랙되었으며, 48시간이내에 98%의 패스워드가 크랙되었다고 한다.

이 툴을 이용하여 NT 사용자들의 패스워드를 주기적으로 점검하여 원격에서의 패스워드 유추공격에 대비하고 기관의 패스워드 정책에 위반되는 패스워드를 사용하는 사용자에게 주의를 줄 필요가 있다.

다. Legion (http://packetstorm.securify.com)

Legion은 윈도우즈 시스템 파일 공유상태를 점검하는 도구로써 NT뿐만 아니라 윈도우 시스템 전체의 공유상태를 점검하여 불필요한 공유를 제거하고 공유가 필요할 경우 반드시 패스워드를 설정할 필요가 있다. 최근 윈도우즈 시스템의 보호되지 않은 네트워크 공유를 이용한 인터넷 웜이 확산되고 있다. network.vbs, 911 웜 등은 네트워크 공유에 불법적으로 접근한 후 역시 공유 파일시스템에 대한 보안이 이루어지지 않은 다른 시스템에 침입하여 DDoS 툴과 같은 해킹도구를 설치하기도 한다.


[참고 문헌]

Securing Windows NT Installation,
http://www.microsoft.com/ntserver/security/exec/overview/Secure_NTInstall.asp

Microsoft Internet Information Server 4.0 Security Checklist,
http://www.microsoft.com/technet/security/iischk.asp

Securing NT,
http://www.ntbugtraq.org/focus/microsoft/nt/ntsecure_gs.html

Securing IIS,
http://www.ntbugtraq.org/focus/ms/iis/iissecure.html

Windows NT Security Features and Future Direction,
http://www.microsoft.com/ntserver/security/techdetails/prodarch/CoopersLybrand.asp

Microsoft Security Program: Rrequently Asked Questions:

Microsoft Security Bulletin(MS99-025)
http://www.microsoft.com/technet/security/bulletin/fq99-025.asp

Defending against RDS attacks,
http://www.wiretrip.net/rfp/p/doc.asp?id=29&iface=2

윈도우사용자그룹,
http://windows.designweb.org/
CIS, http://www.cerberus-infosec.co.uk/
L0phtCrack, http://www.l0pht.com/

Legion,
http://packetstorm.securify.com/
http://www.microsoft.com/security/
http://www.microsoft.com/technet/
http://www.securityfocus.com/
http://www.ntfaq.com/
http://www.ntfaq.co.kr/






출처 : cert
     
15   MySQL 에러코드별 에러메세지 입니다.  1day 05·08·16 393692
14   인터넷의 뿌리 TCP/IP 네트워크 바로알기  1day 04·02·12 20343
13   레드햇 시스템 최신으로 유지하기  1day 04·02·03 20074
12   Sendmail 메일서버의 스팸릴레이 대응방법  1day 04·02·01 20971
11   침해사고 대응방법 및 절차  1day 04·02·01 20092
10   네트워크 스니핑 기술 및 방지대책  1day 04·02·01 21186
  윈도우 NT서버 및 IIS 보안 관리  1day 04·02·01 25342
8   Solaris Network Kernel Tunning for Security  1day 04·01·31 23550
7   안전한 유닉스 프로그래밍을 위한 지침서 V.0.7  1day 04·01·30 21741
6   Abnormal IP Packets  1day 04·01·28 22781
5   DNS 안전운용가이드  1day 04·01·20 22331
4   MTX 웜바이러스 분석 보고서  1day 04·01·17 20689
3   IP Fragmentation을 이용한 공격기술들  1day 04·01·14 21599
2   리눅스 시스템 관리자를 위한 보안 지침Ⅰ  1day 04·01·14 20115
1   운영체제와 커널 차원에서의 튜닝 및 보..  1day 04·01·11 20279
1
Copyright 1999-2018 Zeroboard / skin by GGAMBO
Copyright (c) 2003~2004 by 1day all rights reserved.