HashiCorp 감사 로그 수집
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
이 파서는 JSON, Syslog 또는 결합된 형식의 HashiCorp 감사 로그를 처리합니다. 필드를 추출하고 표준 및 '실행자' 유형 메시지 모두에 대해 Grok 및 KV 파싱을 실행하고 JSON 페이로드를 처리하며 추출된 데이터를 UDM에 매핑합니다. 파서에는 오류 처리와 잘못된 형식의 로그 삭제도 포함되어 있습니다.
시작하기 전에
- Google Security Operations 인스턴스가 있는지 확인합니다.
- Windows 2016 이상 또는 systemd가 있는 Linux 호스트가 있는지 확인합니다.
- 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
- HCP에 대한 권한이 있는지 확인합니다.
Google SecOps 처리 인증 파일 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 수집 에이전트로 이동합니다.
- 처리 인증 파일을 다운로드합니다.
Google SecOps 고객 ID 가져오기
- Google SecOps 콘솔에 로그인합니다.
- SIEM 설정 > 프로필로 이동합니다.
- 조직 세부정보 섹션에서 고객 ID를 복사하여 저장합니다.
Bindplane 에이전트 설치
- Windows 설치의 경우 다음 스크립트를 실행합니다.
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Linux 설치의 경우 다음 스크립트를 실행합니다.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- 추가 설치 옵션은 이 설치 가이드에서 확인할 수 있습니다.
Syslog를 수집하고 Google SecOps로 전송하도록 Bindplane 에이전트 구성
- Bindplane 에이전트가 설치된 머신에 액세스합니다.
다음과 같이
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
Bindplane 에이전트를 다시 시작하여 변경사항을 적용합니다.
sudo systemctl restart bindplane
HCP Vault에 Syslog 사용 설정
- HCP 포털에 로그인합니다.
- Vault 클러스터로 이동합니다.
- 배포된 클러스터 목록에서 Vault 클러스터를 선택합니다.
- 클러스터 개요에서 Vault 주소 (예: https://vault-cluster-name.hashicorpcloud.com:8200)를 찾아 복사합니다.
- 액세스 세부정보 섹션으로 이동하여 루트 토큰을 복사합니다.
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로 전송
- 터미널 또는 명령 프롬프트를 엽니다.
환경 변수를 사용하여 Vault 서버 주소를 설정합니다.
export VAULT_ADDR="https://vault-cluster-name.hashicorpcloud.com:8200"
루트 토큰을 사용하여 Vault에 로그인합니다.
vault login <root-token>
외부 syslog 소켓에 대한 syslog 경로 구성
다음 명령어를 실행하여 syslog를 사용 설정하고 Bindplane 에이전트로 전송합니다.
vault audit enable socket address="udp://<bindplane-ip>:<bindplane-port>" socket_type="udp" tag="vault"
새 구성을 확인합니다.
vault audit list
출력에 새 소켓 구성이 표시됩니다.
선택사항: 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 전문가의 답변을 받으세요.