# 정규식이 Cloudflare를 다운시켰습니다. 27분 동안.

Published: 2026-09-12

2019년 7월 2일, 13:42 UTC: Cloudflare의 웹 애플리케이션 방화벽에 대한 새로운 규칙 하나가 약 2초 만에 180개 이상의 도시에 적용됩니다. 시뮬레이트 모드의 XSS 규칙이므로 아무것도 차단하지 않지만 모든 요청에서 실행되며 .\*(?:.\*=.\*)로 끝납니다. PCRE가 역추적하고, HTTP 요청을 처리하는 모든 CPU 코어가 100%에 도달하며, 모든 Cloudflare 프록시 사이트가 27분 동안 502를 반환합니다. 트래픽은 82% 감소합니다. 킬 스위치는 Cloudflare 뒤에 있는 Cloudflare Access 뒤에 있습니다. Cloudflare 자체의 사후 분석 보고서에서 발췌: CPU 절약을 위한 리팩토링 과정에서 몇 주 전에 제거된 CPU 가드, 규칙이 스테이징을 건너뛰게 한 절차, 복잡성 보장이 없는 엔진, 11가지 원인과 7가지 해결책. 해결책에 대한 평결: SHIP IT.

Canonical: https://thedailydiff.dev/ko/video/2026-09-12-cloudflare-regex/

## 이 동영상에서 다루는 내용

- 13:31–13:42 UTC: PR 병합, CI 녹색 (CPU 테스트 없음), Quicksilver가 180개 이상의 도시에 규칙 푸시; WAF 규칙은 DOG → PIG → Canary 단계를 건너뜀
- 13:45–14:07: 첫 페이지; 전 세계 CPU 100%, 트래픽 -82%, 모든 곳에서 502; 내부 제어판은 Cloudflare Access 뒤에 있으며, Cloudflare Access는 다운; 일부 자격 증명 만료; 거의 훈련되지 않은 우회 경로
- 14:07–14:09: 전역 WAF 종료; 27분 후 트래픽 및 CPU 정상; 14:52 규칙 제외한 WAF 복구
- 7월 2일 (15:50 UTC) 및 7월 12일: Cloudflare는 당일 메모 및 전체 사후 분석 보고서 게시; CPU 가드 재추가, 3,868개 규칙 재검토, 단계적 출시, 선형 시간 정규식 엔진으로 전환

## 번역된 스크립트

원래 영어 내레이션에서 번역되었습니다. 사용 가능한 오디오 및 캡션은 YouTube에서 제어합니다.

0:00 하나의 정규식이 모든 Cloudflare 서버에서 동시에 적용되고, 그 다음 27분 동안 그 뒤에 있는 사이트들은 502 페이지가 됩니다. 이는 방화벽에게는 가능한 가장 엄격한 설정입니다. 2019년 7월 2일, 13:42 UTC. Cloudflare는 두 시간 안에 게시합니다: 공격이 아니라 잘못된 배포, 트래픽 82% 감소. 10일 후 CTO John Graham-Cumming이 전체 사후 분석 보고서를 게시하고, 정규식 포함, Hacker News는 698점을 줍니다.

0:26 이는 서비스 중단에 대한 기립 박수입니다. 어떻게 이런 일이 일어났고, 왜 가능했으며, 누가 실제로 비난받는가. 여기는 The Daily Diff, 사후 분석입니다. 13:31. 풀 리퀘스트가 병합됩니다: 크로스 사이트 스크립팅에 대한 새로운 방화벽 규칙 하나, 시뮬레이트 모드이므로 아무것도 차단하지 않습니다. 13:37, 테스트 통과; CPU 측정 없음. 13:42, 규칙이 2초 만에 180개 도시에 배포됩니다, WAF 규칙은 다른 릴리스가 거치는 dog, pig, canary 단계를 건너뛰기 때문입니다.

0:54 13:45, 첫 페이지. 13:49, Hacker News에 상태 페이지에 대한 스레드가 올라옵니다, 여전히 모든 시스템이 작동 중이라고 합니다. 규칙은 점-별, 점-별, 등호, 점-별로 끝납니다: 무엇이든, 그 다음 무엇이든, 그 다음 등호. PCRE는 탐욕적으로 추측하고 실패하며, 다른 모든 분할을 역추적합니다. x = x는 23단계가 걸립니다. 등호 뒤에 20개의 x: 555.

1:15 20개의 x, 등호 없음: 아무것도 찾지 못하는 데 4,067단계. 모든 요청에서 이를 실행하면 모든 코어가 100%가 됩니다, 아무것도 하지 않으면서 철저하게. 두 개의 가드가 이를 막았어야 했습니다. 규칙에 대한 CPU 제한은 몇 주 전에 실수로 제거되었습니다, WAF가 CPU를 덜 사용하게 하려는 리팩토링 과정에서. 그리고 이 절차는 어떤 규칙이든 스테이징을 건너뛰게 합니다. 규칙은 실시간 공격을 막기 위해 존재하기 때문입니다. 이것은 비상 상황이 아니었고, 어쨌든 전 세계적으로 적용되었습니다.

1:37 14:00, WAF가 식별됩니다; 공격 아님. 14:02, 누군가 전역 종료를 제안합니다: 한 구성 요소, 전 세계적으로 끄는 것. 스위치는 Cloudflare Access 뒤에 있습니다. Cloudflare Access는 Cloudflare 뒤에 있습니다. 일부 자격 증명이 사용되지 않아 만료되었으므로, 인터넷에서 가장 빠른 네트워크가 아무도 훈련하지 않은 우회 경로에 5분을 낭비합니다. 14:07, 종료. 14:09, 트래픽 정상. git blame: 한 가지 속도로 전 세계에 적용된 롤아웃; 실수로 리팩토링되어 사라진 CPU 가드;

2:04 상한선이 없는 정규식 엔진. 규칙을 작성한 엔지니어는 아닙니다: 사후 분석 보고서는 11가지 원인을 나열하고 아무도 지명하지 않습니다. 피해 범위: 27분, 트래픽의 82%, 모든 도시, 모든 코어에서 CPU 100%. 대시보드와 API가 동일한 엣지 뒤에 있어 고객은 끌 수도 없습니다. Hacker News, 사후 분석 보고서 아래 댓글: 그들은 하나의 문제가 있었고, 정규식을 사용했고, 이제는 두 가지 문제가 생겼습니다. 오래된 농담. 여전히 컴파일됩니다.

2:28 평결, 사후 분석: SHIP IT. CPU 가드가 복구되고, 3,868개의 모든 규칙이 수동으로 검토됩니다, 규칙은 스테이징을 거치고, 엔진은 1968년 켄 톰슨이 발표한 선형 시간 보장을 제공하는 엔진으로 전환됩니다. 월요일: 요청당 실행되는 모든 것에 점-별 점-별은 사용하지 마십시오, 그리고 킬 스위치를 죽이는 대상에서 분리하십시오. 아직 이야기할 수 없는 사건을 저에게 보내주십시오, 댓글로, 또는 the daily diff dot dev로.

2:53 그리고 이것이 오늘의 차이점입니다. 저는 Axrisi의 Niko입니다. 책임감 있게 병합하세요.

## 출처

- [John Graham-Cumming, "Details of the Cloudflare outage on July 2, 2019" (Jul 12, 2019)](https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/) — blog.cloudflare.com
- [Matthew Prince, "Cloudflare outage caused by bad software deploy (updated)" (Jul 2, 2019)](https://blog.cloudflare.com/cloudflare-outage/) — blog.cloudflare.com
- [Matthew Prince on X, Jul 2, 2019, 14:22 UTC](https://x.com/eastdakota/status/1146061591143538688) — x.com
- [Matthew Prince on X, Jul 2, 2019, 14:36 UTC ("No evidence yet attack related")](https://x.com/eastdakota/status/1146065231270907907) — x.com
- [Hacker News, Jul 2, 2019, 13:49 UTC — "Cloudflare Network Performance Issues" (631 points)](https://news.ycombinator.com/item?id=20334924) — news.ycombinator.com
- [Hacker News, Jul 2, 2019 — "Cloudflare outage caused by bad software deploy" (348 points)](https://news.ycombinator.com/item?id=20336332) — news.ycombinator.com
- [Hacker News, Jul 12, 2019 — "Details of the Cloudflare outage on July 2, 2019" (698 points)](https://news.ycombinator.com/item?id=20421538) — news.ycombinator.com
- [TechCrunch, Jul 2, 2019](https://techcrunch.com/2019/07/02/a-cloudflare-outage-is-impacting-sites-everywhere/) — techcrunch.com
