오늘은 웹방화벽(WAF)에 대해서 알아보겠습니다.
목적/용도
웹방화벽은 웹서버 앞에 위치하여 외부로부터 들어오는 HTTP/HTTPS 트래픽을 감시하여 웹 애플리케이션에 대한 악의적인 공격이 탐지되면 해당 공격이 웹 서버에 도달하기 전에 차단하는 역할을 수행합니다.
- 그림이 보여주는 바와 같이 웹방화벽은 방화벽에서 걸러주지 못하는 응용계층의 위험한 유해 트래픽을 웹 서버에 도달하지 못하도록 근본적으로 차단합니다.
- 고도로 지능화, 다양화되고 있는 웹 공격을 효율적으로 탐지 및 차단하여 안정적이고 신뢰할 수 있는 웹 애플리케이션의 운영을 가능하게 합니다.
- 일반적인 방화벽은 출발지 및 목적지의 IP/Port 정보 기반으로 필터링을 하는 보안 장비로 TCP/IP 프로토콜의 헤더 정보를 이용하여 필터링을 실시하기 때문에 정상적인 IP/Port로 유입되는 해킹 공격에는 대응할 수가 없습니다.
- 웹방화벽은 방화벽에서 허용한 IP/Port로 유입되는 트래픽의 데이터 부분을 해석하여 유해한 트래픽이나 공격을 차단할 수 있는 장치입니다.
- 즉, 웹방화벽은 웹 트래픽에 대한 Payload(Data) 분석 및 패턴 기반의 필터링을 통해 악의적인 웹 애플리케이션 공격을 탐지 및 방어 합니다.
- 대부분의 웹 공격은 웹 어플리케이션 개발 구축 시 발생되는 취약점을 이용하거나, HTTP 요청 메시지에 특정 공격 또는 취약점 우회 코드를 삽입해 웹 서버에 전송하게 됩니다.
- 웹방화벽은 웹 서버로 전송되는 HTTP 요청 메시지의 Packet을 검사하여 웹 어플리케이션에 의도하지 않은 내용의 전송을 차단하고 HTTP 응답 Packet 내용을 검사하여 특정 정보의 유출을 방지 할 수 있습니다.
웹방화벽과 방화벽의 비교
구분 | 방화벽(Firewall) | 웹방화벽(WAF) |
동작방식 | 허용되지 않은 IP/Port에 대한 공격 차단 | HTTP/HTTPS를 이용한 공격 차단 |
필터링 방법 | 사전 정의된 Access List에 의한 차단 | 사전 설정된 룰셋(패턴, 휴리스틱)기반의 차단 |
인식 헤더 | 발신지 및 목적지의 IP/Port | 헤더 정보를 포함하여 Packet의 Payload |
보호 대상 | 대부분의 정보 자원 | 웹 서버 |
구성 형태 | 네트워크 경계 부분에 위치 | 논리적으로 웹서버 앞(Inline/Proxy 모드에 따른 물리적인 구성은 달라짐) |
특징 | Access List에서 허용된 트래픽의 필터링 불가 | Payload 분석에 따른 고성능의 프로세싱 능력 필요 |
웹방화벽의 주요 보안 기능
HTTP 기반의 웹 공격 방지
OWASP1 TOP 10 Attacks 탐지 및 차단
OWASP Top 10 2013 | 취약점 |
인젝션 | 전송 파라미터 기반 동적 SQL query를 처리하는 웹 모듈에 command를 삽입, 질의를 변조하는 해킹 기술 |
인증 및 세션 관리 취약점 | 허술한 계정관리나 미흡한 인증체계 구성 및 세션 처리에 의한 공격 위험 노출 |
크로스 사이트 스크립팅(XSS) | 공격자에 의해 작성된 악성 스크립트 코드가 다른 사용자에게 전달되는 취약점 |
취약한 직접 객체 참조 | 객체(파일, 디렉터리, DB값 등)을 URL이나 HTML tag로 노출 시 이를 이용한 공격 위험 |
보안 설정 오류 | 프레임 워크/플랫폼, 서버, 웹 서버, DB 서버 등의 보안을 정의하고 최신 상태로 설정 관리 필요 |
민감 데이터 노출 | 주민번호 등 민감 데이터 관리 시 평문 저장, 전송되는 취약점 이용, 불안정한 암호 저장, 미흡한 전송계층 보호 |
기능수준의 접근통제 누락 | 서비스 페이지 접근에 대한 적절한 통제 및 기술 조치 누락 시 인가되지 않은 접근 위협, URL 접근 제한 실패 |
크로스 사이트 요청 변조(CSRF) | 정상 인증된 사용자의 쿠키나 세션 정보를 통해 숨겨진 스크립트, Tag 정보로 공격을 유도하는 해킹 기법 |
알려진 취약점이 있는 컴포넌트 사용 | 라이브러리, 프레임 워크 및 기타 소프트웨어 모듈과 같은 구성 요소는 전체 권한으로 실행되는 취약점을 이용한 공격 |
검증되지 않은 리다이렉트 및 포워드 | 평문 형태로 전송되는 TCP/IP 취약점을 이용하여 전송 데이터의 정보 유출, 결함 분석 시도 취약점 |
- PCI-DSS Compliance 의 요구사항 지원
- Known/Unknown Worm 탐지 및 차단 (예, Code Red, Nimda)
- 웹 보안 요소 방어
- Cookie 변조 및 도용 방지
- Hidden Field 변조 방지
- 표준 암호 알고리즘 사용(AES, SEED)
- 웹 컨텐츠 필터링
- 개인정보 포함 파일 업로드/다운로드 탐지 차단
- 주민등록번호, 신용카드번호, 이메일주소, 주소, 전화번호 탐지
- MS-Office, Open Office, PDF, MS Outlook Message, hwp 등 30 여종의 파일 검색
- 지정한 금지 단어 입력 시 자동 변환
- 예) ‘나쁜말’(금지단어) -> ‘고운말’(등록된 표현)
- 해커에 의해 변조된 페이지 노출 차단 및 자동 복구
웹방화벽의 주요 특징
보안성
- 웹 공격에 대한 3중 방어 구조
- - Positive Security 보안모듈의 “URI 접근 제어”와, Negative Security 보안모듈의 “룰 탐지”, White/Black list of IP 주소 관리 기능인 IP Filtering / IP Block 의 웹 클라이언트 접근 제어의 3중 방어 구조를 기반으로 확실하고 안정적인 웹 공격의 탐지와 차단을 제공합니다.
- 암호화 트래픽 지원
- - SSL과 같은 암호화된 트래픽을 지원합니다. 암호화된 트래픽 내에 웹 공격이 들어있는 경우에도 이를 신속하게 복호화한 후 공격을 탐지하여 차단할 수 있습니다.
성능
- 버추얼 어플라이언스
- - 웹 서버를 비롯한 기존 서비스 장비에 별도의 부하를 주지 않는 버추얼 어플라이언스(appliance) 형태로 구성되어 높은 성능 을 제공합니다.
- 웹사이트/웹서버 동시 보호
- - 여러 웹사이트들과 하나의 웹 서버들을 동시에 보호하는 것이 가능합니다.
안정성
- Watchdog 지원
- - Watchdog 프로세스는 지속적이고 안정적인 웹 서비스 제공을 위해 WAF의 동작을 감시합니다.
- - WAF에 문제가 발생하는 경우, watchdog은 문제의 증상을 파악하고 이에 따라 보안 및 웹 서비스 유지를 위해 대응하도록 구성되어 있습니다
편리성
- 대시보드 지원
- WAF과 웹 서버의 운영 상태를 그래프와 차트를 통해 한눈에 실시간으로 파악할 수 있는 대시보드 기능을 지원합니다. WAF의 대시보드는 22가지의 다양한 그래프와 차트 형식을 제공하여 운영자가 원하는 형태로 데이터를 가공할 수 있도록 지원합니다
- 설정 마법사 지원
- WAF의 모든 설정 작업은 설정 마법사를 통하여 이루어집니다. 설정 마법사는 WAF의 복잡한 설정 과정을 간단하고 편리하게 수행 할 수 있도록 도와줍니다.
- 자유롭고 유연한 화면 구성
- 로그 화면과 각종 대시보드 화면 등을 운영자가 원하는 형태로 자유롭게 배치할 수 있으며 각각의 화면 내용에 각기 다른 조건을 부여하여 다양한 정보를 동시에 확인할 수 있습니다. 이러한 유연한 화면 구성은 운영자의 필요에 따른 적절한 정보 확인을 가능하게 해주어 관리도구 사용의 편의성을 높여줍니다.
구조/원리
Reverse Proxy 구성 방식
KT Cloud WAF의 네트워크 구성방법은 리버스 프락시 방식입니다.
WAF의 리버스 프락시 구성은 일반적인 웹 프락시 서버와 유사한 구성으로 WAF의 논리적인 네트워크와 IP 등을 설정하여 구성합니다.
이러한 구성에서 특정 웹사이트를 WAF로 보호하려면 웹사이트의 DNS를 재설정하거나 L4/L7 스위치의 설정을 수정하여 웹 서버로 갈 커넥션이 WAF을 향하도록 수정해주어야 합니다.
이러한 리버스 프락시 구성에서는 WAF가 프락시로 동작하기 때문에 웹 서버의 접속 로그에는 실제 웹 브라우저 사용자의 IP 주소가 아닌 WAF의 IP 주소만이 남게 됩니다.
웹방화벽 서비스 네트워크 구조
KT Cloud에서는 외부에서 공인 IP로 접속할 수 있는 VR(Virtual Router)를 제공하며, VR 내부에 사용자가 생성한 VM이 위치하게 됩니다.
VM은VR을 통해 인터넷 통신이 가능하므로 Outbound Traffic은 Virtual Router를 통해서 Source NAT 가적용 됩니다.
WAF와 웹서버 VM간의 통신은 내부 사설 IP(172.27.x.x)로 통신이 가능하며 사용자의 클라우드 서버는 VLAN 기술로 isolation 되어 보안성을 제공합니다.
아래그림은 로드밸런서(L4)를 이용하여 Active/Active의 WAF 이중화 구성도의 예시를 보여줍니다.
LB에서는 WAF(Proxy 서버) – Web(웹서버)로 연동되는 트래픽 패스에 따라 분리 구분되는 각 서비스포트로 로드밸런싱(80 포트로 들어오는 트래픽을 60000, 6001,7000, 7001로)하고, VR에서는 WAF의 서비스 포트로 포트 포워딩(PF : Port Forwarding)이 설정되어 있어야 합니다. WAF에서는 웹서버로 트래픽을 전달하기 위한 WAF의 서비스 포트와 웹서버와 포트를 매핑 등록 구성되어야 합니다.
LB, WAF, Web 서버에서의 서비스 트래픽에 포함된 TCP/IP 정보는 아래와 같이 변경됩니다
LB 에서의 TCP/IP 정보 : Source – Client IP, Destination – LB IP(공인)
WAF1,2 에서의 TCP/IP 정보 : Source – LB IP, Destination – WAF IP(공인) Proxy 포트
Web1,2 에서의 TCP/IP 정보 : Source – WAF IP(로컬), Destination – Web IP(로컬) 서버 포트
참고자료 : KT Cloud 메뉴얼 (https://cloud.kt.com/portal/user-guide/)
'CSP (Cloud Service Provider) > KT Cloud' 카테고리의 다른 글
[KT Cloud]WAF Pro 개요 (1) | 2022.09.16 |
---|---|
웹방화벽 이용방법 (0) | 2022.08.24 |
[KT Cloud] Private DNS 소개 및 이용 방법 (0) | 2022.08.09 |
[KT Cloud]Private Subnet (0) | 2022.08.04 |
[KT Cloud] 스냅샷 생성 (0) | 2022.07.26 |
댓글