Raccogliere i log di Linux Audit Daemon

Supportato in:

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 auditd installato e in esecuzione sull'host Linux di origine.
  • Il pacchetto audispd-plugins installato sull'host Linux di origine (fornisce il plug-in audisp-syslog).

Recuperare il file di autenticazione dell'importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. 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

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. 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

  1. Apri Prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. 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

  1. Accedi al file di configurazione:

    • Linux: /status observiq-otel-collector/config.yaml
    • Windows: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
  2. Modifica il file config.yaml come 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.json al 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:

  1. Esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
  2. Verifica che il servizio sia in esecuzione:

    sudo systemctl status observiq-otel-collector
    
  3. Controlla i log per individuare eventuali errori:

    sudo journalctl -u observiq-otel-collector -f
    

Per riavviare l'agente Bindplane in Windows:

  1. 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:
      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.
  2. Verifica che il servizio sia in esecuzione:

    sc query observiq-otel-collector
    
  3. Controlla 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

  1. Accedi all'host Linux che esegue auditd con privilegi root o sudo.
  2. 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

  1. Modifica il file di configurazione del plug-in syslog:

    sudo nano /etc/audit/plugins.d/syslog.conf
    
  2. Imposta i seguenti valori nel file:

    active = yes
    direction = out
    path = /sbin/audisp-syslog
    type = always
    args = LOG_LOCAL6
    format = string
    
    • active: imposta su yes per attivare il plug-in.
    • path: il percorso del file binario audisp-syslog.
    • type: impostalo su always per 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 string per trasmettere gli eventi in un formato di testo adatto a syslog.

Configurare le regole di controllo (facoltativo)

  1. Modifica il file delle regole di controllo per definire quali eventi acquisire:

    sudo nano /etc/audit/rules.d/audit.rules
    
  2. Aggiungi 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 2
    
  3. Carica le nuove regole di controllo:

    sudo augenrules --load
    

Riavvia auditd

  1. 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

  1. Crea un nuovo file di configurazione rsyslog per l'inoltro degli audit log:

    sudo nano /etc/rsyslog.d/audit-forward.conf
    
  2. Aggiungi la seguente riga per inoltrare i log tramite UDP all'agente Bindplane:

    local6.* @<BINDPLANE_IP>:514
    
  3. Riavvia rsyslog per applicare le modifiche:

    sudo systemctl restart rsyslog
    

Verificare l'inoltro dei log

  1. Sull'host Linux di origine, genera un evento di controllo di test:

    sudo auditctl -w /tmp/test_audit -p wa -k test_chronicle
    
  2. Attiva l'orologio toccando il file:

    touch /tmp/test_audit
    
  3. Sull'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.