Raccogli i log di Trellix Email Security (in precedenza FireEye eMPS)

Versione parser: 16.0

Supportato in:

Questo documento spiega come importare i log di Trellix Email Security (precedentemente noto come FireEye eMPS) in Google Security Operations utilizzando Bindplane.

Trellix Email Security è un'appliance di sicurezza email che protegge le organizzazioni da minacce email avanzate, tra cui spear phishing, malware e attacchi mirati, analizzando in tempo reale i contenuti e gli allegati delle email.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Windows Server 2016 o versioni successive o host Linux con systemd
  • Connettività di rete tra l'agente Bindplane e l'appliance FireEye eMPS
  • Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
  • Accesso privilegiato alla CLI dell'appliance FireEye eMPS (ruolo Amministratore o Operatore)
  • Appliance FireEye eMPS con funzionalità di notifica syslog

Recuperare il file di autenticazione dell'importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agente di raccolta.
  3. Fai clic su Scarica per scaricare il file di autenticazione dell'acquisizione.
  4. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente 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
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sc query observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.

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](https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh))" install_unix.sh
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sudo systemctl status observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come attivo (in esecuzione).

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.

Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps

Individua il file di configurazione

  • Linux: /opt/observiq-otel-collector/config.yaml
  • Windows: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/fireeye_emps:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: FIREEYE_EMPS
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/fireeye_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/fireeye_emps
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del destinatario:

    • Il ricevitore è configurato per syslog UDP sulla porta 514.
    • Per utilizzare una porta non privilegiata su Linux, modifica 514 in 1514 o un valore superiore.
    • Per utilizzare TCP anziché UDP, sostituisci udplog con tcplog.
  • Configurazione dell'esportatore:

    • creds_file_path: il percorso completo del file di autenticazione dell'acquisizione.
    • YOUR_CUSTOMER_ID: Sostituisci con l'ID cliente effettivo.
    • endpoint: URL dell'endpoint regionale (ad es. malachiteingestion-pa.googleapis.com).
    • log_type: deve essere esattamente FIREEYE_EMPS.
    • ingestion_labels: etichette facoltative in formato YAML.

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"
    

Configurare l'inoltro di Syslog di FireEye eMPS

Accedi alla CLI eMPS di FireEye

  1. Connettiti all'appliance FireEye eMPS tramite SSH o console.
  2. Accedi e attiva la modalità di abilitazione: hostname> enable
  3. Attiva la modalità di configurazione: hostname# configure terminal

Configurare il server syslog

  1. Aggiungi l'agente Bindplane come sink di trap syslog: hostname(config)# fenotify rsyslog trap-sink chronicle address <BINDPLANE_IP_ADDRESS>
  2. Imposta il formato syslog su CEF: hostname(config)# fenotify rsyslog trap-sink chronicle prefer message format cef
  3. Imposta la struttura syslog su local4 (consigliato): hostname(config)# fenotify rsyslog default facility local4
  4. Imposta la modalità di invio: hostname(config)# fenotify rsyslog trap-sink chronicle message delivery per-event
  5. Imposta la gravità dell'avviso: hostname(config)# fenotify rsyslog trap-sink chronicle prefer message send-as alert
  6. Imposta il protocollo: hostname(config)# fenotify rsyslog trap-sink chronicle protocol udp
  7. Imposta la porta: hostname(config)# fenotify rsyslog trap-sink chronicle port 514

Attivare le notifiche syslog

  1. Attiva le notifiche rsyslog a livello globale: hostname(config)# fenotify rsyslog enable
  2. Attiva le notifiche globali: hostname(config)# fenotify enable
  3. Attivare tipi di avvisi specifici:

    hostname(config)# fenotify rsyslog alert malware-object enable
    hostname(config)# fenotify rsyslog alert malware-callback enable
    hostname(config)# fenotify rsyslog alert infection-match enable
    hostname(config)# fenotify rsyslog alert domain-match enable
    
  4. Verifica la configurazione: hostname(config)# show fenotify alerts

  5. Salva ed esci:

    hostname(config)# write memory
    hostname(config)# exit
    hostname# exit
    

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
about.asset.asset_id Concatenato da device_vendor, device_product e deviceExternalId
about about Unito da about_token
about.file.full_path about.file.full_path Valore copiato direttamente
about.file.sha256 about.file.sha256 Valore copiato direttamente
about.file.size about.file.size Valore copiato direttamente
about.hostname about.hostname Valore copiato direttamente
about.ip about.ip Unito dall'array ips
about.mac about.mac Valore di dvcmac se l'indirizzo MAC è valido, altrimenti da mac_address
about.nat_ip about.nat_ip Valore copiato direttamente da deviceTranslatedAddress
about.process.command_line about.process.command_line Valore di Subject se non è vuoto, altrimenti Emne, altrimenti Path
about.process.file.full_path about.process.file.full_path Valore copiato direttamente
about.process.pid about.process.pid Valore copiato direttamente
about.resource.attribute.permissions about.resource.attribute.permissions Valore copiato direttamente dalle autorizzazioni
aggiuntivo aggiuntivo Rinominato direttamente
additional_cfp1 additional.fields Uniti in campi aggiuntivi
additional_cfp2 additional.fields Uniti in campi aggiuntivi
additional_cfp3 additional.fields Uniti in campi aggiuntivi
additional_cfp4 additional.fields Uniti in campi aggiuntivi
additional_cn1 additional.fields Uniti in campi aggiuntivi
additional_cn2 additional.fields Uniti in campi aggiuntivi
additional_cn3 additional.fields Uniti in campi aggiuntivi
additional_cs1 additional.fields Uniti in campi aggiuntivi
additional_cs2 additional.fields Uniti in campi aggiuntivi
additional_cs3 additional.fields Uniti in campi aggiuntivi
additional_cs4 additional.fields Uniti in campi aggiuntivi
additional_cs5 additional.fields Uniti in campi aggiuntivi
additional_cs6 additional.fields Uniti in campi aggiuntivi
additional_cs7 additional.fields Uniti in campi aggiuntivi
additional_devicePayloadId additional.fields Uniti in campi aggiuntivi
additional_eventId additional.fields Uniti in campi aggiuntivi
additional_fname additional.fields Uniti in campi aggiuntivi
additional_flexString1 additional.fields Uniti in campi aggiuntivi
additional_flexString2 additional.fields Uniti in campi aggiuntivi
app_protocol_output network.application_protocol Valore copiato direttamente
cs1Label, cs1 additional.fields Chiave da cs1Label, valore da cs1
cs2Label, cs2 additional.fields Chiave da cs2Label, valore da cs2
cs3Label, cs3 additional.fields Chiave da cs3Label, valore da cs3
cs4Label, cs4 additional.fields Chiave da cs4Label, valore da cs4
cs5Label, cs5 additional.fields Chiave da cs5Label, valore da cs5
cs6Label, cs6 additional.fields Chiave da cs6Label, valore da cs6
cs7Label, cs7 additional.fields Chiave da cs7Label, valore da cs7
cfp1Label, cfp1 additional.fields Chiave da cfp1Label, valore da cfp1
cfp2Label, cfp2 additional.fields Chiave da cfp2Label, valore da cfp2
cfp3Label, cfp3 additional.fields Chiave da cfp3Label, valore da cfp3
cfp4Label, cfp4 additional.fields Chiave da cfp4Label, valore da cfp4
cn1Label, cn1 additional.fields Chiave da cn1Label, valore da cn1
cn2Label, cn2 additional.fields Chiave da cn2Label, valore da cn2
cn3Label, cn3 additional.fields Chiave da cn3Label, valore da cn3
customer_label security_result.detection_fields Unito ai campi di rilevamento
destination_translated_address target.nat_ip Valore copiato direttamente
device_name_not_present, Enhetsnavn principal.hostname Valore di Device_name se non è vuoto, altrimenti Enhetsnavn
deviceExternalId about.asset.asset_id Parte della concatenazione
devicePayloadId additional.fields Chiave come devicePayloadId, valore copiato
deviceTranslatedAddress about.nat_ip Valore copiato direttamente
device_vendor about.asset.asset_id Parte della concatenazione
device_product about.asset.asset_id Parte della concatenazione
device_version metadata.product_version Valore copiato direttamente
device_event_class_id, event_name metadata.product_event_type Concatenato come [%{device_event_class_id}] - %{event_name} se sono presenti entrambi, altrimenti device_event_class_id o event_name
device_process_name about.process.command_line Valore copiato direttamente
device_vendor metadata.vendor_name Valore copiato direttamente
device_product metadata.product_name Valore copiato direttamente
dhost target.hostname Valore copiato direttamente
dmac target.mac Valore copiato direttamente
dntdom target.administrative_domain Valore copiato direttamente
dpid target.process.pid Valore copiato direttamente
dproc target.process.command_line Valore copiato direttamente
dst target.asset.ip Valore copiato direttamente
dst_ip target.ip Valore copiato direttamente
duid target.user.userid Valore di temp_duid dopo l'estrazione grok
duser target.user.user_display_name Valore copiato direttamente
dvchost about.hostname Valore copiato direttamente
deviceNtDomain about.administrative_domain Valore copiato direttamente
dvcmac about.mac Valore di dvcmac se l'indirizzo MAC è valido
dvc_mac about.mac Valore di dvc_mac se l'indirizzo MAC è valido
eventId additional.fields Chiave come eventId, valore copiato
eventid additional.fields Chiave come eventId, valore da eventid
externalId metadata.product_log_id Valore copiato direttamente
externalID_value metadata.product_log_id Valore copiato direttamente
file_full_path metadata.event_type Imposta su PROCESS_UNCATEGORIZED se file_full_path non è vuoto
fileHash about.file.sha256 Valore copiato direttamente se non è un hash, altrimenti about.file.full_path
filePath about.file.full_path Valore copiato direttamente
fileType about.file.mime_type Valore copiato direttamente
flexString1Label, flexString1 additional.fields Chiave da flexString1Label, valore da flexString1
flexString2Label, flexString2 additional.fields Chiave da flexString2Label, valore da flexString2
fname additional.fields Chiave come nome file, valore copiato
Generato metadata.event_timestamp Convertito utilizzando la corrispondenza della data aaaa-MM-ggTHH:mm:ss
Generert metadata.event_timestamp Convertito utilizzando la corrispondenza della data aaaa-MM-ggTHH:mm:ss
Group_name principal.group.group_display_name Valore copiato direttamente
Gruppenavn principal.group.group_display_name Valore di Gruppenavn se Group_name è vuoto
infection_channel_label security_result.detection_fields Unito ai campi di rilevamento
in network.received_bytes Convertito in uinteger se non è 0
IPv6_Address target.ip Unito se non è "-"
ipv6 target.ip Unito se non è "-"
mac principal.mac Valore copiato direttamente
mac_address target.mac Valore copiato direttamente
mac_address about.mac Valore ottenuto da mac_address
metadati metadati Rinominato direttamente
msg metadata.description Valore copiato direttamente
msg_data_2 security_result.description Valore copiato direttamente
mottatt_not_present, Mottatt metadata.collected_timestamp Convertito utilizzando la corrispondenza della data aaaa-MM-ggTHH:mm:ss
rete rete Rinominato direttamente
oldFilePath src.file.full_path Valore copiato direttamente
oldFileSize src.file.size Convertito in uinteger
old_permissions src.resource.attribute.permissions Valore copiato direttamente
operasjon_label security_result.detection_fields Unito ai campi di rilevamento
operation_label security_result.detection_fields Unito ai campi di rilevamento
troppo complessi per essere capiti? network.sent_bytes Convertito in uinteger se non è 0
permission_label security_result.detection_fields Unito ai campi di rilevamento
autorizzazioni about.resource.attribute.permissions Valore copiato direttamente
entità entità Rinominato direttamente
principal_ip principal.ip Valore copiato direttamente
principal_role principal.user.attribute.roles Unita ai ruoli
protocol_number_src network.ip_protocol Valore copiato direttamente
Ricevuto metadata.collected_timestamp Convertito utilizzando la corrispondenza della data aaaa-MM-ggTHH:mm:ss
motivo security_result.summary Valore copiato direttamente
richiesta target.url Valore copiato direttamente
requestClientApplication network.http.user_agent Valore copiato direttamente
requestMethod network.http.method Valore copiato direttamente
resource_Type_label target.resource.attribute.labels Unita alle etichette
rt @timestamp Convertito utilizzando vari formati di data e aggiustamenti del fuso orario
security_result security_result Unito direttamente
security_result_token security_result Unito direttamente
gravità security_result.severity Imposta su LOW se in [0,1,2,3,LOW]; MEDIUM se in [4,5,6,MEDIUM,SUBSTANTIAL,INFO]; HIGH se in [7,8,HIGH,SEVERE]; CRITICAL se in [9,10,VERY-HIGH,CRITICAL]
shost principal.hostname Valore copiato direttamente se non è un IP, altrimenti principal.ip
shost principal.ip Valore copiato direttamente se IP
shost_present principal.machine_id_present Impostato su true
smac principal.mac Valore copiato subito dopo la formattazione
sntdom principal.administrative_domain Valore copiato direttamente
sourceDnsDomain target.asset.hostname, target.hostname Valore da sourceDnsDomain tramite grok a tar_host
sourceServiceName principal.application Valore copiato direttamente
sourceTranslatedAddress principal.nat_ip Valore copiato direttamente
sourceTranslatedPort principal.nat_port Convertito in numero intero
spid principal.process.pid Valore copiato direttamente
sproc principal.process.command_line Valore copiato direttamente
spt principal.port Convertito in numero intero se non è 0 o {srcPort}
src principal.asset.ip Valore copiato direttamente
src_ip principal.ip Valore copiato direttamente
srcaddr principal.ip Valore copiato direttamente
spyware_Grayware_Type_label security_result.detection_fields Unito ai campi di rilevamento
suser principal.user.user_display_name Valore copiato direttamente se non inizia con {
suid principal.user.userid Valore copiato direttamente
destinazione destinazione Rinominato direttamente
target_ip target.ip Valore copiato direttamente
target_role target.user.attribute.roles Unita ai ruoli
temp_data Utilizzato nei pattern Grok
temp_dhost target.hostname Valore copiato direttamente
temp_duser target.user.user_display_name Valore copiato direttamente
temp_duid target.user.userid Valore di temp_duid dopo l'analisi
threat_probability_label security_result.detection_fields Unito ai campi di rilevamento
tillatelse_label security_result.detection_fields Unito ai campi di rilevamento
type_label security_result.detection_fields Unito ai campi di rilevamento
Utente target.user.userid Valore copiato direttamente
Bruker target.user.userid Valore di Bruker se l'utente è vuoto
nome utente principal.user.userid Valore copiato direttamente
Virus_Malware_Name security_result.threat_name Valore di Virus_Malware_Name se Spyware è vuoto
Spyware security_result.threat_name Valore copiato direttamente
Unknown_Threat security_result.threat_name Valore di Unknown_Threat se Virus_Malware_Name è vuoto
_hash about.file.sha256 Valore copiato direttamente
_message security_result.description Valore copiato direttamente se non è valido
_metadata.customer security_result.detection_fields Chiave come cliente, valore copiato
_metadata.proxy.address principal.hostname, principal.asset.hostname Valore copiato direttamente
_metadata.source.address principal.hostname, principal.asset.hostname Valore copiato direttamente
_metadata.source.port principal.port Convertito in numero intero
_metadata.source.type security_result.detection_fields Chiave come tipo, valore copiato
_metadata.timestamp.producer_process metadata.event_timestamp Convertito utilizzando la corrispondenza della data aaaa-MM-ggTHH:mm:ss.SSSZ
act security_result.action_details Valore copiato direttamente
act security_result.action Imposta su ALLOW se act in [accept, notified] o outcome REDIRECTED_USER_MAY_PROCEED o categoryOutcome Success o cs2 Allow; BLOCK se act deny/blocked o outcome BLOCKED o categoryOutcome Failure o cs2 Denied; FAIL se outcome Failure
azione security_result.action Valore copiato direttamente
app app_protocol_src Valore copiato direttamente
app_protocol_src network.application_protocol Valore di app_protocol_src dopo la conversione in maiuscolo e la mappatura
categoryOutcome security_result.action Parte della condizione per l'azione
cs2 security_result.action Parte della condizione per l'azione
cs5 additional.fields Chiave da cs5Label, valore da cs5
cs7 additional.fields Chiave da cs7Label, valore da cs7
destinationTranslatedAddress target.nat_ip Valore copiato direttamente
destinationTranslatedPort target.nat_port Convertito in numero intero
deviceDirection network.direction Imposta INBOUND se 0, OUTBOUND se 1
device_event_class_id metadata.product_event_type Parte della concatenazione
duid target.user.userid Valore di temp_duid dopo l'analisi
dvcmac about.mac Valore di dvcmac dopo la formattazione
event_name metadata.product_event_type Parte della concatenazione
event_name metadata.event_type Imposta su SCAN_UNCATEGORIZED se in [LogSpyware, LogPredictiveMachineLearning]
fileHash about.file.sha256 Valore copiato direttamente se hash, altrimenti about.file.full_path
Mottatt metadata.collected_timestamp Convertito utilizzando la corrispondenza della data aaaa-MM-ggTHH:mm:ss
risultato security_result.action Parte della condizione per l'azione
porta principal.port Convertito in numero intero
protocol_number_src network.ip_protocol Valore di protocol_number_src dopo la mappatura
proto protocol_number_src Valore copiato direttamente
gravità security_result.severity Mappato in base agli intervalli di valori
shost principal.hostname Valore copiato direttamente se non è un IP
act security_result.action Impostare in base alla logica condizionale
app_protocol_src network.application_protocol Mappato da app_protocol_src
protocol_number_src network.ip_protocol Mappato da protocol_number_src
Virus_Malware_Name security_result.threat_name Valore di Virus_Malware_Name se
flexString2 event.idm.read_only_udm.network.email.subject Mappato dal log delle modifiche
version event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
device_product event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
cs1 event.idm.read_only_udm.security_result.rule_name Mappato dal log delle modifiche
cs4 event.idm.read_only_udm.metadata.url_back_to_product Mappato dal log delle modifiche
suser event.idm.read_only_udm.network.email.from Mappato dal log delle modifiche
duser event.idm.read_only_udm.network.email.to Mappato dal log delle modifiche
fname event.idm.read_only_udm.target.file.names Mappato dal log delle modifiche
fileHash event.idm.read_only_udm.target.file.md5 Mappato dal log delle modifiche
flexString1 event.idm.read_only_udm.about.file.sha256 Mappato dal log delle modifiche
observer_application event.idm.read_only_udm.observer.application Mappato dal log delle modifiche
syslog_severity_label event.idm.read_only_udm.additional.fields Mappato dal log delle modifiche
start event.idm.read_only_udm.security_result.first_discovered_time 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.