ANSIBLE_AWX

Supportato in:

Questo documento spiega come importare i log di Ansible AWX in Google Security Operations utilizzando Bindplane. Il parser estrae i campi dai log Ansible AWX in formato JSON. Utilizza l'analisi JSON per estrarre i campi di log e poi mappa questi valori al Unified Data Model (UDM). Imposta anche i valori predefiniti dei metadati per l'origine e il tipo di evento.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps.
  • Un host Windows 2016 o versioni successive oppure Linux con systemd.
  • Se l'agente viene eseguito tramite un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane.
  • Accesso privilegiato alla console di gestione o all'appliance Ansible AWX con autorizzazioni di amministratore.

Recuperare il file di autenticazione importazione di Google SecOps

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

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

Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi al file di configurazione:
    • Individua il file config.yaml. In genere, si trova nella directory /opt/observiq-otel-collector/ su Linux o nella directory C:Program FilesobservIQ OpenTelemetry Collector su Windows.
    • Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    receivers:
    udplog:
        # Using high port to avoid requiring root privileges
        listen_address: "0.0.0.0:514"
    
    exporters:
    chronicle/awx:
        endpoint: malachiteingestion-pa.googleapis.com
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: YOUR_CUSTOMER_ID
        log_type: 'ANSIBLE_AWX'
        raw_log_field: body
    
    service:
    pipelines:
        logs/awx:
        receivers:
            - udplog
        exporters:
            - chronicle/awx
    
    • 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 in cui è stato salvato il file di autenticazione nel passaggio 1.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente BindPlane in Linux, esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    sc stop observiq-otel-collector && sc start observiq-otel-collector
    

Configura la registrazione esterna su Ansible AWX

  1. Accedi alla console di gestione Ansible AWX.
  2. Vai a Impostazioni dalla barra di navigazione.
  3. Seleziona Impostazioni di registrazione dalle opzioni Sistema.
  4. Fornisci i seguenti dettagli di configurazione:
    • Aggregatore di logging: inserisci l'indirizzo IP dell'agente Bindplane.
    • Logging Aggregator Port (Porta dell'aggregatore di logging): inserisci il numero di porta dell'agente Bindplane (ad esempio, 514).
    • Tipo di aggregatore di log: seleziona Altro dall'elenco.
    • Logging Aggregator Username (Nome utente dell'aggregatore di logging): lascia vuoto (non necessario per syslog).
    • Logging Aggregator Password/Token (Password/token dell'aggregatore di log): lascia vuoto (non necessario per syslog).
    • Protocollo di aggregazione dei log: seleziona UDP (opzione consigliata per syslog).
    • Soglia del livello di aggregatore di logging: seleziona Info o il livello di log che preferisci.
    • Attiva logging esterno: fai clic sul pulsante di attivazione/disattivazione ON.
    • Registratori da cui inviare i dati all'aggregatore di log: seleziona i tipi di log pertinenti:
      • awx: Log del server generici
      • activity_stream: Record delle modifiche agli oggetti AWX
      • job_events: dati del modulo di callback Ansible
      • system_tracking: Dati di configurazione e fatti del sistema
    • Registra singolarmente i dati di monitoraggio del sistema: disattiva l'opzione (impostazione predefinita).
  5. Fai clic su Salva per applicare le impostazioni.
  6. (Facoltativo) Fai clic su Test per verificare la connessione all'agente Bindplane.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
agent.ephemeral_id observer.labels.value Il valore di agent.ephemeral_id dal log non elaborato.
agent.hostname observer.hostname Il valore di agent.hostname dal log non elaborato.
agent.id observer.asset_id Concatenazione di "filebeat:" e del valore di agent.id dal log non elaborato.
agent.name observer.user.userid Il valore di agent.name dal log non elaborato.
agent.type observer.application Il valore di agent.type dal log non elaborato.
agent.version observer.platform_version Il valore di agent.version dal log non elaborato.
cloud.availability_zone principal.resource.attribute.labels.value Il valore di cloud.availability_zone dal log non elaborato.
cloud.instance.id principal.resource.product_object_id Il valore di cloud.instance.id dal log non elaborato.
cloud.instance.name principal.resource.name Il valore di cloud.instance.name dal log non elaborato.
cloud.machine.type principal.resource.attribute.labels.value Il valore di cloud.machine.type dal log non elaborato.
cloud.provider principal.resource.attribute.labels.value Il valore di cloud.provider dal log non elaborato.
event1 metadata.description Il valore di event1 dal log non elaborato. Se event1 non è presente, viene utilizzato il valore di message.
event1_data.host principal.hostname Il valore di event1_data.host dal log non elaborato.
event1_data.remote_addr principal.ip L'indirizzo IP estratto da event1_data.remote_addr utilizzando un pattern grok.
event1_data.task security_result.detection_fields.value Il valore di event1_data.task dal log non elaborato.
event1_data.task_path principal.process.file.full_path Il valore di event1_data.task_path dal log non elaborato.
event1_data.task_uuid security_result.detection_fields.value Il valore di event1_data.task_uuid dal log non elaborato.
event1_data.uuid metadata.product_log_id Il valore di event1_data.uuid dal log non elaborato.
event1_display security_result.description Il valore di event1_display dal log non elaborato.
host principal.hostname Il valore di host del log non elaborato, utilizzato se event1_data.host e host_name non sono presenti.
host.architecture target.asset.hardware.cpu_platform Il valore di host.architecture dal log non elaborato.
host.fqdn target.administrative_domain Il valore di host.fqdn dal log non elaborato.
host.hostname target.hostname Il valore di host.hostname dal log non elaborato.
host.id target.asset.asset_id Concatenazione di "Host Id: " e del valore di host.id dal log non elaborato.
host.ip target.asset.ip I valori di host.ip dal log non elaborato.
host.mac target.mac I valori di host.mac dal log non elaborato.
host.os.codename target.asset.attribute.labels.value Il valore di host.os.codename dal log non elaborato.
host.os.kernel target.platform_patch_level Il valore di host.os.kernel dal log non elaborato.
host.os.name target.asset.attribute.labels.value Il valore di host.os.name dal log non elaborato.
host.os.platform target.platform Imposta su "LINUX" se host.os.platform è "debian".
host.os.version target.platform_version Il valore di host.os.version dal log non elaborato.
host_name principal.hostname Il valore di host_name del log non elaborato, utilizzato se event1_data.host non è presente.
input.type network.ip_protocol Imposta su "TCP" se input.type è "tcp".
level security_result.severity Mappato in base al valore di level: "DEBUG", "INFO", "AUDIT" mappano su "INFORMATIONAL"; "ERROR" mappa su "ERROR"; "WARNING" mappa su "MEDIUM".
level security_result.severity_details Il valore di level dal log non elaborato.
log.source.address principal.ip L'indirizzo IP estratto da log.source.address utilizzando un pattern grok.
log.source.address principal.port La porta estratta da log.source.address utilizzando un pattern grok.
logger_name intermediary.application Il valore di logger_name dal log non elaborato.
message metadata.description Il valore di message del log non elaborato, utilizzato come riserva se event1 non è presente.
parent_uuid security_result.detection_fields.value Il valore di parent_uuid dal log non elaborato.
timestamp metadata.event_timestamp Il valore di timestamp dal log non elaborato, analizzato utilizzando il filtro per data. Determinato dalla logica: "NETWORK_CONNECTION" se log.source.address esiste e host.ip esiste nel JSON; "STATUS_UPDATE" se esiste principal_hostname o event1_data.remote_addr; "GENERIC_EVENT" altrimenti. Codificato in modo permanente su "ANSIBLE_AWX". Codificato in modo permanente su "ANSIBLE_AWX". Codificato in modo permanente su "ANSIBLE_AWX". Codificato come "ephemeral_id". Codificato come "machine_type", "provider" o "availability_zone" a seconda del campo mappato. Codificato in modo permanente su "VIRTUAL_MACHINE". Codificato in modo permanente su "parent_uuid", "task" o "task_uuid" a seconda del campo mappato. Codificato in modo permanente su "codename" o "os_name" a seconda del campo mappato.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.