반응형
- 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 응답 생성 위치를 표시한다.
|
| %{_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로 포워딩하여 처리하는 경우 내부적으로 사용하는 요청의 식별정보를 표시한다.
|
| %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" |