Raccogliere i log di Nix System Red Hat
Questo documento spiega come importare i log di RHEL Server (Unix System) in Google Security Operations utilizzando Bindplane. Il parser acquisisce i log formattati in formato syslog e JSON, inizializza un'ampia gamma di campi UDM con stringhe vuote, esegue diverse sostituzioni di stringhe nel campo message
e poi tenta di analizzare il messaggio come JSON. Se l'analisi JSON non va a buon fine, utilizza i pattern grok per estrarre i campi in base ai contenuti di message
e event_details.original
, mappando i campi estratti all'UDM in base al tipo di evento e a vari controlli condizionali, gestendo diversi formati e strutture di log da vari processi e servizi del sistema Unix.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Istanza Google SecOps
- Se l'esecuzione avviene tramite un proxy, le porte del firewall sono aperte
- Accesso con privilegi a un server RHEL
Recuperare il file di autenticazione importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.
Recuperare l'ID cliente Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
Esegui questo comando:
sudo sh -c `$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)` install_unix.sh
Risorse aggiuntive per l'installazione
Per ulteriori opzioni di installazione, consulta la guida all'installazione.
Configura l'agente Bindplane per importare Syslog e inviarli a Google SecOps
- Accedi al file di configurazione:
- Individua il file
config.yaml
. In genere si trova nella directory/etc/bindplane-agent/
su Linux. - Apri il file utilizzando un editor di testo (ad esempio
nano
ovi
).
- Individua il file
Modifica il file
config.yaml
come segue:receivers: filelog/linux: include: - /var/log/messages - /var/log/lastlog - /var/log/btmp - /var/log/wtmp - /var/log/secure - /var/log/cron - /var/log/maillog - /var/log/boot start_at: end poll_interval: 5s exporters: chronicle/linux: # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'NIX_SYSTEM' override_log_type: false raw_log_field: body service: pipelines: logs/linux: receivers: - filelog/linux exporters: [chronicle/linux] ```
- Sostituisci
<customer_id>
con l'ID cliente effettivo. Aggiorna
/path/to/ingestion-authentication-file.json
al percorso in cui è stato salvato il file di autenticazione nella sezione Recupera il file di autenticazione per l'importazione di Google SecOps.Avvia l'agente Bindplane e applica le modifiche
Avvia l'agente Bindplane:
sudo systemctl start bindplane-agent
Attiva il servizio di raccolta otel di observIQ:
systemctl enable --now bindplane-agent
Se necessario, riavvia l'agente Bindplane:
sudo systemctl restart bindplane-agent
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
AccessControlRuleAction |
security_result.action |
Se AccessControlRuleAction è Allow , impostalo su ALLOW . Se AccessControlRuleAction è Block , impostalo su BLOCK . |
ACPolicy |
security_result.rule_labels |
Chiave: ACPolicy , valore: ACPolicy |
AccessControlRuleName |
security_result.rule_name |
Mappatura diretta. |
acct |
event.idm.read_only_udm.target.user.userid |
Mappatura diretta dopo la rimozione di virgolette e barre rovesciate. |
addr |
event.idm.read_only_udm.target.ip , event.idm.read_only_udm.target.asset.ip |
Mappatura diretta se non è vuoto, ? o UNKNOWN . |
ApplicationProtocol |
event.idm.read_only_udm.network.application_protocol |
Mappatura diretta. |
auid |
event.idm.read_only_udm.additional.fields |
Chiave: auid , valore: auid |
comm |
event.idm.read_only_udm.target.process.command_line |
Mappatura diretta. |
command |
event.idm.read_only_udm.target.process.command_line |
Mappatura diretta dopo la rimozione degli spazi vuoti iniziali e finali. |
Computer |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Mappatura diretta. Se il campo è vuoto, utilizza HostName . |
ConnectionID |
security_result.detection_fields |
Chiave: Connection ID , valore: ConnectionID |
cwd |
event.idm.read_only_udm.target.process.file.full_path |
Mappatura diretta dopo la rimozione delle virgolette. |
data |
message |
Utilizzato nei pattern grok. |
desc |
security_result.description |
Mappatura diretta. |
description |
event.idm.read_only_udm.metadata.description , security_result.description |
Mappatura diretta. |
descript |
security_result.description |
Mappatura diretta dopo la rimozione degli hash. |
DeviceUUID |
event.idm.read_only_udm.metadata.product_log_id |
Mappatura diretta. |
DNSQuery |
event.idm.read_only_udm.additional.fields |
Chiave: DNSQuery , valore: DNSQuery |
DNSRecordType |
event.idm.read_only_udm.additional.fields |
Chiave: DNSRecordType , valore: DNSRecordType |
DNSResponseType |
event.idm.read_only_udm.additional.fields |
Chiave: DNSResponseType , valore: DNSResponseType |
DNS_TTL |
event.idm.read_only_udm.additional.fields |
Chiave: DNS_TTL , valore: DNS_TTL |
DstIP |
event.idm.read_only_udm.target.ip , event.idm.read_only_udm.target.asset.ip |
Mappatura diretta. |
DstPort |
event.idm.read_only_udm.target.port |
Mappatura diretta, convertita in numero intero. |
dvc |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip , event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname , event.idm.read_only_udm.intermediary.ip , event.idm.read_only_udm.target.ip , event.idm.read_only_udm.target.asset.ip , event.idm.read_only_udm.target.hostname , event.idm.read_only_udm.target.asset.hostname |
Se l'IP è valido, viene mappato sull'IP principale/di destinazione. Se nome host, mappato al nome host principale/di destinazione. Utilizzato anche per l'IP intermediario, se valido. |
EgressInterface |
event.idm.read_only_udm.principal.asset.attribute.labels |
Chiave: EgressInterface , valore: EgressInterface |
EgressVRF |
event.idm.read_only_udm.principal.asset.attribute.labels |
Chiave: EgressVRF , valore: EgressVRF |
EgressZone |
event.idm.read_only_udm.target.location.name |
Mappatura diretta. |
eventType |
event.idm.read_only_udm.metadata.product_event_type , event.idm.read_only_udm.target.application |
Mappatura diretta. Per SERVICE_START e SERVICE_STOP , mappati su target.application e poi cancellati. |
EventTime |
@timestamp |
Analizzato come timestamp. |
exe |
event.idm.read_only_udm.target.process.command_line |
Mappatura diretta dopo la rimozione di virgolette e barre rovesciate. |
extended_description |
event.idm.read_only_udm.metadata.description |
Mappatura diretta dopo la rimozione di trattini e virgolette. |
Facility |
event.idm.read_only_udm.principal.resource.attribute.labels |
Chiave: Facility , valore: Facility |
filepath |
event.idm.read_only_udm.principal.process.file.full_path |
Mappatura diretta. |
file_path |
event.idm.read_only_udm.target.file.full_path |
Mappatura diretta. |
file_path_value |
event.idm.read_only_udm.target.file.full_path |
Mappatura diretta. |
FirstPacketSecond |
security_result.detection_fields |
Chiave: FirstPacketSecond , valore: FirstPacketSecond |
from |
event.idm.read_only_udm.network.email.from |
Mappatura diretta dopo la rimozione delle parentesi angolari. |
generic_ip |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
Mappatura diretta se un IP valido e non A256: . |
gid |
event.idm.read_only_udm.target.user.group_identifiers |
Mappatura diretta. |
grp |
event.idm.read_only_udm.target.group.group_display_name |
Mappatura diretta dopo la rimozione di virgolette e barre rovesciate. |
hashing_algo |
security_result.summary |
Mappatura diretta. |
home |
event.idm.read_only_udm.target.file.full_path |
Mappatura diretta. |
HostName |
Computer |
Utilizzato se Computer è vuoto. |
HostIP |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
La parte di HostIP prima di % viene estratta e mappata come validated_ip . |
hostname |
event.idm.read_only_udm.target.hostname , event.idm.read_only_udm.target.asset.hostname , event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Mappatura diretta se non è vuoto o ? . |
host_name |
event.idm.read_only_udm.target.hostname , event.idm.read_only_udm.target.asset.hostname |
Mappatura diretta. |
InitiatorBytes |
event.idm.read_only_udm.network.sent_bytes |
Mappatura diretta, convertita in numero intero senza segno. |
InitiatorPackets |
event.idm.read_only_udm.network.sent_packets |
Mappatura diretta, convertita in numero intero. |
insertId |
event.idm.read_only_udm.metadata.product_log_id |
Mappatura diretta. |
InstanceID |
security_result.detection_fields |
Chiave: Instance ID , valore: InstanceID |
int_dvc |
event.idm.read_only_udm.intermediary.hostname |
Mappatura diretta. |
ip |
event.idm.read_only_udm.target.ip , event.idm.read_only_udm.target.asset.ip , event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
Mappatura diretta. |
ip_protocol |
event.idm.read_only_udm.network.ip_protocol |
Mappatura diretta. |
laddr |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
Mappatura diretta se non è vuoto o ? . |
level |
security_result.severity |
Se info , imposta su INFORMATIONAL . |
log.syslog.facility.name |
event.idm.read_only_udm.target.application |
Mappatura diretta. |
log.syslog.severity.name |
security_result.severity |
Se Emergency , imposta su HIGH . |
logName |
logname |
Mappatura diretta. |
log_description |
security_result.description |
Mappatura diretta. |
log_level |
security_result.severity |
Se error , imposta su ERROR . |
log_summary |
security_result.summary |
Mappatura diretta. |
logger_name |
event.idm.read_only_udm.principal.resource.attribute.labels |
Chiave: logger_name , valore: logger_name |
log_type |
event.idm.read_only_udm.metadata.log_type |
Codificato in modo permanente su NIX_SYSTEM . |
lport |
event.idm.read_only_udm.principal.port |
Mappatura diretta, convertita in numero intero. |
MG |
event.idm.read_only_udm.principal.resource.attribute.labels |
Chiave: MG , valore: MG |
method |
event.idm.read_only_udm.network.http.method |
Mappatura diretta, convertita in maiuscolo. |
msg1 |
event.idm.read_only_udm.metadata.description , event.idm.read_only_udm.additional.fields , security_result.description |
Analizzati utilizzando i pattern grok. Se event_type è GENERIC_EVENT , mappato a description . |
msg2 |
event.idm.read_only_udm.network.received_bytes , security_result.summary |
Se contiene cifre, viene convertito in un numero intero senza segno e mappato a received_bytes . In caso contrario, viene mappato a summary . |
NAPPolicy |
security_result.rule_labels |
Chiave: NAPPolicy , valore: NAPPolicy |
name |
event.idm.read_only_udm.target.process.file.full_path |
Mappatura diretta dopo la rimozione delle virgolette. |
outcome |
security_result.action |
Se Succeeded o contiene success , imposta su ALLOW . |
p_id |
event.idm.read_only_udm.target.process.pid |
Mappatura diretta. |
pid |
event.idm.read_only_udm.target.process.pid , event.idm.read_only_udm.principal.process.pid |
Mappatura diretta. |
principal_hostname |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Mappatura diretta. |
principal_ip |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
Mappatura diretta. |
principal_present |
event.idm.read_only_udm.metadata.event_type |
Se true e has_target è true , imposta event_type su NETWORK_UNCATEGORIZED . Se true o user_present è true , imposta event_type su USER_UNCATEGORIZED . |
process |
event.idm.read_only_udm.target.application , event.idm.read_only_udm.metadata.product_event_type |
Mappatura diretta. Se eventType è vuoto, viene utilizzato come target.application . |
ProcessID |
event.idm.read_only_udm.principal.process.pid |
Mappatura diretta, convertita in stringa. |
ProcessName |
event.idm.read_only_udm.principal.resource.attribute.labels |
Chiave: ProcessName , valore: ProcessName |
prod_eve_type |
event.idm.read_only_udm.metadata.product_event_type |
Mappatura diretta. |
product_event_type |
event.idm.read_only_udm.metadata.product_event_type |
Mappatura diretta. |
Protocol |
event.idm.read_only_udm.network.ip_protocol |
Se corrisponde a icmp , udp o tcp (senza distinzione tra maiuscole e minuscole), viene mappato al valore corrispondente in maiuscolo. |
proto |
event.idm.read_only_udm.network.application_protocol |
Se ssh o ssh2 , imposta su SSH . |
pwd |
event.idm.read_only_udm.target.file.full_path |
Mappatura diretta. |
reason |
security_result.summary , security_result.description |
Utilizzato in combinazione con action e desc per creare security_result.description . Mappato anche a security_result.summary . |
relayHostname |
event.idm.read_only_udm.intermediary.hostname |
Mappatura diretta. |
relayIp |
event.idm.read_only_udm.intermediary.ip |
Mappatura diretta. |
res |
security_result.summary |
Mappatura diretta. |
resource.labels.instance_id |
event.idm.read_only_udm.target.resource.product_object_id |
Mappatura diretta. |
resource.labels.project_id |
event.idm.read_only_udm.target.asset.attribute.cloud.project.id |
Mappatura diretta. |
resource.labels.zone |
event.idm.read_only_udm.target.asset.attribute.cloud.availability_zone |
Mappatura diretta. |
resource.type |
event.idm.read_only_udm.target.resource.resource_subtype |
Mappatura diretta. |
response_code |
event.idm.read_only_udm.network.http.response_code |
Mappatura diretta, convertita in numero intero. |
ResponderBytes |
event.idm.read_only_udm.network.received_bytes |
Mappatura diretta, convertita in numero intero senza segno. |
ResponderPackets |
event.idm.read_only_udm.network.received_packets |
Mappatura diretta, convertita in numero intero. |
rhost |
event.idm.read_only_udm.additional.fields |
Chiave: rhost , valore: rhost |
ruser |
srcUser |
Mappatura diretta. |
sec_action |
security_result.action |
Mappatura eseguita in base a action o eventType . |
sec_summary |
security_result.summary |
Mappatura diretta. |
security_action |
security_result.action |
Mappatura diretta. |
sent_bytes |
event.idm.read_only_udm.network.sent_bytes |
Mappatura diretta, convertita in numero intero senza segno. |
ses |
event.idm.read_only_udm.network.session_id , event.idm.read_only_udm.network.session_duration |
Se numerico, viene analizzato come timestamp UNIX e mappato a session_duration . In caso contrario, viene mappato a session_id . |
SeverityLevel |
security_result.severity |
Mappato a gravità diverse in base al valore (notice/info -> INFORMATIONAL, warn -> HIGH, error -> ERROR, other -> UNKNOWN_SEVERITY). |
sessionId |
event.idm.read_only_udm.network.session_id |
Mappatura diretta. |
size |
event.idm.read_only_udm.network.received_bytes |
Mappatura diretta, convertita in numero intero senza segno. |
source |
event.idm.read_only_udm.principal.hostname , event.idm.read_only_udm.principal.asset.hostname |
Mappatura diretta dopo la rimozione dello spazio vuoto iniziale. |
SourceSystem |
event.idm.read_only_udm.principal.resource.attribute.labels , event.idm.read_only_udm.principal.platform |
Chiave: SourceSystem , valore: SourceSystem . Mappato anche su platform (Linux -> LINUX, Window -> WINDOWS, Mac/iOS -> MAC). |
SrcIP |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
Mappatura diretta. |
SrcPort |
event.idm.read_only_udm.principal.port |
Mappatura diretta, convertita in numero intero. |
srcIp |
event.idm.read_only_udm.principal.ip , event.idm.read_only_udm.principal.asset.ip |
Mappatura diretta. |
srcPort |
event.idm.read_only_udm.principal.port |
Mappatura diretta, convertita in numero intero. |
srcUser |
event.idm.read_only_udm.principal.user.userid |
Mappatura diretta. |
src_user |
event.idm.read_only_udm.principal.user.userid |
Mappatura diretta. |
src_user_display_name |
event.idm.read_only_udm.principal.user.user_display_name |
Mappatura diretta. |
status |
security_result.action |
Se Deferred , imposta su BLOCK . Se Sent , imposta su ALLOW . |
summary |
security_result.summary |
Mappatura diretta. |
SyslogMessage |
security_result.description |
Mappatura diretta. |
targetEmail |
event.idm.read_only_udm.network.email.to |
Mappatura diretta. |
targetEmailfrom |
event.idm.read_only_udm.network.email.from |
Mappatura diretta. |
targetHostname |
event.idm.read_only_udm.target.hostname , event.idm.read_only_udm.target.asset.hostname |
Mappatura diretta. |
target_hostname |
event.idm.read_only_udm.target.hostname , event.idm.read_only_udm.target.asset.hostname |
Mappatura diretta. |
target_ip |
event.idm.read_only_udm.target.ip , event.idm.read_only_udm.target.asset.ip |
Mappatura diretta. |
target_mac |
event.idm.read_only_udm.target.mac |
Mappatura diretta. |
target_uri |
event.idm.read_only_udm.target.url |
Mappatura diretta. |
TenantId |
event.idm.read_only_udm.principal.user.product_object_id |
Mappatura diretta. |
terminal |
event.idm.read_only_udm.additional.fields |
Chiave: terminal , valore: terminal se non è vuoto o ? . |
TimeGenerated |
event.idm.read_only_udm.metadata.collected_timestamp |
Analizzato come timestamp. |
timestamp |
@timestamp |
Analizzato come timestamp. |
tls_cipher |
event.idm.read_only_udm.network.tls.cipher |
Mappatura diretta. |
Type |
event.idm.read_only_udm.principal.resource.attribute.labels |
Chiave: Type , valore: Type |
uid |
event.idm.read_only_udm.principal.user.userid |
Se 0 , imposta su root . In caso contrario, mappatura diretta. |
uid_2 |
event.idm.read_only_udm.target.user.userid |
Mappatura diretta se uid è vuoto. |
unit |
event.idm.read_only_udm.target.application |
Mappatura diretta. |
url |
event.idm.read_only_udm.target.url |
Mappatura diretta. |
user |
username |
Mappatura diretta. |
username |
event.idm.read_only_udm.target.user.userid , event.idm.read_only_udm.principal.user.userid |
Mappatura diretta. |
user_display_name |
event.idm.read_only_udm.target.user.user_display_name |
Mappatura diretta. |
user_present |
event.idm.read_only_udm.metadata.event_type |
Se true o principal_present è true , imposta event_type su USER_UNCATEGORIZED . |
_Internal_WorkspaceResourceId |
event.idm.read_only_udm.target.resource.attribute.labels , event.idm.read_only_udm.target.resource.product_object_id |
Chiave: _Internal_WorkspaceResourceId , valore: _Internal_WorkspaceResourceId . L'ID abbonamento viene estratto e mappato a product_object_id . |
_ItemId |
event.idm.read_only_udm.principal.resource.attribute.labels |
Chiave: _ItemId , valore: _ItemId |
_ResourceId |
event.idm.read_only_udm.principal.resource.attribute.labels , event.idm.read_only_udm.principal.resource.product_object_id |
Chiave: _ResourceId , valore: _ResourceId . L'ID abbonamento viene estratto e mappato a product_object_id . |
_timestamp |
@timestamp |
Analizzato come timestamp. |
_timestamp_tz |
@timestamp |
Analizzato come timestamp. |
event.idm.read_only_udm.metadata.event_type
: inizialmente impostato suGENERIC_EVENT
, poi sovrascritto in base alla logica del parser.event.idm.read_only_udm.metadata.product_name
: Codificato suUnix System
.event.idm.read_only_udm.extensions.auth.type
: imposta suMACHINE
per determinati tipi di eventi.event.idm.read_only_udm.target.asset.attribute.cloud.environment
: impostato suGOOGLE_CLOUD_PLATFORM
per i log di controllo di Google Cloud .event.idm.read_only_udm.target.resource.resource_type
: impostato suVIRTUAL_MACHINE
per i log di controllo di Google Cloud .event.idm.read_only_udm.extensions.auth.mechanism
: imposta suUSERNAME_PASSWORD
per gli eventi di accesso.has_target_resource
: imposta sutrue
se è presenteresource.labels.instance_id
o_Internal_WorkspaceResourceId
.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.