Raccogliere i log del daemon di controllo Linux
Questo documento spiega come importare i log di Linux Audit Daemon (auditd) in Google Security Operations utilizzando Bindplane.
Il daemon di controllo di Linux è il componente userspace del sistema di controllo di Linux. Registra gli eventi rilevanti per la sicurezza sul sistema, inclusi l'accesso ai file, le chiamate di sistema, gli eventi di autenticazione e i rifiuti di SELinux. I log di auditd sono essenziali per il monitoraggio della conformità, il rilevamento delle intrusioni e l'analisi forense sugli host Linux.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps.
- Windows Server 2016 o versioni successive oppure host Linux con
systemd. - Se l'esecuzione avviene dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
- Accesso root o sudo all'host Linux che esegue auditd.
- Il pacchetto
auditdinstallato e in esecuzione sull'host Linux di origine. - Il pacchetto
audispd-pluginsinstallato sull'host Linux di origine (fornisce il plug-inaudisp-syslog).
Ottieni il file di autenticazione dell'acquisizione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'acquisizione. 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
Installa l'agente Bindplane sul tuo sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di finestre
- Apri Prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi 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 dell'agente Bindplane.
Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps
Accedi al file di configurazione:
- Linux:
/status observiq-otel-collector/config.yaml - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
- Linux:
Modifica il file
config.yamlcome segue:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: '<your_customer_id>' endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'AUDITD' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- Sostituisci la porta e l'indirizzo IP in base alle esigenze della tua infrastruttura.
- Sostituisci
<your_customer_id>con l'ID cliente effettivo. - Aggiorna
/path/to/ingestion-authentication-file.jsonal percorso del file in cui è stato salvato il file di autenticazione nel passaggio Recupera file di autenticazione dell'acquisizione.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux:
Esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla i log per individuare eventuali errori:
sudo journalctl -u observiq-otel-collector -f
Per riavviare l'agente Bindplane in Windows:
Scegli una delle seguenti opzioni:
- Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collector- Console dei servizi:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
- Fai clic con il tasto destro del mouse e seleziona Riavvia.
- Premi
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla i log per verificare la presenza di errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Configura auditd per l'inoltro dei log tramite syslog
Il plug-in audisp syslog inoltra gli eventi di controllo a syslog, che a sua volta li invia all'agente Bindplane. Questo è il metodo consigliato per l'inoltro dei log auditd.
Installa il plug-in audisp syslog
- Accedi all'host Linux che esegue auditd con privilegi root o sudo.
Installa il pacchetto
audispd-plugins:- RHEL/CentOS/Fedora:
sudo yum install audispd-plugins- Debian/Ubuntu:
sudo apt install audispd-plugins
Configura il plug-in syslog
Modifica il file di configurazione del plug-in syslog:
sudo nano /etc/audit/plugins.d/syslog.confImposta i seguenti valori nel file:
active = yes direction = out path = /sbin/audisp-syslog type = always args = LOG_LOCAL6 format = string- active: imposta su
yesper attivare il plug-in. - path: il percorso del file binario
audisp-syslog. - type: impostato su
alwaysper eseguire il plug-in come programma esterno. - args: la struttura syslog da utilizzare. Ti consigliamo di utilizzare
LOG_LOCAL6per separare gli audit log dagli altri messaggi syslog. - format: imposta il valore su
stringper trasmettere gli eventi in un formato di testo adatto a syslog.
- active: imposta su
Configura le regole di controllo (facoltativo)
Modifica il file delle regole di controllo per definire quali eventi acquisire:
sudo nano /etc/audit/rules.d/audit.rulesAggiungi regole in base ai tuoi requisiti di monitoraggio. Ad esempio:
## Delete all existing rules -D ## Set buffer size (increase for high-volume systems) -b 8192 ## Set failure mode (1 = printk, 2 = panic) -f 1 ## Monitor authentication-related files -w /etc/passwd -p wa -k identity -w /etc/group -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/sudoers -p wa -k sudoers ## Monitor login events -w /var/log/faillog -p wa -k logins -w /var/log/lastlog -p wa -k logins ## Monitor process execution -a always,exit -F arch=b64 -S execve -k exec ## Monitor network configuration changes -a always,exit -F arch=b64 -S sethostname -S setdomainname -k network ## Make the configuration immutable (must be the last rule) -e 2Carica le nuove regole di controllo:
sudo augenrules --load
Riavvia auditd
Riavvia il servizio auditd per applicare le modifiche al plug-in e alle regole:
sudo service auditd restart
Configura rsyslog per inoltrare gli audit log a Bindplane
Crea un nuovo file di configurazione rsyslog per l'inoltro degli audit log:
sudo nano /etc/rsyslog.d/audit-forward.confAggiungi la seguente riga per inoltrare i log tramite UDP all'agente Bindplane:
local6.* @<BINDPLANE_IP>:514Riavvia rsyslog per applicare le modifiche:
sudo systemctl restart rsyslog
Verificare l'inoltro dei log
Sull'host Linux di origine, genera un evento di controllo di test:
sudo auditctl -w /tmp/test_audit -p wa -k test_chronicleAttiva l'orologio toccando il file:
touch /tmp/test_auditSull'host dell'agente Bindplane, verifica che i log vengano ricevuti:
sudo journalctl -u observiq-otel-collector -f
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
acct |
target.user.userid |
Valore tratto dal campo acct. |
addr |
principal.ip |
Valore tratto dal campo addr se è un indirizzo IP valido. |
arch |
additional.fields |
Aggiunta come coppia chiave-valore con la chiave "arch". |
auid |
principal.user.userid |
Valore preso dal campo auid. Utilizzato come ID utente di controllo. |
comm |
target.process.command_line |
Valore tratto dal campo comm. |
cwd |
additional.fields |
Aggiunto come coppia chiave-valore con la chiave "cwd". |
exe |
target.process.file.full_path |
Valore tratto dal campo exe. |
exit |
additional.fields |
Aggiunto come coppia chiave-valore con la chiave "exit". |
gid |
principal.user.group_identifiers |
Valore preso dal campo gid. |
hostname |
principal.hostname |
Valore tratto dal campo hostname. |
key |
security_result.detection_fields |
Aggiunto come coppia chiave-valore con chiave "audit_key". |
msg |
metadata.description |
Analizzato dal campo msg. Contiene il messaggio dell'evento di controllo. |
name |
target.file.full_path |
Valore tratto dal campo name, se applicabile. |
node |
principal.hostname |
Valore preso dal campo node se hostname non è presente. |
op |
metadata.product_event_type |
Valore tratto dal campo op (tipo di operazione). |
pid |
principal.process.pid |
Valore preso dal campo pid. |
ppid |
principal.process.parent_process.pid |
Valore tratto dal campo ppid. |
res |
security_result.action |
Imposta su "ALLOW" se res è "success" o "1". Imposta su "BLOCK" se res è "failed" o "0". |
ses |
network.session_id |
Valore tratto dal campo ses (ID sessione). |
subj |
principal.process.file.full_path |
Valore estratto dal campo subj (contesto soggetto SELinux). |
syscall |
additional.fields |
Aggiunto come coppia chiave-valore con la chiave "syscall". |
terminal |
additional.fields |
Aggiunto come coppia chiave-valore con la chiave "terminal". |
type |
metadata.product_event_type |
Valore estratto dal campo type (tipo di record di controllo, ad es. SYSCALL, USER_LOGIN, EXECVE). |
uid |
principal.user.userid |
Valore tratto dal campo uid. |
metadata.event_type |
Derivato dal tipo di record di controllo. Imposta "USER_LOGIN" per gli eventi di accesso, "USER_LOGOUT" per gli eventi di disconnessione, "PROCESS_LAUNCH" per gli eventi di esecuzione e "FILE_MODIFICATION" per gli eventi di file. Il valore predefinito è "GENERIC_EVENT". | |
metadata.product_name |
Impostato su "auditd". | |
metadata.vendor_name |
Imposta "Linux". | |
home |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
shell |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
name |
event.idm.read_only_udm.target.user.userid |
Mappato dal log delle modifiche |
name |
event.idm.read_only_udm.target.group.group_display_name |
Mappato dal log delle modifiche |
UID |
event.idm.read_only_udm.target.user.product_object_id |
Mappato dal log delle modifiche |
GID |
event.idm.read_only_udm.target.user.group_identifiers |
Mappato dal log delle modifiche |
GID |
event.idm.read_only_udm.target.group.product_object_id |
Mappato dal log delle modifiche |
key_type |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
hash |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
key_fingerprint |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
user |
event.idm.read_only_udm.target.user.userid |
Mappato dal log delle modifiche |
error_detail1 |
event.idm.read_only_udm.security_result.summary |
Mappato dal log delle modifiche |
service_name |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
ssh_disconnect_code |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
labels.bp_csoc |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
labels.bp_env_id |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
labels.log.file.name |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
resource.labels.node_id |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
intermediary_host |
event.idm.read_only_udm.intermediary.hostname |
Mappato dal log delle modifiche |
PWD |
event.idm.read_only_udm.target.file.full_path |
Mappato dal log delle modifiche |
log_details |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
indicator.SUID |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.UID |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.AUID |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
type_crypto_props.msg |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
usr |
event.idm.read_only_udm.principal.user.userid |
Mappato dal log delle modifiche |
pi |
event.idm.read_only_udm.principal.process.pid |
Mappato dal log delle modifiche |
cmnd |
event.idm.read_only_udm.target.process.command_line |
Mappato dal log delle modifiche |
proctitle_value |
event.idm.read_only_udm.principal.process.file.full_path |
Mappato dal log delle modifiche |
filename |
event.idm.read_only_udm.principal.process.file.names |
Mappato dal log delle modifiche |
filepath |
event.idm.read_only_udm.target.file.full_path |
Mappato dal log delle modifiche |
uid |
event.idm.read_only_udm.principal.user.userid |
Mappato dal log delle modifiche |
acct |
event.idm.read_only_udm.principal.user.user_display_name |
Mappato dal log delle modifiche |
exe |
event.idm.read_only_udm.target.process.file.full_path |
Mappato dal log delle modifiche |
pid |
event.idm.read_only_udm.principal.process.pid |
Mappato dal log delle modifiche |
auid |
event.idm.read_only_udm.about.user.userid |
Mappato dal log delle modifiche |
ses |
event.idm.read_only_udm.network.session_id |
Mappato dal log delle modifiche |
addr |
event.idm.read_only_udm.principal.ip e event.idm.read_only_udm.principal.asset.ip |
Mappato dal log delle modifiche |
subj |
event.idm.read_only_udm.additional.fields |
Mappato dal log delle modifiche |
res |
event.idm.read_only_udm.security_result.summary |
Mappato dal log delle modifiche |
op |
event.idm.read_only_udm.security_result.summary |
Mappato dal log delle modifiche |
msg_value |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
grantors_value |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.msg |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.grantors |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
terminal |
event.idm.read_only_udm.principal.application |
Mappato dal log delle modifiche |
sec_result |
event.idm.read_only_udm.security_result |
Mappato dal log delle modifiche |
hostname |
event.idm.read_only_udm.principal.hostname |
Mappato dal log delle modifiche |
indicator.mode |
event.idm.read_only_udm.src.user.attribute.permissions |
Mappato dal log delle modifiche |
indicator.nametype |
event.idm.read_only_udm.security_result.rule_name |
Mappato dal log delle modifiche |
indicator.cap_frootid |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.cap_fver |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.cap_fi |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.cap_fp |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.cap_fe |
event.idm.read_only_udm.security_result.detection_fields |
Mappato dal log delle modifiche |
OUID |
event.idm.read_only_udm.principal.user.userid |
Mappato dal log delle modifiche |
OGID |
event.idm.read_only_udm.principal.group.group_display_name |
Mappato dal log delle modifiche |
action_data |
event.idm.read_only_udm.security_result.action_details |
Mappato dal log delle modifiche |
target_email |
event.idm.ready_only_udm.target.user.email_addresses |
Mappato dal log delle modifiche |
target_port |
event.idm.ready_only_udm.target.port |
Mappato dal log delle modifiche |
status |
event.idm.ready_only_udm.security_result.action_details |
Mappato dal log delle modifiche |
to_email |
event.idm.ready_only_udm.network.email.to |
Mappato dal log delle modifiche |
target_hostname |
event.idm.ready_only_udm.target.hostname |
Mappato dal log delle modifiche |
"relay_data" |
event.idm.ready_only_udm.additional.fields |
Mappato dal log delle modifiche |
"delays_data" |
event.idm.ready_only_udm.additional.fields |
Mappato dal log delle modifiche |
"delay_data" |
event.idm.ready_only_udm.additional.fields |
Mappato dal log delle modifiche |
and "dns_data" |
event.idm.ready_only_udm.additional.fields |
Mappato dal log delle modifiche |
bytes_sent |
event.idm.ready_only_udm.network.sent_bytes |
Mappato dal log delle modifiche |
bytes_received |
event.idm.ready_only_udm.network.received_bytes |
Mappato dal log delle modifiche |
response_code |
event.idm.ready_only_udm.network.http.response_code |
Mappato dal log delle modifiche |
principal_user_name |
principal.user.userid |
Mappato dal log delle modifiche |
remote |
principal.ip |
Mappato dal log delle modifiche |
method |
network.http.method |
Mappato dal log delle modifiche |
path |
principal.file.full_path |
Mappato dal log delle modifiche |
code |
additional.fields |
Mappato dal log delle modifiche |
size |
principal.file.size |
Mappato dal log delle modifiche |
agent |
network.http.user_agent |
Mappato dal log delle modifiche |
az |
principal.location.name |
Mappato dal log delle modifiche |
ec2_instance_id |
principal.asset.product_object_id |
Mappato dal log delle modifiche |
private_ip |
principal.ip |
Mappato dal log delle modifiche |
ProviderName |
additional.fields |
Mappato dal log delle modifiche |
Version |
additional.fields |
Mappato dal log delle modifiche |
Task |
additional.fields |
Mappato dal log delle modifiche |
EventRecordID |
additional.fields |
Mappato dal log delle modifiche |
ThreadID |
additional.fields |
Mappato dal log delle modifiche |
messageType |
target.resource.attribute.labels |
Mappato dal log delle modifiche |
owner |
principal.user.userid |
Mappato dal log delle modifiche |
logevent.id |
metadata.product_log_id |
Mappato dal log delle modifiche |
logGroup |
secu_result.about.resource.name |
Mappato dal log delle modifiche |
logStream |
secu_result.about.resource.attribute.labels |
Mappato dal log delle modifiche |
ip_addr |
principal.ip |
Mappato dal log delle modifiche |
gd |
secu_result.description |
Mappato dal log delle modifiche |
process |
target.application |
Mappato dal log delle modifiche |
pid |
target.process.pid |
Mappato dal log delle modifiche |
status_code |
network.http.response_code |
Mappato dal log delle modifiche |
url |
network.http.referral_url |
Mappato dal log delle modifiche |
useragent |
network.http.user_agent |
Mappato dal log delle modifiche |
request |
additional.fields |
Mappato dal log delle modifiche |
tls_version |
network.tls.version |
Mappato dal log delle modifiche |
hostname_is |
principal.hostname |
Mappato dal log delle modifiche |
referrer |
network.http.referral_url |
Mappato dal log delle modifiche |
metadata.event_type |
USER_LOGIN |
Mappato dal log delle modifiche |
metadata.event_type |
PROCESS_UNCATEGORIZED |
Mappato dal log delle modifiche |
srcIP |
principal.ip |
Mappato dal log delle modifiche |
username |
principal.user.user_display_name |
Mappato dal log delle modifiche |
type_syscall_props.msg |
additional.fields |
Mappato dal log delle modifiche |
sw", "sw_type", and "subj |
security_result.detection_fields |
Mappato dal log delle modifiche |
indicator.SYSCALL |
security_result.detection_fields |
Mappato dal log delle modifiche |
exe |
principal.process.file.full_path |
Mappato dal log delle modifiche |
target.user.userid |
principal.user.userid |
Mappato dal log delle modifiche |
target_user_name |
target.user.userid |
Mappato dal log delle modifiche |
field |
field33 |
Mappato dal log delle modifiche |
fp |
network.tls.client.certificate.sha256 |
Mappato dal log delle modifiche |
pid |
principal.process.pid |
Mappato dal log delle modifiche |
syslog-tag |
security_result.detection_fields |
Mappato dal log delle modifiche |
inter_ip |
intermediary.ip |
Mappato dal log delle modifiche |
inter_hostname |
intermediary.hostname |
Mappato dal log delle modifiche |
grp |
target.group.group_display_name |
Mappato dal log delle modifiche |
id |
about.user.userid |
Mappato dal log delle modifiche |
acct |
target.user.user_display_name |
Mappato dal log delle modifiche |
uid |
principal.user.userid |
Mappato dal log delle modifiche |
auid |
about.user.userid |
Mappato dal log delle modifiche |
auid |
target.user.userid |
Mappato dal log delle modifiche |
op" and "id |
security_result.summary |
Mappato dal log delle modifiche |
op" and "acct |
security_result.summary |
Mappato dal log delle modifiche |
labels.compute.googleapis.com/resource_name","jsonPayload._HOSTNAME" , "CollectorHostName", "HOSTNAME", and "Computer |
principal.hostname |
Mappato dal log delle modifiche |
HostIP |
principal.ip |
Mappato dal log delle modifiche |
ProcessID" and "jsonPayload._PID |
principal.process.pid |
Mappato dal log delle modifiche |
SyslogMessage |
metadata.description |
Mappato dal log delle modifiche |
TenantId", "_ItemId", "_Internal_WorkspaceResourceId", "_ResourceId", and "Facility |
additional.fields |
Mappato dal log delle modifiche |
SeverityLevel |
security_result.severity |
Mappato dal log delle modifiche |
SourceSystem |
principal.platform |
Mappato dal log delle modifiche |
jsonPayload._COMM |
principal.application |
Mappato dal log delle modifiche |
jsonPayload._EXE |
target.process.file.full_path |
Mappato dal log delle modifiche |
jsonPayload._AUDIT_FIELD_FILE |
target.file.full_path |
Mappato dal log delle modifiche |
jsonPayload._AUDIT_FIELD_HASH |
target.file.hash |
Mappato dal log delle modifiche |
jsonPayload._AUDIT_SESSION |
network.session_id |
Mappato dal log delle modifiche |
jsonPayload._PPID |
principal.process.parent_process.pid |
Mappato dal log delle modifiche |
jsonPayload._AUDIT_FIELD_A0", "jsonPayload._AUDIT_FIELD_A1", "jsonPayload._AUDIT_FIELD_A2", "jsonPayload._AUDIT_FIELD_A3", "jsonPayload._BOOT_ID", and "jsonPayload._AUDIT_FIELD_EXIT |
security_result.detection_fields |
Mappato dal log delle modifiche |
id |
target.user.userid |
Mappato dal log delle modifiche |
ID |
target.user.user_display_name |
Mappato dal log delle modifiche |
user_name |
principal.user.userid |
Mappato dal log delle modifiche |
principal_user_userid |
principal.user.userid |
Mappato dal log delle modifiche |
vendor_name |
Linux |
Mappato dal log delle modifiche |
product_name |
AuditD |
Mappato dal log delle modifiche |
ip |
target.ip |
Mappato dal log delle modifiche |
success |
security_result.summary |
Mappato dal log delle modifiche |
syscall", "exit", "tty", "a0", "a1", "a2", "a3 |
security_result.about.labels |
Mappato dal log delle modifiche |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.