WAF 모니터링 및 CloudWatch 설정 및 로그 지표 등을 관리할 수 있는 방법
문의 사항
안녕하세요.
AWS WAF 서비스 운영 관련하여 문의 드립니다.
DDOS 공격 발생시 모니터링 및 CloudWatch 설정 및 로그 지표등을 관리할 할 수 있는 방법에 대해 가이드를 부탁드립니다.
WAF의 DDOS 규칙은 추가된 상태로 알고 있으며 이를 통해 들어오는 DDOS 공격에 대한 모니터링과 로그 등을 분석할 수 있는 방법이면 좋겠습니다.
또한 추가로 운영하는데 권장하시는 Rule 이 있다면 같이 가이드 부탁드립니다.
추가로 필요하신 정보가 있다면 회신을 부탁드리며 특이사항에 대해서는 회신을 부탁드립니다.
감사합니다.
답변
안녕하세요.
현재 셋팅의 경우 block 이 아니라 count 로 되어 있어 실제 요청에 대한 차단보다는 공격성에 대한 count 를 확인하시려는 것으로 보입니다.
만약 실제 적으로 차단을 원하신다면 count 설정을 block 으로 변경하셔야 합니다.
모니터링 방법의 경우 WAF 자체의 대시보드와 cloudwatch 의 경보 생성을 통한 노티를 고려할 수 있을 것으로 보입니다.
WAF 의 대시보드 자체는 Cloudwatch 대시보드를 가져다 붙여 놓은 구조이기 때문에 어디서 모니터링을 하셔도 상관 없습니다.
다만 이를 상시 보고 있을 수 없기 때문에 Cloudwatch 의 경보 생성 기능을 통해 특정 Rule set 이 count 되거나 하는 것을 기준으로 경보를 발생 시켜 SNS 를 통한 노티 또는 ASG 를 통한 증설 등의 작업을 진행하실 수 있습니다.
Cloudwatch 경보 관련 docs
https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/Edit-CloudWatch-Alarm.html
https://docs.aws.amazon.com/ko_kr/waf/latest/developerguide/monitoring-cloudwatch.html
이 후 로그 분석 관련하여서는 S3에 저장된 로그를 athena 를 통해 분석하는 방법이 있습니다.
현재 waf 로그를 cloudwatch 의 log insignt 에 적재하시는 것으로 확인되는데 이는 로그 분석 시에 row 갯수 제한(1000개) 등으로 인해 아쉬운 점이 있습니다.
따라서 적재 자체를 S3로 변경하시거나 log insight -> kinesis -> S3 연동 등을 통해 athena 를 사용하여 분석하시는 것을 제안 드립니다.
S3에 waf 로그를 적재한 후 참조 드리는 링크를 따라 table 생성 및 쿼리를 통해 로그 취합 및 분석에 있어 도움을 얻을 수 있습니다.
-> https://docs.aws.amazon.com/ko_kr/athena/latest/ug/waf-logs.html
추가적으로 DDoS 를 방지하기에 좋은 Rule Set 의 경우
ALB 에 추가적으로 WAF 를 셋팅, host header 를 검사하여 실제 서비스 도메인으로 들어온 요청인지, 특정 refer 를 타고 들어왔는지 등을 검사하는 정책을 custom 으로 적용하는 것을 고려할 수 있습니다.
WAF 대시보드를 cloudwatch 로 보낸 뒤 소스 편집 메뉴 진입, metric 항목만 복사-붙여넣기 과정을 통해 임의의 메트릭 셋팅이 가능합니다.
[waf dashboard]
[cloudwatch dashboard]
[dashboard source]
[cloudwatch 경보 생성]
소스 예시
{
"metrics": [
[ "AWS/WAFV2", "AllowedRequests", "Rule", "kyy-ipset", "WebACL", "kyy-test-waf" ],
[ "...", "ALL", ".", "." ],
[ ".", "BlockedRequests", ".", "kyy-test-waf", ".", "." ]
],
"view": "timeSeries",
"stacked": false,
"period": 300,
"region": "us-east-1",
"stat": "Average"
}
소스 적용 후 업데이트를 눌러주시면 메트릭이 적용 됩니다.
추가로 문의 주신 추가 Rule Set 의 경우 일반적인 웹 서비스의 취약점 보강을 위해 AWS managed rule groups - free rule groups - Core rule set 적용을 제안 드립니다.
감사합니다.