포스트

서비스형 WAF에 대한 보안 취약점

서비스형 WAF의 기본 개념

서비스형 WAF는 클라우드 환경에서 제공되는 WAF 서비스로, 기업이 자체적으로 WAF를 구축하고 관리할 필요 없이 클라우드 제공업체가 제공하는 WAF를 이용하여 웹 애플리케이션을 보호할 수 있는 솔루션입니다. 이는 초기 도입 비용 절감, 유지 관리 용이성 등의 장점을 제공합니다. 그러나 클라우드 환경의 특성상 새로운 보안 취약점이 발생할 수 있습니다.

서비스형 WAF의 보안 취약점

image

1. 서명 기반 탐지의 한계

서비스형 WAF는 대부분 서명 기반(signature-based) 탐지 기법을 사용합니다. 이는 사전에 정의된 공격 패턴을 기반으로 악의적인 요청을 탐지하는 방법입니다. 그러나 이 방식은 새로운 유형의 공격이나 변형된 공격 패턴을 탐지하는 데 한계가 있습니다. 예를 들어, Cloudflare와 같은 주요 WAF 제공업체의 경우, 특정 인코딩 기법을 사용한 공격을 탐지하지 못한 사례가 보고되었습니다. 서명 기반 탐지는 기존의 알려진 공격에는 효과적일 수 있지만, 새로운 변종 공격에 대해선 쉽게 우회될 수 있습니다.

2. 머신 러닝 기반 탐지의 취약성

일부 WAF는 머신 러닝 기반 탐지 기법을 도입하여 더 정교한 공격 탐지를 시도하고 있습니다. 그러나 AdvSQLi와 같은 연구에서는 이러한 머신 러닝 모델이 쉽게 우회될 수 있음을 보여주고 있습니다. 연구에 따르면, 다양한 변형 기법을 사용한 공격은 머신 러닝 기반 WAF를 우회할 수 있었으며, 일부 상용 WAF는 100%의 우회 성공률을 보였습니다. 머신 러닝 모델은 학습된 데이터에 의존하기 때문에, 학습되지 않은 새로운 공격 패턴에 대해선 효과적이지 않을 수 있습니다.

3. JSON 파싱의 취약점

ModSecurity와 같은 오픈 소스 WAF는 JSON 형식의 데이터를 처리하는 데 취약점이 있습니다. 이는 공격자가 JSON 데이터를 이용해 우회할 수 있는 가능성을 제공합니다. AWS와 Cloudflare 또한 JSON 형식의 요청을 처리하는 데 있어 높은 오탐률을 보이고 있습니다. JSON 데이터는 웹 애플리케이션에서 널리 사용되고 있기 때문에, 이와 관련된 취약점은 심각한 보안 문제를 야기할 수 있습니다.

4. 설정 및 업데이트의 복잡성

WAF는 효과적인 보호를 위해 지속적인 설정 조정과 규칙 업데이트가 필요합니다. 그러나 클라우드 환경에서 서비스형 WAF를 사용하는 경우, 이러한 업데이트 과정이 복잡할 수 있습니다. 특히 대규모 환경에서는 모든 규칙을 최신 상태로 유지하는 것이 어려울 수 있으며, 이는 보안 취약점으로 이어질 수 있습니다.

5. 블랙박스 환경의 취약성

서비스형 WAF는 종종 블랙박스 환경에서 운영됩니다. 이는 WAF의 내부 동작 방식이나 탐지 규칙이 공개되지 않는다는 의미입니다. 이러한 블랙박스 환경은 공격자가 WAF를 우회하는 방법을 찾는 것을 어렵게 만들 수 있지만, 동시에 WAF의 취약점을 분석하고 개선하는 것을 어렵게 만듭니다. 최근 연구에서는 블랙박스 환경에서도 WAF를 우회할 수 있는 기법들이 제안되고 있습니다.

실제 사례 분석

image

사례 1: Akamai WAF 우회

Peter M은 Akamai의 WAF를 우회하여 Spring Boot 애플리케이션에서 서버 사이드 템플릿 인젝션(Server-Side Template Injection, SSTI) 취약점을 이용한 원격 명령 실행(Remote Command Execution, RCE) 공격을 성공시켰습니다. 이 사례는 WAF의 서명 기반 탐지 방식이 특정 인젝션 패턴을 제대로 탐지하지 못한 결과로, 공격자가 시스템을 장악할 수 있었음을 보여줍니다.

사례 2: Cloudflare WAF 우회

AON 팀은 인코딩된 페이로드를 사용하여 Cloudflare의 WAF를 우회하고, OGNL(Object Graph Navigation Language) 인젝션 취약점을 성공적으로 악용했습니다. 이 공격은 복잡한 인코딩 기법을 사용하여 WAF의 탐지 로직을 우회한 사례로, WAF의 머신 러닝 모델이 모든 변종 인코딩을 학습하지 못했음을 보여줍니다.

보안 취약점의 근본 원인

서비스형 WAF의 보안 취약점은 주로 다음과 같은 원인으로 발생합니다:

1. 불완전한 서명 및 탐지 규칙

기존의 서명 기반 탐지 기법은 새로운 공격 벡터를 빠르게 반영하지 못하며, 이는 새로운 공격이 등장할 때마다 WAF의 탐지 규칙을 업데이트해야 하는 문제를 야기합니다. 또한, 규칙이 복잡해질수록 오탐지(false positive)와 누락(false negative)의 가능성이 높아집니다.

2. 한정된 학습 데이터

머신 러닝 기반 탐지 기법은 학습 데이터의 질과 양에 크게 의존합니다. 학습 데이터에 포함되지 않은 새로운 공격 패턴이나 변종 공격에 대해선 효과적이지 않을 수 있습니다. 또한, 학습 데이터의 편향성(bias) 문제도 존재합니다.

3. 복잡한 JSON 파싱

JSON 데이터는 구조가 복잡할 수 있으며, 이를 완벽히 파싱하고 분석하는 것은 어려운 작업입니다. JSON 데이터의 변형된 형태나 중첩 구조를 이용한 공격은 WAF의 탐지 로직을 우회할 수 있습니다.

4. 설정 및 유지 관리의 어려움

대규모 환경에서는 WAF의 모든 규칙을 최신 상태로 유지하는 것이 어렵습니다. 이는 특히 새로운 취약점이 발견될 때마다 빠르게 대응해야 하는 상황에서 문제를 야기합니다. 자동화된 업데이트 시스템이 필요하지만, 이는 또 다른 복잡성을 추가합니다.

5. 블랙박스 환경의 한계

WAF의 내부 동작이 공개되지 않는 블랙박스 환경은 보안 분석가들이 WAF의 취약점을 분석하고 개선하는 것을 어렵게 만듭니다. 이는 공격자뿐만 아니라 방어자에게도 동일한 도전 과제를 제공합니다.

결론

서비스형 WAF는 편리성과 비용 절감 측면에서 많은 장점을 제공하지만, 여전히 여러 보안 취약점이 존재합니다. 특히 서명 기반 탐지의 한계, 머신 러닝 모델의 취약성, JSON 파싱의 문제, 설정 및 유지 관리의 어려움, 블랙박스 환경의 한계 등은 중요한 보안 위협이 됩니다. 따라서 WAF 솔루션을 선택할 때는 이러한 취약점을 고려하고, 다층 보안 체계를 구축하여 웹 애플리케이션을 보호하는 것이 중요합니다.

참고 문헌 (논문)

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.