AWS WAF 클래식 작동 방식 - AWS WAF, AWS Firewall Manager, 및 AWS Shield Advanced

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS WAF 클래식 작동 방식

참고

이것은 AWS WAF Classic 설명서입니다. 이 버전은 2019년 11월 AWS WAF 이전에 규칙 및 웹 ACL과 같은 AWS WAF 리소스를 만들었고 아직 최신 버전으로 마이그레이션하지 않은 경우에만 사용해야 합니다. 리소스를 마이그레이션하려면 AWS WAF Classic 리소스를 다음으로 마이그레이션하기 AWS WAF(을)를 참조하세요.

의 최신 버전에 대한 내용은 을 AWS WAF 참조하십시오. AWS WAF

AWS WAF Classic을 사용하여 API Gateway, Amazon CloudFront 또는 애플리케이션 로드 밸런서가 웹 요청에 응답하는 방식을 제어할 수 있습니다. 먼저 조건, 규칙 및 웹 ACL(웹 액세스 제어 목록)을 생성합니다. 조건을 정의하고, 조건을 규칙에 결합하며 규칙을 웹 ACL에 결합합니다.

참고

또한 AWS WAF 클래식을 사용하여 Amazon Elastic Container Service (Amazon ECS) 컨테이너에 호스팅되는 애플리케이션을 보호할 수 있습니다. Amazon ECS는 클러스터에서 Docker 컨테이너를 손쉽게 실행, 중지 및 관리할 수 있게 해주는 컨테이너 관리 서비스로서 확장성과 속도가 뛰어납니다. 이 옵션을 사용하려면 AWS WAF 클래식 지원 Application Load Balancer를 사용하여 서비스 내 작업 전반에서 HTTP/HTTPS (계층 7) 트래픽을 라우팅하고 보호하도록 Amazon ECS를 구성해야 합니다. 자세한 내용은 Amazon Elastic Container Service 개발자 안내서에서 서비스 로드 밸런싱 항목을 참조하세요.

조건

조건은 AWS WAF Classic이 웹 요청에서 감시할 기본 특성을 정의합니다.

  • 악성일 가능성이 있는 스크립트입니다. 공격자는 웹 애플리케이션의 취약성을 악용할 수 있는 스크립트를 포함시킵니다. 이것은 교차 사이트 스크립팅이라고 알려져 있습니다.

  • 요청이 시작되는 IP 주소 또는 주소 범위입니다.

  • 요청이 시작되는 국가 또는 지리적 위치입니다.

  • 쿼리 문자열과 같은 요청에서 지정된 부분의 길이입니다.

  • 악성일 가능성이 있는 SQL 코드입니다. 공격자는 악성 SQL 코드를 웹 요청에 포함시켜서 데이터베이스에서 데이터를 추출하려고 시도합니다. 이것은 SQL 명령어 주입이라고 알려져 있습니다.

  • 요청에 나타나는 문자열입니다. 예를 들어 User-Agent 헤더에 나타나는 값 또는 쿼리 문자열에 나타나는 텍스트 문자열입니다. 정규식을 사용하여 이러한 문자열을 지정할 수도 있습니다.

일부 조건에는 여러 개의 값이 있습니다. 예를 들어, IP 조건에 최대 10,000개의 IP 주소 또는 IP 주소 범위를 지정할 수 있습니다.

규칙

조건을 규칙으로 결합하여 허용, 차단 또는 집계하려는 요청을 정확하게 타겟팅할 수 있습니다. AWS WAF Classic은 두 가지 유형의 규칙을 제공합니다.

일반 규칙

일반 규칙은 조건만 사용하여 특정 요청을 대상으로 선택합니다. 예를 들어 공격자로부터 확인한 최근 요청을 기반으로 다음 조건이 포함된 규칙을 생성할 수 있습니다.

  • 요청이 192.0.2.44에서 나옵니다.

  • 요청의 User-Agent 헤더에 BadBot라는 값이 포함되어 있습니다.

  • 요청의 쿼리 문자열에 유사 SQL 코드가 포함되어 있는 것으로 보입니다.

이 예제에서와 같이 한 규칙에 여러 조건이 모두 포함되면 AWS WAF Classic은 모든 조건과 모두 일치하는 요청을 찾습니다. 다시 말해서 조건을 AND(으)로 함께 연결합니다.

일반 규칙에는 적어도 하나의 조건을 추가해야 합니다. 조건 없는 일반 규칙은 어떤 요청과도 일치할 수 없으므로 규칙의 작업(허용, 계산 또는 차단)이 절대 트리거되지 않습니다.

비율 기반 규칙

비율 기반 규칙은 비율 제한이 추가된 일반 규칙과 비슷합니다. 비율 기반 규칙은 규칙의 조건을 충족하는 IP 주소로부터 도달한 요청을 계산합니다. IP 주소의 요청이 5분 내에 비율 제한을 초과하는 경우 규칙은 작업을 트리거할 수 있습니다. 작업이 트리거되는 데 1~2분 정도 소요될 수 있습니다.

비율 기반 규칙에서는 조건이 선택 사항입니다. 비율 기반 규칙에 조건을 추가하지 않으면 비율 제한이 모든 IP 주소에 적용됩니다. 조건을 비율 제한과 결합하면 조건과 일치하는 IP 주소에 비율 제한이 적용됩니다.

예를 들어 공격자로부터 확인한 최근 요청을 기반으로 다음 조건이 포함된 비율 기반 규칙을 생성할 수 있습니다.

  • 요청이 192.0.2.44에서 나옵니다.

  • 요청의 User-Agent 헤더에 BadBot라는 값이 포함되어 있습니다.

이 비율 기반 규칙에서 비율 제한도 정의합니다. 이 예에서는 비율 제한을 1,000으로 정의했다고 가정하겠습니다. 위의 두 조건을 모두 충족하고 5분간 1,000개 요청을 초과하는 요청은 웹 ACL에 정의된 대로 규칙의 작업(차단 또는 허용)을 트리거합니다.

두 조건을 모두 충족하지 않은 요청은 비율 제한으로 계산되지 않으며 이 규칙의 영향을 받지 않습니다.

두 번째 예로, 웹 사이트의 특정 페이지에 대한 요청을 제한하는 경우를 가정해 보겠습니다. 이렇게 하려면 다음과 같은 문자열 일치 조건을 비율 기반 규칙에 추가할 수 있습니다.

  • [Part of the request to filter on]은 URI입니다.

  • [Match Type]은 [Starts with]입니다.

  • [Value to match]는 [login]입니다.

여기에 [RateLimit]를 1,000으로 지정합니다.

웹 ACL에 이 비율 기반 규칙을 추가함으로써 사이트의 나머지 페이지에는 영향을 주지 않고 로그인 페이지에 대한 요청을 제한할 수 있습니다.

웹 ACL

조건을 규칙으로 결합한 후 규칙을 웹 ACL로 결합합니다. 이 위치에서 각 규칙에 대한 작업(허용, 차단 또는 계산) 및 기본 작업을 정의합니다.

각 규칙에 대한 작업

웹 요청이 규칙의 모든 조건과 일치하는 경우 AWS WAF Classic은 요청을 차단하거나 요청이 API Gateway API, CloudFront 배포 또는 Application Load Balancer로 전달되도록 허용할 수 있습니다. 각 규칙에 대해 AWS WAF Classic에서 수행할 작업을 지정합니다.

AWS WAF Classic은 규칙을 나열한 순서대로 요청을 웹 ACL의 규칙과 비교합니다. AWS WAF 그러면 Classic은 요청이 일치하는 첫 번째 규칙과 관련된 작업을 수행합니다. 예를 들어 웹 요청이 요청을 허용하는 규칙 하나와 요청을 차단하는 다른 규칙과 일치하는 경우 AWS WAF Classic은 처음에 나열된 규칙에 따라 요청을 허용하거나 차단합니다.

새 규칙을 사용하기 전에 테스트하려는 경우 규칙의 모든 조건을 충족하는 요청을 계산하도록 AWS WAF Classic을 구성할 수도 있습니다. 요청을 허용하거나 차단하는 규칙과 마찬가지로, 요청을 계산하는 규칙은 웹 ACL의 규칙 목록에 있는 위치에 따라 영향을 받습니다. 예를 들어, 웹 요청이 요청을 허용하는 규칙 하나 및 요청을 계산하는 다른 규칙 하나와 일치하는 경우 요청을 허용하는 규칙이 먼저 나열되면 요청은 계산되지 않습니다.

기본 작업

기본 동작은 AWS WAF Classic에서 웹 ACL에 있는 규칙의 모든 조건에 부합하지 않는 요청을 허용할지 차단할지를 결정합니다. 예를 들어, 웹 ACL을 생성하고 전에 정의한 규칙만 추가한다고 가정합니다.

  • 요청이 192.0.2.44에서 나옵니다.

  • 요청의 User-Agent 헤더에 BadBot라는 값이 포함되어 있습니다.

  • 요청의 쿼리 문자열에 악성 SQL 코드가 포함되어 있는 것으로 보입니다.

요청이 규칙의 세 가지 조건을 모두 충족하지 않고 기본 동작이 인 경우 AWS WAF Classic은 ALLOW 요청을 API Gateway CloudFront 또는 Application Load Balancer로 전달하고 서비스는 요청된 객체로 응답합니다.

웹 ACL에 규칙을 두 개 이상 추가하는 경우 AWS WAF Classic은 요청이 규칙의 모든 조건을 충족하지 않는 경우에만 기본 작업을 수행합니다. 예를 들어, 조건 하나가 포함된 두 번째 규칙을 추가한다고 가정합니다.

  • User-Agent 헤더에 BIGBadBot라는 값이 포함된 규칙입니다.

AWS WAF Classic은 요청이 첫 번째 규칙의 세 가지 조건을 모두 충족하지 않고 두 번째 규칙의 한 가지 조건을 충족하지 않는 경우에만 기본 작업을 수행합니다.

경우에 따라 Amazon API Gateway, Amazon CloudFront 또는 Application Load Balancer에 대한 요청 허용 또는 차단 여부에 대한 응답이 지연되는 내부 오류가 AWS WAF 발생할 수 있습니다. 이러한 CloudFront 경우에는 일반적으로 요청을 허용하거나 콘텐츠를 제공합니다. API Gateway 및 Application Load Balancer는 일반적으로 요청을 거부하고 콘텐츠를 제공하지 않습니다.