untitled

Similar documents
untitled

WebKnight 안내서_090427_name_fixed.hwp

untitled

공개웹방화벽 WebKnight 3.1 사용설명서

Windows 8에서 BioStar 1 설치하기

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

WebKnight를 활용한 IIS 웹서버 보안

Microsoft Word - src.doc

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

<5BC0DBBEF7C1DF5D B6E B7CEB1D7BAD0BCAE20BEC8B3BBBCAD2E687770>

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

untitled

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

BEA_WebLogic.hwp

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

Chapter 1

untitled

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

untitled

슬라이드 1

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

Cloud Friendly System Architecture

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

Install stm32cubemx and st-link utility

Studuino소프트웨어 설치

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

4S 1차년도 평가 발표자료

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

NTD36HD Manual

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

게시판 스팸 실시간 차단 시스템

RHEV 2.2 인증서 만료 확인 및 갱신

PowerPoint Template

Secure Programming Lecture1 : Introduction

System Recovery 사용자 매뉴얼

제목 레이아웃

CODESYS 런타임 설치과정

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2003) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2003 Exchange Server 2003 GFI MailEssentials 2010 fo

Windows 10 General Announcement v1.0-KO

ArcGIS Desktop 9.2 Install Guide

SBR-100S User Manual

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

tiawPlot ac 사용방법

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Windows Server 2012

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

ICAS CADWorx SPLM License 평가판설치가이드

*2008년1월호진짜

0. 들어가기 전

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

행자부 G4C

JDK이클립스

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

PowerPoint 프레젠테이션

슬라이드 1

슬라이드 1

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Endpoint Protector - Active Directory Deployment Guide

Microsoft Word - Armjtag_문서1.doc

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

제 개정이력 순번 제 개정일 변경내용 발간팀 연락처 제정 이용자보호팀 개정 웹보안지원팀

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Title Here

OnTuneV3_Manager_Install

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

ISP and CodeVisionAVR C Compiler.hwp

<41736D6C6F D20B9AEBCADBEE7BDC42E687770>

#WI DNS DDoS 공격악성코드분석

[Brochure] KOR_TunA

TTA Journal No.157_서체변경.indd

DBMS & SQL Server Installation Database Laboratory

ThinkVantage Fingerprint Software

Microsoft PowerPoint - chap01-C언어개요.pptx

VPN.hwp

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

Microsoft PowerPoint - 권장 사양

Admin Guide for dummy

Microsoft PowerPoint - 10Àå.ppt

SIGIL 완벽입문

암호내지

gcloud storage 사용자가이드 1 / 17

PCServerMgmt7

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

전체설치와사용자지정설치중원하는설치방식을선택합니다. ArcGIS Desktop 설치경로를지정하면설치가짂행됩니다.

슬라이드 1

Transcription:

WebKnight 를활용한 IIS 웹서버보안강화가이드 KISA는본문서에서언급한 WebKnight 및해당도구개발사인 AQTRONIX와어떠한관계도없으며, 국내웹해킹피해예방을위해공개웹방화벽인 WebKnight를보안참고용으로소개합니다. 2008. 06 본보고서의전부나일부를인용시반드시 [ 자료 : 한국정보보호진흥원 (KISA)] 룰명시하여주시기바랍니다.

1. 개요 단순홈페이지해킹이아닌홈페이지방문자들의정보를빼내금전적인이득을취하고자하는홈페이지해킹이심각한수준에달하고있다. 이는해킹당한업체가피해기관이되기도하지만해당웹사이트를신뢰하고방문하는수많은네티즌들을감염시키는공격사이트이기도하여조치가시급하다. 최근윈도우즈웹서버를대상으로발생되고있는해킹은대부분 SQL Injection 공격이그원인이다. SQL Injection 취약점은게시판, 공지사항등에서 URL 인자에대한입력값을검증하지않음으로해서공격이발생되는웹개발과정에서의오류라고할수있다. 대형포털, 뉴스사이트등수많은국내사이트들이공격을당해웹방문자들을감염시키고있지만, 이러한악성코드유포지로이용되고있는사이트들은취약점이있음을알고있어도제대로조치를하지못해수차례다시해킹을당하는경우를많이볼수있다. 인터넷침해사고대응지원센터의분석에의하면국내악성코드경유지또는유포지사이트중약 30% 가량이 2회이상재발되고있는것으로나타났다. 이는 SQL Injection 취약점자체가웹어플리케이션의소스코드를수정해야만이근본적으로해결될수있는문제이지만운영중인웹서버의소스코드수정이쉽지않기때문이다. 웹시스템구축이후문제점을수정하기보다는설계 개발단계에서보안을고려하여개발되는것이바람직하다. 인터넷침해사고대응지원센터에서는홈페이지개발시고려하여야하는보안사항과웹언어별사례, 그리고대표적인웹공격에대비할수있는표준웹어플리케이션보안템플릿등을제공하고있으므로이를참고하기바란다. o 홈페이지개발보안가이드및웹어플리케이션보안템플릿다운로드 http://www.krcert.or.kr 접속 > 좌측배너 웹보안 4종가이드 이외에도웹서버보안을위한추가적인방안으로 MS는 IIS 보안을위해 IISLockDown, URLScan 등의도구를제공하고있다. IISLockdown은웹서버를보호하기위한과정을대부분자동화할수있는도구로서버의용도에따라유형별로다양한보안기능을해제하거나보호할수있는사용자템플릿을제공해준다. http://download.microsoft.com/download/iis50/utility/2.1/nt45xp/en-us/iislockd.exe URLScan은웹사이트관리자가서버에서처리가능한웹요청을제한할수있는 ISAPI(Internet Server Application Program Interface) 필터로써특정웹요청을제한하여잠재적으로유해한웹요청이서버에도달하기이전에차단함으로써공격을예방한다. - 2 -

http://download.microsoft.com/download/1/9/8/198a7fdf-1057-4668-9f44-035f8faeaf95/setup.exe http://www.microsoft.com/technet/security/tools/urlscan.mspx 이외에 Windows에서제공하는 Support Tools나 Resource Kit에도여러다양한서버보안을위한도구들이포함되어있어이를잘활용한다면훨씬효과적일것이다. 하지만, 아쉽게도 IISLockdown이나 URLScan도 DB Query 문장을필터링하지는못하여 SQL Injection 공격의위험에서벗어날수없다. 최근웹공격이심각한수준에이르러국내 외상용웹방화벽들도많이출시되었다. 다양하고정교한웹공격을기존의네트워크방화벽이나침입탐지시스템이방어하는데에는한계가있다. 웹방화벽은 SQL Injection 등웹공격에특화된보안솔루션이므로웹방화벽의도입도검토할필요가있다. 그러나, 기업에서경제적인문제로인해상용웹방화벽도입이어려운경우가많으므로본고에서는공개웹방화벽인 WebKnight를통해최신여러다양한웹공격으로부터서버를효과적으로보호하는방안을살펴보고자한다. WebKnight는 GNU 공개라이센스원칙을따르는공개소프트웨어로써모든기업이나개인이자유로이사용할수있다. 특히, 지난해 2007년 10월 2.1로의버전업이이루어진이후 IIS보안의핵심으로자리잡고있다. 또한, WebKnight는 SQL Injection을포함한다양한웹공격에대해차단할수있는프레임을제공해주고있고, IIS의각버전 (5.0, 6.0) 에따라별다른문제없이운영이가능하여보다효과적으로웹서버보안을이룰수있다. 물론, WebKnight의잘못된설정은정상적인웹요청까지차단할수있으므로충분한최적화과정을거쳐야함은웹서버관리자의몫임을명심하여야할것이다. 본문서는 WebKnight를이용한 SQL Injection 공격차단 ( 06.2.10) 의개정판으로 WebKnight 2.1로업데이트되면서변화된부분과윈도우 2003, IIS 6.0 환경에서설치적용하는과정등에대해중점적으로다루었다. 공개웹방화벽사용자커뮤니티 기술문서오탈자정보 기술정보및최적화등정보공유 기술문서및차단정책 ( 룰 ) 배포 사용자들간의질의답변 http://www.securenet.or.kr > 열린지식 > 공개웹방화벽커뮤니티 - 3 -

2. WebKnight 개요 WebKnight는 AQTRONIX사 (http://www.aqtronix.com/) 에서개발한 IIS 웹서버에설치할수있는공개용웹방화벽이다. WebKnight는 ISAPI 필터형태로동작하며, IIS 서버앞단에위치하여웹서버로전달되기이전에 IIS 웹서버로들어온모든웹요청에대해웹서버관리자가설정한필터룰에따라검증을하고 SQL Injection 공격등특정웹요청을사전에차단함으로써웹서버를안전하게지켜준다. 이러한룰은정기적인업데이트가필요한공격패턴 DB에의존하지않고 SQL Injection, 디렉토리 traversal, 문자인코딩공격등과같이각공격의특징적인키워드를이용한보안필터사용으로패턴업데이트를최소화하고있다. 이러한방법은알려진공격뿐만아니라알려지지않은공격에도웹서버를보호할수있다. 또한, WebKnight는 ISAPI 필터이기때문에다른방화벽이나 IDS에비해웹서버와밀접하게동작할수있어많은이점이있다. MS의 URLScan과마찬가지로 ISAPI 필터로써 inetinfo.exe 안에서동작하므로오버헤드가심하지않다. 해킹당한한웹사이트에 WebKnight를적용하여테스트한결과안정적인웹서버운영으로인해웹서버속도가오히려빨라진것을느낄수있었다. 하지만다량의웹트래픽이발생되는사이트에서는사전에충분한검증을거친후에적용할필요는있다. 다음은 WebKnight 의주요특징이다 (http://www.aqtronix.com/?pageid=99 참조 ). o 오픈소스 (Open Source) WebKnight는 GNU, GPL(General Public License) 를따르는 Free 소프트웨어이다. o Logging 기본적으로차단된모든요청에대해로그를남기고, 로깅전용모드로운영할경우추가적으로모든허용된요청에대해서도로그를남길수있다. 로깅전용모드는공격을실제차단하지않고로그파일에서공격사실을조사하는데도움을줄수있다. o 최적화 (Customizable) 방화벽은어떤작은원인에도최적화가가능해야한다. 제조사로부터패치가릴리즈되기전의 0-day(zero-day) 공격마저무산시킬수있도록. o 웹기반어플리케이션과의호환성 WebKnight는 Frontpage Extensions, WebDAV, Flash, Cold Fusion, Outlook Web Access, SharePoint 등과도호환이잘이루어진다. o HTTP Error Logging WebKnight는웹서버로부터 HTTP 에러들을로그할수있도록설정할수있다. 이방법으로 404 Not Found' 와같은일반적인에러나 500 Server Error' 와같이보다심각한로그들도기록할수 - 4 -

있다. 에러로그를이용하여공격을탐지하거나깨진링크를발견하거나잘못된설정도쉽게발견할수도있다. o SSL 보호 (SSL Protection) 다른전통적인방화벽과는달리 WebKnight는 ISAPI 형태로 IIS의일부로써동작하기때문에 HTTPS 상의암호화된세션들도모니터링및차단할수있다. o 3rd-Party 어플리케이션보호 (Third-Party Application Protection) WebKnight는웹서버만보호하는게아니라전자상거래사이트및기타사용자웹사이트도설정을통해보호할수있다. o RFC 규약 (RFC Compliant) WebKnight는 RFC를따름으로써 Request 값을스캔하기위한기능도포함되어있다. o 낮은보유비용 (Total Cost of Ownership) WebKnight는윈도우즈인스톨러패키지와원격설치스크립트로설치가능해사내에서쉽게 WebKnight를채택할수있다. 또한 WebKnight 설정을바꾸기위해그래픽사용자인터페이스를제공한다. o 운영중업데이트가능 (Run-time Update) 일부설정의변경을제외하고대부분의설정변경은웹서버의재가동을요구하지않아, 웹사용자들에대한어떠한서비스장애없이설정을변경할수있다. 성능상의이유로매 1분마다이러한변경을탐지하여적용한다. 3. WebKnight 설치및제거 3.1. WebKnight 설치 WebKnight가 1.3 버전이릴리즈된후 2.0 버전을거쳐현재 2.1 버전으로의업데이트까지이루어지는동안적지않은업데이트들이이루어졌다. 특히 2.0에서의유니코드등한글처리부분외에기타버그등이수정된후발표된 2.1은현재가장안정화된버전으로써본고에서도설치및가이드에안내할버전이므로최신버전을사용하길권장한다. WebKnight는 IIS 5.0과 6.0 양버전에서사용이가능하지만설치하는방법에서약간의차이를가지고있다. WebKnight의설치방법은 IIS의버전별, 그리고인스톨러에따른구분, 그리고필터링방법으로나누어살펴보겠다. - 5 -

3.1.1. IIS 5.0 환경에설치하기 o 플랫폼 : Windows 2000 SP4 o 웹서버 : IIS 5.0 o WebKnight 소스디렉토리 : C:\Tools\WebKnight_21\ o WebKnight 기본설치디렉토리 : C:\Program Files\AQTRONIX WebKnight\ 윈도우인스톨러를이용한자동설치 WebKnight를설치하는방법중가장간단하며기본적인방법으로윈도우에서지원하는 Microsoft Installer를이용한설치방법이다. 글로벌필터를적용하려면이방법으로설치하는것이가장바람직하다. 1 아래 URL에서 WebKnight 2.1을다운로드받는다. http://www.aqtronix.com/downloads/webknight/2007.10.08/webknight.zip 또는, KrCERT 홈페이지에서도다운로드받을수있다. http://www.krcert.or.kr/firewall2/index3.jsp 2 압축을해제한뒤 Setup 폴더로이동하면아래와같은파일들이생성된다. 3 위파일중 WebKnight.Msi 파일을찾아실행하면다음화면이나타난다. - 6 -

4 라이센스동의후설치타입선택화면이나타나는데, Typical" 을선택한다. 5 이후자동설치과정이진행되며설치가완료되면다음과같은메시지가나타난다. 6 기본설치를하게되면 C:\Program Files\AQTRONIX WebKnight\ 폴더에 WebKnight설치가된다. WebKnight.Msi를이용해설치하게되면 Default 경로로설치가되는동시에인터넷정보서비스에 Global Filter로 ISAPI Filter에자동등록되기때문에간편하다. - 7 -

간단히주요파일의특징을살펴보자. Config.exe : WebKnight의설정파일을읽어들여조작할수있게해주는파일 denied.htm : 설정에서 'Response Directly' 옵션을통해보여지는기본차단메시지 LogAnalysis.exe : 로그분석기 Robots.xml : User-Agent에대한 DB 파일 WebKnight.dll : ISAPI Filter 파일, WebKnight가실제동작하는파일이다. WebKnight.xml : WebKnight 동작을제어할수있는설정파일 7 IIS 를재시작한다. 8 IIS 재시작후에관리자에서정상적으로설치가완료되었을경우다음과같이 WWW 서비스마스터속성에서 ISAPI 필터 탭에다음과같이 WebKnight 필터가정상적으로적용이된것을확인할수있다. - 8 -

9 필터가정상적으로로드되었다면설치폴더에다음과같은로그파일이생성되었을것이다. WebKnight가정상적으로로드되었고 Log Only모드로동작하고있으며높은우선순위로설치되었다는등의메시지가기록되었다. 자동인스톨러를이용한설치법은이렇게간단하며쉽다. 다음으로 VB스크립트를이용한설치법을알아보자. VB 스크립트를이용한자동설치 1 앞서과정과마찬가지로설치파일을다운로드받은뒤압축을해제한다. 2 압축해제후나타나는파일중에 install.vbs 파일을실행하여나타나는창에설치할컴퓨터의 Hostname을적어준다. 3 이후설치할경로를적어준다. Default값은 MS Installer로설치할때와같다. 3 설치경로를입력한후설치가완료되면다음과같은메시지창이나타나며설치가끝난다. - 9 -

이후부터는 윈도우인스톨러를이용한설치 에서의 6번과정부터동일하게이루어진다. IIS를재시작한뒤필터가정상적으로로드되었는지확인하고로드되었다는로그파일이생성되었으면설치가끝난것이다. 수동설치 수동설치는쉽게말하면 Copy & Paste, 복사해서붙여넣기이다. 수동설치는 Site Filter로설치하기위해주로사용하지만 IIS 5.0에선수동설치를통한 Global Filter 설치법을알아보겠다. IIS의버전별 Architecture의차이로인해 IIS 5.0에서는 Site Filter 설치가불가하며 IIS 6.0에만가능하다. 글로벌필터로수동설치 1 압축해제후생성되는 Setup 폴더를 C:\Program Files\AQTRONIX WebKnight와같은서버내의로컬폴더를생성하고여기에복사한다. 2 인터넷정보서비스를실행한다. 3 서버이름에서우측마우스를클릭하여 등록정보 를선택한다. 4 마스터속성리스트에서 WWW 서비스 를선택하고, 편집 버튼을누른다. - 10 -

5 ISAPI 필터 탭을선택하고 추가 버튼을클릭한다. 6 필터등록정보 가나타나면필터이름과실행파일경로를입력한다. 예 ) 필터이름 : WebKnight, 실행파일경로 : C:\Program Files\AQTRONIX WebKnight\WebKnight.dll 7 " 확인 " 버튼을누르고대화상자를빠져나간다. 8 IIS 를재시작한다. 3.1.2. IIS 6.0 환경에설치하기 o 플랫폼 : Windows 2003 Enterprise Edition o 웹서버 : IIS 6.0 o WebKnight 소스디렉토리 : C:\Tools\WebKnight_21\ o WebKnight 기본설치디렉토리 : C:\Program Files\AQTRONIX WebKnight\ o WebKnight Site Filter 디렉토리 - C:\Program Files\AQTRONIX WebKnight\KISA_1\ - C:\Program Files\AQTRONIX WebKnight\KISA_2\ IIS 6.0 에서는 IIS 5.0 환경과는다르게별도의과정이더필요하다. 일반적인설치방법은 IIS 5.0 에서의 3가지방법과동일하나그이후에추가작업이이행되어야한다. IIS 6.0 부터는 Application Pool( 응용프로그램풀 ) 이추가되어각각의독립적인 작업자프로세스 - 11 -

모드 로구동하게된다. 그외에도 COM+ 컴포넌트나.NET Framework 등여러응용프로그램을지원하게되면서 5.0과는구조적으로많은변화가이루어졌으며이에따라 WebKnight를적용하는방법또한조금의차이점이생기게됐다. 따라서 IIS 6.0 에서의설치방법은 Global Filter 설치와 Site Filter 설치로구분지어알아보자. IIS Architecture에따라발생하는 WebKnight 필터링차이 IIS가 5.0에서 6.0으로업그레이드되면서내부 Architecture가바뀌었다. IIS 6.0 부터작업자프로세스기반으로동작하게되면서 WebKnight 적용시 Global Filter를설정하지못하게되었고, 이로인해 POST Data에대한필터링이불가능하게되었다. 그러므로 POST method를통한입력값까지검증하기위해서 IIS 5.0 격리모드로사용해야한다. Global Filter 설치 - IIS 5.0 Isolation Mode IIS 6.0을 5.0 격리모드로전환하는것으로 웹사이트 등록정보에서 서비스 탭의 IIS 5.0 격리모드에서 WWW 서비스실행 에체크한뒤 IIS를재시작하게되면 IIS 6.0이 5.0 형태로전환되면서 응용프로그램풀 이사라진다. 위와같이격리모드로전환후에는 "IIS 5.0 환경에설치하기 의절차와설치법이동일하다. 단지이와같은격리모드로전환할경우에는 IIS 6.0에서지원되는기능을사용할수없기때문에최초개발시환경이나적용대상웹어플리케이션의플랫폼등을충분히검토한후에전환하여야만문제없이동작할수있을것이다. Global Filter 설치 - IIS 6.0 with Application Pool 기본적인 윈도우인스톨러를이용한설치 와 VB Script를이용한설치, 수동설치 를통해설치할경로를지정하고파일을복사한뒤필터를등록하는절차까지동일하다. 단지필터를등록하 - 12 -

는위치는 IIS 5.0에서의 서버이름 이아닌 웹사이트 의등록정보에서 ISAPI 필터탭에등록하면된다. Default로 C:\Program Files\AQTRONIX WebKnight\ 에설치하였다고가정하자. 1 IIS 6.0에서수동설치를제외한두가지방법으로는자동으로 ISAPI 필터에까지등록이된다. 하지만 알수없음 으로표시되며로드가되지않는다. 2 WebKnight를설치한폴더로이동하여 Config.exe를실행한뒤 webknight.xml 을불러온다. 3 Global Filter Capabilities" 섹션으로이동한뒤 Is Installed As Global Filter" 옵션을체크해제하고저장한다. 4 WebKnight 설치폴더의등록정보에서 보안 탭에 Network Service" 계정을추가한뒤 쓰기 권한을부여해준다. 이과정을거치지않으면 WebKnight.dll이정상적으로로드되지않으며쓰기권한을부여하지않았을경우로그파일이생성되지않는다. 5 IIS를재시작한다. 6 웹페이지를 Refresh 하거나, 새브라우저를통해관리대상웹사이트를브라우징해줘야만필터가정상적으로로드된다. - 13 -

이와같은 IIS 6.0 의 Global Filter의설치방법은적용될웹사이트가모두 DefaultAppPool 또는, 한가지의공통된 AppPool을적용하고있을때정상작동한다. 이에대한자세한설명은 Site Filter 설치법에서다루도록하겠다. Site Filter 설치 Site Filter로설치시에는수동설치하여야만한다. 윈도우인스톨러나스크립트를이용해설치하면 Default로 Global Filter로설치되기때문에 Site Filter로두번작업해야하는경우가생겨더번거롭기만하다. 수동설치를이용한 Site Filter 설치법을알아보자. 1 압축해제후생성되는 Setup 폴더를 C:\Program Files\AQTRONIX WebKnight\KISA_1 과같은서버내의로컬폴더를생성하여복사한다.( 단, 각 WebKnight 설치를위한유일한폴더를가져야한다.) 2 그후각 WebKnight의 Config.exe를실행하여 WebKnight.xml을불러온뒤 Global Filter Capabilities" 섹션에서 Is Installed As Global Filter" 옵션의체크를해제하고저장한다. 또는저장된하나의 xml파일을각폴더에일괄적으로덮어쓰기한다. 3 각 WebKnight 폴더의등록정보에서 " 보안 탭에 NETWORK SERVICE" 계정을추가하고 쓰기 권한을부여해준다. 4 인터넷정보서비스를실행한다. 5 각개별사이트의 등록정보 를클릭하여 ISAPI 필터 탭에서 WebKnight필터를등록한다. ex) 필터이름 :WebKnight, 실행파일경로 : C:\Program Files\AQTRONIX WebKnight\KISA_1\WebKnight.dll) - 14 -

6 그리고 응용프로그램풀 에서각각의사이트별로풀 (Pool) 을생성하여매칭시킨다. 주의 : 만약 AppPool을동일하게사용하게되면필터를각사이트별로등록했더라도정상적으로사이트필터링을적용할수없다. 7 IIS 를재시작한다. 8 IIS 재시작후웹페이지를브라우징해주면 WebKnight가로딩되었다는로그가생성되면서정상작동하게된다. 3.2. WebKnight 제거 만일 WebKnight를제거하고자할경우설치방법과마찬가지로 3가지방법중하나를선택하면된다. WebKnight를제거한후에는반드시 IIS를재시작해준다. 윈도우즈인스톨러를이용한자동제거 설치시이와같은방법으로설치하였다면제거도같은방법으로하면된다. 설치원본파일중에 WebKnight.msi 를실행하면아래그림과같은화면이뜨는데 Remove" 를선택해주면자동으로필터까지제거해준다. 그동안생성된로그파일은삭제되지않는다. 디폴트경로에설치되어있는경우도마찬가지로제거하면된다. Default) C:\Program Files\AQTRONIX WebKnight\ - 15 -

VB 스크립트를이용한자동제거 VB스크립트를이용하여설치하였을경우엔 Uninstall.vbs를실행하여제거하면된다. 디폴트경로에설치되어있는경우도마찬가지로제거하면된다. Default) C:\Program Files\AQTRONIX WebKnight\ < 제거할호스트명 > < 제거완료 > 수동제거수동설치과정과마찬가지로인터넷정보서비스를열고글로벌필터또는사이트필터에따라서버이름또는사이트이름을선택한후 등록정보 에서 ISAPI 필터 탭을선택하여 WebKnight 항목을선택한후 제거 버튼을누르면된다. - 16 -

상기와같이 WebKnight 를제거한후변경사항을반영하기위해서는 IIS 를재가동하여야한다. 4. 설정최적화 4.1. Config 과 LogAnalysis 를이용한최적화 WebKnight는 SQL Injection 공격차단, 허용하지않는파일또는확장자에대한접속차단등웹공격에대해대단히다양한차단기능을제공해주고있다. 또한기본적으로이러한차단기능이설정되어설치와동시에적용이되는데이차단기능이정상적인웹접속을차단할수도있다. 따라서설치이후자신의웹사이트환경에맞게적절하게최적화하는과정을반드시거쳐야한다. 실제설치보다는최적화에많은노력과시간을들여야만한다. 설정과정을통해오히려웹공격의다양한패턴을익힐수있는기회도될수있을것이다. 먼저, WebKnight 설치이후해당웹사이트에접속해서정상적으로웹요청및응답이이루어지는지확인을하고, 접속이차단될경우 WebKnight의로그를참조하여어떠한룰에의해요청이차단되었는지찾아이룰을수정하여야한다. 디폴트설치시로그파일의위치와설정프로그램, 설정파일은다음과같다. o 로그파일 : C:\Program Files\AQTRONIX WebKnight\LogFiles\YYMMDD.log o 설정프로그램 : C:\Program Files\AQTRONIX WebKnight\Config.exe o 설정파일 : C:\Program Files\AQTRONIX WebKnight\WebKnight.xml o WebAgents Database : C:\Program Files\AQTRONIX WebKnight\Robots.xml - 17 -

설정파일은차단정책 ( 룰 ) 파일이라고도부른다. WebKnight를설치후기본룰이적용된상태에서웹사이트접속시다음과같은경고화면이뜰수있다. 이화면은 WebKnight에서필터룰에의해차단을시킨후접속자에게보내는기본경고화면이다. 정상적인웹요청을했는데도불구하고이와같이차단된다면로그파일을열어 BLOCKED" 메시지를확인하고어느룰에서차단되었는지찾아설정파일에서이를수정해야한다. WebKnight는 2.0 버전부터로그분석기를제공해주고있는데설치폴더내에 LogAnalysis.exe를실행하면자동으로로그파일들을불러오거나선택할수있고로그를분석하는데좀더용이하게해준다. - 18 -

위의화면을보면정상적인웹접속이차단되어로그파일을분석해보니다음과같은로그가남았다. 2008-01-29 ; 06:21:50 ; W3SVC1 ; OnUrlMap ; 127.0.0.1 ; ; / ; C:\Inetpub\dannyshop\ ; BLOCKED: Not in allowed path list 'C:\Inetpub\dannyshop\' 기본적인로그파일의각필드는다음과같다. Time ; Site Instance ; Event ; Client IP ; Username ; Additional info about request(event specific) 이외에도룰설정의 Logging" 섹션에서추가적으로항목을구성할수있다. 위의로그를보면 "C:\Inetpub\dannyshop" 이라는폴더에대한접속이허용되지않도록설정이되어있어차단된것이다. 이처럼 White List 필터링방식으로허용할사항들만키워드를등록하여사용할수도있다. 불필요한폴더로의접근은거부하는등웹서버에대한보안을강화시킬수있는옵션이다양하게구현돼있다. 다음 FAQ에는 WebKnight의설치와환경설정, 로그파일분석시자주발생될수있는문제와궁금증에대해질의 응답식으로정리되어있으므로참고하기바란다. http://www.aqtronix.com/?pageid=114-19 -

로그파일해석시기본설정의로그시간대는 GMT/UTC로한국시간대인 GMT+09 보다 9시간늦으므로로그분석시이를감안하여야한다.( 설정에서 USE GMT 를체크하지않음으로써시스템시간과동기화시킬수있다.) Config.exe 를통해 WebKnight 의다양한필터링기능을설정할수있는데다음과같은설정을할수있다. 룰설정시웹서버관리자가유의해야할사항도포함되었으니 확인사항 을참고하기바란다. 구분기능확인사항 Scanning Engine Incident Response Handling 암호화포트 (HTTPS), 비암호화포트 (HTTP) 에대한모니터링, 웹인스턴스나 IP 에대한제외여부등설정 필터가일치했을경우 WebKnight의응답방식을제어한최초설치시 Log Only" 다. Default로정의된파일을보여줄것인지사용자정의모드로룰최적화파일로바꿀것인지로그만남길것인지등의제어가가능 Logging Connection Authentication Request Limits URL Scanning Mapped Path 로깅여부, 로그시간대, 로그항목 ( 클라이언트 IP, 사용자명등 ) 등을설정 IP 를모니터링하거나차단, 요청의제한등을설정 시스템의인증및계정, 패스워드설정등에대해설정하고 Brute force에대해서거부하는등의동작 컨텐츠길이, URL 길이, 쿼리스트링길이등을제한 Use GMT: Disable Client Error, Server Error: Disable URL Encoding 공격, 상위경로 (../), URL 백슬래쉬 (\), URL Denied Sequences URL 인코딩 (%), 특정 URL 스트링등 URL 관련모니터링항목확인필요및차단 Directory Traversal 공격, 백슬래쉬 (\) 등허용하지않을문자및로컬시스템내의허용할경로정의 Allowed Paths 에서웹 App 가있는위치확인및지정필요 - 20 -

구분기능확인사항 Requested File 차단시킬파일의문자열과키워드목록, 차단 허용할파일확장자등을정의 정상적인요청이차단될수있으므로반드시확인필요 Robots 자동화된로봇, 봇에이전트등에대한차단동작을설정추가로 Robots.xml 이있다. Headers Referer User Agent Methods Querystring 서버헤더정보변경, 특정헤더차단및헤더에서의악의적인동작등에대한차단등설정 외부의불필요한링크나트래픽에대한제한, 특정도메인에대한제한등에설정 웹서버로접속하는브라우저등의 Agent 에대해차단및허용여부를설정 허용또는차단할 Method 를결정 ( 예 : GET, HEAD, POST 은허용하고 DELETE, PUT 등은차단 ) 특정 query 스트링 (xp_cmdshell, cmd.exe 등 ) 차단, query 스트링에서 SQL Injection 차단등설정 Robots.xml을세부설정가능 통해 Global Filter Capabilities SQL Injection 글로벌필터적용여부, POST 값에서의특정스트링 (xp_cmdshell, cmd.exe 등 ) 차단등을결정 SQL Injection 공격에이용되는키워드정의 (, ;, select, insert xp_ 등 ) Web Applications WebDAV, IISADMPWD 등웹어플리케이션의허용유무결정 : WebKnight 2.x 로업데이트되면서추가된사항 POST 값에대한필터링여부와 IIS 버전에따른옵션해제 공격에이용될수있는수십개의키워드가정의되어있으나확장저장프로시져의사용유무등을고려하여추가 / 삭제필요 기본적으로모두사용하지않는것으로설정되어있음 위대부분의옵션은 IIS의재시작없이바로적용이되지만일부항목은재시작이필요한옵션이있으므로각옵션하단의코멘트를확인하여 IIS나 Firewall의재시작이필요한경우엔재시작을해줘야만정상적용이된다. 만약최초설치했을때의설정으로돌아가고싶다면 WebKnight.xml 파일을삭제한뒤 IIS를재시작해주면최초 Default 설정을갖는 WebKnight.xml 파일이새로생성된다. 참고로, 앞서설치과정에서설명했듯이 IIS 6.0에서는 POST Method를사용하는인자값필터링을위해서 IIS5.0 격리모드로설정해야한다. 4.2. Robots.xml WebKnight 2.0 부터지원되는기능중에 Robots.xml 을이용한 User-Agent 의감시기능이있다. - 21 -

WebKnight 설치폴더에함께포함되어있는 Robots.xml파일은 WebAgents Database 파일로써악성봇이나사용자가지정한 Agent 들에대하여차단할수있다. 이러한 Robots.xml 파일은수시로업데이트되기때문에 AQTRONIX 홈페이지에서최신 Robots.xml 파일을다운받아업데이트하는게좋다. Robots.xml 파일에의해차단이될경우엔다음과같은로그가남는다. BLOCKED: User Agent not allowed BLOCKED: '[token]' not allowed in User Agent 자신의 Agent나차단된 Agent가어떤특성을가지고있는지알고싶을때에는아래의 URL에서확인할수있다. o 자신의 Agent 확인 http://www.aqtronix.com/research/agents/?action=scanuseragent o Agent 검색 http://www.aqtronix.com/research/agents/?action=showsearch - 22 -

사용자가 Agent를추가할수도있으며적당한카테고리에 Insert Item" 을이용하여키워드를입력하면된다. 현재 Robots.xml 파일의 DataBase 현황은다음과같다.('08. 6. 19 기준 ) 총 27가지로분류되어데이터채집및 e-mail주소수집, 방명록스패머등의알려진악성봇이나 Agent 들의 Database를제공하여주기때문에홈페이지를수시로확인하여업데이트를해주는것이좋다. o Robots.xml 업데이트 http://www.aqtronix.com/downloads/webknight/robots/robots.xml - 23 -

4.3 트래픽감사예외 IP 설정 외부에서취약점점검이나모의해킹등을수행할때에는점검트래픽과공격트래픽이거의유사하기때문에공격으로탐지되어차단된다. 그러므로이러한진단작업을진행하기에앞서, 감사예외 IP로설정하면지정된 IP에대해서는차단조치하지않기때문에정상적인점검이가능하다. 단, 예외 IP처리기능은버전 2.1이상에서만지원된다. 다음은본설정방법을설명하기위한예시 IP 목록이며아래의 IP들에대해감사예외 IP로설정하는방법을알아본다. 1 221.149.161.5 2 211.252.151.24 3 211.252.151.44 이 IP 목록을 WebKnight 설정파일에서 Scanning Engine - Use Excluded IP Addresses 옵션을 Enable 한뒤아래화면과같이등록해주면된다. 또한하나의 IP가아니라범위로지정하고자한다면 221.149.161.5/24 와같이 CIDR표기법으로설정하면된다. 이기능은 WebKnight 2.1 이상버전에서만가능하기때문에하위버전사용자는 2.1 버전으로업그레이드해야만사용할수있다. - 24 -

5. 모의공격및공격차단확인 WebKnight의설정최적화를완료하였다면얼마나효과적으로웹공격에대해차단해주는지확인해볼필요가있다. 다음그림은 WebKnight 설치이전에해당웹서버가 SQL Injection 공격에취약하여공격툴에의해 DB 접근이가능하고 DB 계정및테이블이노출되고있는화면이다. 그러나, WebKnight의설치이후동일한공격툴을이용하여테스트한결과공격은실패하였으며, 다음과같은로그파일이생성되었다. 16:29:38 ; W3SVC1 ; OnPreprocHeaders ; x.x.x.x ; ; HEAD ; /main/my_milage.asp ; id=;create%20table%20t_xxx(xxx%20varchar(200)) ; BLOCKED: Possible SQL injection in querystring ; HTTP/1.1 ; Mozilla/3.0 (compatible; Indy Library) ; BLOCKED: User Agent not allowed ; BLOCKED: 'indy library' not allowed in User Agent 16:29:39 ; W3SVC1 ; OnPreprocHeaders ; x.x.x.x ; ; HEAD ; /main/my_milage.asp ; id=%20and%201=1 ; HTTP/1.1 ; Mozilla/3.0 (compatible; Indy Library) ; BLOCKED: User Agent not allowed ; BLOCKED: 'indy library' not allowed in User Agent WebKnight는 SQL Injection이가능한문자열을발견하였기때문에차단되었고자동화툴이 "Indy Library" 라는 Agent를사용하기때문에차단이되었다. 다음은차단된공격툴화면이다. - 25 -

이러한 SQL Injection 공격이외에도취약한 CGI 공격, Directory Traversal 공격등다양한웹공격이차단되는것을확인할수있었다. WebKnight의설치가끝나고제대로동작하는지테스트가끝났다면앞에서언급한것처럼주기적으로로그를확인하면서정상적인서비스가차단되는지오탐지분석을해야한다. 또한이러한로그분석을통해관리자는여러웹공격시도로부터의적절한대응능력을갖출수있어야할것이다. 지금까지공개웹방화벽인 WebKnight를이용한 IIS 웹서버의보안강화에대해소개하였다. WebKnight를실제운용되고있는취약한웹서버에적용시켜본결과훌륭한공격차단효과를확인할수있었는데, 상용웹보안도구의도입이여의치않은중소규모의웹사이트에서유용하게활용할수있다. 웹보안의기본은안전하게코딩된웹프로그램에있음을명심하여야할것이다. 홈페이지개발보안가이드, 표준웹어플리케이션보안템플릿등을참고하여웹어플리케이션설계단계에서부터안전하게개발하는것이가장우선시되어야할것이고, 부가적인보안조치로 WebKnight를활용하기바란다. - 26 -