Cloudflare WAF의 전체 트랜잭션 탐지 기능 소개
이 포스트는 다음 언어로도 제공됩니다 English, Deutsch, Español, Français, 日本語, 繁體中文 및 简体中文.

오늘 우리는 웹 애플리케이션 방화벽(WAF)에 전체 트랜잭션 탐지와 응답 규칙이라는 두 가지 새로운 기능을 추가합니다. 전체 트랜잭션 탐지는 각 HTTP 요청을 해당 응답과 함께 평가하여 취약점이 악용되었다는 증거를 식별합니다. 이를 통해 "이 요청은 악의적으로 보이나요?"라는 질문뿐 아니라 "애플리케이션이 이 요청을 처리했을 때 어떤 일이 발생했나요?"라는 질문에도 답할 수 있습니다. 그런 다음 응답 규칙으로 오리진의 응답이 요청자에게 도달하기 전에 차단할 수 있습니다.
최신 프런티어 모델이 널리 사용되는 소프트웨어 깊숙이 숨어 있는 취약점을 찾아내면서 방어자에게는 수정할 부분을 명확하게 보여주는 동시에 공격자에게는 새로운 악용 경로를 제공하고 있기 때문에 이러한 보호 기능은 중요합니다. 최근의 php2shell 취약점은 그 위험성을 보여줍니다. 일반적인 소프트웨어 구성 요소의 결함 하나로 인터넷 전반의 애플리케이션이 위험에 노출될 수 있습니다. 취약점을 스캔하는 AI 에이전트는 피드백에 따라 페이로드를 조정하고 취약점, 자격 증명, 권한을 연계하며 끈질기게 공격을 시도할 수 있습니다. 애플리케이션의 응답은 공격 시도가 성공했는지를 드러내고 공격자가 더 깊숙이 침투하는 데 도움이 되는 정보를 제공할 수 있습니다.
애플리케이션에 도달하기 전에 식별 가능한 공격을 차단하려면 들어오는 요청을 검사하는 작업이 여전히 필수적입니다. 하지만 오리진이 반환하는 응답을 요청과 함께 살펴봐야만 명확해지는 위협도 있습니다. 의심스러운 입력에 이어 민감한 정보가 노출된 응답이 반환된 경우는 동일한 입력에 대해 거부 응답이나 오류가 반환된 경우와 의미가 다릅니다.
고객은 이러한 새로운 기능을 통해 Cloudflare 관리형 보호 기능을 사용하거나 요청과 응답의 속성을 결합한 자체 정책을 만들 수 있습니다. 이로써 우리의 상시 애플리케이션 보안 프레임워크가 확장되며, 탐지 결과는 조사를 지원하도록 Security Analytics에서 확인할 수 있습니다. 이 기능을 활용하는 첫 번째 관리형 보호 기능은 최근 공개된 php2shell 취약점에 대응합니다.
가장 좋은 점은 무엇일까요? 우리는 Free 요금제를 포함한 모든 Cloudflare 고객에게 이러한 새로운 기능을 일반 공급합니다.
요청 검사만으로는 충분하지 않습니다
Cloudflare WAF는 관리형 규칙, 사용자 지정 규칙, 레이트 리미팅을 통해 웹사이트와 API를 보호합니다. 관리형 규칙은 알려진 공격 기법과 취약점으로부터 보호하며, 사용자 지정 규칙을 사용하면 IP 주소, URL 경로, 헤더, 요청 본문 등의 매개변수로 자체 정책을 만들 수 있습니다. 이러한 제어 기능은 요청 수준에서 작동하여 취약점 악용 시도나 원치 않는 트래픽이 오리진에 도달하지 못하도록 차단합니다.
많은 위협에는 이 단계에서 조치하는 것이 적절합니다. 하지만 의심스러운 요청을 모두 확인된 취약점 악용으로 취급하면 어려운 선택에 직면합니다. 광범위한 요청 시그니처는 잠재적인 공격을 더 많이 포착할 수 있지만 정상 트래픽까지 일치하는 것으로 판단하는 ‘오탐’이 발생하여 애플리케이션의 정상 작동을 방해할 수도 있습니다. 오탐을 일으키지 않는 규칙만 배포하면 이러한 위험은 줄어들지만, 판단이 모호한 트래픽이 서버에 도달할 여지는 더 커질 수 있습니다.
응답은 부족했던 증거를 제공합니다. 이제 Cloudflare는 응답과 해당 응답을 생성한 요청을 연관 지어 전체 HTTP 트랜잭션의 결과를 탐지에 반영할 수 있습니다.
예를 들어 사용자가 파일을 다운로드할 수 있는 애플리케이션을 생각해 보세요. 공격자는 file 매개변수를 조작하여 허용된 디렉터리 밖에 있는 비공개 구성 파일을 요청합니다.
GET /download?file=../../config/database.ini요청 검사는 이러한 경로 탐색 공격 시도를 인식하여 애플리케이션에 도달하기 전에 차단할 수 있습니다. 하지만 요청만으로는 애플리케이션이 실제로 파일을 노출했을지 확인할 수 없습니다. 애플리케이션이 요청을 거부하거나 경로 탐색을 무시하거나 오류를 반환할 수도 있습니다. 요청이 오리진에 도달한 경우 다음과 같은 응답은 추가 증거가 됩니다.
200 OK
Content-Type: text/plain
[database]
username=app_service
password=EXAMPLE_SECRET전체 트랜잭션 탐지는 그동안 부족했던 단서를 제공합니다. 시도된 파일 액세스를 비공개 구성 파일의 특징을 보이는 응답 콘텐츠와 연관 지을 수 있습니다. 구성 파일과 비슷한 텍스트는 문서나 예제 다운로드에도 정상적으로 포함될 수 있지만, 이를 경로 탐색 시도와 결합하면 어느 한 신호만으로 판단할 때보다 민감한 정보가 노출되었다는 훨씬 강력한 증거를 얻을 수 있습니다. 그런 다음 응답 규칙은 오리진 응답이 요청자에게 도달하기 전에 이를 Cloudflare WAF 차단 페이지와 HTTP 403 응답으로 대체할 수 있습니다. 민감한 정보가 공격자에게 전달되지 않도록 하여 취약점 악용을 효과적으로 차단하는 것입니다.
탐지와 완화 조치는 설계상 분리되어 있습니다
전체 트랜잭션 탐지는 올해 초 도입한 상시 탐지 프레임워크를 확장합니다. 탐지 기능은 트래픽을 분석하고 요청과 응답에 메타데이터를 추가하며, 규칙은 그 결과를 바탕으로 어떤 조치를 취할지 결정합니다.

이 두 작업을 분리하면 고객은 정책을 설계하기 전에 가시성을 확보할 수 있습니다. 보안 팀은 자체 트래픽에서 탐지 결과를 살펴보고, 어떤 엔드포인트와 시그니처가 관련되어 있는지 파악한 뒤 애플리케이션에 적합한 대응 방식을 선택할 수 있습니다. 요청 기반 Attack Signature Detection과 마찬가지로 탐지 결과는 응답 사용자 지정 규칙에서 액세스할 수 있는 필드에 저장되며, 관리형 탐지에서 이를 사용하여 트래픽을 차단할 수도 있습니다.
요청 탐지 필드와 대응되도록 다음과 같은 새로운 필드가 플랫폼에 추가됩니다.
필드 | 설명 |
cf.waf.signature.response.confidence | 일치하는 시그니처와 연결된 신뢰도 값 |
cf.waf.signature.response.categories | 일치하는 시그니처와 연결된 범주 |
cf.waf.signature.response.ref | 시그니처 참조 ID(최대 10개) |
첫 번째 전체 트랜잭션 탐지 기능은 주목도가 높은 취약점의 악용 성공 여부를 확인하는 데 중점을 둡니다. 의심스러운 입력과 취약점 악용이 성공했을 가능성을 나타내는 응답 신호를 연관 지어 분석합니다.
시간이 지나면서 데이터 노출 및 데이터 유출 신호 탐지 등 다른 사용 사례까지 지원 범위를 확대할 예정입니다. 이는 개별 애플리케이션을 넘어 인터넷 전체에 중요합니다. 방어 시스템은 단순한 탐색 시도와 실제 영향의 증거를 구분할 수 있고, 노출된 데이터와 서비스를 탐지하는 기능은 모든 WAF 규칙을 조정하는 전담 보안 팀이 없는 고객에게도 도움이 될 수 있습니다.
응답에 대한 규칙 만들기
취약점 악용의 증거를 탐지하는 기능은 실시간으로 조치할 수 있을 때 가장 유용합니다. 사용자 지정 응답 규칙은 조건에 일치하는 오리진 응답이 요청자에게 도달하기 전에 차단하여 전체 트랜잭션 탐지를 인라인 보호 기능으로 전환합니다. 다만 오리진에서 이미 수행된 작업을 되돌릴 수는 없습니다.
이제 보안 팀은 요청 및 응답 속성과 탐지 결과를 결합하여 어떤 응답을 차단할지 결정할 수 있습니다. 차단 규칙에 일치하면 Cloudflare는 오리진 응답을 WAF 차단 페이지 또는 사용자 지정 응답으로 대체합니다.
응답 단계 제어 기능은 Cloudflare 대시보드의 Security > Security Rules) 페이지 하단에서 이용할 수 있으며, 관리형 보호 기능과 사용자 지정 규칙을 모두 사용할 수 있습니다.보안 규칙
우리는 관리형 규칙과 사용자 지정 규칙을 모두 Free 요금제를 포함한 모든 요금제에 출시했습니다. 앞으로 요청 탐지에 적용하는 것과 동일한 방식을 따를 예정입니다. Free 요금제의 관리형 탐지는 주목도가 높은 취약점에 집중하는 반면, 유료 고객에게는 더 풍부한 탐지 카탈로그를 제공할 것입니다.
관리형 탐지
모든 고객은 Cloudflare Managed Response Firewall Default 규칙 세트를 통해 전체 트랜잭션 탐지 기능의 포괄적인 보호를 받을 수 있습니다. 이 규칙 세트는 간단한 원클릭 배포와 손쉬운 구성을 위해 설계되었습니다. 시그니처가 일치하면 관리형 탐지는 응답을 차단하고 표준 WAF 차단 페이지를 반환합니다.

Cloudflare Managed Response Firewall Default의 적용 범위를 편집하여 애플리케이션의 일부에서만 탐지가 실행되도록 할 수 있습니다. 예를 들어 특정 경로를 제외하거나 해당 경로로 탐지를 제한할 수 있습니다. 유료 고객은 사용자 지정 응답 규칙에서 탐지 필드를 사용해 더욱 세밀한 정책을 만들 수 있습니다.

사용자 지정 규칙
사용자 지정 응답 규칙은 고객이 규칙 논리를 완전히 제어할 수 있도록 설계되었습니다. 인증 게이트웨이가 요청을 내부 요청으로 표시하지 않았을 때 관리 인터페이스가 노출되지 않도록 규칙을 만들 수 있습니다. 예를 들면 다음과 같습니다.
http.request.uri.path starts_with "/admin" and not http.request.headers["x-internal-user"][0] eq "true" and http.response.code eq 200 and http.response.headers["content-type"][0] contains "text/html"
이 규칙은 인증되지 않은 요청이 /admin을 대상으로 하고 오리진이 실제로 정상적인 HTML 관리 페이지를 반환한 경우에만 차단합니다. 일반적인 인증 실패, 리디렉션 또는 관리 기능과 관련 없는 트래픽은 차단하지 않습니다.

모든 고객은 Log 및 Block 작업을 지원하는 사용자 지정 응답 규칙을 최대 3개까지 만들 수 있습니다. 사용자 지정 응답 규칙에서 사용할 수 있는 필드와 함수는 현재 각 요금제에서 사용자 지정 요청 규칙에 액세스할 수 있는 범위와 동일합니다. 아직 응답 본문을 기반으로 규칙을 만드는 기능은 제공되지 않습니다.
Attack Signature Detection 방식에 따라 유료 고객은 위에 나열된 cf.waf.signature.response.* 필드를 통해 공격 탐지 결과에도 액세스할 수 있습니다. 이러한 필드를 호스트 이름, URL 경로, 소스 IP, 요청 헤더 등 다른 매개변수와 결합하면 단일 경로를 보호하거나 애플리케이션별 컨텍스트로 정책의 적용 범위를 제한할 수 있습니다. 현재 모든 계정에 응답 필드를 순차적으로 제공하고 있습니다. 아직 해당 필드를 사용할 수 없다면 담당 계정 팀에 문의하세요.
일치하는 요청 조사하기
관리형 또는 사용자 지정 응답 규칙이 트랜잭션을 기록하거나 차단하면 해당 이벤트가 Security Events에 표시됩니다. 따라서 대응 담당자는 모든 탐지 결과를 요청의 전체 컨텍스트 및 조치를 취한 특정 규칙까지 추적할 수 있습니다.
현재 요청만 검사하는 규칙과 전체 트랜잭션 규칙은 동일한 분석 페이지에 함께 표시됩니다. Security Events에서 응답 규칙이 생성한 이벤트는 Managed Rules 또는 Custom Rules 서비스에 포함됩니다. 관련 규칙 목록 섹션에서 특정 규칙 ID에 속한 이벤트를 필터링할 수 있습니다.
지금 시작하세요
전체 트랜잭션 탐지는 Cloudflare를 통해 트래픽을 프록시하는 모든 영역에서 일반 공급됩니다. 보호 기능이 적용되어 있는지 확인하려면 Cloudflare 대시보드에서 Security > Security Rules로 이동하세요. 정책을 사용자 지정하려면 먼저 Security Analytics에서 전체 트랜잭션 탐지 결과를 살펴본 다음 애플리케이션에 적합한 응답 단계 정책을 만드세요.


