AWS - WAF Enum

AWS - WAF Enum

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

AWS WAF

AWS WAF는 웹 애플리케이션 방화벽으로, 웹 애플리케이션이나 API를 다양한 웹 공격으로부터 보호하기 위해 설계되었습니다. 이를 통해 사용자는 SQL 인젝션이나 크로스 사이트 스크립팅과 같은 전형적인 공격 벡터를 완화하는 보안 규칙을 설정하고 사용자 정의 필터링 규칙을 정의하여 들어오는 트래픽을 제어할 수 있습니다.

모니터링 기준 (조건)

조건은 AWS WAF가 모니터링하는 들어오는 HTTP/HTTPS 요청의 요소를 지정합니다. 이는 XSS, 지리적 위치 (GEO), IP 주소, 크기 제한, SQL 인젝션 및 패턴 (문자열 및 정규식 일치)을 포함합니다. 국가별로 제한된 요청은 CloudFront 수준에서 제한되므로 WAF에 도달하지 않습니다.

각 AWS 계정은 다음을 구성할 수 있습니다:

  • 각 유형당 100개의 조건 (정규식의 경우 10개의 조건만 허용되지만 이 제한은 증가시킬 수 있음).

  • 100개의 규칙50개의 Web ACL.

  • 최대 5개의 요청 기반 규칙.

  • 응용 프로그램 로드 밸런서와 함께 WAF를 구현할 때 초당 10,000개의 요청 처리량.

규칙 구성

규칙은 지정된 조건을 사용하여 작성됩니다. 예를 들어, 규칙은 2개의 특정 조건을 충족하는 경우 요청을 차단할 수 있습니다. 두 가지 유형의 규칙이 있습니다:

  1. 일반 규칙: 지정된 조건을 기반으로 한 표준 규칙입니다.

  2. 요청 기반 규칙: 특정 IP 주소에서 5분 동안의 요청 수를 계산합니다. 여기서 사용자는 임계값을 정의하고 IP에서의 요청 수가 이 제한을 초과하는 경우 해당 IP에서의 후속 요청이 임계값 아래로 떨어질 때까지 차단됩니다. 요청 기반 규칙의 최소 임계값은 2000개의 요청입니다.

동작

각 규칙에는 허용, 차단, 또는 계수 옵션 중 하나가 할당됩니다:

  • 허용: 요청이 적절한 CloudFront 배포 또는 응용 프로그램 로드 밸런서로 전달됩니다.

  • 차단: 요청이 즉시 종료됩니다.

  • 계수: 규칙의 조건을 충족하는 요청을 계수합니다. 이는 규칙을 테스트하고 허용 또는 차단으로 설정하기 전에 규칙의 정확성을 확인하는 데 유용합니다.

Web ACL 내에서 규칙과 일치하지 않는 요청은 기본 동작 (허용 또는 차단)을 수행합니다. Web ACL 내에서 정의된 규칙 실행 순서는 중요하며 일반적으로 다음 순서를 따릅니다:

  1. 화이트리스트 IP 허용.

  2. 블랙리스트 IP 차단.

  3. 유해한 시그니처와 일치하는 요청 차단.

CloudWatch 통합

AWS WAF는 모니터링을 위해 CloudWatch와 통합되어 있으며, AllowedRequests, BlockedRequests, CountedRequests, PassedRequests와 같은 메트릭을 제공합니다. 이러한 메트릭은 기본적으로 매 분마다 보고되며 2주 동안 보관됩니다.

열거

범위는 CLOUDFRONT일 수도 있지만, CLoudfront와 관련이 없는 WAF를 확인할 때는 REGIONAL을 사용해야 합니다.

# Get web acls
aws wafv2 list-web-acls --scope REGIONAL
aws wafv2 get-web-acl --scope REGIONAL --name <name> --id <id>
aws wafv2 list-resources-for-web-acl --web-acl-arn <web-acl-arn> #Resources associated with the ACL
aws wafv2 get-web-acl-for-resource --resource-arn <arn> # Get web acl of the resource

# Rule groups
aws wafv2 list-rule-groups --scope REGIONAL
aws wafv2 get-rule-group --scope REGIONAL --name <name> --id <id>

# Get IP sets
aws wafv2 list-ip-sets --scope=REGIONAL
aws wafv2 get-ip-set --scope=REGIONAL --name <name> --id <id>

# Get regex patterns
aws wafv2 list-regex-pattern-sets --scope REGIONAL

# Get logging config (buckets storing the logs)
aws wafv2 list-logging-configurations --scope=REGIONAL

사후 침투 / 우회

공격자의 관점에서 이 서비스는 공격자가 다른 웹을 침해하는 데 도움이 될 수 있는 WAF 보호 및 네트워크 노출을 식별하는 데 도움이 될 수 있습니다.

하지만 공격자는 또한 이 서비스를 방해하여 웹이 WAF로 보호되지 않도록 할 수도 있습니다.

TODO: PR은 환영합니다.

참고 자료

  • https://www.citrusconsulting.com/aws-web-application-firewall-waf/#:~:text=Conditions%20allow%20you%20to%20specify,user%20via%20a%20web%20application.

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新