Fluentd 로그 수집
이 문서에서는 Fluentd 및 Google Security Operations 전달자를 구성하여 Fluentd 로그를 수집하는 방법을 설명합니다. 이 문서에는 지원되는 로그 유형과 지원되는 Fluentd 버전도 나와 있습니다.
자세한 내용은 Google Security Operations에 데이터 수집을 참조하세요.
개요
다음 배포 아키텍처 다이어그램은 Google Security Operations에 로그를 전송하도록 전달자 서버와 애그리게이터 서버에 Fluentd를 설치하는 방법을 보여줍니다. 각 고객 배포는 이 표현과 다를 수 있고 더 복잡할 수 있습니다.
이 아키텍처 다이어그램은 다음 구성요소를 보여줍니다.
Linux 시스템: 모니터링할 Linux 시스템입니다. Linux 시스템은 모니터링할 파일과 Fluentd 전달자 서버로 구성됩니다.
Microsoft Windows 시스템: Fluentd 전달자 서버가 설치될 모니터링할 Microsoft Windows 시스템입니다.
Fluentd 전달자: Fluentd 전달자는 Microsoft Windows 또는 Linux 시스템에서 정보를 수집하여 Fluentd 애그리게이터로 전달합니다.
Fluentd 애그리게이터: Fluentd 애그리게이터는 Fluentd 전달자로부터 로그를 수신하고 이를 Google Security Operations 전달자로 전달합니다.
Google Security Operations 전달자. Google Security Operations 전달자는 syslog를 지원하는 고객의 네트워크에 배포된 경량형 소프트웨어 구성요소입니다. Google Security Operations 전달자는 로그를 Google Security Operations로 전달합니다.
Google Security Operations. Google Security Operations는 Fluentd 애그리게이터의 로그를 보관하고 분석합니다.
수집 라벨은 원시 로그 데이터를 구조화된 UDM 형식으로 정규화하는 파서를 식별합니다. 이 문서의 정보는 FLUENTD
수집 라벨이 있는 파서에 적용됩니다.
시작하기 전에
모니터링하려는 Microsoft Windows 또는 Linux 시스템에 Fluentd 전달자가 설치되어 있는지 확인합니다. Fluentd 전달자 설치에 대한 자세한 내용은 Fluentd 설치를 참조하세요.
Google Security Operations 파서에서 지원하는 Fluentd 버전을 사용합니다. Google Security Operations 파서는 Fluentd 버전 1.0을 지원합니다.
Fluentd 애그리게이터가 중앙 Linux 서버에 설치되고 구성되었는지 확인합니다.
배포 아키텍처의 모든 시스템이 UTC 시간대로 구성되었는지 확인합니다.
Google Security Operations 파서에서 지원하는 로그 유형을 확인합니다. 다음 표에는 Google Security Operations 파서에서 지원하는 제품과 로그 파일 경로가 나와 있습니다.
운영체제 제품 로그 파일 경로 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 전달자 및 애그리게이터, Google Security Operations 전달자 구성
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>
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>
Fluentd 애그리게이터에서 Google Security Operations 전달자로 로그를 전달하려면 다음 형식으로 구성 파일을 만듭니다.
<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>
Google Security Operations 전달자를 구성하여 로그를 Google Security Operations에 전송합니다. 자세한 내용은 Linux에서 전달자 설치 및 구성을 참조하세요. 다음은 Google Security Operations 전달자 구성의 예시입니다.
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 로그 필드를 각 로그 유형의 Google Security Operations 통합 데이터 모델(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'로 설정됨 이벤트 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 |