Google Cloud Armor WAF 규칙 조정

사전 구성된 규칙

Google Cloud Armor 사전 구성된 규칙은 오픈소스 업계 표준에서 컴파일된 서명이 수십 개 있는 복잡한 웹 애플리케이션 방화벽(WAF) 규칙입니다. Google은 이러한 규칙을 있는 그대로 제공합니다. 규칙을 사용 설정하면 Google Cloud Armor에서 각 서명을 수동으로 정의할 필요 없이 편리한 이름의 규칙을 참조하여 고유한 트래픽 서명 수십 개를 평가할 수 있습니다.

다음 표에는 Google Cloud Armor 보안 정책에 사용할 수 있는 사전 구성된 WAF 규칙의 전체 목록이 나와 있습니다. 규칙 소스는 ModSecurity Core Rule Set 3.0.2(CRS)입니다.

Google Cloud Armor 규칙 이름 ModSecurity 규칙 이름 현재 상태
sqli-stable SQL 삽입 sqli-canary와 동기화
sqli-canary SQL 삽입 최신
xss-stable 교차 사이트 스크립팅 xss-canary와 동기화
xss-canary 교차 사이트 스크립팅 최신
lfi-stable 로컬 파일 포함 lfi-canary와 동기화
lfi-canary 로컬 파일 포함 최신
rfi-stable 원격 파일 포함 rfi-canary와 동기화
rfi-canary 원격 파일 포함 최신
rce-stable 원격 코드 실행 rce-canary와 동기화
rce-canary 원격 코드 실행 최신
methodenforcement-stable 메서드 적용(공개 미리보기) methodenforcement-canary와 동기화
methodenforcement-canary 메서드 적용(공개 미리보기) 최신
scannerdetection-stable 스캐너 감지(공개 미리보기) scannerdetection-canary와 동기화
scannerdetection-canary 스캐너 감지(공개 미리보기) 최신
protocolattack-stable 프로토콜 공격(공개 미리보기) protocolattack-canary와 동기화
protocolattack-canary 프로토콜 공격(공개 미리보기) 최신
php-stable PHP 삽입 공격(공개 미리보기) php-canary와 동기화
php-canary PHP 삽입 공격(공개 미리보기) 최신
sessionfixation-stable 세션 고정 공격(공개 미리보기) sessionfixation-canary와 동기화
sessionfixation-canary 세션 고정 공격(공개 미리보기) 최신

사전 구성된 각 규칙은 여러 서명으로 구성됩니다. 들어오는 요청은 사전 구성된 규칙에 따라 평가됩니다. 요청이 사전 구성된 규칙과 연결된 서명과 일치하면 요청과 사전 구성된 규칙이 일치하는 것으로 간주됩니다. evaluatePreconfiguredExpr() 명령어가 true 값을 반환하면 일치하는 것입니다.

사전 구성된 규칙이 필요한 이상으로 많은 트래픽과 일치한다고 결정하거나 규칙이 허용되어야 하는 트래픽을 차단하는 경우에는 노이즈가 많거나 불필요한 서명을 중지하도록 규칙을 조정하면 됩니다. 사전 구성된 특정 규칙에서 서명을 중지하려면 원치 않는 서명의 ID 목록을 evaluatePreconfiguredExpr() 명령어에 제공합니다.

다음 예시에서는 사전 구성된 xss-stable WAF 규칙에서 두 개의 CRS 규칙 ID를 제외합니다.

evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v020901-id981136-xss', 'owasp-crs-v020901-id981138-xss'])

앞의 예시는 커스텀 규칙 언어의 표현식입니다. 일반적으로 사용되는 구문은 다음과 같습니다.

evaluatePreconfiguredExpr(RULE, ['SIGNATURE1', 'SIGNATURE2', 'SIGNATURE3'])

사전 구성된 ModSecurity 규칙

SQL 삽입(SQLi)

서명 ID(CRS 규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id942140-sqli 1 SQL 삽입 공격: 일반적인 DB 이름이 감지됨
owasp-crs-v030001-id942160-sqli 1 sleep() 또는 benchmark()를 사용하여 블라인드 SQLi 테스트 감지
owasp-crs-v030001-id942170-sqli 1 조건부 쿼리를 포함하여 SQL 벤치마크 및 수면 삽입 시도 감지
owasp-crs-v030001-id942190-sqli 1 MSSQL 코드 실행 및 정보 수집 시도 감지
owasp-crs-v030001-id942220-sqli 1 정수 오버플로 공격 찾기
owasp-crs-v030001-id942230-sqli 1 조건부 SQL 삽입 시도 감지
owasp-crs-v030001-id942240-sqli 1 MySQL 문자 집합 전환 및 MSSQL DoS 시도 감지
owasp-crs-v030001-id942250-sqli 1 MATCH AGAINST 감지
owasp-crs-v030001-id942270-sqli 1 기본 SQL 삽입 찾기(mysql에 대한 일반적인 공격 문자열)
owasp-crs-v030001-id942280-sqli 1 Postgres pg_sleep 삽입 감지
owasp-crs-v030001-id942290-sqli 1 기본 MongoDB SQL 삽입 시도 찾기
owasp-crs-v030001-id942320-sqli 1 MySQL 및 PostgreSQL 저장 프로시져/함수 삽입 감지
owasp-crs-v030001-id942350-sqli 1 MySQL UDF 삽입 및 기타 데이터/구조 조작 시도 감지
owasp-crs-v030001-id942360-sqli 1 연결된 기본 SQL 삽입 및 SQLLFI 시도 감지
owasp-crs-v030001-id942110-sqli 2 SQL 삽입 공격: 일반적인 삽입 테스트가 감지됨
owasp-crs-v030001-id942120-sqli 2 SQL 삽입 공격: SQL 연산자가 감지됨
owasp-crs-v030001-id942150-sqli 2 SQL 삽입 공격
owasp-crs-v030001-id942180-sqli 2 기본 SQL 인증 우회 시도 감지 1/3
owasp-crs-v030001-id942200-sqli 2 MySQL comment-/space-obfuscated 삽입 및 백틱 종료 감지
owasp-crs-v030001-id942210-sqli 2 연결된 SQL 삽입 시도 감지 1/2
owasp-crs-v030001-id942260-sqli 2 기본 SQL 인증 우회 시도 감지 2/3
owasp-crs-v030001-id942300-sqli 2 MySQL 주석 감지
owasp-crs-v030001-id942310-sqli 2 연결된 SQL 삽입 시도 감지 2/2
owasp-crs-v030001-id942330-sqli 2 기본 SQL 삽입 프로브 감지 1/2
owasp-crs-v030001-id942340-sqli 2 기본 SQL 인증 우회 시도 감지 3/3
owasp-crs-v030001-id942380-sqli 2 SQL 삽입 공격
owasp-crs-v030001-id942390-sqli 2 SQL 삽입 공격
owasp-crs-v030001-id942400-sqli 2 SQL 삽입 공격
owasp-crs-v030001-id942410-sqli 2 SQL 삽입 공격
owasp-crs-v030001-id942430-sqli 2 제한된 SQL 문자 이상 감지(args): 특수 문자 초과 수(12)
owasp-crs-v030001-id942440-sqli 2 SQL 주석 시퀀스가 감지됨
owasp-crs-v030001-id942450-sqli 2 식별된 SQL 16진수 인코딩
owasp-crs-v030001-id942251-sqli 3 HAVING 삽입 감지
owasp-crs-v030001-id942420-sqli 3 제한된 SQL 문자 이상 감지(쿠키): 특수 문자 초과 수(8)
owasp-crs-v030001-id942431-sqli 3 제한된 SQL 문자 이상 감지(args): 특수 문자 초과 수(6)
owasp-crs-v030001-id942460-sqli 3 메타 문자 이상 감지 알림 - 비단어 반복 문자
owasp-crs-v030001-id942421-sqli 4 제한된 SQL 문자 이상 감지(쿠키): 특수 문자 초과 수(3)
owasp-crs-v030001-id942432-sqli 4 제한된 SQL 문자 이상 감지(args): 특수 문자 초과 수(2)


특정 민감도 수준에서 규칙을 구성하려면 더 큰 민감도 수준에서 서명을 중지합니다.

SQLi 민감도 수준 1


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942110-sqli',
  'owasp-crs-v030001-id942120-sqli',
  'owasp-crs-v030001-id942150-sqli',
  'owasp-crs-v030001-id942180-sqli',
  'owasp-crs-v030001-id942200-sqli',
  'owasp-crs-v030001-id942210-sqli',
  'owasp-crs-v030001-id942260-sqli',
  'owasp-crs-v030001-id942300-sqli',
  'owasp-crs-v030001-id942310-sqli',
  'owasp-crs-v030001-id942330-sqli',
  'owasp-crs-v030001-id942340-sqli',
  'owasp-crs-v030001-id942380-sqli',
  'owasp-crs-v030001-id942390-sqli',
  'owasp-crs-v030001-id942400-sqli',
  'owasp-crs-v030001-id942410-sqli',
  'owasp-crs-v030001-id942430-sqli',
  'owasp-crs-v030001-id942440-sqli',
  'owasp-crs-v030001-id942450-sqli',
  'owasp-crs-v030001-id942251-sqli',
  'owasp-crs-v030001-id942420-sqli',
  'owasp-crs-v030001-id942431-sqli',
  'owasp-crs-v030001-id942460-sqli',
  'owasp-crs-v030001-id942421-sqli',
  'owasp-crs-v030001-id942432-sqli']
)
          
SQLi 민감도 수준 2


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942251-sqli',
 'owasp-crs-v030001-id942420-sqli',
 'owasp-crs-v030001-id942431-sqli',
 'owasp-crs-v030001-id942460-sqli',
 'owasp-crs-v030001-id942421-sqli',
 'owasp-crs-v030001-id942432-sqli']
)
SQLi 민감도 수준 3


evaluatePreconfiguredExpr('sqli-stable', ['owasp-crs-v030001-id942421-sqli',
         'owasp-crs-v030001-id942432-sqli']
         )
SQLi 민감도 수준 4


evaluatePreconfiguredExpr('sqli-stable')

교차 사이트 스크립팅(XSS)

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id941110-xss 1 XSS 필터 - 카테고리 1: 스크립트 태그 벡터
owasp-crs-v030001-id941120-xss 1 XSS 필터 - 카테고리 2: 이벤트 핸들러 벡터
owasp-crs-v030001-id941130-xss 1 XSS 필터 - 카테고리 3: 속성 벡터
owasp-crs-v030001-id941140-xss 1 XSS 필터 - 카테고리 4: 자바스크립트 URI 벡터
owasp-crs-v030001-id941160-xss 1 NoScript XSS InjectionChecker: HTML 삽입
owasp-crs-v030001-id941170-xss 1 NoScript XSS InjectionChecker: 속성 삽입
owasp-crs-v030001-id941180-xss 1 Node-Validator 블랙리스트 키워드
owasp-crs-v030001-id941190-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941200-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941210-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941220-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941230-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941240-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941250-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941260-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941270-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941280-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941290-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941300-xss 1 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941310-xss 1 US-ASCII 형식이 잘못된 인코딩 XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941350-xss 1 UTF-7 인코딩 IE XSS - 공격이 감지됨
owasp-crs-v030001-id941150-xss 2 XSS 필터 - 카테고리 5: 허용되지 않는 HTML 속성
owasp-crs-v030001-id941320-xss 2 가능한 XSS 공격이 탐지됨 - HTML 태그 핸들러
owasp-crs-v030001-id941330-xss 2 IE XSS 필터 - 공격이 감지됨
owasp-crs-v030001-id941340-xss 2 IE XSS 필터 - 공격이 감지됨


특정 민감도 수준에서 규칙을 구성하려면 더 큰 민감도 수준에서 서명을 중지합니다.

XSS 민감도 수준 1


evaluatePreconfiguredExpr('xss-stable', ['owasp-crs-v030001-id941150-xss',
  'owasp-crs-v030001-id941320-xss',
  'owasp-crs-v030001-id941330-xss',
  'owasp-crs-v030001-id941340-xss'])
          


XSS의 모든 서명은 민감도 수준 2 미만입니다. 다음 구성은 다른 민감도 수준에서 작동합니다.

XSS 민감도 수준 2/3/4


evaluatePreconfiguredExpr('xss-stable')

로컬 파일 포함(LFI)

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id930100-lfi 1 경로 순회 공격(/../)
owasp-crs-v030001-id930110-lfi 1 경로 순회 공격(/../)
owasp-crs-v030001-id930120-lfi 1 OS 파일 액세스 시도
owasp-crs-v030001-id930130-lfi 1 제한된 파일 액세스 시도


LFI의 모든 서명은 민감도 수준 1입니다. 다음 구성은 모든 민감도 수준에서 작동합니다.

LFI 민감도 수준 1/2/3/4


evaluatePreconfiguredExpr('lfi-canary')

원격 코드 실행(RCE)

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id932100-rce 1 UNIX 명령어 삽입
owasp-crs-v030001-id932105-rce 1 UNIX 명령어 삽입
owasp-crs-v030001-id932110-rce 1 Windows 명령어 삽입
owasp-crs-v030001-id932115-rce 1 Windows 명령어 삽입
owasp-crs-v030001-id932120-rce 1 Windows PowerShell 명령어 발견됨
owasp-crs-v030001-id932130-rce 1 Unix 셸 표현식 발견됨
owasp-crs-v030001-id932140-rce 1 Windows FOR/IF 명령어 발견됨
owasp-crs-v030001-id932150-rce 1 Direct UNIX 명령어 실행
owasp-crs-v030001-id932160-rce 1 UNIX 셸 코드 발견됨
owasp-crs-v030001-id932170-rce 1 Shellshock(CVE-2014-6271)
owasp-crs-v030001-id932171-rce 1 Shellshock(CVE-2014-6271)


RCE의 모든 서명은 민감도 수준 1입니다. 다음 구성은 모든 민감도 수준에서 작동합니다.

RCE 민감도 수준 1/2/3/4


evaluatePreconfiguredExpr('rce-canary')

원격 파일 포함(RCI)

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id931100-rfi 1 IP 주소를 사용하는 URL 매개변수
owasp-crs-v030001-id931110-rfi 1 URL 페이로드와 함께 사용되는 일반적인 RFI 취약 매개변수 이름
owasp-crs-v030001-id931120-rfi 1 물음표 문자(?)가 뒤에 오는 URL 페이로드
owasp-crs-v030001-id931130-rfi 2 도메인 외부 참조/링크


특정 민감도 수준에서 규칙을 구성하려면 더 큰 민감도 수준에서 서명을 중지합니다.

RFI 민감도 수준 1


evaluatePreconfiguredExpr('rfi-canary', ['owasp-crs-v030001-id931130-rfi'])

RFI의 모든 서명은 민감도 수준 2 미만입니다. 다음 구성은 다른 민감도 수준에서 작동합니다.

RFI 민감도 수준 2/3/4


evaluatePreconfiguredExpr('rfi-canary')

메서드 적용

이 규칙은 공개 미리보기입니다.

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id911100-methodenforcement 1 정책이 허용하지 않는 메서드

메서드 적용의 모든 서명은 민감도 수준 2 미만입니다. 다음 구성은 다른 민감도 수준에서 작동합니다.

메서드 적용 민감도 수준 2/3/4


evaluatePreconfiguredExpr('methodenforcement-canary')

스캐너 감지

이 규칙은 공개 미리보기입니다.

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id913100-scannerdetection 1 보안 스캐너와 연결된 사용자 에이전트 발견
owasp-crs-v030001-id913110-scannerdetection 1 보안 스캐너와 연결된 요청 헤더 발견
owasp-crs-v030001-id913120-scannerdetection 1 보안 스캐너와 연결된 요청 파일 이름/인수 발견
owasp-crs-v030001-id913101-scannerdetection 2 스크립팅/일반 HTTP 클라이언트와 연결된 사용자 에이전트 발견
owasp-crs-v030001-id913102-scannerdetection 2 웹 크롤러/봇과 연결된 사용자 에이전트 발견

특정 민감도 수준에서 규칙을 구성하려면 더 큰 민감도 수준에서 서명을 중지합니다.

스캐너 감지 민감도 수준 1


evaluatePreconfiguredExpr('scannerdetection-stable',
  ['owasp-crs-v030001-id913101-scannerdetection',
  'owasp-crs-v030001-id913102-scannerdetection']
)
          
스캐너 감지 민감도 수준 2


evaluatePreconfiguredExpr('scannerdetection-stable')
          

프로토콜 공격

이 규칙은 공개 미리보기입니다.

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id921100-protocolattack 1 HTTP 요청 스머글링 공격
owasp-crs-v030001-id921110-protocolattack 1 HTTP 요청 스머글링 공격
owasp-crs-v030001-id921120-protocolattack 1 HTTP 응답 분할 공격
owasp-crs-v030001-id921130-protocolattack 1 HTTP 응답 분할 공격
owasp-crs-v030001-id921140-protocolattack 1 헤더를 통한 HTTP 헤더 삽입 공격
owasp-crs-v030001-id921150-protocolattack 1 페이로드를 통한 HTTP 헤더 삽입 공격(CR/LF 감지됨)
owasp-crs-v030001-id921160-protocolattack 1 페이로드를 통한 HTTP 헤더 삽입 공격(CR/LF 및 헤더 이름 감지됨)
owasp-crs-v030001-id921151-protocolattack 2 페이로드를 통한 HTTP 헤더 삽입 공격(CR/LF 감지됨)
owasp-crs-v030001-id921170-protocolattack 3 HTTP 매개변수 오염

특정 민감도 수준에서 규칙을 구성하려면 더 큰 민감도 수준에서 서명을 중지합니다.

프로토콜 공격 민감도 수준 1


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921151-protocolattack',
  'owasp-crs-v030001-id921170-protocolattack']
)
          
프로토콜 공격 민감도 수준 2


evaluatePreconfiguredExpr('protocolattack-stable',
  ['owasp-crs-v030001-id921170-protocolattack']
)
          
프로토콜 공격 민감도 수준 3


evaluatePreconfiguredExpr('protocolattack-stable')
          

PHP

이 규칙은 공개 미리보기입니다.

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id933100-php 1 PHP 삽입 공격: PHP 공개 태그 발견됨
owasp-crs-v030001-id933110-php 1 PHP 삽입 공격: PHP 스크립트 파일 업로드 발견됨
owasp-crs-v030001-id933120-php 1 PHP 삽입 공격: 구성 지시문 발견됨
owasp-crs-v030001-id933130-php 1 PHP 삽입 공격: 변수 발견됨
owasp-crs-v030001-id933140-php 1 PHP 삽입 공격: I/O 스트림 발견됨
owasp-crs-v030001-id933150-php 1 PHP 삽입 공격: 고위험 PHP 함수 이름 발견됨
owasp-crs-v030001-id933160-php 1 PHP 삽입 공격: 고위험 PHP 함수 호출 발견됨
owasp-crs-v030001-id933170-php 1 PHP 삽입 공격: 직렬화된 객체 삽입
owasp-crs-v030001-id933180-php 1 PHP 삽입 공격: 변수 함수 호출 발견됨
owasp-crs-v030001-id933151-php 2 PHP 삽입 공격: 중위험 PHP 함수 이름 발견됨
owasp-crs-v030001-id933131-php 3 PHP 삽입 공격: 변수 발견됨
owasp-crs-v030001-id933161-php 3 PHP 삽입 공격: 낮은 값의 PHP 함수 호출 발견됨
owasp-crs-v030001-id933111-php 3 PHP 삽입 공격: PHP 스크립트 파일 업로드 발견됨

특정 민감도 수준에서 규칙을 구성하려면 더 큰 민감도 수준에서 서명을 중지합니다.

PHP 삽입 공격 민감도 수준 1


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933151-php',
  'owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
PHP 삽입 공격 민감도 수준 2


evaluatePreconfiguredExpr('php-stable', ['owasp-crs-v030001-id933131-php',
  'owasp-crs-v030001-id933161-php',
  'owasp-crs-v030001-id933111-php']
)
          
PHP 삽입 공격 민감도 수준 3


evaluatePreconfiguredExpr('php-stable')
          

세션 고정

이 규칙은 공개 미리보기입니다.

서명 ID(규칙 ID) 민감도 수준 설명
owasp-crs-v030001-id943100-sessionfixation 1 가능한 세션 고정 공격: HTML에서 쿠키 값 설정
owasp-crs-v030001-id943110-sessionfixation 1 가능한 세션 고정 공격: 오프 도메인 리퍼러가 포함된 SessionID 매개변수 이름
owasp-crs-v030001-id943120-sessionfixation 1 가능한 세션 고정 공격: 리퍼러가 없는 SessionID 매개변수 이름

세션 고정의 모든 서명은 민감도 수준 2 미만입니다. 다음 구성은 다른 민감도 수준에서 작동합니다.

세션 고정 민감도 수준 2/3/4


evaluatePreconfiguredExpr('sessionfixation-canary')

다음 단계