1.5 모니터링 및 서비스 이상 시 진단 방법

ㅁ WAF 서비스 구성 단계별 서비스 상태 체크

LB를 이용하는 경우는 WAF 서비스 구성이 복잡하고 서비스 접속 오류 원인을 찾기 어렵기 때문에 서비스 구성 계층별로 구분에서 확인이 가능합니다. 서비스 구성 단계별로 공인IP 또는 로컬IP(172.27.x.x)로 웹서비스 요청 테스트를 통하여 각 단계에서의 접속 오류, 응답 지연/오류 등의 구성 상태를 확인 할 수 있습니다.

공인 IP를 이용하여 확인할 때는 Client에서 LB로 접속하는 경우와 WAF로 접속하는 경우에 IP의 포트 번호가 달라질 수 있기 때문에 WAF의 웹사이트 등록(포트 부분)도 동일하게 설정되어야 합니다 (그렇지 않을 경우 연결 안됨). 또한 로컬 IP를 이용하여 확인할 때는 동일한 VR 내에 있는 다른 VM을 이용하여야 합니다 (동일한 Guest N/W 내 VM). Client에서 WAF로 연결 접속하는 경우에 오류가 발생한다면 다음과 같이 상태를 체크해 볼 수 있습니다.

해당 URL 에 대한 웹방화벽의 정책설정 내용을 확인합니다.
관리도구 에서 해당 URL 에 대해 탐지로그에 남아 있는지 확인합니다.
관리도구 또는 WAF VM 에 접속하여 WAF 의 성능 상태를 확인해 봅니다.

 
구분 설정 확인 내용
WAF에서 웹서버 등록, 웹사이트 등록 웹서버 등록 (서비스 구성) - WAF 서비스 포트의 트래픽을 웹서버로 연결하는 설정 (VR에서 WAF로 포트 포워딩을 설정한 포토) 웹사이트 등록 (보호할 웹서버 등록) - 외부 공격으로부터 보호할 웹서버를 등록하는 것으로 HTTP(S)의 메시지에 이용되는 URI - 서비스에 이용되는 DNS 또는 IP 등록 - 등록되지 않은 DNS 또는 IP 서비스 도메인 트래픽은 차단됨 - 80 포트를 이용하지 않는 경우 포트까지 입력되어야 함 (ex, WAF에 연결하여 테스트하는 경우 - 80포트가 아닌 경우) - 방화벽 정책 설정에 따라 차단될 수 있는 경우는 모두 허용 정책으로 변경 후 확인
포트 포워딩 설정 공인 IP에서 접근할 수 있는 WAF 서비스 포트로의 포트 포워딩 설정 URL이 WAF IP:Port 형식으로 이용하여 접속하기 때문에 WAF의 웹사이트 등록도 WAF IP, Port를 등록하여야 함
LB 설정 LB를 이용하는 경우의 구성 - VR의 공인 IP를 이용하여 복수의 웹서버로 로드밸런싱 하기 때문에 로드밸런싱되는 각 패스를 포트로 구분 설정됨 (추가 할당된 IP를 이용할 경우는 해당 IP로 이용 가능) LB의 Health Check 기능을 이용한 상태 확인- WAF에서는 Health Check 트래픽을 Web 서버로 릴레이하는 역할 - TCP : 웹서버의 서비스 포트가 살아 있는지 상태 체크 WAF에서 웹서버가 등록 되어 있지 않거나 웹서버의 웹서버 프로세스가 동작하고 않고 있으면 Down 상태 - HTTP : WAF에 웹사이트 등록(WAF IP)이 되어 있어야 함 웹사이트가 등록되지 않으면 미등록 웹사이트 차단 정책이 적용되어 Down 상태로 표시될 수 있음 (LB에서 헬스 체크하는 URL은 “WAF IP + 입력된 Path”와 같이 만들어짐) - HTTPS : HTTP와 동일하며, WAF에 인증서가 등록되어야 함 X-Forward-For 옵션을 이용한 Client IP 확인 - WAF에서 original source IP 확인을 위해서는 LB, 웹서버에서 X-Forward-For 옵션 설정 필요 X-Forward-For 옵션 설정 시 LB에서 WAF로 가는 트래픽의 Source IP는 LB가 되기 때문에 LB에서 original Client IP를 추가해서 전송함


ㅁ LB 헬스체크에 의한 WAF 상태 체크



ㅇ WAF VM 상태 체크 방법

WAF VM에 접속하여 CLI(Command Line Interface) 명령어 모드로 변경한 후 CLI 명령로 WAF 프로세스 상태(sysmon)과 Disk 용량의 상태를 확인합니다.

CLI 모드 변경 방법(상세 내용은 WAF 관리도구 매뉴얼 참조)
1. WAF VM에 SSH 접속
2. CLI enable mode로 진입 (초기 상태: disable)
3. enable mode 진입 시, 패스워드는 penta

Sysmon status : 실시간 WAPPLES 리소스(CPU,MEM 점유율), DB 프로세스, DB 트랜잭션, 탐지엔진 상태, HTTP 트래픽 처리 현황, 세션 현황, Throughput 을 알 수 있다.CLI Mode > configure terminal -> wapples -> show sysmon
time : 로그 기록 시간
idl : 유휴 cpu 점유율, idle이 30 미만일 경우 과부하 상태로 볼 수 있음
sy : 시스템 점유율(세션처리 등에 할당됨)
io : 디스크 사용에 의한 CPU 점유율 (파일 복사, DB백업, 탐지로그 검색 등 디스크 사용시 점유율 증가)
free : free (전체 가용 메모리), free+cache 가 300 미만일 경우 비정상적인 상태
cache : DB등 프로세스가 임시로 사용 하고 있는 메모리 (drop_cache 실행 or 시스템에서 자동으로 반환가능)
pro : DB 프로세스 개수
engine : [N] – none (서비스 구동 중, 정책 적용 중에 카운트), [G] – good(정상), 숫자가 표시되지 않고 계속 변경될 경우 비정상적인 상태 [W] – warning (CPU사용율 80%이상) [F] – Full (CPU사용율 100%), [E] – error (에러 발생, coredump 생성, 생성 위치 : /var/tmp/coredump/)
cps : 실시간 CPS(connection per sec) 수치
tps : 실시간 TPS(transaction per sec) 수치
sess : 엔진이 처리 중인 세션
traKB : 엔진이 처리 중인 웹 트랜잭션
ses : 커널(네트워크)단에서 처리중인 세션
ses : buf : 커널 앞단에 잠시 대기중인 세션(지속적으로 증가 시 서비스 지연 발생함)
ses : Throughput (KB) : 전체 트래픽 량(양방향 총합, 웹 이외의 트래픽 포함)
Disk 용량 확인 CLI Mode > configure terminal -> resource -> show sysinfo fs
-> 빨간 박스 부분이 90% 이상 되는지 확인합니다.

ㅇ WAF 보안정책 체크 방법

WAF 관리도구에 접속하여 WAF에 적용된 보안 정책을 체크합니다.

<M2존 WAF의 경우>

- 보호대상 서버 확인 : 관리도구 -> 환경설정 -> 웹서버
  보호대상 웹서버 IP 가 정상적으로 등록되어 있는지 확인 한다


- 보호대상 사이트 확인 : 관리도구 -> 정책설정
  보호대상 웹서버 IP 가 정상적으로 등록되어 있는지 확인합니다.


도메인이 정상적으로 입력되어져 있으며, 미등록 웹사이트의 위치를 확인합니다.

* 무조건 차단으로 설정될 경우 별도의 로그를 남기지 않고 차단됩니다. 서비스에 이용되는 웹사이트(도메인)을 추가를 하지 않을 경우 미등록 사이트로 구분됩니다 (80 포트를 이용하지 않을 경우 포트까지 입력되어야 합니다. )

* 탐지없이 통과 의 경우 탐지엔진을 거치지않고 트래픽이 웹 서버로 전달 됩니다.


- 탐지로그 (미등록 웹사이트) 확인 관리도구 > 탐지로그



탐지로그 확인 (탐지로그 생성 여부) 관리도구 > 탐지로그

탐지상세로그에서는 탐지근거에서 대해 사용자가 손쉽게 식별이 가능하도록 붉은색으로 하이라이트 표시를 제공합니다.


Web Browser 를 이용 하여 아래와 같이 입력 후 탐지 Log 가 올라오는지 확인합니다.
http://서비스 URL/111.111 (Extension Filter)
http://서비스 URL/(script (Cross Site Script)

<M2존 외 WAF의 경우
- 보호 대상 서버 확인 : 관리도구 > 설정 마법사 > 네트워크 설정
-> 보호대상 웹서버 IP 가 정상적으로 등록되어 있는지 확인합니다.

- 보호 대상 사이트 확인 : 관리도구 > 정책 설정
-> 미등록웹사이트가 차단으로 설정되어있는지 확인합니다.
* 무조건 차단으로 설정될 경우 별도의 로그를 남기지 않고 차단됩니다. 서비스에 이용되는 웹사이트(도메인)을 추가를 하지 않을 겨우 미등록 사이트로 구분됩니다(80 포트를 이용하지 않을 경우 포트까지 입력되어야 함)

- 탐지로그(미등록 웹사이트) 확인 : 관리도구 > 탐지로그
-> 미등록웹사이트가 차단으로 설정되어있는지 확인합니다.
* 무조건 차단으로 설정될 경우 별도의 로그를 남기지 않고 차단됩니다.

- 탐지로그 확인(탐지로그 생성 여부)관리도구 > 탐지로그
탐지상세로그에서는 탐지근거에서 대해 사용자가 손쉽게 식별이 가능하도록 붉은색으로 하이라이트 표시를 제공합니다.
-> Web Browser 를 이용 하여 아래와 같이 입력 후 탐지 Log 가 올라오는지 확인
http://서비스 URL/111.111 (Extension Filter)
http://서비스 URL/(script (Cross Site Script)
ㅁ 웹페이지가 느린 경우

점보 프레임 발생(WAF 4.0 이전 버전을 이용하고 있는 경우) 웹서비스에서 Large(점보) 패킷이 발생되는 경우 프레임 손상 및 흐름의 오류로 인하여 전송속도가 오히려 눈에 띄게 느려지거나 연결이 끊어지게 될 수 있습니다. WAF 버전을 최신 상태로 업데이트 할 경우, 점보 프레임 이슈는 해소 됩니다.
단, 업데이트는 서비스 중단이 필요하므로, 임시 방편으로 아래와 같이 설정하시기 바랍니다. 
점보 프레임 발생을 방지하기 위하여 WAF에 연결되는 웹서의 네트워크에서 LSO(Large Send Offload) 옵션 설정을 disable로 하여야 합니다. 특히, 웹서버가 window OS인 경우 LSO 디폴트 옵션이 enable로 되어 있으므로 아래 그림과 같이 LSO를 disable로 변경하여야 한다.(네트워크 설정 -> 속성 -> 구성 -> 고급 탭 -> Large Send Offload disable-> 확인)

표준에 맞지 않도록 구현되어 있는 어플리케이션의 경우 WAF의 경우 RFC HTTP/1.1 표준 규격을 준수하도록 설계되어 있습니다. 허나, 해당 규격을 준수하지 않았을 경우 특정 페이지만 동일하게 늦게 열리는 경우가 발생합니다. 간헐적으로 느려지는 경우는 과부하로 발생되는 경우 외에는 발생할 수 없으며, 동일하게 반복적으로 계속 느려질 경우 원인 분석이 되어야 합니다.(기술지원 필요)

ㅁ (M2존 WAF의 경우에만 해당) 웹방화벽 Traffic을 웹서버로 bypass 처리

잘못된 정책 설정으로 인한 정상 트래픽 차단으로 인한 서비스 불가 또는, 과도한 트래픽 발생으로 인한 웹방화벽 과부하로 인한 서비스 지연 시, 
웹방화벽의 탐지 및 차단 등 모든 동작을 중단하고, Traffic을 웹서버로 통과 처리하도록 하는 방법에 대해 설명 합니다. 

 - 웹방화벽에 SSH로 접속
 - 로그인 후, enable 입력 -> password는 penta 입력
 - configure terminal 입력
 - bypass 입력
 - sw-bypass set on 입력하여 bypass 기능 활성화
 - show sw-bypass 입력하여 기능 실행 여부 확인
 - bypass 설정을 끄고 정상화 할 때는 sw-bypass set off 입력