많은 영역에서 기존의 장비(Appliance)중심에서 클라우드 기반의 “As A Service” 모델로 변화해 가고 있고, 이는 시기의 문제일 뿐 이미 거스를 수 없는 트렌드라고 할 수 있다. 보안 역시 이러한 변화의 물결에 예외가 아닐 수 없는데, 이번 호에서는 ‘웹보안’의 가장 기본이자 필수라 할 수 있는 클라우드 기반의 웹방화벽(WAF) 도입시 고려해야 할 사항 및 유용한 기능에 대해 세 차례에 걸쳐 살펴 보도록 하겠다.
◇WAF의 위치
제일 먼저 체크해 보아야 할 것은 WAF의 위치이다. 벤더에 따라 WAF의 위치는 크게 세 가지 방식으로 나뉜다.
(1)CDN -> WAF -> 웹서버
(2)WAF -> CDN -> 웹서버
(3)WAF -> 웹서버
첫번째는 CDN이 WAF 앞 단에 위치하는 유형으로 일반적으로 CDN에서 L3/L4 수준의 DDoS를 방어하고, 굳이 WAF까지 갈 필요 없는 static 콘텐츠를 캐싱(caching)해 주게 된다. 이러한 경우 CDN과 WAF 벤더를 각각 선택할 수 있으므로 다소 유연하다는 장점이 있지만 문제 발생시 원인을 찾기 어렵다는 단점도 있다.
두 번째는 WAF가 먼저 위치하는 방식으로서 대부분 CDN과 WAF가 결합되어 있어 각각의 벤더를 별도로 선택할 수 없는 경우이다.
마지막으로 세번째는 CDN없이 WAF만 존재하는 경우로, DDoS나 캐싱에 대한 고려가 필요 없는 소규모 사이트에 적당하다.
◇비용(cost)
아무리 클라우드가 효율적이라고 해도, 모든 경우에 클라우드가 저렴한 것은 아니므로 도입 전에 비용(pricing) 조건을 체크하고, 최적화해야 한다. 대부분은 도메인 수(고정비 또는 무료) 및 웹서버로의 전송량(transferred bytes)이나 요청수(requests)에 따라 결정되므로, css나 js등 굳이 WAF를 도입할 필요가 없는 static 콘텐츠는 사전에 다른 도메인으로 분리하거나 WAF앞단에 CDN을 도입하여 static 콘텐츠를 캐싱해 WAF에 도달하는 콘텐츠를 최소화하도록 하는 것도 방법이 될 수 있다.
◇Dashboard를 통한 각종 통계 기능
많은 이벤트가 발생하는 만큼 효율적인 모니터링과 관리를 위한 대쉬보드(dashboard)의 기능 또한 매우 중요한데, 기본적으로 다음과 같은 기능을 제공하여야 한다.
-1day/1week/1month/custom 별 전체적인 트래픽(bps/rps) 트렌드
-top IP, 국가, 공격유형별, 도메인별 이벤트에 대한 트렌드
-상세 이벤트(전체 HTTP 헤더) 및 룰에 매칭된 문자열(string) 정보
-룰 탐지/차단/예외 변경 및 설정 기능
-정책 변경 이력 조회(version control)
-기타 pdf 출력 등 리포팅 기능
최근 대부분의 벤더에서는 모든 정보에 대해 API를 제공하고 있어 Kibana나 splunk,sumologic 등의 각종 툴과 연동해 원하는대로 customizing이 가능하지만 이를 위한 추가적인 리소스가 필요하다는 단점이 있다. dashboard의 다양한 기능에 대해서는 추후에 다시 살펴보도록 하겠다.
◇OWASP10 주요 공격 탐지 및 차단
대부분의 클라우드 WAF는 오픈소스인 modsecurity나 naxsi 기반으로 개발되어 있고, 기능적으로 다소의 차이는 있겠지만 SQLi나 XSS,RFI 등 알려진 공격 패턴을 탐지하고 차단하는 것은 WAF의 기본 기능인 만큼 대부분 공통적으로 제공하고 있다.
◇공격 탐지시 제공하는 액션(Action)
공격으로 의심되는 요청에 대해서는 탐지 후 궁극적으로 차단을 하여야 하므로 logging(alert, simulation)모드 및 차단(deny,block)은 공통적으로 제공해야 한다. 또한 오탐이 많거나 필요가 없는 룰은 굳이 활성화 할 필요가 없으므로 Off/disable 기능 역시 제공하여야 한다. 통상적으로 2-3주동안 logging 모드로 이벤트를 모니터링 한 후 오탐(false positive)을 튜닝하고, 이후 차단(deny)방식으로 전환을 한다.
◇룰(rule) 제공 옵션
는 기본적으로 Signature 기반 룰(rule)들의 집합으로 이루어졌다고 할 수 있다. 그런데, 이를 서비스로 제공할 때에는 (1)그룹화해 몇 개의 메뉴로 심플하게 제공하는 경우와 (2) 각각의 룰을 개별적으로 제공하는 경우가 있는데 두 방식에는 각기 장단점이 있다.
즉, 전자의 경우 총 10~20여개로 그룹화하여 심플한 UI를 제공하는데, 주로 전문적인 운영자가 없거나 복잡하지 않은 중소 규모의 사이트에 적합할 것이다. 하지만 후자의 경우는 수백~수천개의 룰을 제공하므로 이벤트 분석과 룰 튜닝에 많은 리소스가 필요하지만, 상대적으로 좀 더 세밀한 관리가 가능하므로 복잡하고 규모가 큰 사이트에 적합할 것이다. 몇몇 벤더에서는 전문적인 운영자가 없는 환경을 고려하여 이벤트 모니터링 및 튜닝에 대한 관리 서비스를 부가적으로 제공하기도 한다.
◇룰탐지 예외(exception) 조건
는 쿠키나 파라미터 등 HTTP/HTTPS로 전달되는 모든 Header와 Body를 체크하므로, 사이트의 특성에 따라 일정 정도의 오탐이 존재할 수 밖에 없는 구조이다. 따라서, 탐지가 되었을 경우에는 어떤 string match에 따라 탐지 되었는지에 대한 상세한 정보를 제공하여야 하고, 이를 근거로 오탐일 경우 다양한 조건에 따라 예외처리(exception)를 할 수 있는 기능을 제공하여야 한다. 이를테면, 아래와 같이 s_sess라는 쿠키에서 SQLi 오탐(false positive) 이벤트가 발생했을 경우, 탐지된 룰 자체를 Off 하는 것이 아니라 s_sess 쿠키만을 예외처리 할 수 있어야 할 것이다.
s_sess=jC2or+1SuD9NxN0GQ
아래는 다양한 조건에 따라 예외처리 할 수 있는 예를 보여주고 있다.
◇Custom Rule 제공
벤더에서 제공하는 기본 룰 외에도 필요에 따라 다양한 조건으로 추가적인 룰을 설정해야 하는 경우가 있다. 물론 웹서버에서 정규식을 이용하여 설정 가능하지만, 대부분의 WAF에서는 IP나 국가, User-Agent, URI, Method, 특정 헤더 문자열등의 조건들을 각각 AND 또는 or 조건을 결합하여 GUI로 쉽게 설정할 수 있는 기능을 제공하고 있어 좀 더 직관적으로 활용이 가능한데, 이를테면, /admin/ 디렉토리 이하는 사무실 IP에서만 접근 가능하도록 한다거나 특정 User-Agent나 특정 헤더가 있을 경우 차단하는 등의 기능 등은 유용하게 활용할 수 있다.
지금까지 클라우드WAF가 제공하는 대략적인 기능들에 대해 살펴보았는데, 다음 편에서는 좀 더 세부적인 정보와 함께 재미있고 유용한 기능들에 대해서도 살펴보도록 하겠다.
[글. 홍석범 / antihong@gmail.com / 보안전문가. 정보보안 칼럼리스트]
★정보보안 대표 미디어 데일리시큐!★
◇상반기 최대 개인정보보호&정보보안 컨퍼런스 G-PRIVACY 2020 개최
-날짜: 2020년 5월 28일
-장소: 더케이호텔서울 2층 가야금홀
-참석: 공공·금융·기업 개인정보보호 및 정보보안 책임자·실무자
-교육이수: 7시간 인정
-사전등록: 사전등록 클릭
-보안기업 참가문의: 데일리시큐 길민권 기자 / mkgil@dailysecu.com