Fluentd 로그 수집

이 문서에서는 Fluentd 및 Chronicle 전달자를 구성하여 Fluentd 로그를 수집하는 방법을 설명합니다. 이 문서는 지원되는 로그 유형과 지원되는 Fluentd 버전도 나열합니다.

자세한 내용은 Chronicle 데이터 수집을 참조하세요.

개요

다음 배포 아키텍처 다이어그램은 Chronicle에 로그를 전송하도록 전달자 서버와 애그리게이터 서버에 Fluentd를 설치하는 방법을 보여줍니다. 각 고객 배포는 이 표현과 다를 수 있고 더 복잡할 수 있습니다.

배포 아키텍처

이 아키텍처 다이어그램은 다음 구성요소를 보여줍니다.

  • Linux 시스템: 모니터링할 Linux 시스템입니다. Linux 시스템은 모니터링할 파일과 Fluentd 전달자 서버로 구성됩니다.

  • Microsoft Windows 시스템: Fluentd 전달자 서버가 설치될 모니터링할 Microsoft Windows 시스템입니다.

  • Fluentd 전달자: Fluentd 전달자는 Microsoft Windows 또는 Linux 시스템에서 정보를 수집하여 Fluentd 애그리게이터에 전달합니다.

  • Fluentd 애그리게이터: Fluentd 애그리게이터는 Fluentd 전달자로부터 로그를 수신하고 이를 Chronicle 전달자로 전달합니다.

  • Chronicle 전달자: Chronicle 전달자는 syslog를 지원하는 고객의 네트워크에 배포된 경량형 소프트웨어 구성요소입니다. Chronicle 전달자는 로그를 Chronicle로 전달합니다.

  • Chronicle. Chronicle은 Fluentd 애그리게이터에서 로그를 보관하고 분석합니다.

수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 FLUENTD 수집 라벨이 있는 파서에 적용됩니다.

시작하기 전에

  • Fluentd 전달자가 모니터링하려는 Microsoft Windows 또는 Linux 시스템에 설치되어 있는지 확인합니다. Fluentd 전달자 설치에 대한 자세한 내용은 Fluentd 설치를 참조하세요.

  • Chronicle 파서가 지원하는 Fluentd 버전을 사용합니다. Chronicle 파서는 Fluentd 버전 1.0을 지원합니다.

  • Fluentd 애그리게이터가 중앙 Linux 서버에 설치 및 구성되었는지 확인합니다.

  • 배포 아키텍처의 모든 시스템이 UTC 시간대로 구성되었는지 확인합니다.

  • Chronicle 파서가 지원하는 로그 유형을 확인합니다. 다음 표에는 Chronicle 파서가 지원하는 제품과 로그 파일 경로가 나와 있습니다.

    운영체제 제품 로그 파일 경로
    Windows Windows 이벤트 로그
    Linux Linux /var/log/audit/audit.log
    Linux Linux /var/log/syslog
    Linux apache2 /var/log/apache2/access.log
    Linux apache2 /var/log/apache2/error.log
    Linux apache2 /var/log/apache2/other_vhosts_access.log
    Linux apache2 /var/log/apache2/novnc-server-access.log
    Linux OpenVpn /var/log/openvpnas.log
    Linux Nginx /var/log/nginx/access.log
    Linux Nginx /var/log/nginx/error.log
    Linux rkhunter /var/log/rkhunter.log
    Linux Linux /var/log/auth.log
    Linux Linux /var/log/kern.log
    Linux rundeck /var/log/rundeck/service.log
    Linux Samba /var/log/samba/log.winbindd
    Linux Linux /var/log/mail.log

Fluentd 전달자 및 애그리게이터, Chronicle 전달자 구성

  1. Linux 시스템이 생성하는 로그를 모니터링하려면 td-agent.conf 파일을 만들어 Fluentd 전달자의 로그 모니터링 구성을 지정합니다. 다음은 Linux 시스템의 Fluentd 포워더에 대한 구성 파일 예시입니다.

    <source>
    @type tail
    path /var/log/nginx/access.log
    pos_file /var/log/td-agent/nginx-access.log.pos
    tag mytag.nginx.access
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/nginx/error.log
    pos_file /var/log/td-agent/nginx-error.log.pos
    tag mytag.nginx.error
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/apache2/access.log
    pos_file /var/log/td-agent/apache-access.log.pos
    tag mytag.apache.access
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/apache2/error.log
    pos_file /var/log/td-agent/apache-error.log.pos
    tag mytag.apache.error
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/audit/audit.log
    pos_file /var/log/td-agent/audit.log.pos
    tag mytag.audit
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/syslog/syslog.log
    pos_file /var/log/td-agent/syslog.log.pos
    tag mytag.syslog
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path  /var/log/apache2/other_vhosts_access.log
    pos_file /var/log/td-agent/vhost.log.pos
    tag mytag.apache.other_vhosts_access
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path  /var/log/apache2/novnc-server-access.log
    pos_file /var/log/td-agent/novnc.log.pos
    tag mytag.apache.novnc-server-access
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/openvpnas.log
    pos_file /var/log/td-agent/openvpnas.log.pos
    tag mytag.openvpnas
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/auth.log
    pos_file /var/log/td-agent/auth.log.pos
    tag mytag.auth
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/kern.log
    pos_file /var/log/td-agent/kern.log.pos
    tag mytag.kern
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/rundeck/service.log
    pos_file /var/log/td-agent/rundeck.log.pos
    tag mytag.rundeck
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/mail.log
    pos_file /var/log/td-agent/mail.log.pos
    tag mytag.mail
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    path /var/log/rkhunter.log
    pos_file /var/log/td-agent/rkhunter.log.pos
    tag mytag.rkhunter
    <parse>
    @type none
    </parse>
    </source>
    
    <source>
    @type tail
    Path /var/log/samba/log.winbindd
    pos_file /var/log/td-agent/winbindd.log.pos
    tag mytag.winbindd
    <parse>
    @type none
    </parse>
    </source>
    
    <filter  mytag.**>
    @type record_transformer
    <record>
    forwarder_hostname "#{Socket.gethostname}"
    </record>
    </filter>
    
    <filter  mytag.nginx.access.**>
    @type record_transformer
    <record>
    path "/var/log/nginx/access.log"
    </record>
    </filter>
    
    <filter  mytag.nginx.error.**>
    @type record_transformer
    <record>
    path "/var/log/nginx/error.log"
    </record>
    </filter>
    
    <filter  mytag.apache.access.**>
    @type record_transformer
    <record>
    path "/var/log/apache2/access.log"
    </record>
    </filter>
    
    <filter  mytag.apache.error.**>
    @type record_transformer
    <record>
    path "/var/log/apache2/error.log"
    </record>
    </filter>
    
    <filter  mytag.audit.**>
    @type record_transformer
    <record>
    path "/var/log/audit/audit.log"
    </record>
    </filter>
    
    <filter  mytag.syslog.**>
    @type record_transformer
    <record>
    path "/var/log/syslog/syslog.log"
    </record>
    </filter>
    
    <filter  mytag.apache.other_vhosts_access.**>
    @type record_transformer
    <record>
    path "/var/log/apache2/other_vhosts_access.log"
    </record>
    </filter>
    
    <filter  mytag.apache.novnc-server-access.**>
    @type record_transformer
    <record>
    path "/var/log/apache2/novnc-server-access.log"
    </record>
    </filter>
    
    <filter mytag.openvpnas.**>
    @type record_transformer
    <record>
    path "/var/log/openvpnas.log"
    </record>
    </filter>
    
    <filter mytag.auth.**>
    @type record_transformer
    <record>
    path "/var/log/auth.log"
    </record>
    </filter>
    
    <filter mytag.kern.**>
    @type record_transformer
    <record>
    path "/var/log/kern.log"
    </record>
    </filter>
    
    <filter mytag.rundeck.**>
    @type record_transformer
    <record>
    path "/var/log/rundeck/service.log"
    </record>
    </filter>
    
    <filter mytag.mail.**>
    @type record_transformer
    <record>
    path "/var/log/mail.log"
    </record>
    </filter>
    
    <filter mytag.rkhunter.**>
    @type record_transformer
    <record>
    path "/var/log/rkhunter.log"
    </record>
    </filter>
    
    <filter mytag.winbindd.**>
    @type record_transformer
    <record>
    path "/var/log/samba/log.winbindd"
    </record>
    </filter>
    
    <match mytag.**>
    @type forward
    # primary host
    <server>
    host <AGGREGATOR_HOSTNAME>
    port <AGGREGATOR_PORT>
    </server>
    </match>
    
  2. Microsoft Windows 시스템에서 생성되는 로그를 모니터링하려면 td-agent.conf 파일을 만들어 Fluentd 전달자의 로그 모니터링 구성을 지정합니다. 다음은 Microsoft Windows 시스템의 Fluentd 전달자에 대한 구성 파일 예시입니다.

    <source>
    @type windows_eventlog
    @id windows_eventlog
    channels application,security,system
    read_existing_events true
    read_interval 2
    tag windows.raw
    render_as_xml true
    <storage>
    @type local
    persistent true
    path E:\windows.pos
    </storage>
    </source>
    <match windowslog>
    @type forward
    <server>
    host <AGGREGATOR_HOSTNAME>
    port <AGGREGATOR_PORT>
    username <AGGREGATOR_USERNAME>
    password <AGGREGATOR_PASSWORD>
    </server>
    </match>
    
    
  3. Fluentd 애그리게이터의 로그를 Chronicle 전달자로 전달하려면 다음 형식으로 구성 파일을 만듭니다.

    <source>
    @type forward
    port <AGGREGATOR_PORT>
    </source>
    
    ## Forwarding
    <match mytag.**>
    @id output_system_forward
    @type forward
    # IP and port of the forwarder
    <server>
     host <CHRONICLE_FORWARDER_HOSTNAME>
     port <CHRONICLE_FORWARDER_PORT>
    </server>
    </match>
    
  4. Chronicle로 로그를 보내도록 Chronicle 전달자를 구성합니다. 자세한 내용은 Linux에서 전달자 설치 및 구성을 참조하세요. 다음은 Chronicle 전달자 구성의 예시입니다.

    common:
      enabled: true
      data_type: FLUENTD
      batch_n_seconds: 10
      batch_n_bytes: 1048576
    tcp_address: 0.0.0.0:10514
    connection_timeout_sec: 60
    

필드 매핑 참조

이 섹션에서는 파서가 Linux 및 Microsoft Windows 시스템에 대한 grok 패턴을 적용하는 방법과 Fluentd 로그 필드를 각 로그 유형의 Chronicle 통합 데이터 모델(UDM) 필드에 매핑하는 방법을 설명합니다.

일반 필드의 매핑 참조에 대한 자세한 내용은 일반 필드를 참조하세요.

Linux 시스템의 로그 경로, 예시 로그의 grok 패턴, 이벤트 유형, UDM 필드에 대한 참조 정보는 다음 섹션을 참조하세요.

지원되는 Microsoft Windows 이벤트 및 해당 UDM 필드에 대한 자세한 내용은 Microsoft Windows 이벤트 데이터를 참조하세요.

일반 필드

다음 표에는 일반 로그 필드와 해당 UDM 필드가 나와 있습니다.

일반 로그 필드 UDM 필드
collected_time metadata.collected_timestamp
inner_message.message inner_message
inner_message.forwarder_hostname target.hostname 또는 principal.hostname
inner_message.path event_source

Linux 시스템

다음 표에는 Linux 시스템의 로그 경로, 예시 로그의 grok 패턴, 이벤트 유형, UDM 매핑이 나와 있습니다.

로그 경로 예시 로그 Grok 패턴 이벤트 유형 UDM 매핑
/var/log/apache2/error.log [Thu Apr 28 16:13:01.283342 2022] [core:notice] [pid 18394:tid 140188660751296] [client 1.200.32.47:59840] failed to make connection [{timestamp}][{log_module}:{log_level}][pid{pid}(<optional_field>:tid{tid}|)](<optional_field> [client {client_ip}:{client_port}]|) (?<error_message>.*) NETWORK_UNCATEGORIZED

timestamp가 metadata.event_timestamp에 매핑됨

log_module이 target.resource.name에 매핑됨

log_level이 security_result.severity에 매핑됨

pid가 target.process.parent_process.pid에 매핑됨

tid가 target.process.pid에 매핑됨

client_ip가 principal.ip에 매핑됨

client_port가 principal.port에 매핑됨

error_message가 security_result.description에 매핑됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

/var/log/apache2/error.log [Thu Apr 28 16:13:01.283342 2022] [core:notice] [pid 18394:tid 140188660751296] failed to make connection [{timestamp}][{log_module}:{severity}][pid{pid}(<optional_field>:tid{tid}|)]{error_message} NETWORK_UNCATEGORIZED

timestamp가 metadata.event_timestamp에 매핑됨

log_module이 target.resource.name에 매핑됨

log_level이 security_result.severity에 매핑됨

pid가 target.process.parent_process.pid에 매핑됨

tid가 target.process.pid에 매핑됨

error_message가 security_result.description에 매핑됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

/var/log/apache2/error.log [Thu Apr 28 16:13:01.283342 2022] [core:notice] [pid 18394:tid 140188660751296] AH00094: 명령줄: '/usr/sbin/apache2' [{timestamp}][{log_module}:{log_level}][pid{pid}(<optional_field>:tid{tid}|)](<optional_field> [client {client_ip}:{client_port}]|) (?<error_message>.*),referer{referer_url} NETWORK_UNCATEGORIZED

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

timestamp가 metadata.event_timestamp에 매핑됨

log_module이 target.resource.name에 매핑됨

log_level이 security_result.severity에 매핑됨

pid가 target.process.parent_process.pid에 매핑됨

tid가 target.process.pid에 매핑됨

client_ip가 principal.ip에 매핑됨

client_port가 principal.port에 매핑됨

error_message가 security_result.description에 매핑됨

target.platform이 'LINUX'로 설정됨

referer_url이 network.http.referral_url에 매핑됨

/var/log/apache2/error.log [Sun Jan 30 15:14:47.260309 2022] [proxy_http:error] [pid 12515:tid 140035781285632] [client 1.200.32.47:59840] AH01114: HTTP: failed to make connection to backend: 192.0.2.1 , referer http:// [{timestamp}] [{log_module}:{log_level}] [pid {pid}(<optional_field>:tid{tid}|)] [client {client_ip}:{client_port}]( <message_text>HTTP: )?{error_message}:( {target_ip})(<optional_field>,referer{referer_url})?" NETWORK_HTTP

timestamp가 metadata.event_timestamp에 매핑됨

log_module이 target.resource.name에 매핑됨

log_level이 security_result.severity에 매핑됨

pid가 target.process.parent_process.pid에 매핑됨

tid가 target.process.pid에 매핑됨

client_ip가 principal.ip에 매핑됨

client_port가 principal.port에 매핑됨

error_message가 security_result.description에 매핑됨

target_ip가 target.ip에 매핑됨

referer_url이 network.http.referral_url에 매핑됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

/var/log/apache2/error.log [Sat Feb 02 00:30:55 2019] New connection: [connection: gTxkX8Z6tjk] [client 192.0.2.1:50786] [{timestamp}]<message_text>connection:[connection:{connection_id}][client{client_ip}:{client_port}] NETWORK_UNCATEGORIZED

timestamp가 metadata.event_timestamp에 매핑됨

client_ip가 principal.ip에 매핑됨

client_port가 principal.port에 매핑됨

connection_id가 network.session_id에 매핑됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

/var/log/apache2/error.log [Sat Feb 02 00:30:55 2019] New request: [connection: j8BjX4Z5tjk] [request: ACtkX1Z5tjk] [pid 8] [client 192.0.2.1:50784] [{timestamp}]<message_text>request:[connection:{connection_id}][request:{request_id}][pid{pid}][client{client_ip}:{client_port}] NETWORK_UNCATEGORIZED

timestamp가 metadata.event_timestamp에 매핑됨

request_id가 security_result.detection_fields.(key/value)에 매핑됨

client_ip가 principal.ip에 매핑됨

client_port가 principal.port에 매핑됨

pid가 target.process.parent_process.pid에 매핑됨

connection_id가 network.session_id에 매핑됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

/var/log/apache2/error.log [Sat Feb 02 00:30:55 2019] [info] [C: j8BjX4Z5tjk] [R: p7pjX4Z5tjk] [pid 8] core.c(4739): [client 192.0.2.1:50784] AH00128: File does not exist: /usr/local/apache2/htdocs/favicon.ico [{timestamp}] [{log_level}][C:{connection_id}][R:{request_id}][pid {pid}(<optional_field>:tid{tid}|)]<message_text>[client {client_ip}:{client_port}]{error_message}:{file_path} NETWORK_UNCATEGORIZED

timestamp가 metadata.event_timestamp에 매핑됨

log_level이 security_result.severity에 매핑됨

request_id가 security_result.detection_fields.(key/value)에 매핑됨

client_ip가 principal.ip에 매핑됨

client_port가 principal.port에 매핑됨

pid가 target.process.parent_process.pid에 매핑됨

connection_id가 network.session_id에 매핑됨

error_message가 security_result.description에 매핑됨

file_path가 target.file.full_path에 매핑됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

/var/log/apache2/access.log 192.0.2.1 - - [28/Apr/2022:17:35:52 +0530] "GET / HTTP/1.1" 200 3476 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.0.2.1 Safari/537.36" ({client_ip})?<message_text>{userid}[{timestamp}](<optional_field>{method}/(<optional_field>{resource}?) {client_protocol}?){result_status}{object_size}(<optional_field>(<optional_field>{referer_url}?)(<optional_field>{user_agent}?)? NETWORK_HTTP

client_ip가 principal.ip에 매핑됨

userid가 principal.user.userid에 매핑됨

host가 principal.hostname에 매핑됨

timestamp가 metadata.event_timestamp에 매핑됨

method가 network.http.method에 매핑됨

resource가 principal.resource.name에 매핑됨

client_protocol이 network.application_protocol에 매핑됨

result_status가 network.http.response_code에 매핑됨

object_size가 network.sent_bytes에 매핑됨

referer_url이 network.http.referral_url에 매핑됨

user_agent가 network.http.user_agent에 매핑됨

network.ip_protocol이 'TCP'로 설정됨

network.direction이 'OUTBOUND'로 설정됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

var/log/apache2/other_vhosts_access.log wintest.example.com:80 ::1 - - [14/Jan/2022:14:08:16 -0700] \"GET /server-status?auto HTTP/1.1\" 200 1415 \"-\" \"Python-urllib/2.7\" {target_host}:{NUMBER:target_port} {client_ip} - (<optional_field>{host}?) [{timestamp}](<optional_field>{method}/(<optional_field>{resource}?){client_protocol}?){result_status}{object_size}(<optional_field>{referer_url}?)(<optional_field>{user_agent}?) NETWORK_HTTP target_host가 target.hostname에 매핑됨

target_port가 target.port에 매핑됨

client_ip가 principal.ip에 매핑됨

userid가 principal.user.userid에 매핑됨

host가 principal.hostname에 매핑됨

timestamp가 metadata.event_timestamp에 매핑됨

method가 network.http.method에 매핑됨

resource가 principal.resource.name에 매핑됨

result_status가 network.http.response_code에 매핑됨

object_size가 network.sent_bytes에 매핑됨

referer_url이 network.http.referral_url에 매핑됨

user_agent가 network.http.user_agent에 매핑됨

network.ip_protocol이 'TCP'로 설정됨

network.direction이 'OUTBOUND'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

network.application_protocol이 'HTTP'로 설정됨

var/log/apache2/novnc-server-access.log wintest.example.com:80 ::1 - - [14/Jan/2022:14:08:16 -0700] \"GET /server-status?auto HTTP/1.1\" 200 1415 \"-\" \"http://\" {target_host}:{NUMBER:target_port} {client_ip} - (<optional_field>{host}?) [{timestamp}](<optional_field>{method}/(<optional_field>{resource}?){client_protocol}?){result_status}{object_size}(<optional_field>{referer_url}?)(<optional_field>{user_agent}?) NETWORK_HTTP

client_ip가 principal.ip에 매핑됨

userid가 principal.user.userid에 매핑됨

method가 network.http.method에 매핑됨

path가 target.url에 매핑됨

result_status가 network.http.response_code에 매핑됨

object_size가 network.sent_bytes에 매핑됨

referer_url이 network.http.referral_url에 매핑됨

user_agent가 network.http.user_agent에 매핑됨

network.ip_protocol이 'TCP'로 설정됨

network.direction이 'OUTBOUND'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

network.application_protocol이 'HTTP'로 설정됨

/var/log/apache2/access.log "http://192.0.2.1/test/first.html" -> /google.com (<optional_field>{referer_url}?)->(<optional_field>{path}?) GENERIC_EVENT

path가 target.url에 매핑됨

referer_url이 network.http.referral_url에 매핑됨

network.direction이 'OUTBOUND'로 설정됨

target.platform이 'LINUX'로 설정됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

/var/log/apache2/access.log Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Code/1.67.0 Chrome/98.0.4758.141 Electron/17.4.1 Safari/537.36 (<optional_field>{user_agent}) GENERIC_EVENT

user_agent가 network.http.user_agent에 매핑됨

network.direction이 'OUTBOUND'로 설정됨

target.platform이 'LINUX'로 설정됨

network.application_protocol이 'HTTP'로 설정됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'Apache'로 설정됨

metadata.product_name이 'Apache HTTP 서버'로 설정됨

var/log/nginx/access.log 192.0.2.1 - admin [05/May/2022:11:53:27 +0530] "GET /icons/ubuntu-logo.png HTTP/1.1" 404 209 "http://198.51.100.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/192.0.2.1 Safari/537.36" {principal_ip} - (<optional_field>{principal_user_userid}?) [{timestamp}] {http_method} /(<optional_field>{resource_name}?|) {protocol}(<message_text>){response_code} {received_bytes}(<optional_field>{referer_url}) ({user_agent}|{user_agent})? NETWORK_HTTP

time이 metadata.timestamp에 매핑됨

ip가 target.ip에 매핑됨

principal_ip가 principal.ip에 매핑됨

principal_user_userid가 principal.user.userid에 매핑됨

metadata_timestamp가 timestamp에 매핑됨

http_method가 network.http.method에 매핑됨

resource_name이 principal.resource.name에 매핑됨

protocol이 network.application_protocol = (HTTP)에 매핑됨

response_code가 network.http.response_code에 매핑됨

received_bytes가 network.sent_bytes에 매핑됨

referer_url이 network.http.referral_url에 매핑됨

user_agent가 network.http.user_agent에 매핑됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'NGINX'로 설정됨

metadata.product_name이 'NGINX'로 설정됨

network.ip_protocol이 'TCP'로 설정됨

network.direction이 'OUTBOUND'로 설정됨

var/log/nginx/error.log 2022/01/29 13:51:48 [error] 593#593: *62432 open() \"/usr/share/nginx/html/nginx_status\" failed (2: No such file or directory), client: 192.0.2.1, server: localhost, request: \"GET /nginx_status HTTP/1.1\", host: \"192.0.2.1:8080\" "{year}\/{month}\/{day}{time}[{severity}]{pid}#{thread_id}:{inner_message2}"

inner_message2 is mapped to "{security_result_description_2},client:{principal_ip},server:(<optional_field>{target_hostname}?),request:"{http_method} /(<optional_field>{resource_name}?) {protocol}/1.1",host:"({target_ip}:{target_port})?"

"bind() to ({target_ip}|[{target_ip}]):{target_port} failed ({security_description})",

"\*{cid}{security_description}",

"{security_description}"

NETWORK_HTTP

thread_id가 principal.process.pid에 매핑됨

severity가 security_result.severity에 매핑됨

(debug가 UNKNOWN_SEVERITY에 매핑됨, info가 INFORMATIONAL에 매핑됨, notice가 LOW에 매핑됨, warn이 MEDIUM에 매핑됨, error가 ERROR에 매핑됨, crit가 CRITICAL에 매핑됨, alert가 HIGH에 매핑됨)

target_file_full_path가 target.file.full_path에 매핑됨

principal_ip가 principal.ip에 매핑됨

target_hostname이 target.hostname에 매핑됨

http_method가 network.http.method에 매핑됨

resource_name이 principal.resource.name에 매핑됨

protocol이 'TCP'에 매핑됨

target_ip가 target.ip에 매핑됨

target_port가 target.port에 매핑됨

security_description + security_result_description_2가 security_result.description에 매핑됨

pid가 principal.process.parent_process.pid에 매핑됨

network.application_protocol이 'HTTP'로 설정됨

timestamp가 {year}/{day}/{month} {time}에 매핑됨

target.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'NGINX'로 설정됨

metadata.product_name이 'NGINX'로 설정됨

network.ip_protocol이 'TCP'로 설정됨

network.direction이 'OUTBOUND'로 설정됨

var/log/rkhunter.log [14:10:40] Required commands check failed [<message_text>]{security_description} STATUS UPDATE

time이 metadata.timestamp에 매핑됨

security_description이 security_result.description에 매핑됨

principal.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'RootKit Hunter'로 설정됨

metadata.product_name이 'RootKit Hunter'로 설정됨

var/log/rkhunter.log [14:09:52] Checking for file '/dev/.oz/.nap/rkit/terror' [ Not found ] [<message_text>] {security_description} {file_path}[\{metadata_description}] FILE_UNCATEGORIZED metadata_description이 metadata.description에 매핑됨

file_path가 target.file.full_path에 매핑됨

security_description이 security_result.description에 매핑됨

principal.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'RootKit Hunter'로 설정됨

metadata.product_name이 'RootKit Hunter'로 설정됨

var/log/rkhunter.log fluentd: File size reduced (inode remained): '/var/log/rkhunter.log'. (<optional_field><message_text>:){metadata_description}:'{file_path}' FILE_UNCATEGORIZED

time이 metadata.timestamp에 매핑됨

metadata_description이 metadata.description에 매핑됨

file_path가 target.file.full_path에 매핑됨

principal.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'RootKit Hunter'로 설정됨

metadata.product_name이 'RootKit Hunter'로 설정됨

/var/log/kern.log Apr 28 12:41:35 localhost kernel: [ 5079.912215] ctnetlink v0.93: registering with nfnetlink. {timestamp}{principal_hostname}{metadata_product_event_type}:[<message_text>]{metadata_description} STATUS UPDATE

timestamp가 'metadata.event_timestamp'에 매핑됨

principal_hostname이 'principal.hostname'에 매핑됨

metadata_product_event_type이 'metadata.product_event_type'에 매핑됨

metadata_description이 'metadata.description'에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

principal.platform이 'LINUX'로 설정됨

/var/log/kern.log Jul 6 11:17:01 Ubuntu18 kernel: [ 0.030139] smpboot: CPU0: Intel(R) Xeon(R) Gold 5220R CPU @ 2.20GHz (family: 0x6, model: 0x55, stepping: 0x7) {timestamp}{principal_hostname}{metadata_product_event_type}:([<message_text>])<message_text>:\CPU0:{principal_asset_hardware_cpu_model}({metadata_description}) STATUS_UPDATE

timestamp가 'metadata.event_timestamp'에 매핑됨

principal_hostname이 'principal.hostname'에 매핑됨

metadata_product_event_type이 'metadata.product_event_type'에 매핑됨

principal_asset_hardware_cpu_model이 'principal.asset.hardware.cpu_model'에 매핑됨

metadata_description이 'metadata.description'에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

principal.platform이 'LINUX'로 설정됨

cpu_model이 principal.asset.hardware.cpu_model에 매핑됨

/var/log/syslog.log May 24 10:30:42 Ubuntu18 systemd[1]: Started Session 112 of user kajal. {collected_timestamp}{hostname}{command_line}(<optional_field>[{pid}]):{message} STATUS_UPDATE

collected_time이 metadata.event_timestamp에 매핑됨

hostname이 principal.hostname에 매핑됨

pid가 principal.process.pid에 매핑됨

message가 metadata.description에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

principal.platform이 'LINUX'로 설정됨

command_line이 principal.process.command_line에 매핑됨

/var/log/syslog.log Jul 06 10:14:37 Ubuntu18 rsyslogd: rsyslogd's userid changed to 102 {collected_timestamp}{hostname}{command_line}:{message}to{user_id} STATUS_UPDATE

collected_time이 metadata.collected_timestamp에 매핑됨

hostname이 principal.hostname에 매핑됨

message가 metadata.description에 매핑됨

user_id가 principal.user.userid에 매핑됨

command_line이 principal.process.command_line에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

principal.platform이 'LINUX'로 설정됨

/var/log/syslog.log Jul 06 10:36:48 Ubuntu18 systemd[1]: Starting System Logging Service... {collected_timestamp}{hostname}{command_line}(<optional_field>|[{pid}]):{message} STATUS_UPDATE

collected_time이 metadata.event_timestamp에 매핑됨

hostname이 principal.hostname에 매핑됨

pid가 principal.process.pid에 매핑됨

message가 metadata.description에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

principal.platform이 'LINUX'로 설정됨

command_line이 principal.process.command_line에 매핑됨

var/log/openvpnas.log 2022-04-29T10:51:22+0530 [stdout#info] [OVPN 4] OUT: '2022-04-29 05:21:22 mohit_AUTOLOGIN/198.51.100.1:16245 MULTI: Learn: 198.51.100.1 -> mohit_AUTOLOGIN/203.0.113.1:16245' {timestamp}[stdout#{log_level}][OVPN <message_text>]OUT:(<optional_field>'|")<message_text>-<message_text>{user}\/{ip}:{port}MULTI:Learn:{local_ip}->{target_hostname}?{target_ip}:{port}(<optional_field>'|") NETWORK_HTTP

timestamp가 metadata.timestamp에 매핑됨

log_level이 security_result.severity에 매핑됨

local_ip가 principal.ip에 매핑됨

target_ip가 target.ip에 매핑됨

target_hostname이 principal.hostname에 매핑됨

port가 target.port에 매핑됨

user가 principal.user.user_display_name에 매핑됨

metadata.vendor_name이 'OpenVPN'으로 설정됨

metadata.product_name이 'OpenVPN Access Server'로 설정됨

principal.platform이 'LINUX'로 설정됨

var/log/openvpnas.log 2022-04-28T16:14:13+0530 [stdout#info] [OVPN 6] OUT: '2022-04-28 16:14:13 library versions: OpenSSL 1.1.1 11 Sep 2018, LZO 2.08' {timestamp}[stdout#{log_level}][OVPN <message_text>]OUT:(<optional_field>'|")<message_text>{msg}(<optional_field>'|") STATUS UPDATE

timestamp가 metadata.timestamp에 매핑됨

log_level이 security_result.severity에 매핑됨

msg가 security_result.description에 매핑됨

metadata.vendor_name이 'OpenVPN'으로 설정됨

metadata.product_name이 'OpenVPN Access Server'로 설정됨

principal.platform이 'LINUX'로 설정됨

var/log/openvpnas.log 2022-04-28T16:14:13+0530 [stdout#info] [OVPN 6] OUT: '2022-04-28 16:14:13 net_addr_v4_add: 198.51.100.1/23 dev as0t6'

{timestamp}[stdout#{log_level}][OVPN <message_text>]OUT:<optional_field>'|"<message_text>-<message_text>-<message_text><message_text>{message}<optional_field>'|"

message가 (net_addr_v4_add|net_route_v4_best_gw):{target_ip}/{target_port}에 매핑됨

STATUS UPDATE

principal.platform이 'LINUX'로 설정됨

target_ip가 target.ip에 매핑됨

target_port가 target.port에 매핑됨

severity가 security_result.severity에 매핑됨

timestamp가 metadata.timestamp에 매핑됨

metadata.vendor_name이 OpenVPN으로 설정됨

metadata.product_name이 OpenVPN Access Server로 설정됨

var/log/openvpnas.log 2022-04-29T10:51:22+0530 [stdout#info] [OVPN 4] OUT: '2022-04-29 05:21:22 198.51.100.1:16245 [mohit_AUTOLOGIN] Peer Connection Initiated with [AF_INET]192.0.2.1:16245 (via [AF_INET]198.51.100.1%ens160)'

{timestamp}[stdout#{log_level}][OVPN <message_text>]OUT:(<optional_field>'|")<message_text>{message}(<optional_field>'|")

message가 <message_text>with[<message_text>]<message_text>:{port}<message_text>에 매핑됨

STATUS UPDATE

timestamp가 metadata.timestamp에 매핑됨

log_level이 security_result.severity에 매핑됨

metadata.vendor_name이 OpenVPN으로 설정됨

metadata.product_name이 OpenVPN Access Server로 설정됨

principal.platform이 Linux로 설정됨

target_ip가 target.ip에 매핑됨

target_port가 target.port에 매핑됨

target_hostname이 target.hostname에 매핑됨

intermediary_ip가 intermediary.ip에 매핑됨

var/log/openvpnas.log 2022-04-29T10:51:22+0530 [stdout#info] [OVPN 4] OUT: \"2022-04-29 05:21:22 mohit_AUTOLOGIN/198.51.100.1:16245 SENT CONTROL [mohit_AUTOLOGIN]: 'PUSH_REPLY,explicit-exit-notify,topology subnet,route-delay 5 30,dhcp-pre-release,dhcp-renew,dhcp-release,route-metric 101,ping 12,ping-restart 50,redirect-gateway def1,redirect-gateway bypass-dhcp,redirect-gateway autolocal,route-gateway 198.51.100.1,dhcp-option DNS 192.0.2.1,dhcp-option DNS 192.0.2.1,register-dns,block-ipv6,ifconfig 198.51.100.1 203.0.113.1,peer-id 0,auth-tokenSESS_ID,cipher AES-256-GCM,key-derivation tls-ekm' (status=1)\" {timestamp}[stdout#{log_level}][OVPN <message_text>]OUT:(<optional_field>'|")<message_text>{user}\/{ip}:{message}(<optional_field>'|") STATUS UPDATE

timestamp가 metadata.timestamp에 매핑됨

log_level이 security_result.severity에 매핑됨

message가 metadata.description에 매핑됨

user가 target.hostname에 매핑됨

ip가 target.ip에 매핑됨

port가 taregt.port에 매핑됨

metadata.vendor_name이 OpenVPN으로 설정됨

metadata.product_name이 OpenVPN Access Server로 설정됨

principal.platform이 Linux로 설정됨

var/log/openvpnas.log 2022-04-29T10:51:22+0530 [stdout#info] AUTH SUCCESS {'status': 0, 'user': 'mohit', 'reason': 'AuthAutoLogin: autologin certificate auth succeeded', 'proplist': {'prop_autogenerate': 'true', 'prop_autologin': 'true', 'pvt_password_digest': '[redacted]', 'type': 'user_connect'}, 'common_name': 'mohit_AUTOLOGIN', 'serial': '3', 'serial_list': []} cli='win'/'3.git::d3f8b18b'/'OCWindows_3.3.6-2752' {timestamp}[stdout#{log_level}]{summary}{'<message_text>':({status})?'<message_text>':({user})?'<message_text>':({reason})?<message_text>}, 'common_name':'{user_name}'<message_text>}cli='{cli}' STATUS UPDATE

timestamp가 metadata.timestamp에 매핑됨

log_level이 security_result.severity에 매핑됨

message가 security_result.description에 매핑됨

summary가 security_result.summary에 매핑됨

user_name이 principal.user.user_display_name에 매핑됨

cli가 principal.process.command_line에 매핑됨

status가 principal.user.user_authentication_status에 매핑됨

metadata.vendor_name이 'OpenVPN'으로 설정됨

metadata.product_name이 'OpenVPN Access Server'로 설정됨

principal.platform이 'LINUX'로 설정됨

/var/log/rundeck/service.log [2022-05-04T17:03:11,166] WARN config.NavigableMap - Accessing config key '[filterNames]' through dot notation is deprecated, and it will be removed in a future release. Use 'config.getProperty(key, targetClass)' instead. [{timestamp}]{severity}{summary}\-{security_description}

, {command_line}\({file_path}:<message_text>\)에 위치

STATUS UPDATE command_line이 'target.process.command_line'에 매핑됨

file_path가 'target.process.file.full_path'에 매핑됨

timestamp가 'metadata.event_timestamp'에 매핑됨

severity가 'security_result.severity'에 매핑됨

summary가 'security_result.summary'에 매핑됨

security_description이 'security_result.description'에 매핑됨

metadata.product_name이 'FLUENTD'로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

/var/log/auth.log Jul 4 19:26:19 Ubuntu18 systemd-logind[982]: Removed session 153. {timestamp} {principal_hostname}{principal_application}(<optional_field>[{pid}]):{security_description}{network_session_id}?(of user{principal_user_userid})? USER_LOGOUT

timestamp가 'metadata.timestamp'에 매핑됨

값이 'USER_LOGOUT'이면 principal_hostname은 target.hostname에 매핑되고 그 밖의 경우에는 principal.hostname에 매핑됩니다.

값이 'USER_LOGOUT'이면 principal_application이 target.application에 매핑되고 그 밖의 경우에는 'principal.application'에 매핑됩니다.

값이 'USER_LOGOUT'이면 pid가 target.process.pid에 매핑되고 그 밖의 경우에는 principal.process.pid로 매핑됩니다.

security_description이 'security_result.description'에 매핑됨

network_session_id가 'network.session_id'에 매핑됨

값이 'USER_LOGOUT'이면 principal_user_userid는 principal.user.userid에 매핑되며 그 밖의 경우에는 target.user.userid에 매핑됩니다.

'principal.platform'이 'LINUX'로 설정됨

event security_description이 삭제된 세션인 경우 event_type이 USER_LOGOUT으로 설정됩니다.

extensions.auth.type이 AUTHTYPE_UNSPECIFIED로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/auth.log Jun 27 11:07:17 Ubuntu18 systemd-logind[804]: 사용자 루트의 새로운 세션 564. {timestamp} {principal_hostname}{principal_application}(<optional_field>[{pid}]):{security_description}{network_session_id}?(of user{principal_user_userid})? USER_LOGIN

timestamp가 'metadata.timestamp'에 매핑됨

값이 'USER_LOGOUT'이면 principal_hostname은 target.hostname에 매핑되고 그 밖의 경우에는 principal.hostname에 매핑됩니다.

값이 'USER_LOGOUT'이면 principal_application이 target.application에 매핑되고 그 밖의 경우에는 'principal.application'에 매핑됩니다.

값이 'USER_LOGOUT'이면 pid가 target.process.pid에 매핑되고 그 밖의 경우에는 principal.process.pid로 매핑됩니다.

security_description이 'security_result.description'에 매핑됨

network_session_id가 'network.session_id'에 매핑됨

값이 'USER_LOGOUT'이면 principal_user_userid는 principal.user.userid에 매핑되며 그 밖의 경우에는 target.user.userid에 매핑됩니다.

'principal.platform'이 'LINUX'로 설정됨

'network.application_protocol'이 'SSH'에 매핑됨

if(new_session) event_type이 USER_LOGIN으로 설정됨

extensions.auth.type이 AUTHTYPE_UNSPECIFIED로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/auth.log Jun 27 11:07:17 Ubuntu18 sshd[9349]: Accepted password for root from 198.51.100.1 port 57619 ssh2 {timestamp} {principal_hostname}{principal_application}(<optional_field>[{pid}])<optional_field> {security_description} for (invalid user )?{principal_user_userid} from {principal_ip} port {principal_port} ssh2(:{security_result_detection_fields_ssh_kv}SHA256:{security_result_detection_fields_kv})? USER_LOGIN

timestamp가 'metadata.timestamp'에 매핑됨

값이 'USER_LOGOUT'이면 principal_hostname은 target.hostname에 매핑되고 그 밖의 경우에는 principal.hostname에 매핑됩니다.

값이 'USER_LOGOUT'이면 principal_application이 target.application에 매핑되고 그 밖의 경우에는 'principal.application'에 매핑됩니다.

값이 'USER_LOGOUT'이면 pid가 target.process.pid에 매핑되고 그 밖의 경우에는 principal.process.pid로 매핑됩니다.

security_description이 'security_result.description'에 매핑됨

값이 'USER_LOGOUT'이면 principal_user_userid는 principal.user.userid에 매핑되며 그 밖의 경우에는 target.user.userid에 매핑됩니다.

principal_ip가 'principal.ip'에 매핑됨

principal_port가 'principal.port'에 매핑됨

security_result_detection_fields_ssh_kv가 'security_result.detection_fields.key/value'에 매핑됨

security_result_detection_fields_kv가 'security_result.detection_fields.key/value'에 매핑됨

'principal.platform'이 'LINUX'로 설정됨

'network.application_protocol'이 'SSH'로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/auth.log Apr 28 11:51:13 Ubuntu18 sudo[24149]: root : TTY=pts/5 ; PWD=/ ; USER=root ; COMMAND=/bin/ls {timestamp} {principal_hostname}{principal_application}(<optional_field>[{pid}])<optional_field> {principal_user_userid} :( {security_description} ;)? TTY=<message_text> ; PWD={principal_process_command_line_1} ; USER={principal_user_attribute_labels_uid_kv} ; COMMAND={principal_process_command_line_2} STATUS UPDATE

timestamp가 metadata.timestamp에 매핑됨

principal_hostname이 principal.hostname에 매핑됨

principal_application이 principal.application에 매핑됨

pid가 principal.process.pid에 매핑됨

principal_user_userid가 target.user.userid에 매핑됨

security_description이 'security_result.description'에 매핑됨

principal_process_command_line_1이 'principal.process.command_line'에 매핑됨

principal_process_command_line_2가 'principal.process.command_line'에 매핑됨

principal_user_attribute_labels_uid_kv가 'principal.user.attribute.labels.key/value'에 매핑됨

'principal.platform'이 'LINUX'로 설정됨

/var/log/auth.log Jul 4 19:39:01 Ubuntu18 CRON[17217]: pam_unix(cron:session): session opened for user root by (uid=0) {timestamp} {principal_hostname}{principal_application}(<optional_field>[{pid}])<optional_field> {security_description} for (invalid user|user)?{principal_user_userid}(by (uid={principal_user_attribute_labels_uid_kv}))?$ USER_LOGIN

timestamp가 metadata.timestamp에 매핑됨

값이 'USER_LOGOUT'이면 principal_hostname은 target.hostname에 매핑되고 그 밖의 경우에는 principal.hostname에 매핑됩니다.

값이 'USER_LOGOUT'이면 principal_application이 target.application에 매핑되고 그 밖의 경우에는 'principal.application'에 매핑됩니다.

값이 'USER_LOGOUT'이면 pid가 target.process.pid에 매핑되고 그 밖의 경우에는 principal.process.pid로 매핑됩니다.

security_description이 'security_result.description'에 매핑됨

값이 'USER_LOGOUT'이면 principal_user_userid는 principal.user.userid에 매핑되며 그 밖의 경우에는 target.user.userid에 매핑됩니다.

principal_user_attribute_labels_uid_kv가 'principal.user.attribute.labels.key/value'에 매핑됨

'principal.platform'이 'LINUX'로 설정됨

'network.application_protocol'이 'SSH'로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/auth.log Jul 4 19:24:43 Ubuntu18 sshd[14731]: pam_unix(sshd:session): session closed for user root {timestamp} {principal_hostname}{principal_application}<optional_filed>[{pid}]): {security_description} for (invalid user|user){principal_user_userid} USER_LOGOUT

timestamp가 metadata.timestamp에 매핑됨

값이 'USER_LOGOUT'이면 principal_hostname은 target.hostname에 매핑되고 그 밖의 경우에는 principal.hostname에 매핑됩니다.

값이 'USER_LOGOUT'이면 principal_application이 target.application에 매핑되고 그 밖의 경우에는 'principal.application'에 매핑됩니다.

값이 'USER_LOGOUT'이면 pid가 target.process.pid에 매핑되고 그 밖의 경우에는 principal.process.pid로 매핑됩니다.

security_description이 'security_result.description'에 매핑됨

값이 'USER_LOGOUT'이면 principal_user_userid는 principal.user.userid에 매핑되며 그 밖의 경우에는 target.user.userid에 매핑됩니다.

principal_user_attribute_labels_uid_kv가 principal.user.attribute.labels.key/value에 매핑됨

'principal.platform'이 'LINUX'로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/auth.log Jun 30 11:32:26 Ubuntu18 sshd[29425]: Connection reset by authenticating user root 198.51.100.1 port 52518 [preauth] {timestamp} {principal_hostname}{principal_application}(<optional_field>[{pid}]):{security_description}(from|{principal_user_userid}){target_ip}port{target_port}<optional_field>[preauth]|:<text_message>{security_summary}|) USER_LOGOUT

timestamp가 metadata.timestamp에 매핑됨

값이 'USER_LOGOUT'이면 principal_hostname은 target.hostname에 매핑되고 그 밖의 경우에는 principal.hostname에 매핑됩니다.

값이 'USER_LOGOUT'이면 principal_application이 target.application에 매핑되고 그 밖의 경우에는 'principal.application'에 매핑됩니다.

값이 'USER_LOGOUT'이면 pid가 target.process.pid에 매핑되고 그 밖의 경우에는 principal.process.pid로 매핑됩니다.

security_description이 security_result.description에 매핑됨

security_summary가 security_result.summary에 매핑됨

값이 'USER_LOGOUT'이면 principal_user_userid는 principal.user.userid에 매핑되며 그 밖의 경우에는 target.user.userid에 매핑됩니다.

target_ip가 target.ip에 매핑됨

target_port가 target.port에 매핑됨

principal.platform이 'LINUX'로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

var/log/samba/log.winbindd [2022/05/05 13:51:22.212484, 0] ../source3/winbindd/winbindd_cache.c:3170(initialize_winbindd_cache)initialize_winbindd_cache: clearing cache and re-creating with version number 2 {timestamp},{severity}(<optional_field>,pid={pid},effective({principal_user_attribute_labels_kv},{principal_group_attribute_labels_kv}),real({principal_user_userid},{principal_group_product_object_id}))?]<message_text>:{security_description} STATUS UPDATE

timestamp가 'metadata.timestamp'에 매핑됨

pid가 'principal.process.pid'에 매핑됨

principal_user_attribute_labels_kv가 'principal.user.attribute.labels'에 매핑됨

principal_group_attribute_labels_kv가 'principal.group.attribute.labels'에 매핑됨

principal_user_userid가 'principal.user.userid'에 매핑됨

principal_group_product_object_id가 'principal.group.product_object_id'에 매핑됨

security_description이 'security_result.description'에 매핑됨

metadata_description이 'metadata.description'에 매핑됨

metadata.product_nam이 'FLUENTD'로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

var/log/samba/log.winbindd messaging_dgm_init: bind failed: No space left on device {user_id}: {desc} STATUS UPDATE

metadata.product_nam이 'FLUENTD'로 설정됨

metadata.vendor_name이 'FLUENTD'로 설정됨

user_id가 principal.user.userid에 매핑됨

desc가 metadata.description에 매핑됨

/var/log/mail.log July 16 11:40:56 Ubuntu18 sendmail[9341]: 22G6AtwH009341: from=<fluentd@Ubuntu18>, size=377, class=0, nrcpts=1, metadata_descriptionid=<202203160610.22G6AtwH009341@Ubuntu18.cdsys.local>, proto=SMTP, daemon=MTA-v4, relay=localhost [192.0.2.1] {timestamp} {target_hostname} {application}[{pid}]: <message_text>:{KV} STATUS UPDATE

target_hostname이 target.hostname에 매핑됨

application이 target.application에 매핑됨

pid가 target.process.pid에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/mail.log July 7 13:44:01 prod postfix/pickup[22580]: AE4271627DB: uid=0 from=<root> {timestamp} {target_hostname} {application}[{pid}]: <message_text>{KV} EMAIL_UNCATEGORIZED

target_hostname이 target.hostname에 매핑됨

application이 target.application에 매핑됨

pid가 target.process.pid에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/mail.log July 7 13:44:01 prod postfix/cleanup[23434]: AE4271627DB: message-id=<20150207184401.AE4271627DB@server.hostname.01> {timestamp} {target_hostname} {application}[{pid}]: <message_text> message-id=<{resource_name}> STATUS UPDATE

target_hostname이 target.hostname에 매핑됨

application이 target.application에 매핑됨

pid가 target.process.pid에 매핑됨

resource_name이 target.resource.name에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/mail.log July 7 13:44:01 prod postfix/qmgr[3539]: AE4271627DB: from=<root@server.hostname.01>, size=565, nrcpt=1 (queue active) {timestamp} {target_hostname} {application}[{pid}]: <message_text>{KV} EMAIL_UNCATEGORIZED

target_hostname이 target.hostname에 매핑됨

application이 target.application에 매핑됨

pid가 target.process.pid에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/mail.log July 7 13:44:01 prod postfix/smtp[23436]: connect to gmail-smtp-in.l.example.com[2607:xxxx:xxxx:xxx::xx]:25: Network is unreachable {timestamp} {target_hostname} {application}[{pid}]: <message_text>{KV} STATUS UPDATE

target_hostname이 target.hostname에 매핑됨

application이 target.application에 매핑됨

pid가 target.process.pid에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

/var/log/mail.log July 7 13:44:02 prod postfix/local[23439]: E62521627DC: to=<root@server.hostname.01>, relay=local, delay=0.01, delays=0/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox) {timestamp} {target_hostname} {application}[{pid}]: <message_text>{KV} EMAIL_UNCATEGORIZED

target_hostname이 target.hostname에 매핑됨

application이 target.application에 매핑됨

pid가 target.process.pid에 매핑됨

metadata.vendor_name이 'FLUENTD'로 설정됨

metadata.product_name이 'FLUENTD'로 설정됨

감사

감사 로그 필드와 UDM 필드

다음 표에는 감사 로그 유형의 로그 필드와 해당 UDM 필드가 나와 있습니다.

로그 필드 UDM 필드
acct target.user.user_display_name
addr principal.ip
arch about.labels.key/value
auid target.user.userid
cgroup principal.process.file.full_path
cmd target.process.command_line
comm target.application
cwd target.file.full_path
데이터 about.labels.key/value
devmajor about.labels.key/value
devminor about.labels.key/value
egid target.group.product_object_id
euid target.user.userid
exe target.process.file.full_path
exit target.labels.key/value
계열 'ip_protocol'이 == 2이면 network.ip_protocol은 'IP6IN4'로 설정되고 그 밖의 경우에는 'UNKNOWN_IP_PROTOCOL'로 설정됨
filetype target.file.mime_type
fsgid target.group.product_object_id
fsuid target.user.userid
gid target.group.product_object_id
hostname target.hostname
icmptype network.ip_protocol이 'ICMP'로 설정됨
id [audit_log_type] == 'ADD_USER'이면 target.user.userid는 '%{id}'로 설정됨

[audit_log_type] == 'ADD_GROUP'이면 target.group.product_object_id는 '%{id}'로 설정됨

그 밖의 경우에는 target.user.attribute.labels.key/value가 id로 설정됨

inode target.resource.product_object_id
security_result.detection_fields.key/value
list security_result.about.labels.key/value
mode target.resource.attribute.permissions.name

target.resource.attribute.permissions.type

name target.file.full_path
new-disk target.resource.name
new-mem target.resource.attribute.labels.key/value
new-vcpu target.resource.attribute.labels.key/value
new-net pincipal.mac
new_gid target.group.product_object_id
oauid target.user.userid
ocomm target.process.command_line
opid target.process.pid
oses network.session_id
ouid target.user.userid
obj_gid target.group.product_object_id
obj_role target.user.attribute.role.name
obj_uid target.user.userid
obj_user target.user.user_display_name
ogid target.group.product_object_id
ouid target.user.userid
경로 target.file.full_path
perm target.asset.attribute.permissions.name
pid target.process.pid
ppid target.parent_process.pid
proto [ip_protocol] == 2이면 network.ip_protocol은 'IP6IN4'로 설정됨

그 밖의 경우에는 network.ip_protocol이 'UNKNOWN_IP_PROTOCOL'로 설정됨

res security_result.summary
결과 security_result.summary
saddr security_result.detection_fields.key/value
sauid target.user.attribute.labels.key/value
ses network.session_id
sgid target.group.product_object_id
sig security_result.detection_fields.key/value
subj_user target.user.user_display_name
성공 success=='yes'인 경우 security_result.summary가 'system call was successful'로 설정되고 그 밖의 경우에는 security_result.summary가 'systemcall was failed'로 설정됩니다.
suid target.user.userid
syscall about.labels.key/value
터미널 target.labels.key/value
tty target.labels.key/value
uid [SYSCALL, SERVICE_START, ADD_GROUP, ADD_USER, MAC_IPSEC_EVENT, MAC_UNLBL_STCADD, OBJ_PID, CONFIG_CHANGE, SECCOMP, USER_CHAUTHTOK, USYS_CONFIG, DEL_GROUP, DEL_USER, USER_CMD, USER_MAC_POLICY_LOAD]의 [audit_log_type]이면 uid는 principal.user.userid로 설정됨

그 밖의 경우에는 uid가 target.user.userid로 설정됨

VM target.resource.name

감사 로그 유형과 UDM 이벤트 유형

다음 표에는 감사 로그 유형과 해당 UDM 이벤트 유형이 나와 있습니다.

감사 로그 유형 UDM 이벤트 유형 설명
ADD_GROUP GROUP_CREATION user-space 그룹이 추가되면 트리거됩니다.
ADD_USER USER_CREATION user-space 사용자 계정이 추가되면 트리거됩니다.
ANOM_ABEND GENERIC_EVENT / PROCESS_TERMINATION 프로세스가 비정상적으로 종료되면 트리거됩니다(사용 설정된 경우 코어 덤프가 발생할 수 있는 신호 포함).
AVC GENERIC_EVENT SELinux 권한 확인을 기록하기 위해 트리거됩니다.
CONFIG_CHANGE USER_RESOURCE_UPDATE_CONTENT 감사 시스템 구성이 수정되면 트리거됩니다.
CRED_ACQ USER_LOGIN 사용자가 user-space 사용자 인증 정보를 받으면 트리거됩니다.
CRED_DISP USER_LOGOUT 사용자가 user-space 사용자 인증 정보를 폐기하면 트리거됩니다.
CRED_REFR USER_LOGIN 사용자가 user-space 사용자 인증 정보를 새로고침하면 트리거됩니다.
CRYPTO_KEY_USER USER_RESOURCE_ACCESS 암호화 용도로 사용되는 암호화 키 식별자를 기록하기 위해 트리거됩니다.
CRYPTO_SESSION PROCESS_TERMINATION TLS 세션 설정 중에 설정된 매개변수를 기록하기 위해 트리거됩니다.
CWD SYSTEM_AUDIT_LOG_UNCATEGORIZED 현재 작업 디렉터리를 기록하기 위해 트리거됩니다.
DAEMON_ABORT PROCESS_TERMINATION 오류로 인해 데몬이 중지되면 트리거됩니다.
DAEMON_END PROCESS_TERMINATION 데몬이 성공적으로 중지되면 트리거됩니다.
DAEMON_RESUME PROCESS_UNCATEGORIZED auditd 데몬이 로깅을 재개하면 트리거됩니다.
DAEMON_ROTATE PROCESS_UNCATEGORIZED auditd 데몬이 감사 로그 파일을 순환하면 트리거됩니다.
DAEMON_START PROCESS_LAUNCH auditd 데몬이 시작되면 트리거됩니다.
DEL_GROUP GROUP_DELETION user-space 그룹이 삭제되면 트리거됩니다.
대기 중 사용자 삭제 user-space 사용자가 삭제되면 트리거됩니다.
EXECVE PROCESS_LAUNCH execve(2) 시스템 호출의 인수를 기록하기 위해 트리거됩니다.
MAC_CONFIG_CHANGE GENERIC_EVENT SELinux 불리언 값이 변경되면 트리거됩니다.
MAC_IPSEC_EVENT SYSTEM_AUDIT_LOG_UNCATEGORIZED IPSec 이벤트가 감지되거나 IPSec 구성이 변경되면 IPSec 이벤트 정보를 기록하기 위해 트리거됩니다.
MAC_POLICY_LOAD GENERIC_EVENT SELinux 정책 파일이 로드되면 트리거됩니다.
MAC_STATUS GENERIC_EVENT SELinux 모드(강제, 허용, 사용 중지)가 변경되면 트리거됩니다.
MAC_UNLBL_STCADD SYSTEM_AUDIT_LOG_UNCATEGORIZED NetLabel이 제공하는 커널의 패킷 라벨 지정 기능을 사용할 때 정적 라벨이 추가되면 트리거됩니다.
NETFILTER_CFG GENERIC_EVENT Netfilter 체인 수정이 감지되면 트리거됩니다.
OBJ_PID SYSTEM_AUDIT_LOG_UNCATEGORIZED 신호가 전송되는 프로세스에 대한 정보를 기록하기 위해 트리거됩니다.
PATH FILE_OPEN/GENERIC_EVENT 파일 이름 경로 정보를 기록하기 위해 트리거됩니다.
SELINUX_ERR GENERIC_EVENT 내부 SELinux 오류가 감지되면 트리거됩니다.
SERVICE_START SERVICE_START 서비스가 시작되면 트리거됩니다.
SERVICE_STOP SERVICE_STOP 서비스가 중지되면 트리거됩니다.
SYSCALL GENERIC_EVENT 커널에 대한 시스템 호출을 기록하기 위해 트리거됩니다.
SYSTEM_BOOT STATUS_STARTUP 시스템이 부팅되면 트리거됩니다.
SYSTEM_RUNLEVEL STATUS_UPDATE 시스템의 실행 수준이 변경되면 트리거됩니다.
SYSTEM_SHUTDOWN STATUS_SHUTDOWN 시스템이 종료되면 트리거됩니다.
USER_ACCT SETTING_MODIFICATION user-space 사용자 계정이 수정되면 트리거됩니다.
USER_AUTH USER_LOGIN user-space 인증 시도가 감지되면 트리거됩니다.
USER_AVC USER_UNCATEGORIZED user-space AVC 메시지가 생성되면 트리거됩니다.
USER_CHAUTHTOK USER_RESOURCE_UPDATE_CONTENT 사용자 계정 속성이 수정되면 트리거됩니다.
USER_CMD USER_COMMUNICATION user-space 셸 명령어가 실행되면 트리거됩니다.
USER_END USER_LOGOUT user-space 세션이 종료되면 트리거됩니다.
USER_ERR USER_UNCATEGORIZED 사용자 계정 상태 오류가 감지되면 트리거됩니다.
USER_LOGIN USER_LOGIN 사용자가 로그인하면 트리거됩니다.
USER_LOGOUT USER_LOGOUT 사용자가 로그아웃하면 트리거됩니다.
USER_MAC_POLICY_LOAD RESOURCE_READ user-space 데몬이 SELinux 정책을 로드하면 트리거됩니다.
USER_MGMT USER_UNCATEGORIZED user-space 관리 데이터를 기록하기 위해 트리거됩니다.
USER_ROLE_CHANGE USER_CHANGE_PERMISSIONS 사용자의 SELinux 역할이 변경되면 트리거됩니다.
USER_START USER_LOGIN user-space 세션이 시작되면 트리거됩니다.
USYS_CONFIG USER_RESOURCE_UPDATE_CONTENT user-space 시스템 구성 변경이 감지되면 트리거됩니다.
VIRT_CONTROL STATUS_UPDATE 가상 머신이 시작, 일시중지 또는 중지되면 트리거됩니다.
VIRT_MACHINE_ID USER_RESOURCE_ACCESS 가상 머신에 대한 라벨 바인딩을 기록하기 위해 트리거됩니다.
VIRT_RESOURCE USER_RESOURCE_ACCESS 가상 머신의 리소스 할당을 기록하기 위해 트리거됩니다.

메일

메일 로그 필드와 UDM 필드

다음 표에는 메일 로그 유형의 로그 필드와 해당 UDM 필드가 나와 있습니다.

로그 필드 UDM 필드
클래스 about.labels.key/value
Ctladdr principal.user.user_display_name
From network.email.from
Msgid network.email.mail_id
Proto network.application_protocol
릴레이 intermediary.hostname

intermediary.ip

크기 network.received_bytes
Stat security_result.summary
~ network.email.to

메일 로그 유형과 UDM 이벤트 유형

다음 표에는 메일 로그 유형과 해당 UDM 이벤트 유형이 나와 있습니다.

메일 로그 유형 UDM 이벤트 유형
sendmail STATUS UPDATE
pickup EMAIL_UNCATEGORIZED
cleanup STATUS UPDATE
qmgr EMAIL_UNCATEGORIZED
smtp STATUS UPDATE
로컬 EMAIL_UNCATEGORIZED

다음 단계