Google Cloud Armor Adaptive Protection 개요

Google Cloud Armor Adaptive Protection은 HTTP 플러드 및 기타 빈번하게 발생하는 레이어 7(애플리케이션 레벨) 악의적인 활동과 같은 L7 DDoS 공격으로부터 Google Cloud 애플리케이션, 웹사이트, 서비스를 보호할 수 있게 해줍니다. Adaptive Protection은 다음을 수행하는 머신러닝 모델을 빌드합니다.

  1. 이상 활동 감지 및 알림
  2. 잠재적 공격을 기술하는 서명 생성
  3. 서명 차단을 위한 커스텀 Cloud Armor WAF 규칙 생성

보안 정책별 기준으로 Adaptive Protection을 사용 설정 또는 중지합니다.

공격 서명을 포함하는 이상 트래픽(잠재적인 공격)에 대한 알림이 Adaptive Protection 이벤트 대시보드에 표시되고, 이벤트 로그가 Cloud Logging으로 전송됩니다. 여기에서 로그를 직접 분석하거나 다운스트림 로그 또는 보안 관련 활동 모니터링 워크플로로 전달할 수 있습니다. 잠재적 공격 알림은 또한 Security Command Center에서 발견 항목으로 생성됩니다.

Adaptive Protection 사용 가능 여부

전체 Adaptive Protection 알림은 Google Cloud Armor Enterprise를 구독한 경우에만 사용할 수 있습니다. 그렇지 않으면 기본 알림만 수신됩니다. 기본 알림에는 감지의 신뢰도 점수와 공격 규모와 같은 최소한의 정보만 포함됩니다. 기본 알림에는 사용자가 배포할 공격 서명이나 추천 규칙이 포함되지 않습니다.

프로젝트가 아직 Cloud Armor Enterprise에 등록되지 않았으면 Cloud Armor Enterprise 사용을 읽고 등록 방법을 확인할 수 있습니다.

Cloud Logging 및 Cloud Monitoring

Adaptive Protection을 사용하려면 실제로 Google Cloud에서 로깅 및 알림의 작동 방법을 이해할 필요가 있기 때문에 Cloud Logging, 알림, 알림 정책에 대해 숙지하는 것이 좋습니다.

적절한 로깅 및 보고를 보장하려면 Cloud Armor가 다음 로그에 액세스해야 합니다. 이러한 데이터는 Cloud Logging에 저장되거나 Cloud Armor가 액세스할 수 있는 로깅 버킷으로 라우팅되어야 합니다.

  • networksecurity.googleapis.com/dos_attack
  • networksecurity.googleapis.com/network_dos_attack
  • networksecurity.googleapis.com/network_dos_attack_mitigations

알림 구성 및 조정

이미 Cloud Armor 보안 정책으로 애플리케이션이 보호되는 프로젝트에서 Adaptive Protection을 사용 설정할 수 있습니다. 특정 보안 정책에 Adaptive Protection을 사용 설정하면 실제로 해당 보안 정책이 연결된 모든 백엔드 서비스에 Adaptive Protection이 적용됩니다.

Adaptive Protection을 사용 설정한 후에는 Adaptive Protection이 신뢰할 수 있는 기준을 개발하고 트래픽 모니터링 및 알림 생성을 시작하기 전까지 최소 한 시간 이상의 학습 기간이 필요합니다. 학습 기간 중 Adaptive Protection은 각 백엔드 서비스의 기준을 개발할 수 있도록 수신 트래픽 및 각 백엔드 서비스에 해당하는 사용 패턴을 모델링합니다. 학습 기간이 지나면 Adaptive Protection에서 해당 보안 정책과 연관된 백엔드 서비스로 전송되는 트래픽에서 빈도 또는 볼륨이 높은 이상치가 식별되었을 때 사용자에게 실시간 알림이 표시됩니다.

Adaptive Protection 알림은 여러 측정항목을 기준으로 조정할 수 있습니다. Cloud Logging으로 전송되는 알림에는 신뢰도 수준, 공격 서명, 추천 규칙, 추천 규칙과 연관된 예상되는 영향을 받는 기준 비율이 포함됩니다.

  • 신뢰도 수준은 Adaptive Protection 모델에서 모니터링된 트래픽 패턴 변경이 이상치라고 예측할 수 있는 신뢰도를 나타냅니다.
  • 추천 규칙과 연관된 영향을 받는 기준 비율은 기존의 기준 트래픽 중 추천 규칙에 걸리는 부분의 백분율을 나타냅니다. 두 가지 비율이 제공됩니다. 첫 번째는 공격을 받는 특정 백엔드 서비스로 전달되는 트래픽의 상대 백분율입니다. 두 번째는 구성된 모든 백엔드 서비스 대상(공격을 받는 대상뿐만 아니라)을 포함하여 보안 정책을 통과하는 모든 트래픽의 상대 백분율입니다.

신뢰도 수준이나 영향을 받는 기준 비율 또는 둘 다를 기준으로 Cloud Logging에서 알림을 필터링할 수 있습니다. 알림 조정에 대한 자세한 내용은 알림 정책 관리를 참조하세요.

Adaptive Protection은 대용량 레이어 7 DDoS 공격으로부터 백엔드 서비스를 보호하는 것을 목표로 합니다. 다음 시나리오에서는 요청이 Adaptive Protection에서 계산되지 않습니다.

  • Cloud CDN에서 직접 제공된 요청
  • Cloud Armor 보안 정책에서 거부된 요청

세분화된 모델

기본적으로 Adaptive Protection은 각 백엔드 서비스로 전달되는 일반적인 트래픽을 기준으로 공격을 탐지하고 완화 조치를 제안합니다. 즉, 백엔드 서비스 뒤에 있는 백엔드가 과부하될 수 있지만 공격 트래픽이 백엔드 서비스에 대한 비정상적인 트래픽이 아니므로 Adaptive Protection은 아무런 조치를 취하지 않습니다.

세분화된 모델 기능을 사용하면 특정 호스트 또는 경로를 Adaptive Protection에서 분석하는 세분화된 단위로 구성할 수 있습니다. 세분화된 모델을 사용할 경우 Adaptive Protection에서 제안한 완화 조치는 일치하는 호스트 또는 URL 경로 프리픽스를 기준으로 트래픽을 필터링하므로 오탐을 줄이는 데 도움이 됩니다. 이러한 호스트 또는 경로를 각각 세분화된 트래픽 단위라고 합니다.

식별된 공격 서명은 세분화된 트래픽 단위로 들어오는 공격 트래픽만 대상으로 합니다. 그러나 세분화된 구성을 사용하지 않는 것처럼 필터링은 배포된 규칙과 일치하는 모든 요청에 계속 적용됩니다. 예를 들어 자동 배포된 규칙이 세분화된 특정 트래픽 단위만 일치하도록 하려면 evaluateAdaptiveProtectionAutoDeploy() && request.headers['host'] == ... && request.path == ...과 같은 일치 조건을 사용하는 것이 좋습니다.

호스트 및 URL 경로 프리픽스 외에도 다음 옵션 중 일부 또는 전부를 기준으로 알림 기준을 구성할 수 있습니다. 이러한 기준은 백엔드 서비스에만 적용할 수 있는 부하 기준을 제외하고 세분화된 트래픽 단위 또는 백엔드 서비스 전체에 적용할 수 있습니다.

  • 부하: 구성된 애플리케이션 부하 분산기에 따른 백엔드 서비스의 최대 부하입니다. 이 옵션은 세분화된 트래픽 단위에는 사용 불가능하며 Cloud Run, Cloud Run Functions 또는 외부 원본 백엔드와 같은 서버리스 백엔드에도 사용 불가능합니다.
  • 절대 초당 쿼리 수(QPS): 백엔드 서비스 또는 트래픽 단위가 수신하는 최대 트래픽 양(초당 쿼리 수)입니다.
  • 기준 QPS와 비교: 평균 장기 기준 트래픽 볼륨의 배수입니다. 예를 들어 2 값은 기준 트래픽 볼륨의 두 배에 해당하는 QPS를 나타냅니다.

세분화된 모델 구성에 대한 자세한 내용은 Google Cloud Armor Adaptive Protection 구성을 참조하세요.

알림 사용 및 해석

Adaptive Protection에서 의심스러운 공격이 탐지되면 즉시 Adaptive Protection 이벤트 대시보드에서 이벤트가 생성되고 Cloud Logging에 로그 항목이 생성됩니다. 알림은 로그 항목의 JSON 페이로드에 있습니다. 로그 항목은 Cloud Logging의 네트워크 보안 정책 리소스에 생성됩니다. 로그 메시지에는 공격을 받는 백엔드 서비스와 Adaptive Protection에서 식별된 트래픽 패턴 변경이 이상치로 평가되는 정도를 나타내는 신뢰도 점수가 포함됩니다. 로그 메시지에는 또한 공격 트래픽의 특성을 설명하는 공격 서명과 공격을 완화하기 위해 적용할 수 있는 Cloud Armor 추천 규칙이 포함되어 있습니다.

공격 서명 이해

Adaptive Protection 알림에는 잠재적인 공격의 트래픽 속성을 설명하는 공격 서명이 포함되어 있습니다. 서명을 사용하여 공격을 식별하고 잠재적으로 차단할 수 있습니다. 서명에는 두 가지 형식이 사용됩니다. 하나는 사용자가 읽을 수 있는 테이블의 형식이고, 다른 하나는 관련 보안 정책에서 배포할 수 있는 사전 구성된 Cloud Armor WAF 규칙입니다. Cloud Armor Enterprise를 구독하지 않은 경우 공격 서명이 기본 알림에 포함되지 않습니다.

서명은 클라이언트 IP 주소, 지리적 리전, 쿠키, 사용자 에이전트, 리퍼러, 기타 HTTP 요청 헤더와 같은 속성 집합과 잠재적인 공격 트래픽과 연관되었다고 생각되는 해당 속성의 값 집합으로 구성됩니다. 속성 집합은 사용자가 구성할 수 없습니다. 속성 값은 백엔드 서비스에 대한 수신 트래픽의 값에 따라 달라집니다.

Adaptive Protection에서 잠재적인 공격으로 인식되는 각 속성 값에 대해 Adaptive Protection은 다음을 나열합니다.

  • 공격 가능성
  • 공격이 탐지된 시간에 이 값을 가진 잠재적인 공격 트래픽의 백분율을 나타내는 공격에서의 속성 비율
  • 공격이 탐지된 시간에 이 속성 값을 처리한 기준 트래픽의 백분율을 나타내는 기준에서의 속성 비율

Cloud Logging 항목 사양에는 각 알림의 정보에 대한 세부정보가 포함됩니다.

다음은 잠재적인 공격의 서명이 포함된 사용자가 읽을 수 있는 테이블 예시입니다.

속성 이름 검색 유형 공격 가능성 공격에서의 비율 기준에서의 비율
UserAgent 'foo' 일치검색 0.7 0.85 0.12
UserAgent 'bar' 일치검색 0.6 0.7 0.4
클라이언트 IP 'a.b.c.d' 일치검색 0.95 0.1 0.01
클라이언트 IP a.b.c.e 일치검색 0.95 0.1 0.01
클라이언트 IP a.b.c.f 일치검색 0.05