Nutanix Prism 로그 수집
다음에서 지원:
Google SecOps
SIEM
개요
이 파서는 Nutanix Prism 로그를 처리하며 JSON 형식과 syslog 형식을 모두 처리합니다. 다양한 로그 구조에서 필드를 추출하고 UDM으로 정규화하며 사용자 정보, 네트워크 세부정보, 보안 심각도와 같은 추가 컨텍스트로 데이터를 보강합니다. 파서는 HTTP 메서드와 로그 수준에 따라 특정 작업을 실행하여 이벤트를 USER_LOGIN, STATUS_UPDATE, GENERIC_EVENT와 같은 UDM 이벤트 유형으로 분류합니다.
시작하기 전에
- Google SecOps 인스턴스가 있는지 확인합니다.
- Nutanix Prism Central에 대한 권한 있는 액세스 권한이 있는지 확인합니다.
- systemd가 있는 Windows 2012 SP2 이상 또는 Linux 호스트가 있는지 확인합니다.
- 프록시 뒤에서 실행하는 경우 방화벽 포트가 열려 있는지 확인합니다.
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: tcplog: # 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: Namespace raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
다음 명령어를 사용하여 변경사항을 적용하도록 Bindplane 에이전트를 다시 시작합니다.
sudo systemctl bindplane restart
Nutanix Prism에서 Syslog 내보내기
- 권한이 부여된 계정을 사용하여 Prism Central에 로그인합니다.
- 메뉴에서 Prism Central 설정을 선택합니다.
- 시스템로그 서버로 이동합니다.
- + 시스템로그 서버 구성을 클릭합니다.
- Syslog Servers 대화상자에서 입력 매개변수의 값을 지정합니다.
- 서버 이름: 서버 이름을 입력합니다 (예: Google SecOps Bindplane 서버).
- IP 주소: Bindplane 에이전트의 IP를 입력합니다.
- 포트: Bindplane 에이전트가 리슨하는 포트를 입력합니다.
- 전송 프로토콜: TCP를 선택합니다.
- 구성을 클릭합니다.
- 데이터 소스 옵션에서 + 수정을 클릭합니다.
- 데이터 소스 및 해당 심각도 수준 대화상자에서 입력 매개변수의 값을 지정합니다.
- API 감사, 감사, 흐름을 선택합니다.
- 각각의 심각도 수준을 6 - 정보로 설정합니다.
- 저장을 클릭합니다.
UDM 매핑 테이블
로그 필드 | UDM 매핑 | 논리 |
---|---|---|
@timestamp |
metadata.event_timestamp |
이벤트 타임스탬프는 @timestamp 필드에서 파싱됩니다. yyyy-MM-dd HH:mm:ss.SSS , yyyy-MM-ddTHH:mm:ssZ , ISO8601 형식이 지원됩니다. |
agent.id |
observer.asset_id |
agent.type 와 결합되어 'agent.type:agent.id' 형식의 관찰자 애셋 ID를 형성합니다. |
agent.type |
observer.application |
관찰에 사용되는 애플리케이션입니다. |
agent.version |
observer.platform_version |
관찰자 애플리케이션의 버전입니다. |
alertUid |
security_result.detection_fields.value |
알림 UID 값이 detection_fields 내의 value 필드에 매핑됩니다. key 이 'Alert Uid'로 설정됩니다. |
api_version |
metadata.product_version |
API 버전입니다. |
clientIp |
principal.ip , principal.asset.ip |
클라이언트 IP 주소입니다. |
client_type |
principal.labels.value |
클라이언트 유형의 값입니다. key 이(가) 'client_type'으로 설정됩니다. |
defaultMsg |
metadata.description |
기본 메시지입니다. |
entity_uuid |
metadata.product_log_id |
엔티티 UUID입니다. |
http_method |
network.http.method |
HTTP 메서드입니다. 대문자로 변환되었습니다. |
host.architecture |
principal.asset.hardware.cpu_platform |
호스트의 아키텍처입니다. |
host.id |
principal.asset_id |
주 애셋 ID를 만들기 위해 'NUTANIX:'가 앞에 붙습니다. |
host.ip |
principal.ip , principal.asset.ip |
호스트 IP 주소입니다. |
host.mac |
principal.mac |
호스트 MAC 주소입니다. |
host.os.kernel |
principal.platform_patch_level |
호스트 운영체제의 커널 버전입니다. |
host.os.platform |
principal.platform |
호스트 운영체제의 플랫폼입니다. LINUX , WINDOWS , MAC 또는 UNKNOWN_PLATFORM 에 매핑됩니다. |
host.os.version |
principal.platform_version |
호스트 운영체제의 버전입니다. |
input.type |
network.ip_protocol |
네트워크 프로토콜입니다. 'UDP' 또는 'TCP'에 매핑됩니다. |
log.source.address |
principal.ip , principal.asset.ip , principal.port |
소스 IP와 포트를 추출하기 위해 파싱됩니다. |
logstash.collect.host |
observer.ip |
Logstash 수집기의 IP 주소입니다. |
logstash.collect.timestamp |
metadata.collected_timestamp |
로그가 수집된 타임스탬프입니다. |
logstash.ingest.host |
intermediary.hostname |
Logstash 수집 서버의 호스트 이름입니다. |
logstash.ingest.timestamp |
metadata.ingested_timestamp |
로그가 수집된 타임스탬프입니다. |
logstash.irm_environment |
principal.labels.value |
irm 환경의 값입니다. key 이 'irm_environment'로 설정됩니다. |
logstash.irm_region |
principal.labels.value |
irm 지역의 값입니다. key 이 'irm_region'으로 설정됩니다. |
logstash.irm_site |
principal.labels.value |
irm 사이트의 값입니다. key 이(가) 'irm_site'로 설정됩니다. |
logstash.process.host |
intermediary.hostname |
Logstash 처리 서버의 호스트 이름입니다. |
operationType |
metadata.product_event_type |
작업 유형입니다. |
originatingClusterUuid |
additional.fields.value.string_value |
원래 클러스터 UUID입니다. key 이 'Originating Cluster Uuid'로 설정됩니다. |
params.mac_address |
target.mac |
매개변수의 MAC 주소입니다. |
params.requested_ip_address |
target.ip , target.asset.ip |
매개변수에서 요청된 IP 주소입니다. |
params.vm_name |
target.resource.name |
매개변수의 VM 이름입니다. |
program |
metadata.product_event_type |
프로그램 이름입니다. |
rest_endpoint |
target.url |
REST 엔드포인트입니다. |
sessionId |
additional.fields.value.string_value |
세션 ID입니다. key 이 '세션 ID'로 설정됩니다. |
syslog_host |
principal.hostname , principal.asset.hostname |
시스템 로그 호스트입니다. |
timestamp |
metadata.event_timestamp |
이벤트 타임스탬프입니다. |
username |
principal.user.user_display_name 또는 principal.user.userid |
사용자 이름입니다. http_method 이 'POST'인 경우 사용자 ID로 사용됩니다. |
uuid |
metadata.product_log_id |
UUID입니다. |
해당 사항 없음 | metadata.vendor_name |
'Nutanix_Prism'으로 하드코딩됩니다. |
해당 사항 없음 | metadata.product_name |
'Nutanix_Prism'으로 하드코딩됩니다. |
해당 사항 없음 | metadata.event_type |
has_principal , has_target , audit_log , network_set , http_method 값을 기반으로 파서 로직에 의해 결정됩니다. GENERIC_EVENT , USER_LOGIN , STATUS_UPDATE , USER_RESOURCE_ACCESS , RESOURCE_CREATION , USER_RESOURCE_UPDATE_CONTENT , USER_RESOURCE_DELETION 일 수 있습니다. |
해당 사항 없음 | metadata.log_type |
'NUTANIX_PRISM'으로 하드코딩됩니다. |
해당 사항 없음 | extensions.auth.type |
metadata.event_type 이 USER_LOGIN 이면 'AUTHTYPE_UNSPECIFIED'로 설정합니다. |
해당 사항 없음 | security_result.severity |
log_level 및 syslog_pri 에 기반한 파서 로직에 따라 결정됩니다. CRITICAL , ERROR , HIGH , MEDIUM , INFORMATIONAL 일 수 있습니다. |
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.