HashiCorp 감사 로그 수집

다음에서 지원:

이 파서는 JSON, Syslog 또는 결합된 형식의 HashiCorp 감사 로그를 처리합니다. 필드를 추출하고 표준 및 '실행자' 유형 메시지 모두에 대해 Grok 및 KV 파싱을 실행하고 JSON 페이로드를 처리하며 추출된 데이터를 UDM에 매핑합니다. 파서에는 오류 처리와 잘못된 형식의 로그 삭제도 포함되어 있습니다.

시작하기 전에

  • Google Security Operations 인스턴스가 있는지 확인합니다.
  • Windows 2016 이상 또는 systemd가 있는 Linux 호스트가 있는지 확인합니다.
  • 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
  • HCP에 대한 권한이 있는지 확인합니다.

Google SecOps 처리 인증 파일 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 수집 에이전트로 이동합니다.
  3. 처리 인증 파일을 다운로드합니다.

Google SecOps 고객 ID 가져오기

  1. Google SecOps 콘솔에 로그인합니다.
  2. SIEM 설정 > 프로필로 이동합니다.
  3. 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.

Bindplane 에이전트 설치

  1. Windows 설치의 경우 다음 스크립트를 실행합니다.
    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
  2. Linux 설치의 경우 다음 스크립트를 실행합니다.
    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
  3. 추가 설치 옵션은 이 설치 가이드에서 확인할 수 있습니다.

Syslog를 수집하고 Google SecOps로 전송하도록 Bindplane 에이전트 구성

  1. Bindplane 에이전트가 설치된 머신에 액세스합니다.
  2. 다음과 같이 config.yaml 파일을 수정합니다.

    receivers:
        udplog:
            # Replace the below port <54525> and IP <0.0.0.0> with your specific values
            listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: auditd
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Bindplane 에이전트를 다시 시작하여 변경사항을 적용합니다.

    sudo systemctl restart bindplane
    

HCP Vault에 Syslog 사용 설정

  1. HCP 포털에 로그인합니다.
  2. Vault 클러스터로 이동합니다.
  3. 배포된 클러스터 목록에서 Vault 클러스터를 선택합니다.
  4. 클러스터 개요에서 Vault 주소 (예: https://vault-cluster-name.hashicorpcloud.com:8200)를 찾아 복사합니다.
  5. 액세스 세부정보 섹션으로 이동하여 루트 토큰을 복사합니다.

Vault CLI 설치

  • Linux

    curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
    sudo apt update && sudo apt install vault
    
  • macOS (Homebrew 사용):

    brew tap hashicorp/tap
    brew install hashicorp/tap/vault
    
  • Windows:

    Download the executable file.
    Extract it and add the Vault binary to your system's PATH.
    
  • 다음을 실행하여 Vault CLI 설치를 확인합니다.

    vault --version
    

CLI를 사용하여 HCP Vault를 구성하여 감사 로그를 Bindplane로 전송

  1. 터미널 또는 명령 프롬프트를 엽니다.
  2. 환경 변수를 사용하여 Vault 서버 주소를 설정합니다.

    export VAULT_ADDR="https://vault-cluster-name.hashicorpcloud.com:8200"
    
  3. 루트 토큰을 사용하여 Vault에 로그인합니다.

    vault login <root-token>
    

외부 syslog 소켓에 대한 syslog 경로 구성

  1. 다음 명령어를 실행하여 syslog를 사용 설정하고 Bindplane 에이전트로 전송합니다.

    vault audit enable socket address="udp://<bindplane-ip>:<bindplane-port>" socket_type="udp" tag="vault"
    
  2. 새 구성을 확인합니다.

    vault audit list
    
  3. 출력에 새 소켓 구성이 표시됩니다.

  4. 선택사항: Terraform을 사용하여 설정을 자동화합니다.

    • Terraform 구성 파일 (audit.tf)을 만듭니다.
    resource "vault_audit" "syslog" {
      type        = "syslog"
      description = "Syslog audit logs"
      options = {
        tag      = "vault"
        facility = "LOCAL0"
      }
    }
    
    resource "vault_audit" "socket" {
      type        = "socket"
      description = "Remote syslog socket"
      options = {
        address     = "udp://<syslog-server-ip>:514"
        socket_type = "udp"
        tag         = "vault"
      }
    }
    
    • 구성을 적용합니다.
    terraform init
    terraform apply
    

문제 해결 로그가 수신되지 않음

  • syslog 서버에 연결할 수 있는지 확인합니다.

    ping <syslog-server-ip>
    

UDM 매핑 표

로그 필드 UDM 매핑 논리
auth.accessor security_result.about.resource.attribute.labels.value 원시 로그의 auth.accessor 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 키 'auth_accessor'의 라벨에 매핑됩니다.
auth.client_token security_result.about.resource.attribute.labels.value 원시 로그의 auth.client_token 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 키 'auth_client_token'의 라벨에 매핑됩니다.
auth.display_name target.user.user_display_name 원시 로그의 auth.display_name 값은 UDM의 target.user.user_display_name에 매핑됩니다.
auth.entity_id target.resource.product_object_id 원시 로그의 auth.entity_id 값은 UDM의 target.resource.product_object_id에 매핑됩니다.
auth.metadata.account_id target.user.userid 원시 로그의 auth.metadata.account_id 값은 UDM의 target.user.userid에 매핑됩니다.
auth.metadata.auth_type security_result.about.resource.attribute.labels.value 원시 로그의 auth.metadata.auth_type 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 'auth_type' 키가 있는 라벨에 매핑됩니다.
auth.metadata.role_id security_result.about.resource.attribute.labels.value 원시 로그의 auth.metadata.role_id 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 'role_id' 키가 있는 라벨에 매핑됩니다.
auth.metadata.role_name target.resource.attribute.roles.name 원시 로그의 auth.metadata.role_name 값은 UDM의 target.resource.attribute.roles.name에 매핑됩니다.
auth.token_ttl security_result.about.resource.attribute.labels.value 원시 로그의 auth.token_ttl 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 키 'auth_token_ttl'의 라벨에 매핑됩니다.
auth.token_type security_result.about.resource.attribute.labels.value 원시 로그의 auth.token_type 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 'auth_token_type' 키가 있는 라벨에 매핑됩니다.
cluster observer.resource.name 원시 로그의 cluster 값은 UDM의 observer.resource.name에 매핑됩니다.
error security_result.description 원시 로그의 error 값은 UDM의 security_result.description에 매핑됩니다.
headers.accept security_result.about.resource.attribute.labels.value 원시 로그의 headers.accept 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 'httpHeaders accept' 키가 있는 라벨에 매핑됩니다.
headers.httpHeaders.cache-control additional.fields.value.string_value 원시 로그의 headers.httpHeaders.cache-control 값은 UDM의 additional.fields 아래에 있는 'httpHeaders cache control' 키가 있는 필드에 매핑됩니다.
headers.snyk-acting-org-public-id principal.resource.attribute.labels.value 원시 로그의 headers.snyk-acting-org-public-id 값은 UDM의 principal.resource.attribute.labels 아래에 있는 'snyk-acting-org-public-id' 키가 있는 라벨에 매핑됩니다.
headers.snyk-flow-name principal.resource.attribute.labels.value 원시 로그의 headers.snyk-flow-name 값은 UDM의 principal.resource.attribute.labels 아래에 있는 키가 'snyk-flow-name'인 라벨에 매핑됩니다.
headers.snyk-request-id principal.resource.attribute.labels.value 원시 로그의 headers.snyk-request-id 값은 UDM의 principal.resource.attribute.labels 아래에 있는 키 'snyk-request-id'의 라벨에 매핑됩니다.
headers.user-agent network.http.parsed_user_agent 원시 로그의 headers.user-agent 값은 사용자 에이전트로 파싱되고 UDM의 network.http.parsed_user_agent에 매핑됩니다.
headers.x-forwarded-host principal.hostname 원시 로그의 headers.x-forwarded-host 값은 UDM의 principal.hostname에 매핑됩니다.
headers.x-forwarded-port principal.port 원시 로그의 headers.x-forwarded-port 값은 UDM의 principal.port에 매핑됩니다.
headers.x-real-ip principal.ip 원시 로그의 headers.x-real-ip 값은 UDM의 principal.ip에 매핑됩니다.
hostname observer.hostname 원시 로그의 hostname 값은 UDM의 observer.hostname에 매핑됩니다.
httpHeaders.cf-cache-status target.resource.attribute.labels.value 원시 로그의 httpHeaders.cf-cache-status 값은 UDM의 target.resource.attribute.labels 아래에 있는 키 'cf-cache-status'의 라벨에 매핑됩니다.
httpHeaders.cf-ray target.resource.attribute.labels.value 원시 로그의 httpHeaders.cf-ray 값은 UDM의 target.resource.attribute.labels 아래에 있는 키가 'cf-ray'인 라벨에 매핑됩니다.
httpHeaders.content-length security_result.about.resource.attribute.labels.value 원시 로그의 httpHeaders.content-length 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 'httpHeaders Content-Length' 키가 있는 라벨에 매핑됩니다.
httpHeaders.content-type security_result.about.resource.attribute.labels.value 원시 로그의 httpHeaders.content-type 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 'httpHeaders Content-Type' 키가 있는 라벨에 매핑됩니다.
httpHeaders.gitlab-lb target.resource.attribute.labels.value 원시 로그의 httpHeaders.gitlab-lb 값은 UDM의 target.resource.attribute.labels 아래에 있는 'gitlab-lb' 키가 있는 라벨에 매핑됩니다.
httpHeaders.gitlab-sv target.resource.attribute.labels.value 원시 로그의 httpHeaders.gitlab-sv 값은 UDM의 target.resource.attribute.labels 아래에 있는 키가 'gitlab-sv'인 라벨에 매핑됩니다.
httpHeaders.ratelimit-limit target.resource.attribute.labels.value 원시 로그의 httpHeaders.ratelimit-limit 값은 UDM의 target.resource.attribute.labels 아래에 있는 'ratelimit-limit' 키가 있는 라벨에 매핑됩니다.
httpHeaders.ratelimit-observed target.resource.attribute.labels.value 원시 로그의 httpHeaders.ratelimit-observed 값은 UDM의 target.resource.attribute.labels 아래에 있는 'ratelimit-observed' 키가 있는 라벨에 매핑됩니다.
httpHeaders.ratelimit-remaining target.resource.attribute.labels.value 원시 로그의 httpHeaders.ratelimit-remaining 값은 UDM의 target.resource.attribute.labels 아래에 있는 'ratelimit-remaining' 키가 있는 라벨에 매핑됩니다.
httpHeaders.ratelimit-reset target.resource.attribute.labels.value 원시 로그의 httpHeaders.ratelimit-reset 값은 UDM의 target.resource.attribute.labels 아래에 있는 'ratelimit-reset' 키가 있는 라벨에 매핑됩니다.
httpHeaders.ratelimit-resettime target.resource.attribute.labels.value 원시 로그의 httpHeaders.ratelimit-resettime 값은 UDM의 target.resource.attribute.labels 아래에 있는 'ratelimit-resettime' 키가 있는 라벨에 매핑됩니다.
httpHeaders.referrer-policy target.resource.attribute.labels.value 원시 로그의 httpHeaders.referrer-policy 값은 UDM의 target.resource.attribute.labels 아래에 있는 'referrer-policy' 키가 있는 라벨에 매핑됩니다.
httpHeaders.server target.resource.attribute.labels.value 원시 로그의 httpHeaders.server 값은 UDM의 target.resource.attribute.labels 아래에 있는 키가 'server'인 라벨에 매핑됩니다.
httpHeaders.x-content-type-options target.resource.attribute.labels.value 원시 로그의 httpHeaders.x-content-type-options 값은 UDM의 target.resource.attribute.labels 아래에 있는 키가 'x-content-type-options'인 라벨에 매핑됩니다.
httpHeaders.x-frame-options target.resource.attribute.labels.value 원시 로그의 httpHeaders.x-frame-options 값은 UDM의 target.resource.attribute.labels 아래에 있는 키 'x-frame-options'의 라벨에 매핑됩니다.
httpHeaders.x-request-id target.resource.attribute.labels.value 원시 로그의 httpHeaders.x-request-id 값은 UDM의 target.resource.attribute.labels 아래에 있는 'x-request-id' 키가 있는 라벨에 매핑됩니다.
httpStatus network.http.response_code 원시 로그의 httpStatus 값은 UDM의 network.http.response_code에 매핑됩니다.
httpUrl target.url 원시 로그의 httpUrl 값은 UDM의 target.url에 매핑됩니다.
insertId metadata.product_log_id 원시 로그의 insertId 값은 UDM의 metadata.product_log_id에 매핑됩니다.
job additional.fields.value.string_value 원시 로그의 job 값은 UDM의 additional.fields 아래에 있는 'job id' 키가 있는 필드에 매핑됩니다.
job_status additional.fields.value.string_value 원시 로그의 job_status 값은 UDM의 additional.fields 아래에 있는 'job_status' 키가 있는 필드에 매핑됩니다.
labels.compute.googleapis.com/resource_name target.resource.name 원시 로그의 labels.compute.googleapis.com/resource_name 값은 UDM의 target.resource.name에 매핑됩니다.
labels.k8s-pod/app_kubernetes_io/instance target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/app_kubernetes_io/instance 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Kubernetes IO 인스턴스' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/app_kubernetes_io/name target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/app_kubernetes_io/name 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Kubernetes IO 인스턴스 이름' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/component target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/component 값은 UDM의 target.resource.attribute.labels 아래에 있는 '구성요소' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/controller-revision-hash target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/controller-revision-hash 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Controller Revision Hash' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/helm_sh/chart target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/helm_sh/chart 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Kubernetes IO Instance Manager SH' 키의 라벨에 매핑됩니다.
labels.k8s-pod/vault-active target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/vault-active 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Vault active' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/vault-initialized target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/vault-initialized 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Vault initialized' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/vault-perf-standby target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/vault-perf-standby 값은 UDM의 target.resource.attribute.labels 아래에 있는 'vault perf standby' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/vault-sealed target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/vault-sealed 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Vault sealed' 키가 있는 라벨에 매핑됩니다.
labels.k8s-pod/vault-version target.resource.attribute.labels.value 원시 로그의 labels.k8s-pod/vault-version 값은 UDM의 target.resource.attribute.labels 아래에 있는 'Vault 버전' 키가 있는 라벨에 매핑됩니다.
maskedToken security_result.about.resource.attribute.labels.value 원시 로그의 maskedToken 값은 UDM의 security_result.about.resource.attribute.labels 아래에 있는 'maskedToken' 키가 있는 라벨에 매핑됩니다.
method network.http.method, operation 원시 로그의 method 값은 operation에 매핑됩니다. operation이 비어 있지 않으면 network.application_protocol이 'HTTP'로 설정됩니다. operation의 값을 기반으로 network.http.method가 파생됩니다.
msg metadata.description 원시 로그의 msg 값은 UDM의 metadata.description에 매핑됩니다.
pid target.process.pid 원시 로그의 pid 값은 UDM의 target.process.pid에 매핑됩니다.
request.client_token target.resource.attribute.labels.value 원시 로그의 request.client_token 값은 UDM의 target.resource.attribute.labels 아래에 있는 'request_client_token' 키가 있는 라벨에 매핑됩니다.
request.client_token_accessor target.resource.attribute.labels.value 원시 로그의 request.client_token_accessor 값은 UDM의 target.resource.attribute.labels 아래에 있는 'request_client_token_accessor' 키가 있는 라벨에 매핑됩니다.
request.data.role_id target.resource.attribute.labels.value 원시 로그의 request.data.role_id 값은 UDM의 target.resource.attribute.labels 아래에 있는 'request_data_role_id' 키가 있는 라벨에 매핑됩니다.
request.data.secret_id target.resource.attribute.labels.value 원시 로그의 request.data.secret_id 값은 UDM의 target.resource.attribute.labels 아래에 있는 'request_data_secret_id' 키가 있는 라벨에 매핑됩니다.
request.id network.session_id 원시 로그의 request.id 값은 UDM의 network.session_id에 매핑됩니다.
request.mount_accessor target.resource.attribute.labels.value 원시 로그의 request.mount_accessor 값은 UDM의 target.resource.attribute.labels 아래에 있는 'request_mount_accessor' 키가 있는 라벨에 매핑됩니다.
request.mount_type target.resource.attribute.labels.value 원시 로그의 request.mount_type 값은 UDM의 target.resource.attribute.labels 아래에 있는 'request_mount_type' 키가 있는 라벨에 매핑됩니다.
request.namespace.id target.namespace 원시 로그의 request.namespace.id 값은 UDM의 target.namespace에 매핑됩니다.
request.operation target.resource.attribute.labels.value, network.http.method, operation 원시 로그의 request.operation 값은 operation에 매핑됩니다. operation이 비어 있지 않으면 network.application_protocol이 'HTTP'로 설정됩니다. operation의 값을 기반으로 network.http.method가 파생됩니다. request.operation 값은 UDM의 target.resource.attribute.labels 아래에 있는 'capabilities' 키가 있는 라벨에 매핑됩니다.
request.path target.url 원시 로그의 request.path 값은 UDM의 target.url에 매핑됩니다.
request.remote_address principal.ip 원시 로그의 request.remote_address 값은 UDM의 principal.ip에 매핑됩니다.
request.remote_port principal.port 원시 로그의 request.remote_port 값은 UDM의 principal.port에 매핑됩니다.
request.wrap_ttl target.resource.attribute.labels.value 원시 로그의 request.wrap_ttl 값은 UDM의 target.resource.attribute.labels 아래에 있는 'request_wrap_ttl' 키가 있는 라벨에 매핑됩니다.
resource.labels.container_name additional.fields.value.string_value 원시 로그의 resource.labels.container_name 값은 UDM의 additional.fields 아래에 있는 '컨테이너 이름' 키가 있는 필드에 매핑됩니다.
resource.labels.location target.location.name 원시 로그의 resource.labels.location 값은 UDM의 target.location.name에 매핑됩니다.
resource.labels.namespace_name target.namespace 원시 로그의 resource.labels.namespace_name 값은 UDM의 target.namespace에 매핑됩니다.
resource.labels.pod_name additional.fields.value.string_value 원시 로그의 resource.labels.pod_name 값은 UDM의 additional.fields 아래에 있는 'pod_name' 키가 있는 필드에 매핑됩니다.
resource.labels.project_id target.cloud.project.name 원시 로그의 resource.labels.project_id 값은 UDM의 target.cloud.project.name에 매핑됩니다.
response.data.num_uses target.resource.attribute.labels.value 원시 로그의 response.data.num_uses 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_data_num_uses' 키가 있는 라벨에 매핑됩니다.
response.data.orphan target.resource.attribute.labels.value 원시 로그의 response.data.orphan 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_data_orphan' 키가 있는 라벨에 매핑됩니다.
response.data.renewable target.resource.attribute.labels.value 원시 로그의 response.data.renewable 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_data_renewable' 키가 있는 라벨에 매핑됩니다.
response.data.ttl target.resource.attribute.labels.value 원시 로그의 response.data.ttl 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_data_ttl' 키가 있는 라벨에 매핑됩니다.
response.wrap_info.accessor target.resource.attribute.labels.value 원시 로그의 response.wrap_info.accessor 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_wrap_info_accessor' 키가 있는 라벨에 매핑됩니다.
response.wrap_info.token target.resource.attribute.labels.value 원시 로그의 response.wrap_info.token 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_wrap_info_token' 키가 있는 라벨에 매핑됩니다.
response.wrap_info.ttl target.resource.attribute.labels.value 원시 로그의 response.wrap_info.ttl 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_wrap_info_ttl' 키가 있는 라벨에 매핑됩니다.
response.wrap_info.wrapped_accessor target.resource.attribute.labels.value 원시 로그의 response.wrap_info.wrapped_accessor 값은 UDM의 target.resource.attribute.labels 아래에 있는 'response_wrap_info_wrapped_accessor' 키의 라벨에 매핑됩니다.
runner principal.user.userid 원시 로그의 runner 값은 UDM의 principal.user.userid에 매핑됩니다.
status network.http.response_code 원시 로그의 status 값은 UDM의 network.http.response_code에 매핑됩니다.
streamingID target.resource.attribute.labels.value 원시 로그의 streamingID 값은 UDM의 target.resource.attribute.labels 아래에 있는 'streamingID' 키가 있는 라벨에 매핑됩니다.
time metadata.event_timestamp.seconds, metadata.event_timestamp.nanos 원시 로그의 time 값이 파싱되어 UDM의 metadata.event_timestamp 필드를 채우는 데 사용됩니다.
type metadata.product_event_type 원시 로그의 type 값은 UDM의 metadata.product_event_type에 매핑됩니다.
url principal.url 원시 로그의 url 값은 UDM의 principal.url에 매핑됩니다. 'MACHINE' 값이 UDM의 extensions.auth.type에 할당됩니다. 'USER_LOGIN' 값이 UDM의 metadata.event_type에 할당됩니다. 'HASHICORP' 값이 UDM의 metadata.log_type에 할당됩니다. 'HASHICORP' 값이 UDM의 metadata.product_name에 할당됩니다. 'HASHICORP' 값이 UDM의 metadata.vendor_name에 할당됩니다. 'SERVICE_ACCOUNT' 값이 UDM의 target.resource.attribute.roles.type에 할당됩니다.

변경사항

2023-10-26

  • SYSLOG+JSON 로그를 처리하는 Grok 패턴을 추가했습니다.

2023-09-22

  • 'request.remote_port'의 매핑을 'target.port'에서 'principal.port'로 수정했습니다.
  • 'request.remote_address'의 매핑을 'target.ip'에서 'principal.ip'로 수정했습니다.
  • 'error'가 'security_result.description'에 매핑되었습니다.
  • 'resource.labels.namespace_name'이 'target.namespace'에 매핑되었습니다.
  • 'resource.labels.pod_name', 'resource.labels.container_name'이 'additional.fields'에 매핑되었습니다.
  • 'resource.labels.project_id'가 'target.cloud.project.name'에 매핑되었습니다.
  • 'resource.labels.location'이 'target.location.name'에 매핑되었습니다.
  • 'insertId'가 'metadata.product_log_id'에 매핑되었습니다.
  • 'labels.k8s-pod/app_kubernetes_io/instance', 'labels.k8s-pod/app_kubernetes_io/name', 'labels.k8s-pod/component', 'labels.k8s-pod/helm_sh/chart', 'labels.k8s-pod/controller-revision-hash', 'labels.k8s-pod/vault-initialized', 'labels.k8s-pod/vault-version', 'labels.k8s-pod/vault-sealed', 'labels.k8s-pod/vault-perf-standby', 'labels.k8s-pod/vault-active'가 'target.resource.attribute.labels'에 매핑되었습니다.
  • 'labels.compute.googleapis.com/resource_name'이 'target.resource.name'에 매핑되었습니다.

2023-04-26

  • syslog 로그를 처리하는 Grok 패턴을 추가했습니다.
  • 'status'가 'network.http.response_code'에 매핑되었습니다.
  • 'runner'가 'principal.user.userid'에 매핑되었습니다.
  • 'job_id', 'job_status'가 'additional.fields'에 매핑되었습니다.

2023-03-24

  • 'host'가 'observer.hostname'에 매핑되었습니다.
  • 'cluster'가 'observer.resource.name'에 매핑되었습니다.
  • 로그에 클러스터가 포함된 경우 '클러스터'를 'observer.resource.resource_type'에 매핑했습니다.
  • '_raw' 필드에서 데이터를 검색하는 JSON 블록을 추가했습니다.
  • 'httpStatus'가 'network.http.response_code'에 매핑되었습니다.
  • 'httpUrl'이 'target.url'에 매핑되었습니다.
  • 'pid'가 'target.process.pid'에 매핑되었습니다.
  • 'msg'가 'metadata.description'에 매핑되었습니다.
  • 'url'이 'principal.url'에 매핑되었습니다.
  • 'hostname'이 'observer.hostname'에 매핑되었습니다.
  • 'streamingID', 'requestId', 'httpHeaders.cf-cache-status', 'httpHeaders.cf-ray', 'httpHeaders.gitlab-lb', 'httpHeaders.gitlab-sv', 'httpHeaders.x-request-id', 'httpHeaders.x-content-type-options', 'httpHeaders.x-frame-options', 'httpHeaders.ratelimit-limit', 'httpHeaders.ratelimit-observed', 'httpHeaders.ratelimit-remaining', 'httpHeaders.ratelimit-reset', 'httpHeaders.ratelimit-resettime', 'httpHeaders.server', 'httpHeaders.referrer-policy'가 'target.resource.attribute.labels'에 매핑됩니다.
  • 'method'가 'network.application_protocol'에 매핑되었습니다.
  • 'headers.user-agent'가 'network.http.parsed_user_agent'에 매핑되었습니다.
  • 'httpHeaders.cache-control'이 'additional.fields'에 매핑되었습니다.
  • 'httpHeaders.content-type', 'httpHeaders.content-length', 'maskedToken', 'headers.accept'가 'security_result.about.resource.attribute.labels'에 매핑되었습니다.
  • 'headers.x-real-ip'가 'principal.ip'에 매핑되었습니다.
  • 'headers.x-forwarded-host'가 'principal.hostname'에 매핑되었습니다.
  • 'headers.x-forwarded-port'가 'principal.port'에 매핑되었습니다.
  • 'headers.snyk-acting-org-public-id', 'headers.snyk-flow-name', 'headers.snyk-request-id'가 'principal.resource.attribute.labels'에 매핑되었습니다.

2023-02-09

  • 파서를 새로 만들었습니다.

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