Cloudflare에 호스팅된 웹사이트가 Cato 방화벽을 우회함

문제

Cato 방화벽이 Cloudflare에 호스팅된 웹사이트에서 방화벽 규칙을 강제 실행하지 못합니다. 예시로, research.cloudflare.com 웹사이트는 카테고리로 분류된 상태에서 방화벽 규칙이 이 카테고리를 차단하는데도 불구하고 허용되고 있습니다.

 

관련 이벤트는 다른 도메인 이름, cloudflare-ech.com을 보여주며, 이는 의도한 사이트와 일치하지 않고 방화벽 규칙을 우회합니다. 이 이벤트는 웹사이트의 목적지 IP 주소를 필터링하여 찾을 수 있습니다.

환경

  • 특정 카테고리를 차단하는 방화벽 규칙.
  • TLS 검사가 활성화되지 않음.

문제 해결

이벤트 내 도메인 이름 cloudflare-ech.com의 존재가 암호화된 클라이언트 Hello (ECH) 프로토콜이 사용 중임을 나타냅니다.

ECH란 무엇인가?

Cloudflare 문서에 설명된 대로, ECH는 TLS 클라이언트 Hello 패킷의 일부를 암호화하여 서버 이름 지표(SNI)를 마스킹하는데, 이는 일반적으로 TLS 세션을 설정하는 데 사용됩니다. 이것은 Cato가 Cloudflare와의 연결을 볼 수는 있지만 특정 웹사이트를 식별할 수 없음을 의미합니다. 둘 다 브라우저 및 웹사이트가 ECH를 지원해야만 이를 사용할 수 있습니다.

ECH 작동 방식

  1. 공개 키 배포: 서버는 DNS를 통해 공개 키(ECH 구성 내)를 공유하며, 이는 종종 DoH(HTTPS를 통한 DNS) 또는 DoT(TLS를 통한 DNS)와 같은 안전한 DNS 프로토콜을 사용합니다. 그러나, UDP를 통한 암호화되지 않은 DNS도 사용할 수 있습니다. 이 키는 클라이언트가 클라이언트 Hello 메시지를 암호화하는 데 사용됩니다. 아래는 ECH 구성을 포함하는 HTTPS 유형의 DNS 응답 예시입니다.
  2. 클라이언트 Hello 암호화: 연결시에 클라이언트는 SNI와 같은 클라이언트 Hello의 민감한 부분을 서버의 공개 키를 사용하여 암호화합니다. 이 정보를 해독할 수 있는 자는 서버뿐입니다. 암호화되지 않은 외부 클라이언트 Hello도 전송되며, 이는 기본 SNI와 같은 일반 정보를 표시하여 실제 대상은 드러나지 않을 수 있습니다. 아래 예시에서 기본 SNI는 cloudflare-ech.com입니다
  3. 포기 메커니즘: ECH가 지원되면 서버는 암호화된 클라이언트 Hello를 처리하고 연결이 지속됩니다. 지원되지 않을 경우, 포기 메커니즘은 연결을 암호화되지 않은 클라이언트 Hello로 재시도하여 전통적인 TLS 1.3 서버와의 하위 호환성을 유지합니다.

해결

Cato는 현재 ECH를 지원하지 않으므로, 네트워크 설정에 따라 암호화되지 않은 SNI 기반의 TLS 연결로 되돌리기 위해 다음의 우회 방법이 권장됩니다:

  • 인터넷 방화벽에서 DoH, DoT 및 QUIC 프로토콜을 차단합니다. 이는 ECH 구성을 교환하기 위해 안전한 DNS 프로토콜을 사용하지 못하도록 합니다.
  • 브라우저에 따라 클라이언트는 UDP 기반 DNS로 ECH 구성을 교환할 수 있습니다. 해당 사이트나 사용자에 대해 TLS 검사를 활성화하십시오. ECH는 중간자 공격(MITM) 기술을 지원하지 않으므로, 연결은 암호화되지 않은 SNI를 사용하도록 되돌아갑니다.
  • 최후의 수단으로, 인터넷 방화벽에서 cloudflare-ech.com 도메인을 차단하십시오. 이것은 브라우저를 암호화되지 않은 SNI로 되돌려 올바른 방화벽 규칙이 적용되도록 합니다.

도움이 되었습니까?

2명 중 2명이 도움이 되었다고 했습니다.

댓글 0개