2007~2011/IIS2010. 11. 25. 12:25

요청 필터링, URLScan 에 이어 이번에는 IIS 웹 서버에 설치할 수 있는 공개용 방화벽 WebKnight 에 대해서 간략히 정리해 봅니다. 이미 한국정보보호진흥(KISA)원에서 제공하는 "WebKnight를 활용한 IIS 웹서버 보안 강화 가이드" 라는 한글화 된 문서로 잘 정리되어 있으므로 WebKnight 에 대한 전반적인 사항은 아래 링크를 참조해 주시면 좋을 것 같습니다. 

WebKnight 자료실
http://toolbox.krcert.or.kr/MMBF/MMBFBBS_S.aspx?MENU_CODE=37&BOARD_ID=8 

그래서 이번 포스팅에서는 WebKnight 의 간단한 개요와 실제 IIS 7.5 환경에서 설치하고 기본적으로 제공되는 규칙을 통해 필터링이 동작하는 방법을 간략히 살펴 보도록 하겠습니다

WebKnight 는 AQTRONIX (http://www.aqtronix.com/?PageID=99) 에서 제공하는 공개용 웹 서버 방화벽입니다. URLScan 툴과 마찬가지로 ISAPI (Internet Server API) 필터에 해당 모듈 DLL 파일을 등록하여 사용하게 됩니다. WebKnight 는 오픈 소스로 제공되며 차단된 기록에 대해서 로깅 정보를 제공해 줍니다. 그리고 Windows Installer 패키지를 사용하여 쉬운 설치가 가능하며 필터링 규칙 및 옵션 변경을 GUI 로 제어할 수는 이점이 있습니다. 또한 설정 변경 후 웹 서비스 재시작이 필요없이 런타임 업데이트가 가능한 특징을 가지고 있습니다. 


[WebKnight 설치]
1. WebKnight 2.3 다운로드
http://aqtronix.com/?PageID=99#Download 

2. ISAPI 필터 설치
 가. URLScan 설치와 마찬가지 WebKnight 를 사용하기 위해서는 설치하기 앞서 ISAPI 필터 모듈이 설치되어 있어야 합니다.
 나. 역할 서비스 - 웹 서버 - 응용 프로그램 개발 - ISAPI 필터 

3. 다운로드 파일 압축 해제 및 WebKnight.msi 파일 설치
 가. MSI 파일로 설치할 경우 자동으로 ISAPI 필터에 WebKnight DLL 이 등록됩니다. (사전에 ISAPI 필터 모듈이 설치되어 있어야 함) 

4. 설치 확인
 가. 인터넷 정보 서비스 관리자 - ISAPI 필터
 나. 이름 : WebKnight, 실행 파일 : C:\Program files\AQTRONIX WebKnight\WebKnight.dll 


5. 기본 설정
 가. 시작 - 모든 프로그램 - AQTRONIX WebKnight - WebKnight Configuration - WebKnight.xml 
  1) Mapped Path – Use Allowed Paths - 홈 디렉터리 경로 추가 

 나. WebKnight 폴더 권한 부여 (응용 프로그램 풀 계정)
  1) 탐색기를 실행하여 C:\Program files\AQTRONIX WebKnight 폴더에 대해서 속성 - 보안 - 추가
    가) IIS 7.0 환경인 경우 : NETWORK SERVICE 계정 추가
    나) IIS 7.5 환경인 경우 : IIS_USERS 계정 추가
다. IIS 서비스 재시작 


[WebKnight 규칙 적용 테스트]
WebKnight 를 설치하면 기본적으로 Denied Extensions 항목에 아래와 같은 확장자들이 차단되도록 규칙이 생성되어 있습니다. 예로 .inc 파일에 접근했을 때, 어떻게 동작하는 지 살펴 보겠습니다. 


inc 확장자를 요청하게 되는 경우 WebKnight 기본 차단 규칙에 포함된 확장자에
해당하므로 WebKnight 에서 제공되는 준비된 경고 페이지를 보여주게 됩니다. 


이 때, 어떤 접근에 의해 차단되었는지 확인하기 위해서는 아래 경로에 기록되는 로그 파일을 참조하여 "BLOCKED" 메시지를 확인해 보시면 됩니다. 또는
함께 제공되는 LogAnalysis.exe 툴을 사용하면 GUI 인터페이스로 로그 파일을 쉽게 확인하고 분석하는 데 유용하게 활용할 수 있습니다. 

C:\Program Files\AQTRONIX WebKnight\Logfiles 폴더 아래 순차적으로 로그 파일 기록되어 있습니다. 

Software: AQTRONIX WebKnight 2.3
#Date: 2010-11-23 16:04:13
#LogTime: GMT (Local-09:00)
#Fields: Date ; Time ; Site Instance ; Event ; Client IP ; Username ; Host header ; Additional info about request (event specific) 

…… (중략) 

2010-11-23 ; 16:06:02 ; W3SVC1 ; OnPreprocHeaders ; ::1 ;  ; localhost ; GET ; /a.inc ; BLOCKED: accessing/running '.inc' file ; HTTP/1.1 ; Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729) ; lang_type=ko; PHPSESSID=7t5nle5ubhdb8c0qspkslh3ts1 ; 



WebKnight 가 제공하는 많은 필터링 기능 중 확장자 제한 규칙에 대해서 간단한 테스트를 확인해 보았으며 그 이외에도 아래와 같이 다양한 필터링 기능을 설정할 수 있습니다. 

이 자료는 KrCERT-TR-2008-004 "WebKnight를 활용한 IIS 웹서버 보안 강화 가이드"에 포함된 내용을 캡쳐하였습니다. 전반적인 규칙 기능에 대한 설명입니다. 

   

WebKnight 를 설치하게 되면 기본값으로 설정된 차단 정책이 곧바로 동작하게 되므로 로그를 확인하여 정상적인 서비스가 차단되지 않았는지 반드시 확인하셔야 합니다. 보안 장비, 상용 보안 툴을 사용할 수 없는 환경이라면 요청 필터링, URLScan, WebKnight 를 통해서도 충분히 일반적인 공격에 대한 차단 효과를 얻을 수 있습니다. 물론 환경에 맞는 충분한 테스트가 필요하겠습니다. ^^; 


작성자 : Lai Go / 작성일자 : 2010.11.25

Posted by 사용자 Lai Go

댓글을 달아 주세요

  1. 김영대

    정말 감사합니다 라이고님 SQL 과 IIS 부분을 운영하면서 정말 많이 배우고 있습니다.

    2011.07.14 15:01 [ ADDR : EDIT/ DEL : REPLY ]
  2. 김영대

    라이고님 죄송하지만 여기다 질문 좀 올려도 되겠습니까?

    전혀 방안을 찾지 못해서 . 문제가 되면 삭제 하겠습니다..


    WebKnight 방화벽을 설치하였습니다.

    IIS ISAPI 필터에 dll 파일이 정상적으로 등록 되고

    몇가지 접근 금지 파일을 접근해보니 방화벽에서 정상적으로 차단을 하네요 .

    다른 문제는 아직 확인 안되었지만 . 매일 마다 로그 파일이 15메가 이상이네요 -0-

    로그를 확인해보니 웹페이지를 로딩할때 마다 이런 메세지가 나오네요 -0-

    /Sales/tx.aspx
    HTTP/1.1
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; AhnLab:APG=1^-164126508^21;; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    ASP.NET_SessionId=00000000000000000000
    http://xxx.xxx.xxx.xxx/Sales/tx.aspx?

    MONITORED: IP address (previous alert)
    Referer: http://xxx.xxx.xxx.xxx/Sales/tx.aspx?'
    User-Agent: 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; AhnLab:APG=1^-164126508^21;; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)'
    From: ''
    Accept-Language: 'ko'
    Accept: '*/*'
    Content-Type: 'application/x-www-form-urlencoded'

    정상적으로 이미지 파일이나 웹페이지가 로드 되는데도 MONITORED 로그 가 남네요

    차단되는것은 BLOCKED 로 남는데

    매번 생기는 MONITORED 를 안나오게 하는 방법 없을까요 0-;;

    안되면 로깅을 아예 Disabled 로 하겠습니다 -0-;;

    2011.07.27 10:15 [ ADDR : EDIT/ DEL : REPLY ]
    • WebKnight config 설정 Connection 부분에 Monitored IP Addresses 에 등록된 IP 에 대해서 액세스 요청이 있는 경우 위와 같이 BLOCKED 로그와 별도로 기록되는 것으로 알고 있습니다. 추가 문의사항이 있으시면 http://www.sqler.com/bIISQnA 게시판에 올려주시면 많은 경험이 있으신 분들께서 도움 주실 거예요~~ ^^

      2011.07.14 14:07 신고 [ ADDR : EDIT/ DEL ]
  3. 김영대

    안녕하십니까 라이고님 여쭤본거에 대해서 한가지 해결 방법은 찾았지만

    이 선택사항을 해지 해 놓으면 보안에 문제가 생길지 걱정됩니다.

    해결한 방법은 한국인터넷진흥원에서 제공한 PDF 메뉴얼에서 찾았습니다.
    --------------------------출처 -----------
    WebKnight 로그 분석 안내서
    2009.06./인터넷침해사고대응지원센터
    ----------------------------------------------
    로 그 MONITORED: IP address (previous alert)
    설 명 한번 WebKnight에 의해 필터링이 발생한 IP는 이후의 접근은 모두 모니터링 된다.
    옵 션 Incident Response Handling 섹션 > Response Monitor IP
    설정 TIP 본 옵션은 완벽하게 커스터마이징을 마친 뒤에 설정하는 것이 바람직하다.

    Incident Response Handling 옵션 -> Response Moniter IP 부분을 체크 해지 하니 위 메세지가 남지 않았습니다.

    출처가 문제 된다면 댓글을 삭제 하도록 하겠습니다.

    수고하십시오 . 라이고님

    2011.07.27 11:42 [ ADDR : EDIT/ DEL : REPLY ]