DoS 보호 서비스 구성

App Engine 서비스 거부(DoS) 보호 서비스를 사용하면 서비스 거부 공격 또는 유사한 형태의 악용 사례가 발생할 경우 할당량이 부족하지 않도록 애플리케이션을 보호할 수 있습니다. IP 주소 또는 서브넷을 차단할 수 있으며 해당 주소나 서브넷에서 라우팅된 요청은 애플리케이션 코드가 호출되기 전에 삭제됩니다. 이러한 요청에는 리소스 할당이 소비되지 않고 청구되지 않습니다.

기본적으로 App Engine은 블랙리스트에 추가된 주소에 대한 일반 오류 페이지를 제공합니다. 이 일반 오류 페이지 대신 커스텀 응답을 제공하도록 앱을 구성할 수 있습니다.

시작하기 전에

애플리케이션의 root 디렉토리에 dos.yaml 파일을 만듭니다. 이 파일에 차단된 IP 주소 및 네트워크를 지정하게 됩니다.

DoS 블랙리스트로 요청 차단

IP 주소 및 IP 서브넷을 블랙리스트에 추가하여 앱에 액세스하지 못하도록 차단할 수 있습니다.

dos.yaml은 항목 100개로 제한되므로 DoS 공격을 받고 있는 경우 전체 서브넷을 차단해야 할 수 있습니다. 동일한 네트워크의 여러 IP 주소에서 앱을 대상으로 DoS 공격을 수행하는 것이 확인될 경우 이 방법은 효과적인 보호 수단이 됩니다.

IP 주소 블랙리스트 항목 만들기

dos.yaml 파일에서 IPv4 또는 IPv6 주소를 정의하여 IP 주소 한 개 이상이 앱에 액세스하지 못하도록 차단할 수 있습니다. 예를 들면 다음과 같습니다.

blacklist:
- subnet: 192.0.2.1
  description: A single IPv4 address
- subnet: abcd::123:4567
  description: A single IPv6 address

분산된 서비스 거부(DDoS) 공격에서는 개별 IP 주소가 아닌 전체 서브넷을 차단할 필요가 있습니다.

아래 를 참조하여 dos.yaml을 만들 수 있습니다.

dos.yaml을 만든 후에는 앱에 업로드해야 합니다.

IP 서브넷 블랙리스트 항목 만들기

IP 서브넷을 CIDR 형식으로 정의하여 IP 서브넷이 앱에 액세스하지 못하도록 차단할 수 있습니다. IP-CIDR 도구를 사용하여 CIDR 표기를 사용하는 규칙을 만들 수 있습니다.

blacklist:
- subnet: 1.2.3.4/24
  description: an IPv4 subnet
- subnet: abcd::123:4567/48
  description: an IPv6 subnet

아래 를 참조하여 dos.yaml을 만들 수 있습니다.

dos.yaml을 만든 후에는 앱에 업로드해야 합니다.

dos.yaml

다음은 dos.yaml 파일의 예입니다.

blacklist:
- subnet: 1.2.3.4
  description: a single IP address
- subnet: 1.2.3.4/24
  description: an IPv4 subnet
- subnet: abcd::123:4567
  description: an IPv6 address
- subnet: abcd::123:4567/48
  description: an IPv6 subnet

차단된 요청에 대한 커스텀 오류 메시지 작성

기본적으로 DoS 보호 서비스에 의해 차단된 요청에는 일반적인 오류 페이지가 제공됩니다. 분산된 서비스 거부 공격에는 적법한 사용자의 감염된 머신이 연관될 수 있으며 이 페이지에서 해당 사용자의 액세스가 거부된 이유에 대한 설명을 제공할 수 있습니다.

  1. DoS 보호 서비스에 의해 차단된 요청에 제공할 정적 파일을 애플리케이션 디렉토리에 만듭니다.

  2. app.yaml 파일에서 정적 파일을 가리키는 경로를 제공하고 dos_api_denialerror_handlers 유형을 추가하여 DoS 응답에 대한 오류 핸들러를 지정합니다.

    error_handlers:
    - error_code: dos_api_denial
      file: dos-response.html
    

모든 블랙리스트 항목 삭제

블랙리스트 항목을 모두 삭제하려면 다음 단계를 따르세요.

  1. dos.yaml 파일을 편집하여 다음 항목만 포함하도록 합니다.

    blacklist:
    

    dos.yaml을 삭제해도 블랙리스트는 삭제되지 않습니다.

  2. dos.yaml을 다시 배포하여 변경사항을 적용합니다.

콘솔에서 DoS 거부 오류 보기

거부되는 요청 수를 나타내는 그래프를 확인할 수 있습니다.

  1. Google Cloud Platform Console의 App Engine 대시보드로 이동합니다.

    App Engine 오류 세부정보 그래프 열기

  2. 필요에 따라 그래프 시간 프레임을 조정하여 결과를 확인합니다.

DoS 블랙리스트 업로드

gcloud 도구를 사용하여 업데이트된 DoS 구성 파일을 App Engine의 앱에 배포합니다. 예를 들어 다음 명령어를 실행하여 dos.yaml의 콘텐츠로 DoS 보호 서비스를 업데이트합니다.

 gcloud app deploy dos.yaml

다음 단계

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Go용 Google App Engine Flexible Environment