HTTP DDoS 자동 방어민감도는 걸린 룰만, 기한을 두고 낮춥니다
한눈에 보기
HTTP DDoS? 방어는 따로 켜지 않아도 늘 동작합니다. 고객은 민감도?와 액션만 정하며, 기본은 가장 예민한 High 입니다.
DDoS 방어를 따로 켜야 하나요?
아닙니다. L7?을 지키는 관리형 룰셋?이 모든 플랜에서 늘 켜져 있고 끌 수 없습니다.
화면에서 보는 모습
도메인 › Security › Settings › 필터 DDoS attacks

알려진 HTTP DDoS 공격 유형별 룰 묶음으로, Cloudflare 가 정기적으로 갱신합니다.
| 구분 | 내용 |
|---|---|
| 바꿀 수 있음 | 액션, 민감도 |
| 바꿀 수 없음 | 룰셋 끄기, 일부 읽기 전용 룰 |
민감도는 몇 단계인가요?
네 단계입니다. High(기본)에서 Medium, Low, Essentially Off 로 갈수록 임계값?이 높아져 큰 트래픽에만 대응합니다.
단계와 액션
| 화면 | API 값 | 뜻 |
|---|---|---|
| High | default | 기본값. 가장 일찍 대응 |
| Medium | medium | High 보다 늦게 대응 |
| Low | low | Medium 보다 늦게 대응 |
| Essentially Off | eoff | 대부분 아무 액션도 없음 |
| 재정의 액션 | API 값 | |
| Block | block | |
| Managed Challenge | managed_challenge | |
| Interactive Challenge | challenge | |
| Log | log |
- Log 는 Enterprise 에서만 나옵니다. 부가 구독 필요 여부는 문서마다 달라 화면에서 확인합니다.
- Connection Close 같은 내부 액션은 쓸 수 없습니다.
민감도는 왜 낮추나요?
정상 트래픽을 공격으로 볼 때(오탐?)입니다. 이때도 걸린 룰만 낮춥니다.
오탐 상황과 대응
- 정상 트래픽 급증(미리 알면 사전 조정)
- 오래된 앱이나 결함 있는 클라이언트의 트래픽
- 의심스럽게 보이는 모바일 앱 트래픽
- 걸린 룰을 Medium 으로 낮춥니다.
- 그래도 막히면 Low 나 Essentially Off 로 내립니다.
낮춘 룰은 새 임계값보다 작은 공격을 막지 않습니다.
낮춘 민감도는 언제 되돌리나요?
낮춘 이유가 끝나면 되돌립니다. 되돌릴 날은 낮출 때 정해 둡니다.
되돌리는 순서
- 행사가 끝났는지, 앱이 고쳐졌는지 봅니다.
- Essentially Off, Low, Medium, High 순으로 한 단계씩 올립니다.
- 올리고 1~2분 뒤 HTTP DDoS 이벤트를 봅니다. 정상 사용자가 다시 걸리면 한 단계 내립니다.
함정: «꺼 두고 지켜보자»가 안 되는 이유
Essentially Off 로 내리면 그 룰은 대부분 Log 조차 남기지 않습니다.
문서상 이 값은 대부분 Log 를 포함해 어떤 액션도 발동하지 않습니다.
- 볼 이벤트가 없으니 «꺼 두고 판단»은 성립하지 않습니다.
- 관찰이 목적이면 Medium 으로 한 단계만 내립니다.
한눈에 보기
재정의?는 룰셋 전체, 태그?, 룰 하나 단위로 걸고 좁은 단위가 이깁니다. 룰셋·태그 값은 새로 추가될 룰에도 붙으니 오탐은 걸린 룰 하나만 고칩니다.
재정의는 어디서 만드나요?
Security rules › DDoS protection 탭의 HTTP DDoS attack protection 에서 Create override 를 누릅니다.
재정의 만들기
도메인 › Security › Security rules › DDoS protection › HTTP DDoS attack protection › Create override
- Override name 을 적습니다.
- 룰셋 전체는 Ruleset action 과 Ruleset sensitivity 로 바꿉니다.
- 일부 룰은 Rule configuration › Browse rules 에서 룰이나 태그로 찾습니다.
- Save 하면 1~2분 안에 적용됩니다.
읽기 전용 룰은 재정의할 수 없어, 오탐을 내면 Cloudflare 지원에 문의합니다.
플랜마다 무엇이 다른가요?
Advanced DDoS Protection? 구독이 갈림길입니다. 없으면 재정의 하나가 모든 요청에 걸립니다.
플랜별 범위
| 구분 | Free · Pro · Business | Enterprise | Enterprise + Advanced DDoS |
|---|---|---|---|
| 재정의 | 1개 | 1개 | 최대 10개 |
| 범위 | 모든 요청 | 모든 요청 | 조건식으로 일부 |
| Log 액션 | 없음 | 화면에서 확인 | 있음 |
| 새 룰 오탐 사전 감지 | 없음 | 있음 | 있음 |
- 재정의를 더 못 만들면 있는 재정의에 룰을 더합니다.
걸린 룰은 어떻게 찾나요?
Security › Analytics 의 Events 탭에서 HTTP DDoS 로 걸러 정상 사용자를 막은 룰을 찾습니다.
HTTP DDoS 이벤트 보기
도메인 › Security › Analytics › Events › Add filter › Service equals HTTP DDoS

- 막힌 요청의 출발지와 User-Agent, 경로로 정상 여부를 판단합니다.
- 정상이면 그 룰 이름을 재정의 화면 Browse rules 에서 찾습니다.
적응형 룰?이 Log 로 표시한 트래픽도 룰 ID 로 거르며, Logpush? 와 GraphQL API 로도 받습니다.
공격을 알림으로 받을 수 있나요?
됩니다. 모든 플랜의 HTTP DDoS Attack Alert 가 초당 100건 넘는 공격을 완화하면 알립니다.
DDoS 알림
계정 › Alerts › Overview › Create an Alert
| 알림 | 대상 | 조건 |
|---|---|---|
| HTTP DDoS Attack Alert | 모든 플랜 | 초당 100건 초과 공격 완화(옵션 없음) |
| Advanced HTTP DDoS Attack Alert | Enterprise + Advanced DDoS | 기준 초당 요청 수(기본 100), 존, 호스트 |
보낼 곳: 이메일과 웹훅(모든 플랜), PagerDuty(Business 이상).
안내는 «조치 불필요»입니다. 정상 사용자가 함께 막혔는지만 이벤트로 봅니다.
함정: 룰셋 단위 재정의는 미래의 룰에도 붙습니다
룰셋 전체 민감도를 낮추면 앞으로 추가될 룰까지 함께 낮아집니다.
룰셋을 Low 로 낮춰 두면 Cloudflare 가 새 공격 유형에 맞춰 더한 룰도 Low 로 돕니다.
- 오탐은 룰 단위로 겁니다. 룰 단위가 태그·룰셋보다 우선합니다.
- 재정의가 하나뿐인 플랜은 그 안에 룰 단위 설정을 모읍니다.
한눈에 보기
재정의는 존 ddos_l7 phase? 진입점 룰셋?의 실행(execute) 룰입니다. 여럿이면 처음 맞는 하나만 적용하고, 그 안에서는 룰 › 태그 › 룰셋 순으로 좁은 값이 이깁니다.
지금 걸린 재정의는 어떻게 읽나요?
존의 ddos_l7 진입점 룰셋을 GET 합니다. 비어 있고 계정 재정의도 없으면 모든 룰이 기본값입니다.
재정의 조회
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/ddos_l7/entrypoint" \
--request GET \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"execute 룰의 action_parameters.overrides 를 봅니다.
| 위치 | 뜻 |
|---|---|
overrides.sensitivity_level · overrides.action | 룰셋 전체 |
overrides.categories[] | 태그 단위 |
overrides.rules[] | 룰 하나 |
expression | 적용 범위(부가 구독 없으면 true 만) |
API 로 바꿀 때 무엇을 조심하나요?
PUT 은 rules 를 통째로 바꿉니다. GET 한 룰을 고쳐 보내고, 먼저 dry_run=true 로 검증합니다.
안전하게 바꾸기
- GET 으로 지금 룰셋을 받아 둡니다(되돌릴 원본).
- 받은
rules를 고칩니다. 새 재정의만 보내면 기존 것이 사라집니다. - 지원하는 요청은
?dry_run=true로 먼저 보냅니다. 적용 없이 실제와 같은 오류를 돌려줍니다. - 1~2분 뒤 HTTP DDoS 이벤트를 봅니다.
동시에 여러 번 고치면 속도 제한에 걸릴 수 있으니 모아서 한 번에 보냅니다.
존 재정의가 계정 재정의를 이기나요?
이깁니다. 존에 재정의가 있으면 그 존에서 계정 재정의(API 로만 만듦)는 평가하지 않습니다.
범위와 우선순위
| 상황 | 판정 |
|---|---|
| 존 재정의 있음 | 계정 재정의는 평가 안 함 |
| 재정의 룰 여럿 | 위에서부터 처음 맞는 하나만 |
| 한 룰 안 | 룰 > 태그 > 룰셋 |
- 재정의 룰을 여럿(최대 10) 두려면 Advanced DDoS Protection 이 필요합니다.
- 조건식에는 호스트, 경로, 출발지 같은 요청 필드를 씁니다.
존 재정의를 만들면 그 존에서 계정 재정의가 빠지니 먼저 확인합니다.
공격이 덜 막히면 어떻게 하나요?
처리한 룰의 액션을 Block 으로 올립니다. 그래도 오리진?이 버티지 못하면 Cloudflare 지원에 연락합니다.
불완전 완화 대응
확신이 높은 룰은 Block, 낮은 룰은 챌린지나 연결 강제 종료 같은 약한 액션을 씁니다. 약한 액션이면 일부가 빠져나갑니다.
- Events 에서 HTTP DDoS 로 걸러 처리한 룰을 찾습니다.
- 재정의에서 그 룰의 Action 을 Block 으로 바꿉니다.
- 1~2분 뒤 이벤트로 확인합니다.
민감도를 낮춘 재정의가 걸려 있으면 그것부터 되돌립니다.
함정: 재정의 룰의 순서가 결과를 바꿉니다
재정의 룰이 여럿이면 처음 맞는 하나만 적용해, 넓은 조건이 위에 있으면 아래 룰은 차례가 오지 않습니다.
| 순서 | 조건 | 민감도 |
|---|---|---|
| 1 | true(전체) | Medium |
| 2 | http.host eq "api.example.com" | Low |
api 호스트도 1번에 먼저 맞아 Medium 으로 돕니다.
- 좁은 조건을 위에,
true를 맨 아래에 둡니다. - 재정의가 하나뿐인 플랜에서는 생기지 않습니다.
이 문서의 용어
- 관리형 룰셋
- Managed ruleset · Cloudflare 가 만들고 갱신하는 룰 묶음. 고객은 재정의로 동작을 조정합니다.
- 민감도
- Sensitivity level · 룰이 얼마나 쉽게 발동하는지. 민감도가 높을수록 발동 기준(임계값)이 낮습니다.
- 오리진
- Origin(원 서버) · Cloudflare 뒤에서 실제로 응답하는 서버.
- 오탐
- False positive(거짓 양성) · 정상 트래픽을 공격으로 잘못 판단하는 것.
- 임계값
- Threshold · 이 수준을 넘으면 공격으로 보고 대응하는 기준선.
- 재정의
- Override · 관리형 룰셋의 기본 액션과 민감도를 바꾸는 설정. 룰셋·태그·룰 단위로 겁니다.
- 적응형 룰
- Adaptive DDoS Protection rule · 내 존의 평소 트래픽 모양을 배워, 거기서 벗어나는 트래픽을 잡는 룰.
- 진입점 룰셋
- Entry point ruleset · 한 단계(phase)에서 맨 먼저 실행되는 룰셋. 재정의 룰이 여기에 들어갑니다.
- 태그
- Tag(태그, 카테고리) · 관리형 룰셋의 룰에 붙은 분류 이름. 같은 태그의 룰을 한 번에 재정의할 수 있습니다.
- Advanced DDoS Protection
- Advanced DDoS Protection(고급 DDoS 방어) · Enterprise 부가 구독. 재정의 여러 개, 조건식, Log 액션을 쓸 수 있습니다.
- DDoS
- Distributed Denial of Service(분산 서비스 거부) · 많은 출발지에서 요청을 쏟아 서비스를 쓰지 못하게 만드는 공격.
- L7
- Layer 7(응용 계층) · HTTP 요청 단위. HTTP DDoS 방어는 이 층을 봅니다.
- Logpush
- Logpush(로그 내보내기) · 요청·보안 이벤트 로그를 저장소나 분석 도구로 보내는 기능.
- phase
- Phase(실행 단계) · 룰셋 엔진에서 룰이 실행되는 자리. HTTP DDoS 재정의는 `ddos_l7` 단계에 둡니다.