[AWS SAA-C03] AWS WAF 정리

AWS WAF

  • WAF는 정의된 조건에 따라 웹 요청을 허용, 차단 또는 모니터링(카운트)하는 규칙 구성을 허용하여 웹 애플리케이션을 공격으로부터 보호한다.
  • WAF는 SQL Injection, XSS과 같은 일반적인 공격 기술로부터 보호한다. 조건 기반에는 IP 주소, HTTP 본문 및 URI 문자열이 포함된다.
  • WAF는 CloudFront, API Gateway, AppSync 및 웹 애플리케이션에 대한 콘텐츠를 제공하는 데 사용되는 ALB(Application Load Balancer) 서비스와 긴밀하게 통합된다.
  • AWS WAF with Amazon CloudFront
    = AWS WAF 규칙은 최종 사용자와 가까운 전 세계의 모든 AWS Edge 위치에서 실행된다.
    = 차단된 요청은 웹 서버에 도달하기 전에 중지된다.
    = AWS 외부에서 사용자 지정 오리진을 지원한다.
  • ALB가 있는 AWS WAF
    = WAF 규칙은 지역에서 실행되며 인터넷 방향 및 내부 로드 밸런서를 보호하는 데 사용할 수 있다.
  • API 게이트웨이가 있는 AWS WAF
    = REST API를 보호할 수 있다.
  • 응용 프로그램을 보호하고 HTTP 또는 HTTPS를 통해 전송된 웹 요청을 검사할 수 있다.
  • WAF에서는 OWASP, 봇 또는 CVE와 같은 응용 프로그램 취약성과 같은 일반적인 위협으로부터 응용 프로그램을 보호하기 위해 미리 구성된 규칙인 관리 규칙을 제공한다.
  • 로그는 CloudWatch 로그 그룹, S3 버킷 또는 Kinesis Data Firehose로 전송할 수 있다.

WAF의 이점

  • 지정된 조건을 사용하는 웹 공격에 대한 추가 보호
  • 조건은 다음과 같은 웹 요청의 특성을 사용하여 정의할 수 있다.
    • 요청이 발생한 IP 주소
    • 요청 헤더의 값
    • 요청에 나타나는 문자열
    • 요청 길이
    • 악의적일 가능성이 있는 SQL 코드 존재(SQL Injection)
    • XSS
  • 빠른 시작을 위한 관리 규칙
  • 여러 웹 응용프로그램에 재사용할 수 있는 규칙
  • 실시간 메트릭 및 샘플링된 웹 요청
  • WAF API를 사용한 자동 관리
  • WAF 작동 방식
  • WAF를 사용하면 조건, 규칙 웹 및 액세스 제어 목록(웹 ACL)을 만들어 웹 요청의 동작을 제어할 수 있다.

WAF 동작

Condition

  • 조건은 웹 요청에서 감시할 기본 특성을 정의한다.
  • XSS: 공격자는 웹 애플리케이션의 취약성을 이용할 수 있는 스크립트를 포함한다.
  • 요청이 발생한 주소 범위
  • SQL Injection: 공격자는 악의적인 SQL 코드를 주입하여 데이터베이스에서 데이터를 추출한다.
  • 지리적 일치: 요청이 발생한 국가를 기준으로 요청을 차단하거나 허용한다.
  • 요청에 표시되는 문자열(ex: User-Agent 헤더에 표시되는 값 또는 쿼리 문자열에 표시되는 텍스트 문자열)
  • 일부 조건에는 여러 값이 사용된다.

Actions

  • 지정된 요청을 제외한 모든 요청 허용: 지정된 요청을 제외한 모든 IP 주소에 대해 블랙리스트 작성
  • 지정된 요청을 제외한 모든 요청 차단:(ex: 요청이 발생한 IP 주소 화이트리스트)
  • 지정된 속성과 일치하는 요청 모니터링(카운트) - 정의된 속성과 일치하는 요청을 카운트할 수 있다. 이는 새 속성을 사용하여 요청을 허용하거나 차단하도록 구성하고 테스트할 때 유용하다.
  • 구성이 실수로 웹 사이트에 대한 모든 트래픽을 차단하지 않았음을 확인한 후 구성을 적용하여 요청을 허용하거나 차단하도록 동작을 변경할 수 있다.
  • CAPTCHA: 요청에 대한 캡차 검사를 실행한다.

Rules

  • AWS WAF 규칙은 HTTP(S) 웹 요청을 검사하는 방법과 검사 기준과 일치할 때 요청에 대해 수행할 작업을 정의한다.
  • 각 규칙에는 규칙 및 구문 유형 및 깊이에 따라 중첩된 구문이 포함될 수 있는 최상위 규칙 구문이 하나씩 필요하다.
  • AWS WAF는 규칙에서 구문을 결합하는 데 사용되는 AND, OR 및 NOT에 대한 논리문도 지원한다. 예시는 다음과 같다.
    = 공격자의 최근 요청에 따라 논리적 AND 조건으로 다음 조건을 포함하는 규칙을 생성할 수 있다.
    = 요청은 192.0.2.44에서 전송된다.
    = User-Agent 헤더에 BadBot 값이 포함되어 있다.
    = 쿼리 문자열에 악의적인 SQL 코드가 포함된 것으로 판단되는 경우
    = 규칙이 통과되고 관련 조치가 취해지려면 세 가지 조건이 모두 충족되어야 한다.

규칙 그룹

  • 규칙 그룹은 웹 ACL에 추가할 수 있는 재사용 가능한 규칙 집합이다.
  • 규칙 그룹은 다음과 같은 기본 범주로 분류된다.
    = AWS 관리 규칙 및 AWS Marketplace 판매자가 생성하고 유지 관리하는 관리 규칙 그룹
    = 생성하고 유지 관리하는 사용자 고유의 규칙 그룹
  • AWS Firewall Manager 및 Shield Advanced와 같은 다른 서비스에서 소유하고 관리하는 규칙 그룹이다.
  • 웹 ACL(Access Control List)
    = 웹 ACL은 보호된 리소스에 대한 모든 HTTP(S) 웹 요청에 대한 세부적인 제어를 제공한다.
반응형