여태 쓴 두개의 WebKnight 2.0 이야기는 어째서 도입을 해야하는가? 도입했을때 기대할 수 있는 값은? 이것이 주제였다면, 이번 글에서는 기존의 기대 효과 같은 부분이 아닌, 실무적인 부분, 바로 어떻게 해야 "장애가 덜 발생하는 세팅 값을 가질 수 있는가?"이다.
대부분의 경우 테스트 서버나 실서버에 설치를 마친 후에 IIS를 재시작한다. 이 작업 후, 정말 매우 많이 운이 좋다면, WebKnight를 설치했음에도 불구하고 잘 뜨는 것을 볼 수 있을 것이다. 그러나, 대부분의 경우 두세 페이지만 클릭해보면 바로 필터링 되었다는 메시지가 뜬다. 심각한 경우에는 아예 첫페이지부터 필터링에 걸렸다고 나온다. 이런 문제의 절반 이상의 문제는 바로 한글 사용에 기인한다. 이와 관련된 옵션은 다음 두가지이다.
- High Bit Shellcode
- RFC Compliant *
실제 위 두개의 옵션에 대해서 자세히 알아보자.
HighBitShellcode : 문자를 ASCII로 봤을 때 127보다 큰 값을 지칭한다. 즉, 기본을 벗어나는 특수문자, 영어가 아닌 모든 문자가 이 범위 안에 들어온다. 물론 한글이라고 예외는 아니다. 유니코드를 사용한다면 이 부분 역시 꺼야한다.
RFC Compliant : RFC에 적합한가 여부를 따지는 옵션이다. 이러한 부분은 그냥 관과하기 쉽지만, 우리가 사용하는 모든 브라우저는 특정한 룰에 의해서 만들어진다. 이러한 룰의 집합으로 만들어진 표준안이 바로 RFC 문서이다. RFC의 대부분의 기반 문서는 2바이트 문자권이 아닌 영문자권에서 만들어진다. 따라서 불행하게도 대부분의 RFC에는 2바이트 문자권에 대한 언급이 거의 없다. 설령 있다 하더라도, 이는 확장된 부분에 속하기 때문에 초기 버전을 따르는 경우에는 역시 문제가 된다.
일단 이 두개의 옵션에 대해서 이야기를 해봤다. 하지만, WebKnight 2.0에서는 이 두 옵션을 다 제거하고 적용하여도 대부분의 경우 문제가 발생한다. 이는 WebKnight 2.0에 추가된 옵션으로 Unicode를 허용으로 바꿔도 문제가 된다.
WebKnight 2.0의 사용시 로그를 보면 HTTP 1.1까지만 로그가 남고 이 이후의 어떤 부분에 의해 로그가 남는지에 구체적인 로그 내용이 남지 않는다. 그리고 실제 동작은 필터링이 됐다 말았다한다. 이 부분은 현재 HTTP 1.1을 사용하면서 한글이 들어간 경우에 주로 발생되는 것으로 보여지고 있다. 즉, HTTP 1.1을 사용하지 않는 클라이언트는 사용하지 않는데 별 문제가 없다. (즉, IE 6.0은 정상 동작한다)
참고
- IE 7.0부터 HTTP 1.1을 사용하고, IE6.0까지는 HTTP 1.0을 쓰더군요. Firefox는 테스트 안해봤습니다.
- 한글 문제 때문에 WebKnight 2.0보다는 WebKnight 1.3버전을 사용하시는 것이 좋습니다. 다만, 1.3을 그대로 사용하시는 경우 필터링 부분을 강화해주셔야 합니다.
RFC Compliant의 참고 문서
'웹방화벽(트릿센트리) > 웹나이트-공개웹방화벽' 카테고리의 다른 글
| WebKnight 설치 후 정상적인 서비스 접속이 차단되고, WebKnight 경고창이 뜹니다. (0) | 2007/07/09 |
|---|---|
| 윈도우/리눅스 공개 웹방화벽 설치 및 운영 동영상 배포 (0) | 2007/06/29 |
| WebKnight 2.0 세번째 이야기.. (3) | 2007/06/21 |
| 웹사이트 변조 해킹의 방어에 대한 약간의 팁... (0) | 2007/06/08 |
| IIS 5.0 인증 우회 방법 공개 (0) | 2007/06/07 |
| 무료 SQL 인젝션 스캐너 15 제품 요약 정리(#2/#3) (0) | 2007/05/21 |



댓글을 달아 주세요
안녕하십니까? 도저히 이해가 안 되는 상황이 발생하여 이런 Case가 있는지, 있었다면 어떻게 해결했는지 문의 드립니다.
저희 회사에 Oracle DB서버가 있으며, Windows 2003 Server가 깔린 WEB서버가 있습니다. WEB서버에는 Oracle Client 버전이 깔려 있습니다.
H/W 장비가 새로 바뀌어서 기존의 WEB서버를 새 장비로 Migration한 후에 나타나는 증상입니다.
하루중 서비스가 잘 되다가 특정시간(17:00~18:00)에만
서비스가 끊어집니다.
WEB서버에서 보면, 해당시간에 Oracle DB Provider로는 DB서버로의 접속이 잘 됩니다만, Windows OLE Provider로는 DB서버로 접속이 안 됩니다.
그러다가 18:00되면 정상적으로 실행됩니다.
MS, Oracle, 장비업체에 요청해서 모두가 보았자만, 원인을 알 수가 없습니다. 예약된 작업, 바이러스, 악성코드, 백업 등등 확인할 수 있는 부분은 많은 부분을 확인했지만 원인파악에 실패했습니다. Backdoor로 실행되는 것도 전혀 없었습니다.
최후의 수단으로 서버장비를 완전히 초기화해서 O/S를 다시 설치하고, Web서버 구성후에도 동일한 증상이 나타났습니다.
혹시 이런 증상을 보신 적이 있으신가요?
있다면 좀 알려주세요.
<참고>
서버장비: HP DL380
O/S: Windows 2003 Server Standard
말씀 하신 상황을 보면 "그러다가 18:00되면 정상적으로 실행됩니다" 인데 결국 어떤 스케줄러를 통해서 원격 가동을 한다고 봐야 하는지요.
이런 경우가 매우 난해한 부분인데 아래 말씀하시듯이 백도어쪽도 없다고 말씀 하시면 답 찾기가 난해한 상황입니다.
추가로 이와같이 글만 보고 어떤 답을 드릴 수도 없을 것 같구요.
결국 의심 되는 부분은 백도어 쪽이라고 생각됩니다.
WebKnight.dll' but it requires the SF_NOTIFY_READ_RAW_DATA filter notification and this notification is not supported in Worker Process Isolation Mode.
----------------------------------------------
IIS6에 웹나이트2.0을 설치했을때 나타나는 문제입니다. Global Filter로 사용할 수 없는 상황이며, 각 사이트별 로그를 적용하고 있습니다.
희한한게 다른 서버에서는 다 잘 되는데 특정 서버 한군데에서만 저런 로그를 남기면서 dll이 로드되지 않고 있습니다.
이런 증상을 보신적이 있으신가요 ㅠㅠ