Imperva WAF 로그 수집

다음에서 지원:

이 문서에서는 API (가져오기) 또는 Amazon S3 (푸시)를 사용하여 Imperva 웹 애플리케이션 방화벽 (WAF)에서 Google Security Operations로 로그를 수집하는 방법을 설명합니다. 파서는 SYSLOG+KV, JSON, CEF, LEEF 형식의 로그를 통합 데이터 모델 (UDM)로 변환합니다. 다양한 로그 구조를 처리하고, 관련 필드를 추출하고, UDM 속성으로 정규화하며, 보안 분석을 강화하기 위해 문맥 정보로 데이터를 보강합니다.

시작하기 전에

  • 구성 요구사항에 가장 적합한 처리 유형 (API 또는 Amazon S3)을 선택합니다.
  • Google SecOps 인스턴스가 있는지 확인합니다.
  • AWS에 대한 권한이 있는지 확인합니다.
  • Imperva WAF에 대한 권한이 있는지 확인합니다.

API를 사용하여 Imperva WAF 로그 수집

Imperva WAF의 읽기 전용 사용자 구성

  1. 권한이 있는 계정으로 Imperva Console에 로그인합니다.
  2. 설정 > 사용자 및 역할로 이동합니다.
  3. Add User(사용자 추가)를 클릭합니다.
  4. 필수 입력란을 작성합니다.
    • 사용자 이름: 고유한 사용자 이름을 입력합니다.
    • 비밀번호: 안전한 비밀번호를 설정합니다.
    • 이메일: 사용자의 이메일 주소를 입력합니다.
    • 역할 섹션에서 읽기 권한 사용자 역할을 선택합니다.
  5. 저장을 클릭하여 읽기 전용 액세스 권한이 있는 사용자를 만듭니다.

선택사항: 리더 사용자를 API 전용으로 구성

  1. 사용자 목록에서 새로 만든 사용자를 찾습니다.
  2. 사용자 이름 옆에 있는 작업 버튼 (점 3개)을 클릭합니다.
  3. API 전용으로 설정 사용자를 선택합니다.

API ID 및 API 키 생성

  1. 사용자 목록에서 새로 만든 사용자를 선택합니다.
  2. 설정을 선택하고 API 키를 클릭합니다.
  3. API 키 추가를 클릭합니다.
  4. 필수 입력란을 작성합니다.
    • 이름: API 키의 설명이 포함된 이름을 입력합니다.
    • 선택사항: 설명: 설명을 제공할 수 있습니다(선택사항).
    • API 키 만료일 목록에서 없음을 선택합니다.
    • 사용 설정하려면 상태를 선택합니다.
  5. 저장을 클릭합니다.

시스템에 API ID 및 API 키가 표시됩니다. 사용자 인증 정보는 다시 표시되지 않으므로 복사하여 저장합니다.

서드 파티 API를 통해 Imperva WAF 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다(예: Imperva WAF Logs).
  4. 소스 유형으로 서드 파티 API를 선택합니다.
  5. 로그 유형으로 Imperva를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 매개변수의 값을 지정합니다.
    • 인증 HTTP 헤더: Imperva API ID 및 키를 두 줄(apiId:<YOUR_API_ID>apiKey:<YOUR_API_KEY>)에 입력합니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용된 라벨입니다.
  8. 다음을 클릭합니다.
  9. 확정 화면에서 피드 구성을 검토한 다음 제출을 클릭합니다.

Amazon S3를 사용하여 Imperva WAF 로그 수집

AWS IAM 및 S3 구성

  1. 버킷 만들기 사용자 가이드에 따라 Amazon S3 버킷을 만듭니다.
  2. 나중에 사용할 수 있도록 버킷 이름리전을 저장합니다.
  3. IAM 사용자 만들기 사용자 가이드에 따라 사용자를 만듭니다.
  4. 만든 사용자를 선택합니다.
  5. 보안 사용자 인증 정보 탭을 선택합니다.
  6. 액세스 키 섹션에서 액세스 키 만들기를 클릭합니다.
  7. 사용 사례서드 파티 서비스를 선택합니다.
  8. 다음을 클릭합니다.
  9. 선택사항: 설명 태그를 추가합니다.
  10. 액세스 키 만들기를 클릭합니다.
  11. .csv 파일 다운로드를 클릭하고 나중에 사용할 수 있도록 액세스 키보안 비밀 액세스 키를 저장합니다.
  12. 완료를 클릭합니다.
  13. 권한 탭을 선택합니다.
  14. 권한 정책 섹션에서 권한 추가를 클릭합니다.
  15. 권한 추가를 선택합니다.
  16. Attach policies directly(정책 직접 연결)를 선택합니다.
  17. AmazonS3FullAccess 정책을 검색하여 선택합니다.
  18. 다음을 클릭합니다.
  19. 권한 추가를 클릭합니다.

Imperva WAF Amazon S3 연결 구성

  1. 권한이 있는 계정으로 Imperva Console에 로그인합니다.
  2. 로그 > 로그 설정으로 이동합니다.
  3. Amazon S3를 선택합니다.
  4. 필수 입력란을 작성합니다.
    • 액세스 키
    • 보안 비밀 키
    • 경로: <Amazon S3 bucket name>/<log folder> 형식으로 경로를 입력합니다(예: MyBucket/MyIncapsulaLogFolder).
  5. 연결 테스트를 클릭하여 테스트 파일이 지정된 폴더로 전송되는 전체 테스트 주기를 실행합니다.
  6. 로그 파일 형식을 CEF로 선택합니다.
  7. 기본적으로 로그 파일은 압축됩니다. 파일을 압축하지 않도록 옵션을 설정합니다.

Amazon S3에서 Imperva WAF 로그를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정 > 피드로 이동합니다.
  2. 새로 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다(예: Imperva WAF Logs).
  4. 소스 유형으로 Amazon S3를 선택합니다.
  5. 로그 유형으로 Imperva를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 매개변수의 값을 지정합니다.

    • 리전: Amazon S3 버킷이 있는 리전입니다.
    • S3 URI: 버킷 URI입니다.
      • s3://your-log-bucket-name/
      • your-log-bucket-name을 버킷의 실제 이름으로 바꿉니다.
    • URI: 디렉터리 또는 하위 디렉터리가 포함된 디렉터리를 선택합니다.
    • 소스 삭제 옵션: 원하는 삭제 옵션을 선택합니다.
    • 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 사용자 액세스 키입니다.
    • 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 사용자 보안 비밀 키입니다.
    • 애셋 네임스페이스: 애셋 네임스페이스입니다.
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  8. 다음을 클릭합니다.

  9. 확정 화면에서 새 피드 구성을 검토한 다음 제출을 클릭합니다.

UDM 매핑 표

로그 필드 UDM 매핑 논리
account_id target.user.userid JSON 객체의 계정 ID
행위 security_result.action actallowed, alert, REQ_PASSED로 시작하거나 REQ_CACHED로 시작하면 ALLOW로 설정합니다. actdeny, blocked, REQ_BLOCKED로 시작하거나 REQ_CHALLENGE로 시작하면 BLOCK로 설정합니다. act(?i)REQ_BAD 정규식과 일치하면 FAIL로 설정합니다. 그렇지 않으면 UNKNOWN_ACTION로 설정합니다.
network.application_protocol kv.app에서 이름이 변경되었습니다. 대문자로 변환됩니다.
calCountryOrRegion principal.location.country_or_region calCountryOrRegion에서 이름이 변경되었습니다.
고양이 security_result.action_details catREQ_PASSED 또는 REQ_CACHED로 시작하는 경우 actionALLOW로 설정하고 action_detailscat의 값을 기반으로 설명으로 설정합니다. catREQ_BAD로 시작하는 경우 actionFAIL로 설정하고 action_detailscat의 값을 기반으로 설명으로 설정합니다. catREQ_BLOCKED 또는 REQ_CHALLENGE로 시작하는 경우 actionBLOCK로 설정하고 action_detailscat의 값을 기반으로 설명으로 설정합니다.
cicode principal.location.city cicode에서 이름이 변경되었습니다.
classified_client security_result.detection_fields classified_client가 비어 있지 않으면 키가 classified_client이고 값이 classified_client인 새 detection_fields 항목을 만듭니다.
client.domain principal.hostname, principal.asset.hostname client.domain에서 이름이 변경되었습니다.
client.geo.country_iso_code principal.location.country_or_region client.geo.country_iso_code에서 이름이 변경되었습니다.
client.ip principal.ip, principal.asset.ip principal.ipprincipal.asset.ip에 병합되었습니다.
cn1 network.http.response_code cn1에서 이름이 변경되었습니다. 정수로 변환됩니다.
context_key target.resource.name context_key에서 이름이 변경되었습니다.
국가 principal.location.country_or_region country에서 이름이 변경되었습니다.
credentials_leaked security_result.detection_fields 문자열로 변환됩니다. 빈 값이 아니면 키가 credentials_leaked이고 값이 credentials_leaked인 새 detection_fields 항목을 만듭니다.
cs1 security_result.detection_fields cs1가 비어 있지 않은 경우 NA 또는 `, create a newdetection_fieldsentry with keycs1Labeland valuecs1`입니다.
cs1Label security_result.detection_fields cs1에서 생성된 detection_fields 항목의 키로 사용됩니다.
cs2 security_result.detection_fields cs2가 비어 있지 않으면 키가 cs2Label이고 값이 cs2인 새 detection_fields 항목을 만듭니다.
cs2Label security_result.detection_fields cs2에서 생성된 detection_fields 항목의 키로 사용됩니다.
cs3 security_result.detection_fields cs3가 비어 있지 않은 경우 - 또는 `, create a newdetection_fieldsentry with keycs3Labeland valuecs3`입니다.
cs3Label security_result.detection_fields cs3에서 생성된 detection_fields 항목의 키로 사용됩니다.
cs4 security_result.detection_fields cs4가 비어 있지 않으면 키가 cs4Label이고 값이 cs4인 새 detection_fields 항목을 만듭니다.
cs4Label security_result.detection_fields cs4에서 생성된 detection_fields 항목의 키로 사용됩니다.
cs5 security_result.detection_fields cs5가 비어 있지 않으면 키가 cs5Label이고 값이 cs5인 새 detection_fields 항목을 만듭니다.
cs5Label security_result.detection_fields cs5에서 생성된 detection_fields 항목의 키로 사용됩니다.
cs6 principal.application cs6에서 이름이 변경되었습니다.
cs7 principal.location.region_latitude cs7Labellatitude이면 principal.location.region_latitude로 이름을 바꿉니다. 부동 소수점 수로 변환됩니다.
cs7Label cs7Labellatitude이면 cs7의 매핑을 결정하는 데 사용됩니다.
cs8 principal.location.region_longitude cs8Labellongitude이면 principal.location.region_longitude로 이름을 바꿉니다. 부동 소수점 수로 변환됩니다.
cs8Label cs8Labellongitude이면 cs8의 매핑을 결정하는 데 사용됩니다.
cs9 security_result.rule_name, extensions.vulns.vulnerabilities.name cs9가 비어 있지 않으면 security_result.rule_name로 설정하고 이름이 cs9인 새 vulnerabilities 항목을 만듭니다.
고객 target.user.user_display_name Customer에서 이름이 변경되었습니다.
declared_client security_result.detection_fields declared_client가 비어 있지 않으면 키가 declared_client이고 값이 declared_client인 새 detection_fields 항목을 만듭니다.
description security_result.threat_name description에서 이름이 변경되었습니다.
deviceExternalId network.community_id deviceExternalId에서 이름이 변경되었습니다.
deviceReceiptTime metadata.event_timestamp 날짜로 파싱되고 metadata.event_timestamp로 설정됩니다. 비어 있으면 log_timestamp 또는 kv.start가 대신 사용됩니다.
dhost target.hostname kv.dhost에서 이름이 변경되었습니다.
dproc security_result.category_details dproc에서 이름이 변경되었습니다.
dpt target.port kv.dpt에서 이름이 변경되었습니다. 정수로 변환됩니다.
dst target.ip, target.asset.ip dst가 비어 있지 않으면 target.iptarget.asset.ip로 병합됩니다.
dstPort target.port dstPort에서 이름이 변경되었습니다. 정수로 변환됩니다.
duser target.user.userid duser가 정규식 .*?Alert.*와 일치하지 않고 비어 있지 않으면 target.user.userid로 이름을 바꿉니다.
end security_result.detection_fields end가 비어 있지 않으면 키가 event_end_time이고 값이 end인 새 detection_fields 항목을 만듭니다.
event.id JSON 객체의 이벤트 ID입니다.
event.provider principal.user.user_display_name event.provider에서 이름이 변경되었습니다.
failed_logins_last_24h security_result.detection_fields 문자열로 변환됩니다. 빈 값이 아니면 키가 failed_logins_last_24h이고 값이 failed_logins_last_24h인 새 detection_fields 항목을 만듭니다.
fileId network.session_id fileId에서 이름이 변경되었습니다.
filePermission security_result.detection_fields filePermission가 비어 있지 않으면 키가 filePermission이고 값이 filePermission인 새 detection_fields 항목을 만듭니다.
fileType security_result.detection_fields fileType가 비어 있지 않으면 키가 fileType이고 값이 fileType인 새 detection_fields 항목을 만듭니다.
디지털 지문 security_result.detection_fields fingerprint가 비어 있지 않으면 키가 log_imperva_fingerprint이고 값이 fingerprint인 새 detection_fields 항목을 만듭니다.
flexString1 network.http.response_code kv.flexString1에서 이름이 변경되었습니다. 정수로 변환됩니다.
http.request.body.bytes network.sent_bytes 부호 없는 정수로 변환됩니다. http.request.body.bytes에서 이름이 변경되었습니다.
http.request.method network.http.method http.request.method에서 이름이 변경되었습니다.
imperva.abp.apollo_rule_versions security_result.detection_fields imperva.abp.apollo_rule_versions의 각 항목에 대해 키가 apollo_rule_versions_{index}이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
imperva.abp.bot_behaviors security_result.detection_fields imperva.abp.bot_behaviors의 각 항목에 대해 키가 bot_behaviors_{index}이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
imperva.abp.bot_deciding_condition_ids security_result.detection_fields imperva.abp.bot_deciding_condition_ids의 각 항목에 대해 키가 bot_deciding_condition_ids_{index}이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
imperva.abp.bot_deciding_condition_names security_result.detection_fields imperva.abp.bot_deciding_condition_names의 각 항목에 대해 키가 bot_deciding_condition_names_{index}이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
imperva.abp.bot_triggered_condition_ids security_result.detection_fields imperva.abp.bot_triggered_condition_ids의 각 항목에 대해 키가 bot_triggered_condition_ids_{index}이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
imperva.abp.bot_triggered_condition_names security_result.detection_fields imperva.abp.bot_triggered_condition_names의 각 항목에 대해 키가 bot_triggered_condition_names_{index}이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
imperva.abp.bot_violations security_result.detection_fields imperva.abp.bot_violations의 각 항목에 대해 키가 bot_violations_{index}이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
imperva.abp.customer_request_id network.session_id imperva.abp.customer_request_id에서 이름이 변경되었습니다.
imperva.abp.headers_accept_encoding security_result.detection_fields imperva.abp.headers_accept_encoding가 비어 있지 않으면 키가 Accept Encoding이고 값이 imperva.abp.headers_accept_encoding인 새 detection_fields 항목을 만듭니다.
imperva.abp.headers_accept_language security_result.detection_fields imperva.abp.headers_accept_language가 비어 있지 않으면 키가 Accept Language이고 값이 imperva.abp.headers_accept_language인 새 detection_fields 항목을 만듭니다.
imperva.abp.headers_connection security_result.detection_fields imperva.abp.headers_connection가 비어 있지 않으면 키가 headers_connection이고 값이 imperva.abp.headers_connection인 새 detection_fields 항목을 만듭니다.
imperva.abp.headers_referer network.http.referral_url imperva.abp.headers_referer에서 이름이 변경되었습니다.
imperva.abp.hsig security_result.detection_fields imperva.abp.hsig가 비어 있지 않으면 키가 hsig이고 값이 imperva.abp.hsig인 새 detection_fields 항목을 만듭니다.
imperva.abp.monitor_action security_result.action, security_result.severity imperva.abp.monitor_action가 정규식 (?i)allow와 일치하면 security_actionALLOW로, severityINFORMATIONAL로 설정합니다. imperva.abp.monitor_action이 정규식 (?i)captcha 또는 (?i)block와 일치하면 security_actionBLOCK로 설정합니다.
imperva.abp.pid principal.process.pid imperva.abp.pid에서 이름이 변경되었습니다.
imperva.abp.policy_id security_result.detection_fields imperva.abp.policy_id가 비어 있지 않으면 키가 Policy Id이고 값이 imperva.abp.policy_id인 새 detection_fields 항목을 만듭니다.
imperva.abp.policy_name security_result.detection_fields imperva.abp.policy_name가 비어 있지 않으면 키가 Policy Name이고 값이 imperva.abp.policy_name인 새 detection_fields 항목을 만듭니다.
imperva.abp.random_id additional.fields imperva.abp.random_id가 비어 있지 않으면 키가 Random Id이고 값이 imperva.abp.random_id인 새 additional.fields 항목을 만듭니다.
imperva.abp.request_type principal.labels imperva.abp.request_type가 비어 있지 않으면 키가 request_type이고 값이 imperva.abp.request_type인 새 principal.labels 항목을 만듭니다.
imperva.abp.selector security_result.detection_fields imperva.abp.selector가 비어 있지 않으면 키가 selector이고 값이 imperva.abp.selector인 새 detection_fields 항목을 만듭니다.
imperva.abp.selector_derived_id security_result.detection_fields imperva.abp.selector_derived_id가 비어 있지 않으면 키가 selector_derived_id이고 값이 imperva.abp.selector_derived_id인 새 detection_fields 항목을 만듭니다.
imperva.abp.tls_fingerprint security_result.description imperva.abp.tls_fingerprint에서 이름이 변경되었습니다.
imperva.abp.token_id target.resource.product_object_id imperva.abp.token_id에서 이름이 변경되었습니다.
imperva.abp.zuid additional.fields imperva.abp.zuid가 비어 있지 않으면 키가 zuid이고 값이 imperva.abp.zuid인 새 additional.fields 항목을 만듭니다.
imperva.additional_factors additional.fields imperva.additional_factors의 각 항목에 대해 키가 additional_factors_{index}이고 값이 항목과 같은 새 additional.fields 항목을 만듭니다.
imperva.audit_trail.event_action security_result.detection_fields imperva.audit_trail.event_action가 비어 있지 않으면 키가 imperva.audit_trail.event_action이고 값이 imperva.audit_trail.event_action_description인 새 detection_fields 항목을 만듭니다.
imperva.audit_trail.event_action_description security_result.detection_fields imperva.audit_trail.event_action에서 생성된 detection_fields 항목의 값으로 사용됩니다.
imperva.audit_trail.event_context security_result.detection_fields imperva.audit_trail.event_context가 비어 있지 않으면 키가 imperva.audit_trail.event_context이고 값이 imperva.audit_trail.event_context_description인 새 detection_fields 항목을 만듭니다.
imperva.audit_trail.event_context_description security_result.detection_fields imperva.audit_trail.event_context에서 생성된 detection_fields 항목의 값으로 사용됩니다.
imperva.country principal.location.country_or_region imperva.country에서 이름이 변경되었습니다.
imperva.declared_client security_result.detection_fields imperva.declared_client가 비어 있지 않으면 키가 declared_client이고 값이 imperva.declared_client인 새 detection_fields 항목을 만듭니다.
imperva.device_reputation additional.fields imperva.device_reputation의 각 항목에 대해 키가 device_reputation이고 항목이 포함된 목록 값인 새 additional.fields 항목을 만듭니다.
imperva.domain_risk security_result.detection_fields imperva.domain_risk가 비어 있지 않으면 키가 domain_risk이고 값이 imperva.domain_risk인 새 detection_fields 항목을 만듭니다.
imperva.failed_logins_last_24h security_result.detection_fields 문자열로 변환됩니다. 빈 값이 아니면 키가 failed_logins_last_24h이고 값이 failed_logins_last_24h인 새 detection_fields 항목을 만듭니다.
imperva.fingerprint security_result.detection_fields imperva.fingerprint가 비어 있지 않으면 키가 log_imperva_fingerprint이고 값이 imperva.fingerprint인 새 detection_fields 항목을 만듭니다.
imperva.ids.account_id metadata.product_log_id imperva.ids.account_id에서 이름이 변경되었습니다.
imperva.ids.account_name metadata.product_event_type imperva.ids.account_name에서 이름이 변경되었습니다.
imperva.ids.site_id additional.fields imperva.ids.site_id가 비어 있지 않으면 키가 site_id이고 값이 imperva.ids.site_id인 새 additional.fields 항목을 만듭니다.
imperva.ids.site_name additional.fields imperva.ids.site_name가 비어 있지 않으면 키가 site_name이고 값이 imperva.ids.site_name인 새 additional.fields 항목을 만듭니다.
imperva.referrer network.http.referral_url imperva.referrer에서 이름이 변경되었습니다.
imperva.request_session_id network.session_id imperva.request_session_id에서 이름이 변경되었습니다.
imperva.request_user security_result.detection_fields imperva.request_user가 비어 있지 않으면 키가 request_user이고 값이 imperva.request_user인 새 detection_fields 항목을 만듭니다.
imperva.risk_level security_result.severity_details imperva.risk_level에서 이름이 변경되었습니다.
imperva.risk_reason security_result.description imperva.risk_reason에서 이름이 변경되었습니다.
imperva.significant_domain_name security_result.detection_fields imperva.significant_domain_name가 비어 있지 않으면 키가 significant_domain_name이고 값이 imperva.significant_domain_name인 새 detection_fields 항목을 만듭니다.
imperva.violated_directives security_result.detection_fields imperva.violated_directives의 각 항목에 대해 키가 violated_directives이고 값이 항목과 같은 새 detection_fields 항목을 만듭니다.
in network.received_bytes in에서 이름이 변경되었습니다. 부호 없는 정수로 변환됩니다.
log_timestamp metadata.event_timestamp deviceReceiptTime가 비어 있고 kv.start도 비어 있으면 metadata.event_timestamp로 설정합니다.
메시지 metadata.description message가 비어 있지 않고 event.provider, imperva.ids.account_name, client.ip가 모두 비어 있으면 metadata.description로 설정합니다.
postbody security_result.detection_fields postbody가 비어 있지 않으면 키가 post_body_info이고 값이 postbody인 새 detection_fields 항목을 만듭니다.
proto network.application_protocol proto에서 이름이 변경되었습니다.
protoVer network.tls.version, network.tls.cipher protoVer가 비어 있지 않으면 파싱하여 tls_versiontls_cipher를 추출한 후 각각 network.tls.versionnetwork.tls.cipher로 이름을 바꿉니다.
요청 target.url kv.request에서 이름이 변경되었습니다.
requestClientApplication network.http.user_agent requestClientApplication에서 이름이 변경되었습니다.
requestMethod network.http.method requestMethod에서 이름이 변경되었습니다. 대문자로 변환됩니다.
resource_id target.resource.id resource_id에서 이름이 변경되었습니다.
resource_type_key target.resource.type resource_type_key에서 이름이 변경되었습니다.
rt metadata.event_timestamp deviceReceiptTime를 추출하도록 파싱된 후 날짜로 파싱되고 metadata.event_timestamp로 설정됩니다.
security_result.action security_result.action _action 필드의 값과 병합됩니다.
security_result.severity security_result.severity sevserror 또는 warning이면 HIGH로 설정합니다. sevscritical이면 CRITICAL로 설정합니다. sevsmedium 또는 notice이면 MEDIUM로 설정합니다. sevsinformation 또는 info이면 LOW로 설정합니다.
server.domain target.hostname, target.asset.hostname server.domain에서 이름이 변경되었습니다.
server.geo.name target.location.name server.geo.name에서 이름이 변경되었습니다.
줄이는 것을 security_result.threat_id severity에서 이름이 변경되었습니다.
siteid security_result.detection_fields siteid가 비어 있지 않으면 키가 siteid이고 값이 siteid인 새 detection_fields 항목을 만듭니다.
sourceServiceName target.hostname kv.sourceServiceName에서 이름이 변경되었습니다.
spt principal.port kv.spt에서 이름이 변경되었습니다. 정수로 변환됩니다.
src principal.ip, principal.asset.ip src가 비어 있지 않으면 principal.ipprincipal.asset.ip로 병합됩니다.
srcPort principal.port srcPort에서 이름이 변경되었습니다. 정수로 변환됩니다.
시작 security_result.detection_fields, metadata.event_timestamp start가 비어 있지 않으면 키가 event_start_time이고 값이 start인 새 detection_fields 항목을 만듭니다. 날짜로 파싱되며 deviceReceiptTime이 비어 있으면 metadata.event_timestamp로 설정됩니다.
successful_logins_last_24h security_result.detection_fields 문자열로 변환됩니다. 빈 값이 아니면 키가 successful_logins_last_24h이고 값이 successful_logins_last_24h인 새 detection_fields 항목을 만듭니다.
suid target.user.userid suid에서 이름이 변경되었습니다.
시간 metadata.event_timestamp 문자열로 변환됩니다. 날짜로 파싱되고 metadata.event_timestamp로 설정됩니다.
type_key metadata.product_event_type type_key에서 이름이 변경되었습니다.
url target.process.file.full_path url.path이 비어 있지 않거나 /이면 target.process.file.full_path로 설정합니다.
url target.url url에서 이름이 변경되었습니다. qstr가 비어 있지 않으면 ? 구분자로 url에 추가됩니다.
user.email principal.user.email_addresses user.email가 비어 있지 않고 정규식 ^.+@.+$와 일치하면 principal.user.email_addresses에 병합됩니다.
user_agent network.http.user_agent user_agent에서 이름이 변경되었습니다.
user_agent.original network.http.parsed_user_agent user_agent.original가 비어 있지 않거나 *이면 parseduseragent로 변환되고 이름이 network.http.parsed_user_agent로 바뀝습니다.
user_details principal.user.email_addresses user_details가 비어 있지 않고 정규식 ^.+@.+$와 일치하면 principal.user.email_addresses에 병합됩니다.
user_id principal.user.userid user_id에서 이름이 변경되었습니다.
ver network.tls.version, network.tls.cipher ver가 비어 있지 않으면 파싱하여 tls_versiontls_cipher를 추출한 후 각각 network.tls.versionnetwork.tls.cipher로 이름을 바꿉니다.
xff intermediary.ip, intermediary.asset.ip, intermediary.hostname, intermediary.asset.hostname xff이 비어 있지 않으면 IP 주소와 호스트 이름을 추출하도록 처리됩니다. IP 주소가 intermediary.ipintermediary.asset.ip로 병합됩니다. 호스트 이름은 intermediary.hostnameintermediary.asset.hostname로 설정됩니다.

변경사항

2025-01-16

개선사항:

  • log.imperva.audit_trail.resource_nametarget.resource.name에 매핑했습니다.

2024-11-14

개선사항:

  • 새 로그 형식을 처리하는 지원을 추가했습니다.

2024-10-10

개선사항:

  • metadata.vendor_nameImperva Cloud WAF에 매핑했습니다.

2024-10-03

개선사항:

  • cn1network.http.response_code에 매핑했습니다.

2024-09-05

개선사항:

  • 새 로그 형식을 처리하는 지원을 추가했습니다.

2024-08-27

개선사항:

  • log.imperva.ids.account_name 매핑을 metadata.product_event_type에서 target.user.user_display_name로 변경했습니다.

2024-06-25

개선사항:

  • JSON 로그를 처리하는 지원을 추가했습니다.

2024-04-02

개선사항:

  • log.imperva.request_usersecurity_result.detection_fields에 매핑했습니다.
  • log.imperva.classified_clientsecurity_result.detection_fields에 매핑했습니다.

2024-02-26

개선사항:

  • log.imperva.request_session_idnetwork.session_id에 매핑했습니다.
  • log.imperva.successful_logins_last_24h, log.imperva.path, log.imperva.failed_logins_last_24hsecurity_result.detection_fields에 매핑했습니다.
  • log.imperva.risk_reasonsecurity_result.severity_detailssecurity_result.severity에 매핑했습니다.
  • additional_factor, log.imperva.device_reputation, log.imperva.credentials_leakedadditional.fields에 매핑했습니다.
  • log.imperva.fingerprintsecurity_result.description에 매핑했습니다.
  • log.imperva.referrernetwork.http.referral_url에 매핑했습니다.
  • log.imperva.classified_clientprincipal.process.file.full_path에 매핑함

2024-02-06

개선사항:

  • json_array의 for loop 내에서 accept_encoding_label, site_name_label, random_id_label, request_type_label, accept_language_label, headers_connection_label, zuid_labels, site_id_label, policy_id, policy_name, selector_derived_id, hsig, selector, detection_fields_event_action, detection_fields_event_context, detection_fields_significant_domain_name, detection_fields_domain_risk를 null로 초기화했습니다.

2024-01-27

개선사항:

  • descriptionsecurity_result.threat_name에 매핑했습니다.
  • severitysecurity_result.threat_id에 매핑했습니다.
  • kv.src, src, log.client.ipprincipal.asset.ip에 매핑했습니다.
  • kv.dstdsttarget.asset.ip에 매핑했습니다.
  • kv.dvcabout.asset.ip에 매핑했습니다.
  • kv.cs9cs9security_result.rule_name에 매핑했습니다.
  • kv.fileTypefileTypesecurity_result.rule_type에 매핑했습니다.
  • dsttarget.asset.ip에 매핑했습니다.
  • xffforwardedIpintermediary.asset.ip에 매핑했습니다.
  • log.client.domainprincipal.asset.hostname에 매핑했습니다.
  • log.server.domaintarget.asset.hostname에 매핑했습니다.

2023-10-16

버그 수정:

  • json_array의 for loop 내에서 security_resultsecurity_action를 null로 초기화했습니다.
  • security_actionsecurity_result.action에 병합하기 전에 null 검사를 추가했습니다.
  • log.imperva.abp.monitor_actionblock인 경우 security_actionBLOCK에 매핑했습니다.

2023-09-26

개선사항:

  • CSP 로그에서 significant_domain_name, domain_risk, violated_directivessecurity_result.detection_fields에 매핑했습니다.

2023-08-07

버그 수정:

  • JSON 로그 배열을 파싱하는 지원을 추가했습니다.
  • xffintermediary.hostname에 매핑하기 전에 호스트 이름을 확인하는 Grok 패턴을 추가했습니다.

2023-06-16

버그 수정:

  • imperva.audit_trail.event_actionsecurity_result.detection_fields에 매핑했습니다.
  • imperva.audit_trail.event_action_descriptionsecurity_result.detection_fields에 매핑했습니다.
  • imperva.audit_trail.event_contextsecurity_result.detection_fields에 매핑했습니다.
  • imperva.audit_trail.event_context_descriptionsecurity_result.detection_fields에 매핑했습니다.
  • 타임스탬프 파싱 문제가 수정되었습니다.
  • 잘못된 형식의 로그를 삭제했습니다.

2023-06-16

버그 수정:

  • imperva.audit_trail.event_actionsecurity_result.detection_fields에 매핑했습니다.
  • imperva.audit_trail.event_action_descriptionsecurity_result.detection_fields에 매핑했습니다.
  • imperva.audit_trail.event_contextsecurity_result.detection_fields에 매핑했습니다.
  • imperva.audit_trail.event_context_descriptionsecurity_result.detection_fields에 매핑했습니다.
  • 타임스탬프 파싱 문제가 수정되었습니다.
  • 잘못된 형식의 로그를 삭제했습니다.

2023-06-08

개선사항:

  • imperva.abp.apollo_rule_versionssecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.bot_violationssecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.bot_behaviorssecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.bot_deciding_condition_idssecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.bot_deciding_condition_namessecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.bot_triggered_condition_idssecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.bot_triggered_condition_namessecurity_result.detection_fields에 매핑했습니다.

2023-04-26

개선사항:

  • statedata에서 kv.src 필드를 정의했습니다.
  • kvdata.vernetwork.tls.version 및 network.tls.cipher에 매핑했습니다.
  • kvdata.sipprincipal.ip에 매핑했습니다.
  • kvdata.sptprincipal.port에 매핑했습니다.
  • kvdata.act가 'security_result.action_details'에 매핑되었습니다.
  • kvdata.app가 'network.application_protocol'에 매핑되었습니다.
  • kvdata.requestMethodnetwork.http.method에 매핑했습니다.

2023-02-04

개선사항:

  • deviceReceiptTime 필드의 경우 event.timestamp에 rebase = true를 추가했습니다.

2023-01-19

개선사항:

  • 다음 매핑을 추가하여 파서 로그에 대한 지원을 추가했습니다.
  • event.providerprincipal.user.userid에 매핑했습니다.
  • client.ipprincipal.ip에 매핑했습니다.
  • client.domainprincipal.hostname에 매핑했습니다.
  • imperva.abp.request_typeprincipal.labels에 매핑했습니다.
  • imperva.abp.pidprincipal.process.pid에 매핑했습니다.
  • client.geo.country_iso_codeprincipal.location.country_or_region에 매핑했습니다.
  • server.domaintarget.hostname에 매핑했습니다.
  • server.geo.nametarget.location.name에 매핑했습니다.
  • url.pathtarget.process.file.full_path에 매핑했습니다.
  • imperva.abp.customer_request_idtarget.resource.id에 매핑했습니다.
  • imperva.abp.token_idtarget.resource.product_object_id에 매핑했습니다.
  • imperva.abp.random_idadditional.fields에 매핑했습니다.
  • http.request.methodnetwork.http.method에 매핑했습니다.
  • user_agent.originalnetwork.http.parsed_user_agent에 매핑했습니다.
  • imperva.abp.headers_referernetwork.http.referral_url에 매핑했습니다.
  • imperva.abp.zuidadditional.fields에 매핑했습니다.
  • imperva.ids.site_nameadditional.fields에 매핑했습니다.
  • imperva.ids.site_idadditional.fields에 매핑했습니다.
  • imperva.ids.account_namemetadata.product_event_type에 매핑했습니다.
  • imperva.ids.account_idmetadata.product_log_id에 매핑했습니다.
  • imperva.abp.headers_accept_encodingsecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.headers_accept_languagesecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.headers_connectionsecurity_result.detection_fields에 매핑함
  • imperva.abp.policy_idsecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.policy_namesecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.selector_derived_idsecurity_result.detection_fields에 매핑했습니다.
  • imperva.abp.monitor_actionsecurity_result.action에 매핑했습니다.

2022-06-28

개선사항:

  • 모든 로그에 대해 vendor.name = Imperva 및 product.name = 웹 애플리케이션 방화벽으로 매핑
  • srcDistributedmetadata.event_typeGENERIC_EVENT에서 USER_UNCATEGORIZED로 변경했습니다.
  • metadata.event_type에서 USER_UNCATEGORIZEDUSER_STATS로 변경됨

2022-06-20

  • rt 필드의 grok 패턴이 수정되었습니다.
  • 버그 수정 - security_result.action이 개선되었습니다.
  • REQ_PASSED: 요청이 사이트의 웹 서버로 라우팅된 경우 (security_result.action = 'ALLOW')
  • REQ_CACHED_X: 데이터 센터의 캐시에서 응답이 반환된 경우 (security_result.action = 'ALLOW')
  • REQ_BAD_X: 프로토콜 또는 네트워크 오류가 발생한 경우 (security_result.action = 'FAIL')
  • REQ_CHALLENGE_X: 클라이언트에게 챌린지가 반환된 경우 (security_result.action = 'BLOCK').
  • REQ_BLOCKED_X: 요청이 차단된 경우 (security_result.action = 'BLOCK').

2022-06-14

버그 수정:

  • UDM 필드 'security_result.detection_fields'에 매핑된 'cs1Label', 'cs2Label', 'cs3Label' 필드가 잘못 매핑되는 것을 방지하기 위해 gsub를 추가하고 kv 필터를 수정했습니다.

2022-05-26

버그 수정:

  • 감지 필드의 값에서 키 이름과 콜론 문자를 삭제했습니다.

2022-05-10

개선사항:

  • 다음 필드를 매핑했습니다.
  • 'cs1', 'cs2', 'cs3', 'cs4', 'cs5', 'fileType', 'filePermission'을 'security_result.detection_fields'로 이동합니다.
  • 'cs7'을 'principal.location.region_latitude'로 변경합니다.
  • 'cs8': 'principal.location.region_longitude'
  • CEF 형식 로그의 경우 'cn1', 'cn2'가 'security_result.detection_fields'에 매핑됩니다.
  • CEF 형식 로그의 경우 'act'를 'security_result.action' 및 'security_result.action_details'로 변경합니다.
  • CEF 형식 로그의 경우 'app'을 'network.application_protocol'로 변경합니다.
  • CEF 형식 로그의 'requestClientApplication'을 'network.http.user_agent'로 변경했습니다.
  • CEF 형식 로그의 경우 'dvc'를 'about.ip'로 변경합니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가의 답변을 받아 보세요.