WAF 규칙이 포함된 트래픽 필터 규칙 traffic-filter-rules-including-waf-rules
트래픽 필터 규칙은 CDN 계층에서 요청을 차단하거나 허용하며, 이는 다음과 같은 시나리오에서 유용합니다.
- 새 사이트가 가동되기 전에 특정 도메인에 대한 액세스를 내부 회사 트래픽으로 제한합니다.
- 부피 DoS 공격에 덜 취약하려면 비율 제한을 설정합니다.
- 악의적인 것으로 알려진 IP 주소가 페이지를 타깃팅하지 못하도록 합니다.
대부분의 트래픽 필터 규칙은 모든 AEM as a Cloud Service Sites 및 Forms 고객이 사용할 수 있습니다. 표준 트래픽 필터 규칙으로서, 요청 속성(IP, 호스트 이름, 경로 및 사용자 에이전트)에서 작동합니다. 표준 트래픽 필터 규칙에는 트래픽 스파이크를 방지하기 위한 속도 제한 규칙이 포함되어 있습니다.
트래픽 필터 규칙의 하위 범주를 사용하려면 확장 보안(이전 명칭: WAF-DDoS Protection) 또는 확장 보안 for Healthcare(이전 명칭: Enhanced Security) 라이센스가 필요합니다. 이러한 강력한 규칙을 WAF(Web Application Firewall) 트래픽 필터 규칙(또는 WAF 규칙)이라고 하며, 이 문서의 뒷부분에서 설명하는 WAF 플래그에 액세스할 수 있습니다.
트래픽 필터 규칙은 Cloud Manager 구성 파이프라인을 통해 개발, 스테이징, 프로덕션 환경 유형에 배포할 수 있습니다. 구성 파일은 명령줄 도구를 사용하여 신속한 개발 환경(RDE)에 배포될 수 있습니다.
이 기능에 대한 전문 지식을 빠르게 얻으려면 자습서를 완료하십시오.
이 문서 구성 방법 how-organized
이 문서는 다음 섹션으로 구성되어 있습니다.
- 트래픽 보호 개요: 악성 트래픽으로부터 사용자를 보호하는 방법에 대해 알아보십시오.
- 규칙을 구성하는 프로세스 제안: 웹 사이트 보호를 위한 높은 수준의 방법론을 읽어 보십시오.
- 설정: 고급 WAF 규칙을 포함하여 트래픽 필터 규칙을 설정, 구성 및 배포하는 방법을 알아봅니다.
- 규칙 구문:
cdn.yaml구성 파일에서 트래픽 필터 규칙을 선언하는 방법에 대해 알아보십시오. 여기에는 모든 Sites 및 Forms 고객이 사용할 수 있는 트래픽 필터 규칙과 함께 해당 기능에 라이선스를 부여하는 고객을 위한 WAF 규칙의 하위 카테고리가 모두 포함되어 있습니다. - 규칙 예: 시작하려면 선언된 규칙의 예를 참조하십시오.
- 속도 제한 규칙: 대규모 공격으로부터 사이트를 보호하려면 속도 제한 규칙을 사용하는 방법에 대해 알아보십시오
- 트래픽 필터 규칙 경고: 규칙이 트리거될 때 알림을 받도록 경고를 구성합니다.
- 원본 경고의 기본 트래픽 스파이크: DDoS 공격을 암시하는 원본 트래픽이 급증하면 알림을 받습니다.
- CDN 로그: 선언된 규칙과 WAF 플래그가 트래픽과 일치하는지 확인하십시오.
- 대시보드 도구: CDN 로그를 분석하여 새로운 트래픽 필터 규칙을 구상해 보십시오.
- 권장 스타터 규칙: 규칙 집합을 시작하는 데 필요한 규칙입니다.
- 자습서: 대시보드 도구를 사용하여 적절한 규칙을 선언하는 방법을 포함하여 기능에 대한 정보입니다.
트래픽 보호 개요 traffic-protection-overview
오늘날 디지털 환경에서 악성 트래픽은 항상 우리를 위협하는 존재입니다. Adobe는 위험의 심각성을 인지하고 고객 애플리케이션을 보호하고 공격 시 이를 완화하기 위한 여러 가지 방법을 제공합니다.
Edge에서 Adobe Managed CDN은 대규모 및 반사/증폭 공격(레이어 3 및 4)을 포함하여 네트워크 레이어의 DoS 공격을 흡수합니다.
기본적으로 Adobe는 특정 임계값을 초과하는 높은 수준의 트래픽 버스트로 인해 발생하는 성능 저하를 방지하기 위한 조치를 취합니다. DoS 공격이 사이트 가용성에 영향을 미치는 경우 Adobe 운영 팀에 경고하여 완화 조치를 취하도록 합니다.
고객은 컨텐츠 전달 흐름의 다양한 계층에서 규칙을 구성하여 애플리케이션 계층 공격(레이어 7)을 완화하기 위한 사전 조치를 취합니다.
예를 들어 Apache 계층에서 고객은 특정 콘텐츠에 대한 액세스를 제한하도록 Dispatcher 모듈 또는 ModSecurity을(를) 구성합니다.
이 문서에서 설명하는 대로 트래픽 필터 규칙은 Adobe의 config 파이프라인을 사용하여 Cloud Manager Managed CDN에 배포됩니다. 표준 트래픽 필터 규칙(IP, 경로, 헤더, 속도 제한)을 초과하면 고객이 WAF 규칙을 라이선스합니다.
제안된 프로세스 suggested-process
다음은 올바른 트래픽 필터 규칙을 결정하기 위한 고급 권장 종단 간 프로세스입니다.
-
설정 섹션의 설명에 따라 비프로덕션 및 프로덕션 구성 파이프라인을 구성하십시오.
-
WAF 트래픽 필터 규칙에 라이선스를 부여한 고객은 Cloud Manager에서 이를 사용할 수 있습니다.
note important IMPORTANT WAF 규칙 에 라이선스를 부여하면 해당 규칙이 활성화되지 않습니다. 이 기능은 Cloud Manager의 보안 탭에서 WAF-DDOS 보호를 확인할 때까지 비활성 상태로 유지됩니다. 이 기능을 사용하려면 프로덕션 프로그램 만들기 또는 프로그램 편집을 참조하세요. -
라이선스가 부여된 WAF 규칙을 비롯한 트래픽 필터 규칙을 사용하는 방법을 이해하려면 자습서를 읽고 완료하십시오. 튜토리얼은 개발 환경에 규칙을 배포하고, 악성 트래픽을 시뮬레이션하고, CDN 로그를 다운로드하고, 대시보드 도구로 로그를 분석하는 과정에 대해 소개합니다.
-
권장 스타터 규칙을
cdn.yaml에 복사하고 로그 모드에서 규칙 중 일부를 로그 모드로 설정하여 프로덕션 환경에 배포하십시오. -
일부 트래픽을 수집한 후 일치 항목이 있는지 확인하려면 대시보드 도구를 사용하여 결과를 분석하십시오. 긍정 오류(false positive)를 확인하고 필요한 조정을 수행하여 궁극적으로 블록 모드에서 모든 시작 규칙을 활성화합니다.
-
필요한 경우, CDN 로그 분석 기반의 사용자 정의 규칙을 추가하여 먼저 개발 환경에서 시뮬레이션된 트래픽으로 테스트한 후 로그 모드에서 스테이징 및 프로덕션 환경에 배포한 다음 차단 모드에서 배포하십시오.
-
트래픽을 지속적으로 모니터링하면서 위협 환경이 변함에 따라 규칙을 변경하십시오.
설정 setup
-
WAF 규칙을 포함한 트래픽 필터 규칙 세트로
cdn.yaml파일을 만듭니다. 예:code language-none kind: "CDN" version: "1" data: trafficFilters: rules: # Block simple path - name: block-path when: allOf: - reqProperty: tier matches: "author|publish" - reqProperty: path equals: '/block/me' action: blockdata노드 위의 속성에 대한 설명은 구성 파이프라인 사용하기를 참조하십시오.kind속성 값은 콘텐츠 전송 네트워크로 설정하고 버전은1로 설정해야 합니다. -
WAF 규칙에 라이선스가 부여된 경우 반드시 Cloud Manager에서 기능을 활성화해야 합니다. WAF 규칙 라이선싱은 규칙을 활성화하지 않습니다. 이 기능은 Cloud Manager의 보안 탭에서 WAF-DDOS 보호를 확인할 때까지 비활성 상태로 유지됩니다.
다음에 설명된 대로 새 프로그램 시나리오와 기존 프로그램 시나리오 모두에 대한 기능을 활성화합니다.
-
새 프로그램에서 WAF을 구성하려면 프로덕션 프로그램을 만들 때 보안 탭에서 WAF-DDOS 보호 확인란을 선택하십시오.
-
기존 프로그램에서 WAF을 구성하려면 프로그램을 편집하십시오. 보안 탭에서 WAF-DDOS 보호 옵션을 선택하여 기능을 사용하도록 설정하거나 선택을 취소하여 기능을 사용하지 않도록 설정하십시오. 언제든지 이 설정을 변경할 수 있습니다.
활성화한 후 기능이 활성인지 확인하려면 트래픽이 사이트로 흐르는 동안 CDN 로그를 검사하십시오.
waf특성이 포함된rules속성이 포함된 로그 항목을 찾습니다. 예:"rules": "*waf=*"이 속성은 WAF이 활성화되면 WAF 규칙이 배포되기 전에 표시됩니다.
-
-
구성 파이프라인 문서에 설명된 대로 Cloud Manager에서 구성 파이프라인을 만듭니다. 파이프라인이 아래 어딘가에
cdn.yaml파일이 있는 최상위config폴더를 참조합니다. 구성 파이프라인 사용을(를) 참조하십시오.
트래픽 필터 규칙 구문 rules-syntax
IP, 사용자 에이전트, 헤더, 호스트 이름, 지역 또는 URL과 같은 패턴을 일치시키려면 트래픽 필터 규칙을 구성할 수 있습니다.
의료 서비스에 대한 확장 보안 또는 확장 보안 라이선스가 있는 고객은 WAF 플래그를 참조하는 WAF 규칙을(를) 구성합니다.
다음은 WAF 규칙도 포함하는 트래픽 필터 규칙 세트의 예입니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS]
cdn.yaml 파일의 트래픽 필터 규칙 형식은 아래에서 설명합니다. 이후 섹션 및 속도 제한 규칙에 대한 별도의 섹션에서 기타 예를 참조하십시오.
stringCondition{ <getter>: <value>, <predicate>: <value> }getter, 조건자 및 여러 조건을 결합하는 방법은 CDN에서 트래픽 구성에서 조건 구조를 참조하십시오.
ActionRateLimit예제와 함께 rateLimit 구문을 설명하는 별도의 섹션이 아래에 추가로 있습니다.
작업 구조 action-structure
action은 작업(허용, 차단 또는 로그)을 지정하는 문자열이거나 작업 유형(허용, 차단 또는 로그)과 wafFlags 및/또는 상태와 같은 옵션으로 구성된 오브젝트일 수 있습니다.
액션 유형
액션의 실행 순서를 반영하도록 정렬되어 있는 다음 테이블의 액션 유형에 따라 액션의 우선순위를 지정합니다.
wafFlags (선택 사항), alert (선택 사항)경고가 지정된 경우 규칙이 5분 동안 10번 트리거되면 액션 센터 알림이 전송됩니다. 특정 규칙에 대해 경고가 트리거되면 다음 날(UTC)까지 다시 실행되지 않습니다.
status, wafFlags (선택 사항이며 상호 배타적), alert (선택 사항)경고가 지정된 경우 규칙이 5분 동안 10번 트리거되면 액션 센터 알림이 전송됩니다. 특정 규칙에 대해 경고가 트리거되면 다음 날(UTC)까지 다시 실행되지 않습니다.
wafFlags (선택 사항), alert (선택 사항)경고가 지정된 경우 규칙이 5분 동안 10번 트리거되면 액션 센터 알림이 전송됩니다. 특정 규칙에 대해 경고가 트리거되면 다음 날(UTC)까지 다시 실행되지 않습니다.
WAF 플래그 목록 waf-flags-list
라이선스 가능한 WAF 트래픽 필터 규칙에 사용된 wafFlags 속성은 다음을 참조합니다.
악의적인 트래픽
BAD-IP 플래그와 “논리적으로 AND 연산”을 수행하므로 ATTACK과 BAD-IP가 모두 일치하는 경우 요청에 플래그가 지정됩니다. 이 플래그를 효과적으로 사용하는 방법에 대해서는 권장 WAF 규칙 섹션을 참조하십시오./bin/을 제외한 명령 실행/bin 긍정 오류(false positive)를 비활성화하는 동안 CMDEXE와 동일한 수준의 보호를 제공합니다.CVE-<CVE Number> 플래그와 결합됩니다. Adobe에서 보호하는 CVE에 대한 자세한 내용은 Adobe에 문의하십시오.의심스러운 트래픽
/foo/./bar는 /foo/bar로 정규화됨).SANS 및 TORNODE과 같은 데이터 세트에 포함되어 있거나 WAF에서 이전에 악성 동작을 감지한 것을 기반으로 악성으로 알려진 IP 주소에서 발생한 요청을 식별합니다.Content-Encoding: gzip 요청 헤더가 지정되고 POST 본문이 일반 텍스트가 아닌 경우입니다..htaccess 파일 또는 구성 파일 등으로서, 본질적으로 기밀입니다.기타 트래픽
고려 사항 considerations
-
충돌하는 두 규칙이 만들어졌을 때는 항상 허용 규칙이 차단 규칙보다 우선합니다. 예를 들어 특정 경로를 차단하는 규칙과 하나의 특정 IP 주소를 허용하는 규칙을 만드는 경우 차단된 경로의 해당 IP 주소에서의 요청이 허용됩니다.
-
규칙이 일치하여 차단되면 CDN은
406반환 코드로 응답합니다. -
구성 파일에는 git 저장소에 액세스할 수 있는 모든 사람이 읽을 수 있으므로 비밀이 포함되지 않습니다.
-
Cloud Manager에 정의된 IP 허용 목록은 트래픽 필터 규칙보다 우선합니다.
-
WAF 규칙 일치는 히트가 아닌 CDN 실패 및 통과에 대한 CDN 로그에만 나타납니다.
규칙 예 examples
몇 가지 규칙 예는 다음과 같습니다. 속도 제한 규칙의 예는 아래쪽의 속도 제한 섹션을 참조하십시오.
예 1
다음 규칙은 IP192.168.1.1에서 오는 요청을 차단합니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "block-request-from-ip"
when: { reqProperty: clientIp, equals: "192.168.1.1" }
action:
type: block
예 2
이 규칙은 Chrome이 포함된 사용자 에이전트를 사용하여 게시할 때 /helloworld 경로에 대한 요청을 차단합니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "block-request-from-chrome-on-path-helloworld-for-publish-tier"
when:
allOf:
- { reqProperty: path, equals: /helloworld }
- { reqProperty: tier, equals: publish }
- { reqHeader: user-agent, matches: '.*Chrome.*' }
action:
type: block
예 3
다음 규칙은 쿼리 매개변수 foo가 포함된 게시 중인 요청을 차단하지만 IP 192.168.1.1에서 오는 모든 요청은 허용합니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "block-request-that-contains-query-parameter-foo"
when:
allOf:
- { queryParam: url-param, equals: foo }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "allow-all-requests-from-ip"
when: { reqProperty: clientIp, equals: 192.168.1.1 }
action:
type: allow
예 4
다음 규칙은 게시 중인 /block-me 경로에 대한 요청을 차단하고 SQLI 또는 XSS 패턴과 일치하는 모든 요청을 차단합니다. 이 예에는 SQLI 및 XSS WAF 플래그를 참조하는 WAF 트래픽 필터 규칙이 포함되어 있으므로 별도의 라이선스가 필요합니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS]
예 5
이 규칙은 OFAC 국가에 대한 액세스를 차단합니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: block-ofac-countries
when:
allOf:
- reqProperty: tier
matches: "author|publish"
- reqProperty: clientCountry
in:
- SY
- BY
- MM
- KP
- IQ
- CD
- SD
- IR
- LR
- ZW
- CU
- CI
action: block
비율 제한 규칙
특정 조건에 따라 트래픽이 수신 요청의 특정 속도를 초과하는 경우 트래픽을 차단하는 것이 바람직한 경우가 있습니다. rateLimit 속성의 값을 설정하면 규칙 조건과 일치하는 요청의 속도가 제한됩니다.
속도 제한 규칙은 WAF 플래그를 참조할 수 없습니다. 해당 플래그는 모든 Sites 및 Forms 고객이 사용할 수 있습니다.
속도 제한은 CDN POP당 계산됩니다. 예를 들어 몬트리올, 마이애미, 더블린의 POP에서 각각 초당 요청 80, 90, 120건의 트래픽 속도를 경험한다고 가정해 보겠습니다. 속도 제한 규칙은 100으로 제한되어 있습니다. 이 경우, 더블린으로의 트래픽만 속도가 제한됩니다.
속도 제한은 에지에 도달하는 트래픽, 원본에 도달하는 트래픽 또는 오류 수를 기준으로 평가됩니다.
rateLimit 구조 ratelimit-structure
예 ratelimiting-examples
예 1
이 규칙은 지난 10초 동안 평균 60req/sec(CDN POP당)를 초과하는 경우 5분 동안 클라이언트를 차단합니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: limit-requests-client-ip
when:
reqProperty: tier
matches: "author|publish"
rateLimit:
limit: 60
window: 10
penalty: 300
count: all
groupBy:
- reqProperty: clientIp
action: block
예 2
10초 기간에서 초당 원본에 대한 요청(CDN POP 기준)이 평균 100개를 초과하는 경우 60초 동안 경로/중요/리소스에 대한 요청을 차단합니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: rate-limit-example
when:
allOf:
- { reqProperty: path, equals: /critical/resource }
- { reqProperty: tier, equals: publish }
action:
type: block
rateLimit: { limit: 100, window: 10, penalty: 60, count: fetches }
고급 시나리오에 대한 추가 코드 조각은 일반적인 시나리오에 대한 CDN 구성 조각 문서를 참조하십시오.
CVE 규칙 cve-rules
WAF에 라이센스가 부여되면 Adobe은 알려진 많은 CVE(일반 취약점 및 노출)로부터 보호하기 위해 차단 규칙을 자동으로 적용하고 검색 후 바로 새로운 CVE가 추가됩니다. 고객이 CVE 규칙 자체를 구성하지 않습니다.
트래픽 요청이 CVE와 일치하는 경우 해당 CDN 로그 항목에 표시됩니다.
특정 CVE에 대한 질문이 있거나 조직에서 비활성화하려는 특정 CVE 규칙이 있는 경우 Adobe 지원에 문의하십시오.
트래픽 필터 규칙 경고 traffic-filter-rules-alerts
5분 내에 10번 트리거되면 Actions Center 알림을 보내도록 규칙을 구성할 수 있습니다. 이러한 규칙은 특정 트래픽 패턴이 발생할 때 경고를 보내므로 필요한 조치를 취할 수 있습니다. 특정 규칙에 대해 경고가 트리거되면 다음 날(UTC)까지 다시 트리거되지 않습니다.
이메일 수신에 필요한 알림 프로필을 설정하는 방법을 포함하여 액션 센터에 대해 자세히 알아보십시오.
모든 작업 유형(허용, 차단, 로그)에 대한 작업 노드에 경고 속성을 적용할 수 있습니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
alert: true
원본 경고의 기본 트래픽 스파이크 traffic-spike-at-origin-alert
작업 센터 전자 메일 알림은 동일한 IP 주소의 높은 트래픽이 원점에 도달하면 알림을 보내 DDoS 공격을 제안합니다.
이 임계값이 충족되면 Adobe은 해당 IP 주소에서 트래픽을 차단합니다. 비율 제한 트래픽 필터 규칙을 구성하는 등 원본을 보호하기 위한 추가 조치를 취하십시오. 자세한 내용은 트래픽 규칙을 사용하여 DoS 및 DDoS 공격 차단 자습서를 참조하십시오.
시스템은 기본적으로 이 경고를 활성화하지만 false로 설정된 defaultTrafficAlerts 속성을 사용하여 비활성화할 수 있습니다. 경고가 트리거되면 다음 날(UTC)까지 다시 트리거되지 않습니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
defaultTrafficAlerts: false
CDN 로그 cdn-logs
AEM as a Cloud Service에서 제공하는 CDN 로그 액세스는 캐시 적중률 최적화, 트래픽 필터 규칙 구성을 포함한 사용 사례에 유용합니다. CDN 로그는 Cloud Manager에서 작성자 또는 게시 서비스를 선택할 때 로그 다운로드 대화 상자에 나타납니다.
CDN 로그가 최대 5분 지연됩니다.
rules 속성은 일치되는 트래픽 필터 규칙에 대해 설명하고 패턴은 다음과 같습니다.
"rules": "match=<matching-customer-named-rules-that-are-matched>,waf=<matching-WAF-rules>,action=<action_type>"
예:
"rules": "match=Block-Traffic-under-private-folder,Enable-SQL-injection-everywhere,waf="SQLI,SANS",action=block"
규칙은 다음의 방식으로 진행됩니다.
- 고객이 선언한 일치하는 모든 규칙의 이름이
match속성에 나열됩니다. action속성은 규칙의 차단, 허용 또는 로깅 여부를 결정합니다.- WAF에 라이선스가 부여되어 WAF가 활성화되면
waf속성은 감지된 모든 WAF 플래그(예: SQLI)를 나열합니다. 이 동작은 WAF 플래그가 모든 규칙에 나열되었는지 여부에 관계없이 적용됩니다. 이 로깅은 선언할 잠재적인 새 규칙에 insight을 제공하기 위한 것입니다. - 일치하는 고객이 선언한 규칙과 WAF 규칙이 없는 경우
rules속성이 비어 있습니다.
앞서 설명한 것처럼 WAF 규칙 일치는 히트가 아닌 CDN 실패 및 통과에 대한 CDN 로그에만 나타납니다.
아래 예에서는 샘플 cdn.yaml과 로그 항목 두 개를 보여 줍니다.
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
- name: "path-rule"
when: { reqProperty: path, equals: /block-me }
action: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS ]
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"rid": "974e67f6",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"host": "example.com",
"url": "/block-me",
"method": "GET",
"res_ctype": "",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=path-rule,action=blocked"
}
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"rid": "974e67f6",
"host": "example.com",
"url": "/?sqli=%27%29%20UNION%20ALL%20SELECT%20NULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL--%20fAPK",
"method": "GET",
"res_ctype": "image/png",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked"
}
로그 형식 cdn-log-format
다음은 CDN 로그에 사용되는 필드 이름 목록과 간단한 설명입니다.
또한 일치에 따라 차단되었는지 여부도 나타냅니다.
예: “
match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked”일치하는 규칙이 없으면 비어 있습니다.
대시보드 도구 dashboard-tooling
Adobe는 Cloud Manager를 통해 다운로드한 CDN 로그를 수집하기 위해 대시보드 도구를 컴퓨터에 다운로드하는 메커니즘을 제공합니다. 트래픽을 분석하고 WAF 규칙을 포함하여 선언할 적절한 트래픽 필터 규칙을 결정하는 데 도움이 되도록 하려면 이 도구를 사용합니다.
AEMCS-CDN-Log-Analysis-Tooling GitHub 저장소에서 바로 대시보드 도구를 복제할 수 있습니다.
튜토리얼을 통해 대시보드 도구 사용법에 대한 구체적인 지침을 확인할 수 있습니다.
권장 시작 규칙 recommended-starter-rules
Adobe에서는 아래의 트래픽 필터 규칙부터 시작하여 시간이 지남에 따라 정제화하는 것을 제안합니다. 표준 규칙은(는) Sites 또는 Forms 라이선스에서 사용할 수 있으며, WAF 규칙에는 확장 보안(이전의 WAF-DDoS Protection) 또는 확장 보안 for Healthcare(이전의 향상된 보안) 라이선스가 필요합니다.
권장 표준 규칙 recommended-nonwaf-starter-rules
다음 규칙부터 시작해 보십시오.
- 속도 제한(로그 모드):
- IP에서 전송되는 트래픽이 속도 제한을 초과할 때 로그를 기록합니다. 수신된 경고가 없는지 확인한 후 차단 모드로 변경합니다. 경고가 수신된 경우 제한 값이 너무 낮음을 나타냅니다.
- 특정 국가(차단 모드):
- 특정 국가의 트래픽 차단 (비즈니스 요구 사항에 따라 국가 코드 수정)
kind: "CDN"
version: "1"
data:
trafficFilters:
rules:
# Block client for 5m when it exceeds an average of 100 req/sec to origin on a time window of 10sec
- name: limit-origin-requests-client-ip
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 100
window: 10
count: fetches
penalty: 300
groupBy:
- reqProperty: clientIp
action: log
# Block client for 5m when it exceeds an average of 500 req/sec on a time window of 10sec
- name: limit-requests-client-ip
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 500
window: 10
count: all
penalty: 300
groupBy:
- reqProperty: clientIp
action: log
alert: true
# Block requests coming from OFAC countries
- name: ofac-countries
when:
allOf:
- { reqProperty: tier, in: ["author", "publish"] }
- reqProperty: clientCountry
in:
- SY
- BY
- MM
- KP
- IQ
- CD
- SD
- IR
- LR
- ZW
- CU
- CI
action: block
권장 WAF 규칙 recommended-waf-starter-rules
기존 구성에 다음 규칙을 추가합니다.
-
ATTACK-FROM-BAD-IP 플래그(차단 모드):
- 의심스러운 패턴(WAF 플래그 목록에 있는 여러 패턴 포함)과 일치하고 악성으로 알려진 IP 주소에서 발생한 트래픽을 즉시 차단합니다.
- ATTACK-FROM-BAD-IP 플래그는 두 조건(패턴 일치 및 알려진 악성 IP)을 모두 만족하므로 긍정 오류(false positive)의 위험을 최소화합니다. 따라서 차단 모드에서 이 규칙을 안전하고 즉시 적용할 수 있습니다.
-
ATTACK 플래그 (로그 모드):
- 처음에는 의심스러운 패턴과 일치하지만 알려진 악성 IP 주소에서 시작되지 않은 트래픽을 기록(차단하는 대신)합니다. 차단하는 대신 기록하는 이러한 신중한 접근 방식은 합법적인 트래픽을 실수로 차단하는 것(긍정 오류)을 방지하는 데 도움이 됩니다.
- 적합한 요청에 잘못된 플래그가 지정되지 않았는지 확인하려면 이 규칙을 배포한 후 CDN 로그를 분석합니다. 합법적인 트래픽에 영향이 없다고 확신하면 차단 모드로 전환하십시오.
# blocks likely attack traffic, which also comes from suspected IPs
- name: attacks-from-bad-ips-globally
when:
reqProperty: tier
in: ["author", "publish"]
action:
type: block
wafFlags:
- ATTACK-FROM-BAD-IP
# log likely attack traffic, and later switch to block mode if false positives aren't observed
- name: attacks-from-any-ips-globally
when:
reqProperty: tier
in: ["author", "publish"]
action:
type: log
wafFlags:
- ATTACK
레거시 권장 WAF 규칙 previous-waf-starter-rules
Adobe는 2025년 7월 이전까지 악성 트래픽을 방어하는 데 여전히 유효하고 효과적인 아래 나열된 WAF 규칙을 권장했습니다. 새로 권장되는 규칙으로 마이그레이션하는 데 대한 고려 사항은 튜토리얼을 참조하십시오.
| code language-none |
|---|
|
튜토리얼 tutorial
WAF 규칙을 포함하여 트래픽 필터 규칙에 대한 실용적인 지식과 경험을 얻으려면 일련의 자습서를 통해 작업하십시오.
튜토리얼에는 다음과 같은 내용이 포함됩니다.
- 표준 및 WAF 트래픽 필터 규칙에 대한 개요입니다.
- 서비스 거부(DoS)를 포함한 공격을 차단하려면 권장 표준 및 WAF 트래픽 필터 규칙을 구성합니다.
- Cloud Manager 구성 파이프라인을 사용하여 규칙 배포
- 악의적인 트래픽을 시뮬레이션하는 도구를 사용하여 규칙을 테스트합니다.
- 로그 분석 도구를 사용하여 결과 분석
- 모범 사례입니다.