- AWS WAF에서 제공하는 Rule Visual Editor를 사용하면 간편하지만 복잡한 정책을 만들 때 JSON editor를 사용한다.
- 혹은 AND 조건과 OR 조건의 중복 적용관련해서도 JSON으로 가능하다.
기본 WAF 규칙으로 생성 가능한 조합
옵션 1. 특정 조건 매칭
옵션 2. 특정 조건이 아닌 경우 매칭
옵션 3. 특정 조건과(AND) 다른 특정 조건의 조합 매칭
옵션 4. 특정 조건과(AND) 특정 조건이 아닌(NOT) 조합의 매칭
옵션 5. 특정 조건이나(OR) 다른 조건의 조합 매팅
옵션 6. 특정 조건이나(OR) 특정 조건이 아닌(NOT) 조합의 매칭
=> AND, OR, AND+NOT, OR+NOT (O)
=> AND+OR, AND+OR+NOT (X)
하나의 가정 상황을 두고 만들어보자.
한국에서 공격 트래픽을 발생함
하지만 한국에서는 정상 트래픽도 있기에 정상 트래픽은 허용해야 함
한국에서 공격은 Request body가 비정상적으로 커서 100byte 이상이거나 header "x-value"의 값이 "bot"이나 "BOT"으로 들어옴
규칙 생성
1) AWS WAF -> WebACLs 접속 -> 해당 ACLs선택
2) Rules -> Add rules -> Add my own reules and rule groups
3) Rule builder -> Rule JSON editor
{
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "JSONRule"
},
"Statement": {
"AndStatement": {
"Statements": [
{
"GeoMatchStatement": {
"CountryCodes": [
"KR"
]
}
},
{
"OrStatement": {
"Statements": [
{
"SizeConstraintStatement": {
"FieldToMatch": {
"Body": {}
},
"ComparisonOperator": "GT",
"Size": 100,
"TextTransformations": [
{
"Priority": 0,
"Type": "NONE"
}
]
}
},
{
"ByteMatchStatement": {
"SearchString": "bot",
"FieldToMatch": {
"SingleHeader": {
"Name": "x-value"
}
},
"TextTransformations": [
{
"Priority": 0,
"Type": "LOWERCASE"
}
],
"PositionalConstraint": "EXACTLY"
}
}
]
}
}
]
}
}
}
4) Add rule -> Save
정상 테스트 코드
# Blocked (header string match condition)
curl -i -H "x-value: bot" $ALB_URL
# Blocked (request body size condition)
curl -i -X POST -d "Amazon":"30","is":"12374934237","known":"Target 3","as":null,"one":"Configuration Deneme 3","of":null,"the":"Configuration Deneme 3","most":0,"customer-centric":3,"companies":true $ALB_URL
'Cloud Infra Architecture (AWS) > AWS Build' 카테고리의 다른 글
[AWS CloudWatch] 로그 확인 및 분석 [T] (0) | 2024.11.01 |
---|---|
[AWS WAF] AWS WAF Label 활용 하여 규칙 생성 (JSON 기반 규칙) [T] (0) | 2024.11.01 |
[AWS WAF] AWS WAF 정책 설정 및 종류 (AWS WAF 관리형 규칙) [T] (0) | 2024.11.01 |
[AWS WAF] AWS WAF GET Flooding 방어 정책 만들기 [T] (0) | 2024.11.01 |
[AWS WAF] AWS WAF 무차별 입력 공격 (Brute Force Attack) 방어 정책 만들기 [T] (0) | 2024.11.01 |