AWS WAF

김기현·3일 전

AWS

목록 보기
10/19

WAF는 ALB, CloundFront, API Gateway 등의 앞단에 위치하여 정의된 규칙(Rule)에 따라 웹 요청을 허용하거나 차단하는 방화벽 서비스이다.

1. 왜 일반 방화벽(보안 그룹)만으로는 부족한가?

  • 보안 그룹(Security Group): IP주소와 포트 번호를 기준으로 차단한다.
  • WAF: HTTP 메시지의 내용을 뜯어본다 → 수상한 문구가 포함된 요청을 차단하라는 정교한 제어가 가능하다.

2. WAF의 핵심 구성 요소

2.1. Web ACL (Access Control List)

  • WAF의 최상위 단위이다. 하나의 Web ACL을 만들어 ALB나 API Gateway에 연결한다. 이 안에 여러 개의 ‘규칙(Rule)’을 담는다.

2.2. 규칙 (Rule)

트래픽을 검사하는 조건이다.

  • 관리형 규칙(Managed Rules): AWS 전문가들이 미리 만들어둔 규칙 세트이다. (예: SQL 인젝션 방어, 알려진 봇 차단, 리눅스 서버 취약점 방어 등) 개발자가 직접 로직을 짤 필요 없이 선택만 하면 된다.
  • 사용자 지정 규칙(Custom Rules): “특정 IP 대역은 차단한다”, “요청 헤더에 특정 토큰이 없으면 막는다” 등 서비스 특성에 맞는 규칙을 직접 만든다.

2.3. IP 세트 (IP Sets)

  • 자주 차단해야 하는 악성 IP 리스트나, 반대로 화이트리스트 IP들을 묶어서 관리한다.

3. 백엔드 개발자가 알아야할 WAF의 주요 기능

3.1. 일반적인 웹 공격 방어

  • SQL Injection: 데이터베이스를 파괴하는 쿼리 삽입 공격을 차단한다.
  • XSS (Cross-Site Scripting): 악성 스크립트 삽입을 차단한다.

3.2. 속도 기반 제한 (Rate Limiting)

  • 특정 IP가 짧은 시간 동안 너무 많은 요청을 보내면 자동으로 해당 IP를 일정 시간 차단한다.
  • DDos 공격이나 무차별 대입(Brute-force) 공격을 막는 데 매우 효과적이다.

3.3. 봇 제어 (Bot Control)

  • 검색 엔진 로봇은 허용하고, 정보를 무단으로 긁어가는 스크래핑 봇이나 악의적인 스캐너 봇은 식별하여 차단한다.

3.4. 지리적 차단 (Geo Match)

  • 서비스 타겟 국가가 한국뿐이라면 다른 특정 국가에서 오는 모든 요청을 원천 하단하여 공격 범위를 좁힐 수 있다.

4. 실무 적용 시 주의사항

  1. 오탐(False Positive) 주의
    • 보안을 너무 강화하면 정상적인 사용자의 요청도 차단될 수 있다 (예: 사용자가 입력한 게시글 내용이 우연히 SQL 키워드와 겹치는 경우)
    • 처음에는 Count 모드(실제로 차단은 안 하고 기록만 남김)로 운영하여 로그를 분석한 뒤 문제가 없을 때 Block 모드로 전환하는 것이 정석적이다.
  2. 비용 관리
    • WAF는 Web ACL 개수, 규칙 개수, 그리고 처리하는 요청 수에 따라 비용이 발생한다. 트래픽이 매우 많은 서비스라면 비용 설계를 미리 해야한다.
  3. 로그 분석
    • 차단된 요청의 상세 내용은 CloudWatch Logs나 S3에 저장할 수 있다. 접속이 안 된다는 문의가 왔을 때 WAF 로그를 먼저 확인해야 할 수도 있다.

5. 백엔드 보안 계층도

  1. AWS WAF: HTTP 계층 공격 방어
  2. ALB / API Gateway: 부하 분산 및 진입점
  3. 보안 그룹 (Security Group): 네트워크 계층 방어
  4. 애플리케이션 코드: 입력값 검증, 인증/인가 로직
profile
백엔드 개발자를 목표로 공부하는 대학생

0개의 댓글