Raccogli i log di Cisco Email Security

Supportato in:

Questo documento spiega come importare i log di Cisco Email Security in Google Security Operations utilizzando Bindplane.

L'analizzatore sintattico estrae i campi dai log formattati in syslog, coppie chiave-valore e JSON di Cisco Email Security Appliance. Utilizza grok e/o kv per analizzare il messaggio di log e quindi mappa questi valori al modello UDM (Unified Data Model). 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
  • 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 con privilegi all'interfaccia web di Cisco Email Security Appliance

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 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 il comando:

    sc query observiq-otel-collector
    

Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.

Installazione di Linux

  1. Apri un terminale con privilegi di 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
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo il comando:

    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:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "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:
        tcplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'CISCO_EMAIL_SECURITY'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    

Parametri di configurazione

  • Sostituisci i seguenti segnaposto:

    • Configurazione del ricevitore:

      • tcplog: usa udplog per syslog UDP o tcplog per syslog TCP
      • 0.0.0.0: indirizzo IP su cui ascoltare (0.0.0.0 per ascoltare su tutte le interfacce)
      • 514: Numero di porta su cui ascoltare (porta syslog standard)
    • Configurazione dell'esportatore:

      • creds_file_path: percorso completo del file di autenticazione importazione:
        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID: l'ID cliente della sezione Recupera ID cliente
      • endpoint: URL endpoint regionale:
        • Stati Uniti: malachiteingestion-pa.googleapis.com
        • Europa: europe-malachiteingestion-pa.googleapis.com
        • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Per l'elenco completo, vedi Endpoint regionali.
      • log_type: Tipo di log esattamente come appare in Chronicle (CISCO_EMAIL_SECURITY)

Salvare il file di configurazione

  • Dopo la modifica, salva il file:
    • Linux: premi Ctrl+O, poi Enter e infine Ctrl+X.
    • Windows: fai clic su File > Salva.

Riavvia l'agente Bindplane per applicare le modifiche

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

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

        sudo systemctl status observiq-otel-collector
      
    2. Controlla 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:

      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.

      4. Verifica che il servizio sia in esecuzione:

        sc query observiq-otel-collector
        
      5. Controlla i log per individuare eventuali errori:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurare l'inoltro di Syslog su Cisco Email Security Appliance

  1. Accedi all'interfaccia web dell'appliance di sicurezza email Cisco.
  2. Vai a Amministrazione di sistema > Abbonamenti ai log.
  3. Fai clic su Aggiungi abbonamento ai log.
  4. Fornisci i seguenti dettagli di configurazione:
    • Tipo di log: seleziona il tipo di log da inoltrare (ad esempio Log eventi consolidati, Log di posta, Log di posta di testo).
    • Nome: inserisci un nome descrittivo (ad esempio, Google-SecOps-Syslog).
    • Metodo di recupero: seleziona Syslog Push.
    • Nome host: inserisci l'indirizzo IP dell'host dell'agente Bindplane.
    • Protocollo: seleziona TCP.
    • Porta: inserisci 514.
    • Struttura: seleziona LOG_MAIL (o la struttura che preferisci).
  5. Fai clic su Invia.
  6. Ripeti i passaggi da 3 a 5 per ogni tipo di log aggiuntivo da inoltrare. Tipi di log consigliati:
    • Log eventi consolidati
    • Log di Text Mail
    • Log antispam
    • Log antivirus
    • Log del motore AMP
    • Log del filtro dei contenuti
  7. Fai clic su Applica modifiche per applicare la configurazione.
  8. Verifica che i messaggi syslog vengano inviati controllando i log dell'agente Bindplane.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
acl_decision_tag read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "ACL Decision Tag".
access_or_decryption_policy_group read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "AccessOrDecryptionPolicyGroup".
atto read_only_udm.security_result.action_details Mappato direttamente.
authenticated_user read_only_udm.principal.user.userid Mappato direttamente se non è vuoto, "-" o "NONE".
cache_hierarchy_retrieval read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "Recupero gerarchia cache".
crittografia read_only_udm.network.tls.cipher Mappato direttamente.
country read_only_udm.principal.location.country_or_region Mappato direttamente.
data_security_policy_group read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "DataSecurityPolicyGroup".
descrizione read_only_udm.metadata.description Mappato direttamente per i messaggi syslog. Per i messaggi CEF, diventa la descrizione complessiva del prodotto. Diversi pattern grok estraggono descrizioni specifiche in base a product_event. Alcune descrizioni vengono modificate da gsub per rimuovere spazi e due punti iniziali/finali.
deviceDirection read_only_udm.network.direction Se il valore è "0", viene mappato su "INBOUND". Se è "1", viene mappato su "IN USCITA". Utilizzato per determinare quale cifrario e protocollo TLS mappare direttamente e quale mappare come etichette.
deviceExternalId read_only_udm.principal.asset.asset_id Mappato come "ID dispositivo:".
dominio read_only_udm.target.administrative_domain Mappati direttamente dai log JSON.
domain_age read_only_udm.security_result.about.labels.value Mappato direttamente. La chiave è "YoungestDomainAge".
duser read_only_udm.target.user.email_addresses, read_only_udm.network.email.to Se contiene ";", dividi in più indirizzi email e mappa ciascuno su entrambi i campi UDM. In caso contrario, esegui la mappatura direttamente su entrambi i campi UDM se l'indirizzo email è valido. Utilizzato anche per compilare network_to se è vuoto.
dvc read_only_udm.target.ip Mappato direttamente.
entries.collection_time.nanos, entries.collection_time.seconds read_only_udm.metadata.event_timestamp.nanos, read_only_udm.metadata.event_timestamp.seconds Utilizzato per creare il timestamp dell'evento.
env-from read_only_udm.additional.fields.value.string_value Mappato direttamente. La chiave è "Env-From".
ESAAttachmentDetails read_only_udm.security_result.about.file.full_path, read_only_udm.security_result.about.file.sha256 Analizzato per estrarre i nomi dei file e gli hash SHA256. È possibile estrarre più file e hash.
ESADCID read_only_udm.security_result.about.labels.value Mappato direttamente. La chiave è "ESADCID".
ESAFriendlyFrom read_only_udm.principal.user.user_display_name, read_only_udm.network.email.from Analizzato per estrarre il nome visualizzato e l'indirizzo email.
ESAHeloDomain read_only_udm.intermediary.administrative_domain Mappato direttamente.
ESAHeloIP read_only_udm.intermediary.ip Mappato direttamente.
ESAICID read_only_udm.security_result.about.labels.value Mappato direttamente. La chiave è "ESAICID".
ESAMailFlowPolicy read_only_udm.security_result.rule_name Mappato direttamente.
ESAMID read_only_udm.security_result.about.labels.value Mappato direttamente. La chiave è "ESAMID".
ESAReplyTo read_only_udm.network.email.reply_to Mappato direttamente se è un indirizzo email valido. Utilizzato anche per compilare network_to.
ESASDRDomainAge read_only_udm.security_result.about.labels.value Mappato direttamente. La chiave è "ESASDRDomainAge".
ESASenderGroup read_only_udm.principal.group.group_display_name Mappato direttamente.
ESAStatus read_only_udm.security_result.about.labels.value Mappato direttamente. La chiave è "ESAStatus".
ESATLSInCipher read_only_udm.network.tls.cipher o read_only_udm.security_result.about.labels.value Mappato direttamente alla cifra se deviceDirection è "0". In caso contrario, viene mappato come etichetta con la chiave "ESATLSInCipher".
ESATLSInProtocol read_only_udm.network.tls.version o read_only_udm.security_result.about.labels.value Versione TLS estratta e mappata direttamente se deviceDirection è "0". In caso contrario, viene mappato come etichetta con la chiave "ESATLSInProtocol".
ESATLSOutCipher read_only_udm.network.tls.cipher o read_only_udm.security_result.about.labels.value Mappato direttamente alla cifra se deviceDirection è "1". In caso contrario, viene mappato come etichetta con la chiave "ESATLSOutCipher".
ESATLSOutProtocol read_only_udm.network.tls.version o read_only_udm.security_result.about.labels.value Versione TLS estratta e mappata direttamente se deviceDirection è "1". In caso contrario, viene mappato come etichetta con la chiave "ESATLSOutProtocol".
ESAURLDetails read_only_udm.target.url Analizzato per estrarre gli URL. Viene mappato solo il primo URL perché il campo non viene ripetuto.
external_dlp_policy_group read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "ExternalDlpPolicyGroup".
ExternalMsgID read_only_udm.security_result.about.labels.value Mappato direttamente dopo la rimozione di virgolette singole e parentesi angolari. La chiave è "ExternalMsgID".
da read_only_udm.network.email.from Mappato direttamente se è un indirizzo email valido. Utilizzato anche per compilare network_from.
host.hostname read_only_udm.principal.hostname o read_only_udm.intermediary.hostname Mappato al nome host principale se il campo host non è valido. Mappato anche al nome host intermedio.
host.ip read_only_udm.principal.ip o read_only_udm.intermediary.ip Mappato all'IP principale se il campo ip non è impostato nei log JSON. Mappato anche all'IP intermediario.
nome host read_only_udm.target.hostname Mappato direttamente.
http_method read_only_udm.network.http.method Mappato direttamente.
http_response_code read_only_udm.network.http.response_code Mappato e convertito direttamente in un numero intero.
identity_policy_group read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "IdentityPolicyGroup".
ip read_only_udm.principal.ip Mappato direttamente. Sovrascritta da source_ip se presente.
kv_msg Varie Analizzato utilizzando il filtro kv. Il pre-elaborazione include la sostituzione degli spazi prima delle chiavi con "#" e lo scambio dei valori csLabel.
log_type read_only_udm.metadata.log_type Codificato in modo permanente su "CISCO_EMAIL_SECURITY".
loglevel read_only_udm.security_result.severity, read_only_udm.security_result.action Utilizzato per determinare la gravità e l'azione. "Info", "", "Debug", "Trace" corrispondono a "INFORMATIONAL" e "ALLOW". "Warning" (Avviso) corrisponde a "MEDIUM" (MEDIA) e "ALLOW" (CONSENTI). "Alto" corrisponde a "HIGH" e "BLOCK". "Critica" e "Avviso" corrispondono a "CRITICA" e "BLOCCO".
mail_id read_only_udm.network.email.mail_id Mappati direttamente dai log JSON.
mailto read_only_udm.target.user.email_addresses, read_only_udm.network.email.to Mappato direttamente a entrambi i campi UDM se è un indirizzo email valido.
MailPolicy read_only_udm.security_result.about.labels.value Mappato direttamente. La chiave è "MailPolicy".
messaggio Varie Analizzato come JSON, se possibile. In caso contrario, viene elaborato come messaggio syslog.
message_id read_only_udm.network.email.mail_id Mappato direttamente. Utilizzato anche per compilare network_data.
msg read_only_udm.network.email.subject Mappato direttamente dopo la decodifica UTF-8 e la rimozione di ritorni a capo, nuove righe e virgolette aggiuntive. Utilizzato anche per compilare network_data.
msg1 Varie Analizzato utilizzando il filtro kv. Utilizzato per estrarre nome host, helo, env-from e reply-to.
outbound_malware_scanning_policy_group read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "DataSecurityPolicyGroup".
porta read_only_udm.target.port Mappato e convertito direttamente in un numero intero.
principalMail read_only_udm.principal.user.email_addresses Mappato direttamente.
principalUrl read_only_udm.principal.url Mappato direttamente.
product_event read_only_udm.metadata.product_event_type Mappato direttamente. Utilizzato per determinare quali pattern grok applicare. I caratteri "%" iniziali vengono rimossi. "amp" viene sostituito con "SIEM_AMPenginelogs".
product_version read_only_udm.metadata.product_version Mappato direttamente.
protocollo read_only_udm.network.tls.version Mappato direttamente.
received_bytes read_only_udm.network.received_bytes Mappato e convertito direttamente in numero intero senza segno.
rispondi a read_only_udm.additional.fields.value.string_value Mappato direttamente. La chiave è "Reply-To".
reputazione read_only_udm.security_result.confidence_details Mappato direttamente.
request_method_uri read_only_udm.target.url Mappato direttamente.
result_code read_only_udm.security_result.detection_fields.value Mappato direttamente. La chiave è "Result Code".
routing_policy_group read_only_udm.security_result.detection_fields.value Mappato direttamente se non è vuoto, "-" o "NONE". La chiave è "RoutingPolicyGroup".
regola read_only_udm.security_result.detection_fields.value Mappato direttamente. La chiave è "Condizione soddisfatta".
SDRThreatCategory read_only_udm.security_result.threat_name Mappato direttamente se non è vuoto o "N/A".
SenderCountry read_only_udm.principal.location.country_or_region Mappato direttamente.
senderGroup read_only_udm.principal.group.group_display_name Mappato direttamente.
security_description read_only_udm.security_result.description Mappato direttamente.
security_email read_only_udm.security_result.about.email o read_only_udm.principal.hostname Mappato all'email se è un indirizzo email valido. In caso contrario, viene mappato al nome host dopo l'estrazione con grok.
origine read_only_udm.network.ip_protocol Se contiene "tcp", viene mappato su "TCP".
sourceAddress read_only_udm.principal.ip Mappato direttamente.
sourceHostName read_only_udm.principal.administrative_domain Mappato direttamente se non è "sconosciuto".
source_ip read_only_udm.principal.ip Mappato direttamente. Sovrascrive l'IP, se presente.
Oggetto read_only_udm.network.email.subject Mappato direttamente dopo la rimozione dei punti finali. Utilizzato anche per compilare network_data.
suser read_only_udm.principal.user.email_addresses, read_only_udm.network.email.bounce_address Mappato direttamente a entrambi i campi UDM se è un indirizzo email valido.
target_ip read_only_udm.target.ip Mappato direttamente.
a read_only_udm.network.email.to Mappato direttamente se è un indirizzo email valido. Utilizzato anche per compilare network_to.
total_bytes read_only_udm.network.sent_bytes Mappato e convertito direttamente in numero intero senza segno.
trackerHeader read_only_udm.additional.fields.value.string_value Mappato direttamente. La chiave è "Tracker Header".
ts, ts1, year read_only_udm.metadata.event_timestamp.seconds Utilizzato per creare il timestamp dell'evento. ts1 e year vengono combinati se ts1 è presente. Sono supportati vari formati, con e senza l'anno. Se l'anno non è presente, viene utilizzato l'anno corrente. Codificato in modo permanente su "Cisco". Codificato in modo permanente su "Cisco Email Security". Il valore predefinito è "ALLOW". Impostato su "BLOCK" in base al livello di log o alla descrizione. Se application_protocol è presente, il valore predefinito è "INBOUND". Imposta in base a deviceDirection per i messaggi CEF. Determinato in base a una combinazione di campi, tra cui network_from, network_to, target_ip, ip, description, event_type, principal_host, Hostname, user_id e sourceAddress. Il valore predefinito è "GENERIC_EVENT". Impostato su "SMTP" se application_protocol è "SMTP" o "smtp" oppure se sono presenti target_ip e ip. Imposta "AUTHTYPE_UNSPECIFIED" se login_status e user_id sono presenti nei log di sshd. Impostato su true se loglevel è "Critical" o "Alert".

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