AWS WAF 설정 최적화: 보안 강화를 위한 Managed Rules 적용 가이드
AWS WAF(Web Application Firewall)는 웹 애플리케이션을 보호하는 강력한 보안 솔루션입니다. 본 포스트에서는 AWS에서 무료로 제공하는 Managed Rules를 활용하여 SQL Injection, XSS, DDoS 등으로부터 웹 애플리케이션을 보호하는 방법을 소개합니다.
1. AWS WAF 기본 개념
AWS WAF는 HTTP/S 트래픽을 검사하고 설정된 규칙에 따라 악의적인 요청을 차단하는 역할을 합니다. WAF는 CloudFront, ALB(Application Load Balancer), API Gateway 등에 적용할 수 있습니다.
주요 기능
- SQL Injection, XSS 등의 웹 공격 방어
- DDoS 및 과도한 요청 방어 (Rate-based Rule 활용)
- 악성 IP 및 봇 차단
- 관리자 페이지 보호 (
/admin
,/wp-admin
등 차단 가능)
2. AWS WAF Managed Rules 적용하기
현재 적용된 AWS WAF Rules 목록
AWS WAF의 무료 Managed Rules를 활용하여 보안을 강화할 수 있습니다. 아래는 무료로 적용 가능한 주요 Rules 목록입니다.
AWS-AWSManagedRulesAmazonIpReputationList → 악성 IP 차단 (스팸, 봇, VPN 등)
AWS-AWSManagedRulesCommonRuleSet → 일반적인 웹 공격 방어 (SQLi, XSS 등)
AWS-AWSManagedRulesKnownBadInputsRuleSet → 악성 입력 감지 및 차단
AWS-AWSManagedRulesSQLiRuleSet → SQL Injection 공격 방어 강화
AWS-AWSManagedRulesAnonymousIpList → 익명 프록시, VPN, Tor 네트워크 차단
AWS-AWSManagedRulesWindowsRuleSet → Windows 기반 공격 방어
AWS-AWSManagedRulesAdminProtectionRuleSet → 관리자 페이지 보호
위 규칙들을 적용하면 기본적인 웹 보안이 강화되며, AWS에서 지속적으로 업데이트되는 보안 정책을 활용할 수 있습니다.
3. Rate-based Rule 추가 (DDoS 방어 및 과도한 요청 차단)
Rate-based Rule을 설정하면 일정 시간 동안 특정 IP에서 과도한 요청이 발생하면 차단할 수 있습니다. 예를 들어, 5분 동안 1000개 이상의 요청을 보내는 IP를 차단하는 설정을 적용할 수 있습니다.
📌 Rate-based Rule 생성 방법
- AWS WAF 콘솔 접속 → Web ACL 선택
- Rules 탭에서 “Add Rule” 클릭
- “Rule Type”에서 “Rate-based Rule” 선택
- 설정 값 입력:
- Rate limit:
1000 requests per 5 minutes
- Action:
Block
- Rate limit:
{
"Name": "RateLimitRule",
"Priority": 10,
"Action": {
"Block": {}
},
"Statement": {
"RateBasedStatement": {
"Limit": 1000,
"AggregateKeyType": "IP"
}
},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "RateLimitRule"
}
}
이제 5분 동안 1000개 이상의 요청을 보내는 IP는 자동으로 차단됩니다.
4. WAF Rules의 Action 확인 및 “Block” 설정
기본적으로 AWS Managed Rules는 “Use rule actions” 상태로 적용되는데, 일부 Rule은 Count 모드로 설정될 수도 있습니다.
📌 각 Rule이 Count 모드인지 확인하고 Block으로 변경하는 방법
- AWS WAF → Web ACL → Rules 로 이동
- 각 Rule을 클릭하여 설정 확인
- Action이 “Count”이면 “Block”으로 변경
- 변경 후 저장
{
"Name": "SQLiRuleSet",
"Priority": 5,
"Action": {
"Block": {}
}
}
이렇게 설정하면 SQL Injection이 탐지될 경우 자동으로 차단(Block) 됩니다.
5. AWS WAF 로그 모니터링 및 테스트
설정이 정상적으로 적용되었는지 확인하려면 AWS WAF 로그 및 CloudFront 로그를 확인하는 것이 중요합니다.
📌 로그 모니터링 활성화 방법
- AWS WAF → Web ACL → Logging & Metrics로 이동
- 로그 활성화 (CloudWatch, S3, Kinesis Firehose 중 선택 가능)
- CloudFront Access Logs도 활성화하여 실제 차단된 요청을 분석
📌 테스트 방법
- SQL Injection 공격 시도 (
' OR 1=1 --
같은 페이로드 입력) - XSS 공격 테스트 (
<script>alert('XSS')</script>
입력) - 동일 IP에서 짧은 시간 내에 과도한 요청을 보내고 차단되는지 확인
🚀 결론: 현재 설정 평가 및 추가 조치
✅ 무료 Managed Rules를 활용하여 웹 애플리케이션 보안을 최적화 ✅ SQL Injection, XSS, 관리자 페이지 보호, 악성 IP 차단 등 필수 보안 적용 ✅ Rate-based Rule 설정으로 과도한 요청 차단 가능
⚡ 추가로 검토하면 좋은 설정:
- GeoMatch Rule (특정 국가 IP 차단, 유료 기능)
- 더 세부적인 WAF 정책 추가 (예: 사용자 정의 IP 차단 리스트)
- 정기적인 로그 모니터링 및 테스트 진행
이제 AWS WAF를 활용하여 강력한 보안 환경을 구축할 수 있습니다! 🚀
Leave a comment