1. WebKnight 설치하기
WebKnight는 윈도우즈 인스톨러를 이용한 설치, install.vbs 스크립트를 이용한 설치,
수동 설치 등 3가지 방법으로 설치할 수 있다.
웹호스팅 서버 등 하나의 웹서버 내에 다수의 사이트가 운영되는 경우
웹서버 전체에 필터를 적용(글로벌 필터)할 수도 있으며,
개별 웹사이트별로 서로 다른 룰에 의해 필터를 적용(사이트 필터)할 수도 있다.
윈도우즈 인스톨러와 install.vbs 스크립트를 이용한 설치시에는
기본적으로 글로벌 필터가 적용되는데 설치 과정은 다음과 같다.
(1) 아래 URL에서 Webknight 2.1 (Release date : 2007.10.08)을 다운로드 받는다.
http://www.aqtronix.com/?PageID=99#Download
(2) 압축을 해제하면 아래와 같은 폴더와 파일이 생성된다.
(3) Setup 폴더로 이동하여 설치 방법을 선택할 수 있다.
(4) WebKnight.msi 파일을 더블클릭하여 윈도우즈 인스톨러를 동작시켜
WebKnight를 설치할 수도있고,
install.vbs 스크립트를 더블클릭하여 설치할 수도 있다.
(삭제시에는 uninstall.vbs 파일 실행)
다음 그림은 IIS 6.0에서 WebKnight.msi 파일 실행하여
윈도우즈 인스톨러에 의해 설치되는 화면이다.
(5) 라이센스 동의 후 설치 타입 선택화면이 나타나는데, 일반적으로 [Typical]을 선택한다.
(6) 이후 자동 설치과정이 진행되며, 설치가 완료되면 다음과 같은 메시지가 나타난다.
(7) 기본적으로 C:\Program Files\AQTRONIX\WebKnight 폴더에 설치가 완료된다.
이 폴더 내에 필터 역할을 하는 DLL파일(WebKnight.dll)과
향후 커스터마이징을 위해 필요한 설정실행 파일(Config.exe),
로그파일(IIS 재가동 후 생성) 등이 위치하고 있으므로
이 폴더의 위치를 기억할 필요가 있다.
(8) IIS 웹서버를 재가동 한다.
(9) IIS 웹서버를 재가동 후에 정상적으로 설치가 완료되었을 경우,
웹사이트 동록 정보의 [ISAPI 필터]에
다음과 같이 WebKnight 필터가 정상적으로 적용이 된 것을 확인할 수 있다.
위 과정을 통해 WebKnight의 설치는 간단히 수행할 수 있다.
만일 다수의 웹사이트가 운영되어 각 사이트마다 필터링 룰을 달리 적용하거나
자동 설치가 어려운 경우 다음과 같이 수동으로 설치할 수 있다.
● 글로벌 필터로 수동 설치
① 압축 해제 후 생성되는 Setup 폴더를 C:\Program Files\AQTRONIX WebKnight와
같은 서버내의 로컬 폴더를 생성하고 여기에 복사한다.
② 인터넷 정보 서비스를 연다.
③ 서버 이름(사이트 이름이 아님)에서 우측 마우스를 클릭하여 [등록정보]를 선택한다.
④ 마스터 속성 리스트에서 [WWW 서비스]를 선택하고, [편집] 버튼을 누른다.
⑤ [ISAPI 필터] 탭을 선택하고, [추가] 버튼을 클릭한다.
⑥ [필터 등록 정보]가 나타나면 필터 이름과 실행 파일 경로를 입력한다.
필터 이름 : WebKnight
실행 파일 경로 : C:\Program Files\AQTRONIX WebKnight\WebKnight.dll
⑦ [OK] 버튼을 누르고 대화상자를 빠져 나간다.
⑧ IIS를 재 가동한다.
● 사이트 필터로 수동 설치
① 압축 해제 후 생성되는 Setup 폴더를
C:\Program Files\AQTRONIX WebKnight\W3SVC1 과
같은 서버내의 로컬 폴더를 생성하여 여기에 복사한다.
(단, 각 WebKnight 설치를 위한 unique한 폴더를 가져야 한다.)
② 인터넷 정보 서비스를 연다.
③ 사이트 이름(서버 이름이 아님)에서 우측 마우스를 클릭하여 [등록정보]를 선택한다.
④ [ISAPI 필터] 탭을 선택하고, [추가] 버튼을 클릭한다.
⑤ [필터 등록 정보]가 나타나면 필터 이름과 실행 파일 경로를 입력한다.
필터 이름 : WebKnight
실행 파일 경로 :
C:\Program Files\AQTRONIX WebKnight\W3SVC1\WebKnight.dll
⑥ [OK] 버튼을 누르고 대화상자를 빠져 나간다.
⑦ Setup 폴더 아래의 config.exe 파일을 실행해서 [Global Filter Capabilities]섹션에서
[Is Installed As Global Filter]의 체크를 해제한다.
⑧ IIS를 재 가동한다.
2. 설정 커스터마이징
WebKnight는 SQL Injection 공격차단, 허용하지 않는 파일 또는
확장자에 대한 접속 차단 등 웹공격에 대해 대단히 다양한 차단기능을 제공해 주고 있다.
또한 기본적으로 이러한 차단기능이 설정되어 설치와 동시에 적용이 되는데
이 차단기능이 정상적인 웹 접속을 차단할 수도 있다.
따라서 설치이후 자신의 웹사이트 환경에 맞게 적절하게 커스터마이징하는 과정을
반드시 거쳐야 한다.
실제설치보다는 커스터마이징에 많은 노력과 시간을 들여야만 한다.
설정과정을 통해 오히려 웹 공격의 다양한 패턴을 익힐 수 있는 기회도 될 수 있을 것이다.
먼저, WebKnight 설치 이후 해당 웹사이트에 방문해서
정상적으로 웹요청 및 응답이 이루어지는지 확인을 하고,
접속이 차단될 경우 WebKnight의 로그를 참조하여
어떠한 룰에 의해 요청이 차단되었는지 찾아 이 룰을 수정하여야 한다.
● 디폴트 설치시 로그파일의 위치와 설정프로그램은 다음과 같다.
로그파일 : C:\Program Files\AQTRONIX WebKnight\LogFiles\YYMMDD.log
설정프로그램 : C:\Program Files\AQTRONIX WebKnight\config.exe
● WebKnight 설치 후 웹 접속시 다음과 같은 경고 화면이 뜰 수 있다.
이 화면은 WebKnight에서 필터 룰에 의해 차단을 시킨 후
웹접속자에게 보내는 기본 경고화면이다.
정상적인 웹 요청을 했는데도 불구하고 이와같이 차단된다면
로그파일을 열어 “BLOCKED” 메시지를 확인하고
어느 룰에서 차단되었는지 찾아 설정파일에서 이를 해제하여야 한다.
디폴트 설치의 경우 WebKnight의 로그파일은 설치 후 IIS 웹서버를 재가동하게 되면
C:\Program Files\AQTRONIX WebKnight\LogFiles 폴더가 생성되고
그 하위에 일자별로 로그파일이 생성된다.
● 기본적인 로그파일의 각 필드는 다음과 같다.
Time ; Site Instance ; Event ; Client IP ; Username ; Additional info about request(event specific) |
● WebKnight의 설치와 환경설정, 로그파일 분석시 자주 발생될 수 있는 문제와 궁금증에
대해 질의·응답식으로 정리되어 있으므로 다음 FAQ를 참고하기 바란다.
http://www.aqtronix.com/?PageID=114
● 로그파일 해석시 기본 설정의 로그 시간대는 GMT/UTC로
한국 시간대인 GMT+09 보다 9시간 늦으므로 로그 분석시 이를 감안하여야 한다.
(설정에서 “USE GMT”를 체크하지 않음으로 시스템 시간과 동기화시킬 수 있다.)
● 설정 변경은 config.exe 파일을 실행하여 GUI 인터페이스를 통해 설정할 수 있다.
● config.exe를 통해 WebKnight의 다양한 필터링 기능을 설정할 수 있는데
다음과 같은 설정을 할 수 있다.
구 분 | 기 능 | 확인 사항 |
Scanning Engine | 암호화 포트(HTTPS), 비암호화 포트(HTTP)에 대한 모니터링 기능 설정 | |
Incident Response Handling | 공격 발생시 WebKnight가 어떻게 행동할지를 결정하며, 기본적으로 경고화면인 nohack.htm으로 redirect하고 웹요청을 차단하지만, 차단하지 않고 로그만 남기게 할 수도 있음 | |
Logging | 로깅 여부, 로그 시간대, 로그 항목(클라이언트 IP, 사용자 명 등) 등을 설정 | “USE GMT” 항목 disable 권고 (시스템 시간 사용) |
Request Limits | 컨텐츠 길이, URL 길이, 쿼리스트링 길이 등을 제한 | |
URL Scanning | URL Encoding 공격 차단, 상위 패스(..) 차단, URL 백슬래쉬(\) 차단, URL 인코딩(%) 차단, 특정 URL 스트링 차단 등 URL 입력 모니터링 및 차단 | “URL Denied Sequences” 항목 확인 필요 |
Mapped Path | 경로에 상위 패스, 백슬래쉬(\) 등 차단 및 로컬 파일시스템의 허용하는 경로 정의 | “Allowed Paths”에서 웹컨텐츠가 있는 위치 확인 및 지정 필요 |
Requested File | 차단시킬 파일 목록과 차단·허용할 파일 확장자 정의 | 정상적인 요청이 차단될 수 있으므로 반드시 확인필요 |
Headers | 서버 헤더 정보 변경, 특정 헤더 차단 등 설정 | |
Methods | 허용 또는 차단할 Method를 결정 (예 : GET, HEAD, POST은 허용하고 DELETE, PUT 등은 차단) | |
Querystring | 특정 query 스트링(xp_cmdshell, cmd.exe 등) 차단, query 스트링에서 SQL Injection 차단 등 설정 | |
Global Filter Capabilities | 글로벌 필터 적용 여부, 특정 헤더 스트링(xp_cmdshell, cmd.exe 등) 차단 등 결정 | |
SQL Injection | SQL Injection 공격에 이용되는 키워드 정의 (‘ ; select insert xp_ 등) | 공격에 이용될 수 있는 수십개의 키워드가 정의되어 있으나 확장저장프로시져의 사용 유무 등을 고려하여 추가/ 삭제 필요 |
Web Applications | WebDAV, IISADMPWD 등 웹애플리케이션의 허용유무 결정 | 기본적으로 모두 사용하지 않는 것으로 설정되어 있음 |
● 위 대부분의 설정 변경 사항은 IIS의 재가동 없이 바로 적용이 되지만
일부 항목은 재가동을 하여야만 적용이 되는 것도 있으므로
IIS의 재가동 여부를 확인할 필요가 있다.
● 만일 설정을 잘못 변경하여 다시 디폴트 설정으로 바꾸기 위해서는
WebKnight.xml 파일을 삭제한 후에 웹서버를 재시작하면
디폴트 상태의 WebKnight.xml 파일이 새로 생성된다.
※ SQL Injection
데이터베이스(DB) 서비스인 SQL의 쿼리 문자열 사이에
특정 악성 코드를 몰래 삽입해 넣은 뒤 실행시키는 해킹 공격 방법.
출저 :
http://cheolgoon.tistory.com/111