웹서버의 동작 사항과 사용자의 작업을 보는데 웹로그를 풀로 남기는 방법을 쓰는게 가장 좋기는 하지만 어지간한 인간이라면 하루에 몇 메가가 넘는 텍스트 파일을 보고 있을 시간은 없을꺼다.
웹로그를 한참 보다보면 대부분의 경우가 4xx, 5xx를 보는 것이고 특히 5xx를 주의깊게 봐야하는데.... 별 쓸대없이 2xx, 3xx, 4xx를 계속 보다보면...
따라서... 실제 문제가 되는 부분만 봤으면 좋겠는데, IIS의 기본 능력으로는 이걸 필터링하는 방법이 없다. 방법이 아예 없는 것은 아니다. 웹로그를 SQL에 집어넣고 이를 select해보면 되기는 한다. 근데, 해보니까 10M의 텍스트 파일을 SQL에 넣었더니 30M쯤으로 뿔더라... 따라서 실질적으로 사용할 수 있는 부분은 아니다. 아니면 리소스 킷이나 Microsoft사의 다운로드 사이트에서 Log Parser를 받아서 쿼리를 날리면 결과를 찾아 볼 수 있다. 하지만 이것조차 힘들고 귀찮다면 WebKnight를 이용할 수 있다. WebKnight의 로그 설정은 다음과 부분을 신경써서 보도록한다.
* 클라이언트의 오류 남기기 : 4xx 오류 계열이며 Log HTTP Client Errors 를 체크한다.
- Log HTTP Client Errors는 보통의 경우라면 필요가 없으나 웹사이트가 얼마나 링크가 잘 되어 있고 정상적으로 로깅이 되는지 확인하고 싶을 때 사용하면 된다. 자주 쓸 일도 없고, 한 일주일 정도만 남겨서 본다면 그걸로 족하다고 생각된다.
* 서버의 오류 남기기 : 5xx 오류 계열이며 Log HTTP Server Errors 를 체크한다.
- 이 부분은 항상 켜두기 바란다. 이것은 SQL Injection과 같은 공격의 패턴을 찾아내기 좋다. 대부분의 해킹은 서버의 오류를 고의로 발생시키는 것인데, 이 오류만 뽑아서 볼 수 있는 아주 쉽고 확인하기 편한 방법이다. 그리고 이것을 꼭 켜두어야 하는 이유는 바로 정상적인 요청이 튕겨져 나갔을 때 어느 필터에 의해 거절되었는지 확인할 수 있는 거의 유일한 길이기 때문이다.
* 모든 로그 남기기 : Log Allowed Requests, Log HTTP VIA 를 체크한다.
- 맨 마지막에 있는 모든 로그 남기는 부분은 주의하기 바란다. 정상적인 로그도 남기며, 이걸 사람이 읽는다는 것은 거의 미친짓에 가깝다. 더구나 IIS의 로그보다 더 많이 남기기도 하기 때문에 서버가 디스크 부족으로 죽을 수 있다.
참고 자료
- UrlScan : http://www.microsoft.com/technet/security/tools/urlscan.mspx
- WebKnight : http://www.aqtronix.com/?PageID=99
PS. 본 문서는 WebKnight 1.3버전을 기준으로 작성되었습니다.
'웹방화벽(트릿센트리) > 웹나이트-공개웹방화벽' 카테고리의 다른 글
| "WebKnight를 활용한 IIS 웹서버 보안" 발표자료 (5) | 2007/05/09 |
|---|---|
| WebKnight (IIS 웹 서버용 공개 웹방화벽) 기술문서 다운로드 (3) | 2007/04/10 |
| WebKnight 보안관련 웹 서버용 ISAPI 필터 #5 (0) | 2007/04/07 |
| WebKnight 보안관련 웹 서버용 ISAPI 필터 #4 (0) | 2007/04/07 |
| WebKnight 보안관련 웹 서버용 ISAPI 필터 #3 (0) | 2007/04/07 |
| WebKnight 보안관련 웹 서버용 ISAPI 필터 #2 (0) | 2007/04/06 |
트랙백 주소 :: http://ntfaq.co.kr/trackback/3774
-
Subject: Webknight 로그의 데이터베이스화 클래스
Tracked from Zasfe's Way 2007/10/24 10:04 삭제서버를 관리하는 사람들은 하루에도 엄청난 로그를 남기고 관리한다.하지만 온갖 잡다한 로그속에서 필요한 로그를 찾기란 정말 힘들다. 그렇다보니 문제가 생기기 전까지 서버상에 기록된로그를 경시하려는 경향이 있다. 봐도 안봐도 그만인 정말 티 안나는 일이 로그 관리이기 때문 이다. 그렇다보니 조금이라도 편하게 관리를 하기 위해서 일부 프로그램이 제공하는것처럼 데이터베이스에 넣는 방법을 생각하게 되었다.실시간이 아닌 사후처리 라는 점이 문제이기는 하지만...



댓글을 달아 주세요