AWS WAF : 웹 애플리케이션 보안을 위한 필수 솔루션

현대의 웹 애플리케이션은 인터넷에 연결된 순간부터 다양한 보안 위협에 노출됩니다. 사이버 공격의 빈도와 정교함이 증가하면서, 기업은 서비스 가용성을 유지하고, 데이터를 안전하게 보호하며, 고객의 신뢰를 확보하기 위한 보안 조치를 더욱 강화해야 합니다. 특히 DDoS(Distributed Denial of Service) 공격이나 웹 애플리케이션에 대한 취약점 공격은 심각한 비즈니스 손실을 초래할 수 있습니다.

Amazon Web Services(AWS)는 이러한 보안 요구에 대응하기 위해 AWS WAF(Web Application Firewall) 라는 강력한 보안 솔루션을 제공합니다. AWS WAF는 웹 애플리케이션을 다양한 웹 공격으로부터 보호하고 역할을 담당합니다.

AWS WAF를 활용하여 실질적으로 웹 애플리케이션을 보호하는 방법을 단계별로 따라 해보겠습니다. Hands-on 실습을 통해 두 솔루션의 기본적인 설정 방법과 주요 기능을 이해하고, 실시간으로 위협에 대응할 수 있는 보안 환경을 구축하는 세션을 진행하겠습니다.

실습 목표
  • AWS WAF 설정: 커스텀 규칙을 사용하여 SQL 인젝션과 같은 웹 공격을 차단하는 방법을 배웁니다.

AWS WAF 설정

WAF는 크게 웹 ACL, 규칙, 규칙 그룹이라는 3가지 요소로 구성돼 있습니다. 우선, 웹 ACL은 AWS WAF의 핵심 구성 요소로, 트래픽을 필터링하고 관리하는 역할을 합니다. 웹 ACL은 웹 애플리케이션에 대한 요청을 평가하고, 이를 기반으로 허용(Allow), 차단(Block), 모니터링(Count) 등의 동작을 수행합니다.

이번 세션에서는 생성된 ALB 에 WAF 를 Integration 해줄 것으로, Regional resources 를 선택하고 Region 은 사용중인 Region으로 선택하고, 규칙, 규칙 우선순위, 메트릭 등의 설정은 건너뛰고 웹 ACL을 생성해줍니다.

Web ACLs 생성(waf-an2-ntw-com-acl)
     > Options : Enable sampled requests

웹 ACLs 생성이 되었으면, IP sets 를 생성해 줍니다.

IP sets 생성(waf-an2-ntw-com-ipset)     > [WAF] – [IP sets] – [Create IP set] 선택
IP sets 생성(waf-an2-ntw-com-ipset)
    > Region : Asia Pacific (Seoul)
    > IP addresses : 대상 IP 입력

규칙 그룹도 생성해 줍니다.

Rule groups 생성(waf-an2-ntw-com-rg)
    > [WAF] – [Rule groups] – [Create rule group] 선택
Rule groups 생성(waf-an2-ntw-com-rg) 
   > Region : Asia Pacific (Seoul)
Rule groups 생성(waf-an2-ntw-com-rg)
    > Rules 추가 – [Add rule]

규칙을 생성해줍니다.

Rule 생성(waf-an2-ntw-com-header)     > Rules 추가 – [Add rule]
Rule 생성(waf-an2-ntw-com-header)
    > Inspect : All headers
    > Match type : Size equals
    > Size in bytes : 1700
    > Oversize handling : Match – Treat the web request as matching the rule statement
Rule 생성(waf-an2-ntw-com-header)
    > Action : Count
Rule 생성(waf-an2-ntw-com-uri)
    > Inspect : URI path
    > Match type : Size equals
    > Size in bytes : 1024
Rule 생성(waf-an2-ntw-com-uri)
    > Action : Count

규칙과 규칙 그룹 생성이 완료 되면, 정상적으로 생성이 되었는지 확인해줍니다.

Rule groups 생성 확인(waf-an2-ntw-com-rg)
    > Rules 추가 확인(waf-an2-ntw-com-header, waf-an2-ntw-com-uri)
Rule groups 생성 확인(waf-an2-ntw-com-rg)
    > [Create rule group] 선택

CloudWatch 로그 그룹도 생성하여 WAF 관련한 CloudWatch 로그도 쌓을 수 있도록 합니다.

CloudWatch Log group 생성(aws-waf-logs-cw-ntw-log-group)
    > [CloudWatch] – [Log group] – [Create Log group] 선택
    > Retention setting : 1 month (30 days)
CloudWatch Log group 생성 확인(aws-waf-logs-cw-ntw-log-group)

Cloudwatch 로그 설정이 완료되었으면, 추가적인 규칙 설정을 위해 계속 진행해줍니다.

Web ACLs 구성 – [Rules]
    > [Rules] – [Add rules] – [Add my own rules and rule groups] 선택
Web ACLs 구성 – [Rules]
    > Rule type : Rule group
    > Rule group : waf-an2-ntw-com-rg
Web ACLs 구성 – [Rules]
    > Rule type : IP set
    > IP set : waf-an2-ntw-com-ipset
    > Action : Count

어느 정도 Rule Group 과 Rule 추가가 완료 되었으면, Rule Group 과 Rule 과 Group의 세부 항목들을 설정해주는 작업을 진행합니다.

Web ACLs 구성 – [Rules]
    > [Rules] – [Add rules] – [Add managed rule groups] 선택
Web ACLs 구성 – [Rules]
    > [AWS managed rule groups] – [Admin protection] – [Edit] 선택
Web ACLs 구성 – [Rules]
    > [Admin protection rules] – [AdminProtection_URIPATH] – [Override to Count] 선택
Web ACLs 구성 – [Rules]
    > [AWS managed rule groups] – [Core rule set] – [Edit] 선택
    > [Core rule set rules] – [Override all rule actions] – [Override to Count] 선택
Web ACLs 구성 – [Rules]
    > [AWS managed rule groups] – [Known bad inputs] – [Edit] 선택
    > [Known bad inputs rules] – [Override all rule actions] – [Override to Count] 선택
Web ACLs 구성 – [Rules]
    > [AWS managed rule groups] – [SQL database] – [Edit] 선택
    > [SQL database rules] – [Override all rule actions] – [Override to Count] 선택
Web ACLs 구성 – [Rules]
    > managed rule groups 확인
       – Admin protection
       – Core rule set
       – Known bad inputs
       – SQL database

모든 설정이 완료되었으면 생성한 Rule과 Rule Group 등을 확인해 줍니다.

확인이 완료되면, WAF 와 통합할 Reource를 선택해 줍니다.

Web ACLs 구성 – [Associated AWS resources]
    > [Add AWS resources] – [Application Load Balancer] – [대상 LB] 선택
Web ACLs 구성 – [Logging and metrics]
    > [Logging] – [Enable] 선택
Web ACLs 구성 – [Logging and metrics]
    > Logging destination : CloudWatch Logs log group
    > Amazon CloudWatch Logs log group : aws-waf-logs-cw-ntw-log-group 선택
Web ACLs 구성 – [Logging and metrics]
    > Logging 구성 확인
Web ACLs 구성 후 확인
    > [Traffic overview] 확인
Web ACLs 구성 후 확인
    > [Sampled requests] 확인

오늘 소개한 AWS WAF 솔루션을 활용하여 웹 애플리케이션 보안을 강화하는 방법을 함께 알아보았습니다. 손쉬운 설정으로 복잡한 보안 요구 사항에 대응하고, 실시간으로 발생할 수 있는 위협에 능동적으로 대처할 수 있는 환경을 구축하는 것이 핵심입니다. AWS WAF는 SQL 인젝션이나 XSS와 같은 취약점 공격을 차단하여 애플리케이션의 가용성을 보장하고 사용자 데이터를 안전하게 보호하는 데 중요한 역할을 합니다. 기업이 나날이 정교해지는 사이버 위협에 선제적으로 대응하기 위해 AWS WAF와 같은 솔루션을 도입하고 적극 활용한다면, 신뢰받는 서비스 환경을 유지할 수 있을 것입니다.

본 포스팅을 통해 배운 내용을 토대로 웹 애플리케이션 보안을 강화하는 첫걸음을 내디뎌 보세요! 감사합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다