본문 바로가기
MiddleWare(미들웨어)/WebtoB

[WebtoB] Log Format 설정하기

by wonkidoki 2025. 1. 23.
반응형

- WebtoB 보안취약점 중 하나로 Log Format을 변경하는 내용이 있다.

- WebtoB의 Access LOG는 Default 값으로 Error LOG는 ERROR 로 되어있다.

- 취약점 내용은 Access LOG 의 Default 값을 특정 내용으로 변경하는 내용이 있다.


1. WebtoB LOGGING 절 확인

- 기본적으로 설정된 LOGGING 절의 내용이다.

*LOGGING
syslog     Format = "SYSLOG", FileName = "/home/tmax/webtob/log/system_%Y%%M%%D%.log", Option = "sync"
acc_node     Format = "DEFAULT", FileName = "/home/tmax/webtob/log/access_%Y%%M%%D%.log", Option = "sync"
err_node     Format = "ERROR", FileName = "/home/tmax/webtob/log/error_%Y%%M%%D%.log", Option = "sync"

 

2. DEFAULT 의 내용 변경

- DEFAULT, COMMON, COMBIND는 ALIAS 된 값이다.

DEFAULT Default Log File Format이다.
(약자: "%h %t \"%r\" %s %b %D")
COMMON Common Log File Format이다.
(약자: "%h %l %u %t \"%r\" %s %b")
COMBINED Combined Log File Format이다.
(약자: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\")
%a 요청을 보낸 장비의 IP 주소를 표시한다. %h와 동일하다.
%b 응답의 Byte를 표시한다.
%c WebtoB 응답 생성 위치를 표시한다.
  • 내부 캐시에서 응답이 생성된 경우 "hc" 로 표시한다.
  • 디스크 캐시에서 응답이 생성된 경우 "dc"로 표시한다.
  • sendfile에서 응답이 생성된 경우 "sf"로 표시한다.
  • sendfile / disk cache 에서 생성된 경우 "sf/dc"로 표시한다.
  • remote 에서 생성된 경우 "hm"로 표시한다.
%{_attr_name_}C HTTP Request의 Cookie Header 값 중 '_attr_name_'에 해당하는 값을 표시한다.
%d 응답이 전송된 시간을 표시한다.
%D 요청을 처리하는데 소요된 시간을 표시한다. (단위: millisecond)
%{ENV_NAME}e 환경변수 ENV_NAME을 출력한다.
%g WebtoB가 내부적으로 사용하는 요청 식별자를 출력한다.
%h 요청을 보낸 장비의 IP 주소를 표시한다.
%H 사용한 HTTP 버전을 표시한다.
%{HEADER_FIELD}i HTTP Request의 HEADER_FIELD Header 값을 표시한다.
%{_id_name_}J 요청을 JEUS로 포워딩하여 처리하는 경우 내부적으로 사용하는 요청의 식별정보를 표시한다.
  • _id_name이 JSVCid이면 Client ID이다.
  • _id_name이 JSVReqSeq이면 Request Sequence이다.
%m HTTP Request 메소드를 표시한다.
%p Request가 도착한 서버의 포트 번호를 표시한다.
%q HTTP Request의 query 값을 표시한다.
%r HTTP Request의 Request line 전체를 표시한다.
%R HTTP Request의 Request line 전체를 표시한다. CheckURL이나 URLRewrite 기능에 의해 변경된 Request line을 표시한다.
%s 응답에 사용된 HTTP Status Code를 표시한다.
%t 요청처리를 마친 시간을 표시한다.
%T Request를 처리하는 데 소요된 시간을 표시한다. (단위: 초)
%u HTTP 인증에 사용된 user 이름을 표시한다.
%U HTTP Request URI를 표시한다.
%v Host Header 필드 값을 표시한다.
%z 응답이 압축된 경우 압축 전/후의 응답 크기와 압축률을 표시한다.
%S http와 https를 구분하여 표시한다.
%A 서버의 IP 주소를 표시한다.

- 이외에도 %{X-Forwarded-For}i %{Referer}i 같은 설정도 추가 가능하다.

- X-Forwarded-For 는 실제 클라이언트 IP확인하는 설정으로 많이 사용한다.

 

3. 사용 예제

- 취약점 조치 내용에 나온 대로 적용하면 되며 아래와 같은 예시가 있다.

*LOGGING
log1        Format   = "%h %l %u %t \"%r\" %>s %b %{X-Forwarded-For}i %{Referer}i"

               FileName = "C:/TmaxSoft/WebtoB5.0/log/access_%Y%%M%%D%.log", Option="sync"
               Option = "sync"