Raccogliere i log di Linux Audit Daemon
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 dello spazio utente 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'agente viene eseguito 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).
Recuperare il file di autenticazione dell'importazione 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 sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- 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 per l'importazione.
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 individuare eventuali errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Configura auditd per inoltrare i 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: impostalo su
alwaysper eseguire il plug-in come programma esterno. - args: la struttura syslog da utilizzare.
LOG_LOCAL6è consigliato per 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
Configurare 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 il plug-in e le modifiche alle regole:
sudo service auditd restart
Configurare 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 tratto 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 tratto dal campo gid. |
hostname |
principal.hostname |
Valore tratto dal campo hostname. |
key |
security_result.detection_fields |
Aggiunta come coppia chiave-valore con la 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 tratto 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 tratto 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 del 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.