Sucuri WAF 오탐지가 스트라이프 웹후크를 계속 차단하는 이유와 이를 중단시키는 정확한 IP 화이트리스트 수정
게시 됨: 2025-11-13온라인 거래를 위해 Stripe에 의존하는 기업은 원활한 웹훅 통신의 중요성을 알고 있습니다. 그러나 널리 사용되는 WAF(웹 애플리케이션 방화벽)인 Sucuri가 합법적인 Stripe 웹훅을 위협으로 잘못 식별하기 시작하면 결제 중단, 거래 실패 및 불필요한 고객 지원 오버헤드가 발생할 수 있습니다. 이 실망스러운 시나리오로 인해 어려움을 겪고 계시다면 혼자가 아닙니다. 다행히도 정확한 해결책이 있습니다.
TL;DR
오탐으로 인해 Stripe 웹후크가 Sucuri WAF에 의해 차단되는 경우, 문제는 부적절한 IP 화이트리스트 또는 지나치게 열성적인 WAF 규칙으로 인해 발생하는 경우가 많습니다. Stripe의 서버는 WAF 설정에서 명시적으로 허용되어야 하는 다양한 IP를 통해 순환됩니다. Stripe의 공식 IP 주소로 Sucuri 방화벽을 업데이트하고 특정 경험적 규칙을 비활성화하면 문제를 즉시 해결하고 원활한 웹훅 기능을 복원할 수 있습니다.
문제 이해: Sucuri WAF 및 거짓 긍정
Sucuri는 DDoS 공격, 웹사이트 해킹 및 기타 악의적인 활동에 대한 강력한 방어 기능을 제공합니다. 들어오는 HTTP 요청을 검사하고 원격으로 의심스러운 모든 것을 차단하는 방식으로 작동합니다. 이는 악의적인 행위자를 차단하는 데 탁월하지만 Stripe과 같은 합법적인 서비스가 웹훅 호출을 보낼 때 역효과를 낼 수 있습니다.
Stripe은 웹후크를 사용하여 성공적인 결제, 실패한 거래, 환불, 구독 변경과 같은 중요한 이벤트를 서버에 알립니다. 이는 고객 기록 업데이트, 재고 관리, 수익 추적과 같은 프로세스를 자동화하는 데 필수적입니다.
문제는 Sucuri의 규칙, 특히 SQL 주입이나 코드 주입을 탐지하려는 경험적 필터가 Stripe의 웹훅 페이로드를 악성으로 잘못 분류할 때 발생합니다.
이 문제의 일반적인 증상은 다음과 같습니다.
- Stripe 대시보드에 반복되는 웹훅 전달 실패가 표시됩니다.
- Stripe에서 들어오는 POST 요청이 서버 로그에 표시되지 않습니다.
- Stripe은 403 Forbidden 또는 시간 초과 오류로 인해 요청을 여러 번 재시도합니다.
- 웹훅 실패에 대한 Stripe 경고의 이메일 알림입니다.
Sucuri가 귀하의 사이트를 보호하고 있음에도 불구하고 너무 공격적으로 행동하여 차단해서는 안되는 것을 차단할 수 있습니다.

근본 원인 식별: 스트라이프에 의해 유발된 거짓 긍정
서버 로그와 Sucuri의 대시보드를 더 깊이 조사했을 때 문제는 더욱 명확해졌습니다. 각 Stripe 웹훅은 403 Forbidden 응답을 수신했거나 서버에 도달하는 것이 완전히 차단되었습니다. Sucuri에서 사건 로그를 보면 다음 플래그가 반복적으로 트리거되었습니다.
- SQLi 휴리스틱 패턴
- 요청 본문 크기가 임계값을 초과했습니다.
- 잘못된 JSON으로 인해 POST 요청이 차단되었습니다(JSON이 유효한 경우에도 마찬가지).
Sucuri는 진화하는 탐지 알고리즘을 사용하며 때로는 Stripe의 JSON 페이로드에 이러한 휴리스틱 엔진이 알고리즘적으로 의심스러운 활동으로 잘못 해석하는 문자나 패턴(예: 따옴표, 괄호 또는 특정 키워드)이 포함됩니다. 이로 인해 Sucuri는 요청에 플래그를 지정하고 삭제하여 해당 요청이 애플리케이션에 도달하는 것을 절대 허용하지 않습니다.
이는 대량의 거래로 인해 수많은 웹훅이 생성되는 프로모션 캠페인 중에 특히 문제가 되었으며, 그 중 다수는 아무데도 가지 못했습니다.
적절한 수정: 정확한 IP 화이트리스트 작성
일시적으로 방화벽을 비활성화하거나 웹훅 URL에 대해 전 세계를 화이트리스트에 추가하고 싶은 유혹이 있지만 이는 보안상 악몽입니다. 정확하고 안전한 수정에는 몇 가지 전략적 단계가 포함됩니다.
1. Stripe의 공식 IP 주소 검색
Stripe은 웹후크가 시작된 IP 범위 목록을 게시합니다. 이 목록은 공식 문서에서 확인할 수 있으며 정기적으로 업데이트됩니다.

글을 쓰는 시점에서 예시 IP는 다음과 같습니다(참고: 이러한 변경 사항은 항상 공식 소스를 확인하세요).
3.18.12.63 3.130.192.231 13.235.14.237 13.235.122.149 18.211.135.69 35.154.171.200 52.15.183.38
2. Sucuri 대시보드에 로그인하세요.
Sucuri 방화벽 설정으로 이동하여 액세스 제어아래의 화이트리스트 섹션을 찾으세요. 여기에서는 모든 WAF 검사를 우회하여 허용하려는 정확한 IP를 수동으로 입력할 수 있습니다.
3. Stripe의 모든 IP를 화이트리스트에 추가
Stripe에서 제공하는 모든 단일 IP 블록이 화이트리스트에 추가되었는지 확인하세요. Sucuri는 하드 매치를 수행하므로 IP가 하나라도 누락되면 무작위 웹훅 이벤트가 간헐적으로 실패할 수 있습니다.
4. 웹훅 엔드포인트에 대해 차단된 작업 비활성화
Sucuri의URL 경로 구성에서 웹훅 리스너 엔드포인트(예: /stripe/webhook)를 추가하고 해당 경로에 대해서만 특정 WAF 규칙을 비활성화할 수 있습니다. 이렇게 하면 Stripe의 요청이 불필요하게 차단되지 않도록 하면서 방화벽을 전체적으로 끄는 것을 방지할 수 있습니다. 여기서 가장 유용한 설정은 다음과 같습니다.
- 해당 특정 경로에 대해 경험적 필터링을 비활성화합니다.
- Stripe 이벤트에 메타데이터가 많은 페이로드가 포함된 경우 더 큰 POST 본문 크기를 허용하세요.
이렇게 하면 엔드포인트가 간섭 없이 복잡한 JSON 페이로드를 수락할 수 있습니다.

보너스 팁: Stripe의 서명 비밀 사용
Stripe의 IP를 화이트리스트에 추가한 후에도 수신된 모든 웹훅 요청의 신뢰성을 확인하는 것이 여전히 현명합니다. Stripe은 서버가 웹훅 페이로드를 암호화 방식으로 확인할 수 있도록 하는 서명 비밀을 제공합니다.
이렇게 하면 다른 소스가 Stripe의 IP를 스푸핑하고 웹훅 URL에 도달하더라도(가능성은 낮지만 가능함) 해당 요청이 서명 확인에 실패하도록 하는 데 도움이 됩니다. 이를 구현하려면 여기에서 Stripe의 가이드를 따르세요.
영향: 올바른 화이트리스팅으로 해결된 문제
Sucuri 방화벽 내에서 Stripe의 모든 IP를 구성하고 웹훅 엔드포인트에 대한 WAF 규칙 동작을 조정한 후 문제가 완전히 사라졌습니다. Webhooks는 즉시 인식되기 시작했고 Stripe의 재시도 메커니즘은 더 이상 활성화되지 않았으며 이벤트도 손실되지 않았습니다.
작업흐름과 사용자 경험 측면에서 —
- 고객에게 지연된 결제 확인이 더 이상 표시되지 않습니다.
- 실패한 구독에 대한 지원 티켓이 삭제되었습니다.
- 새로운 사용자 계정 생성과 같은 백엔드 자동화가 다시 안정적으로 작동했습니다.
자동화에 대한 참고 사항
Stripe의 IP 목록은 발전할 수 있으므로 분기별 달력 알림을 설정하여 업데이트를 확인하는 것이 좋습니다. 안타깝게도 Sucuri는 API 기반 화이트리스트 자동화를 제공하지 않으므로 프로세스가 수동으로 유지됩니다. 또 다른 웹훅 전달 실패를 방지하려면 이에 대해 사전 대응하는 것이 중요합니다.
최종 생각
Sucuri WAF는 웹 자산을 안전하게 유지하기 위한 강력한 도구이지만 완벽할 수 있는 보안 시스템은 없습니다. 특히 Stripe와 같은 합법적인 서비스에서 오탐은 실제 비즈니스 마찰을 일으킬 수 있습니다. 올바른 IP와 약간의 WAF 규칙 사용자 정의로 무장하면 결제 처리를 간소화하고 안전하게 유지할 수 있습니다.
기억하세요:보안을 위해 기능을 희생할 필요는 없습니다. 주의 깊게 구성하면 두 가지 모두를 조화롭게 유지할 수 있습니다.
