Raccogli i log di InterSystems Caché

Supportata in:

Questo documento spiega come importare i log di InterSystems Caché in Google Security Operations utilizzando l'agente Bindplane.

InterSystems Caché è un database e una piattaforma applicativa ad alte prestazioni utilizzati nei servizi finanziari e sanitari. Genera audit log per le operazioni del database, l'accesso degli utenti e gli eventi di sistema. Il parser estrae i campi dai dati di controllo di Caché e li mappa al modello UDM (Unified Data Model), acquisendo l'identità dell'utente, gli attributi di rete, i dettagli del processo, le operazioni sui file e i risultati della sicurezza.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Windows Server 2016 o versioni successive oppure host Linux con systemd
  • Connessione di rete tra l'agente Bindplane e il server InterSystems Caché
  • 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 all'istanza di InterSystems Caché con l'autorizzazione per configurare il logging di controllo e l'esportazione dei log

Recupera le credenziali Google SecOps per l'agente Bindplane

Per autenticare l'agente Bindplane in Google SecOps, scegli uno dei seguenti metodi:

  • Nuovi deployment: utilizza l'API Chronicle (opzione 1).
  • Deployment legacy: continua a utilizzare il file di autenticazione dell'acquisizione (Opzione 2) fino alla dismissione dell'API Ingestion il 20 luglio 2027.
  1. Accedi alla consoleGoogle Cloud e seleziona il progetto Google Cloud collegato alla tua istanza Google SecOps.
  2. Vai a IAM e amministrazione > Service account.
  3. Fai clic su Crea service account.
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome service account: inserisci un nome per l'account (ad esempio bindplane-ingest).
    • Descrizione service account: inserisci una descrizione (ad esempio Bindplane agent log ingestion).
  5. Fai clic su Crea e continua.
  6. Nella sezione Concedi a questo account di servizio l'accesso al progetto, fai clic su Seleziona un ruolo e seleziona Chronicle Editor.
  7. Fai clic su Continua e poi su Fine.
  8. Fai clic sul account di servizio che hai creato, quindi vai alla scheda Chiavi.
  9. Fai clic su Aggiungi chiave > Crea nuova chiave.
  10. Seleziona JSON e fai clic su Crea. Il file della chiave viene scaricato sul tuo computer.
  11. Salva il file della chiave come ingestion-auth.json nella directory del raccoglitore Bindplane (/opt/observiq-otel-collector/ingestion-auth.json su Linux o C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json su Windows) o aggiorna creds_file_path in config.yaml in modo che corrisponda al percorso in cui lo salvi.
  12. Vai a IAM e amministrazione > Impostazioni e copia il Numero progetto. Ti servirà per la configurazione dell'esportatore.

Opzione 2: scarica il file di autenticazione dell'acquisizione (legacy)

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

Installa l'agente Bindplane

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di finestre

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

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

    sudo nano /opt/observiq-otel-collector/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:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/intersystems_cache:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: INTERSYSTEMS_CACHE
        raw_log_field: body
    
    service:
      pipelines:
        logs/intersystems_cache:
          receivers:
            - udplog
          exporters:
            - chronicle/intersystems_cache
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del ricevitore:

    • udplog: il tipo di ricevitore in base al protocollo:
      • udplog per syslog UDP
      • tcplog per syslog TCP
      • syslog per RFC 3164/5424 syslog
    • 0.0.0.0: indirizzo IP su cui ascoltare:
      • 0.0.0.0 per ascoltare su tutte le interfacce (consigliato)
      • Indirizzo IP specifico per l'ascolto su un'interfaccia
    • 514: numero di porta su cui ascoltare (ad esempio, 514, 1514, 6514)
  • Configurazione dell'esportatore:

    • <customer_id>: l'ID cliente del passaggio precedente
    • location: sostituisci <LOCATION> con la regione della tua istanza Google SecOps (ad esempio us, europe o asia-southeast1). L'esportatore aggiunge chronicle.googleapis.com come prefisso a questo valore. Per l'elenco completo, consulta Endpoint regionali.
    • project: sostituisci <PROJECT_NUMBER> con il numero di progetto da IAM e amministrazione > Impostazioni.
    • endpoint: mantieni l'impostazione su chronicle.googleapis.com.
    • Modifica creds_file_path in base al percorso del file della chiave JSON del account di servizio (opzione 1), a seconda della piattaforma:
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

Esportatore dell'API di importazione precedente

  • Se utilizzi il file di autenticazione dell'importazione dell'opzione 2, sostituisci il blocco exporters con il seguente. Imposta creds_file_path sul percorso del file di autenticazione dell'acquisizione e, se l'istanza si trova al di fuori degli Stati Uniti, sostituisci malachiteingestion-pa.googleapis.com con il tuo endpoint regionale (ad esempio, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/intersystems_cache:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: INTERSYSTEMS_CACHE
        raw_log_field: body
    

Salva 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 verificare la presenza di errori:

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

Configura l'inoltro del syslog di InterSystems Caché

InterSystems Caché scrive gli eventi di controllo nel suo database di controllo interno. Configura l'inoltro di syslog per inviare questi eventi all'agente Bindplane.

Abilita e configura l'audit logging

  1. Apri il portale di gestione della cache.
  2. Vai a Amministrazione di sistema > Sicurezza > Audit > Configura eventi di sistema.
  3. Attiva gli eventi di controllo che vuoi acquisire (ad esempio %System/%Login/LoginFailure, %System/%Security/Protect).
  4. Fai clic su Salva.

Configura l'inoltro di syslog

  1. Nel portale di gestione, vai a Amministrazione di sistema > Sicurezza > Controllo > Configura controllo.
  2. Abilita l'inoltro di syslog per gli eventi di controllo.
  3. Fornisci i seguenti dettagli di configurazione:
    • Server Syslog: inserisci l'indirizzo IP dell'host dell'agente Bindplane (ad esempio, 192.168.1.100).
    • Porta: inserisci 514 (deve corrispondere alla porta del ricevitore Bindplane).
    • Protocollo: seleziona UDP (deve corrispondere al tipo di ricevitore Bindplane).
  4. Fai clic su Salva.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
deviceNtDomain about.administrative_domain Rinominato/mappato
deviceExternalId about.asset.asset_id Mappato direttamente
device_product about.asset.asset_id Mappata direttamente
device_vendor about.asset.asset_id Mappata direttamente
fileHash about.file.full_path Mappata direttamente
filePath about.file.full_path Rinominato/mappato
_hash about.file.sha256 Rinominato/mappato
fileHash about.file.sha256 Rinominato/mappato
fsize about.file.size Rinominato/mappato
dvchost about.hostname Rinominato/mappato
ips about.ip Unita
dvc_mac about.mac Mappatura: slot → mac_address
dvcmac about.mac Unita
mac_address about.mac Unita
deviceTranslatedAddress about.nat_ip Unita
Emne about.process.command_line Mappata direttamente
Path about.process.command_line Mappata direttamente
Subject about.process.command_line Mappata direttamente
deviceProcessName about.process.command_line Rinominato/mappato
dvcpid about.process.pid Rinominato/mappato
permissions about.resource.attribute.permissions Unita
additional_cfp1 additional.fields Unita
additional_cfp2 additional.fields Unita
additional_cfp3 additional.fields Unita
additional_cfp4 additional.fields Unita
additional_cn1 additional.fields Unita
additional_cn2 additional.fields Unita
additional_cn3 additional.fields Unita
additional_cs1 additional.fields Unita
additional_cs2 additional.fields Unita
additional_cs3 additional.fields Unita
additional_cs4 additional.fields Unita
additional_cs5 additional.fields Unita
additional_cs6 additional.fields Unita
additional_cs7 additional.fields Unita
additional_devicePayloadId additional.fields Unita
additional_eventId additional.fields Unita
additional_field additional.fields Unita
additional_field_key additional.fields Mappatura: smb_stage1 → additional_smb_stage1
additional_flexString1 additional.fields Unita
additional_fname additional.fields Unita
additional_smb_stage1 additional.fields Unita
cs2 additional.fields Mappatura: arc_test → additional_cs2
cs5_label additional.fields Unita
event_name extensions.auth.type Mappato: logout → AUTHTYPE_UNSPECIFIED, login → AUTHTYPE_UNSPECIFIED
field_intermediary intermediary Unita
msg metadata.description Rinominato/mappato
Generated metadata.event_timestamp Analizzato come yyyy-MM-ddTHH:mm:ss
Received metadata.event_timestamp Analizzato come yyyy-MM-ddTHH:mm:ss
rt metadata.event_timestamp Analizzato come yyyy-MM-ddTHH:mm:ssZ
event_name metadata.event_type Mappatura: logout → USER_LOGOUT, login → USER_LOGIN, `"LogSpyware","LogPredictiveMachin…
device_event_class_id metadata.product_event_type Mappato direttamente
event_name metadata.product_event_type Mappata direttamente
externalId metadata.product_log_id Mappata direttamente
device_product metadata.product_name Mappata direttamente
device_version metadata.product_version Mappata direttamente
device_vendor metadata.vendor_name Rinominato/mappato
app_protocol_output network.application_protocol Mappata direttamente
deviceDirection network.direction Mappatura: 0 → INBOUND, 1 → OUTBOUND
requestMethod network.http.method Rinominate/mappate
agentZoneURI network.http.referral_url Mappata direttamente
requestClientApplication network.http.user_agent Rinominato/mappato
ip_protocol_out network.ip_protocol Mappata direttamente
in network.received_bytes Rinominato/mappato
out network.sent_bytes Rinominato/mappato
sntdom principal.administrative_domain Rinominato/mappato
sourceServiceName principal.application Rinominato/mappato
Group_name principal.group.group_display_name Mappato direttamente
Gruppenavn principal.group.group_display_name Mappata direttamente
Device_name principal.hostname Mappata direttamente
Enhetsnavn principal.hostname Mappata direttamente
shost principal.hostname Rinominato/mappato
principal_ip principal.ip Unita
shost principal.ip Unita
mac principal.mac Unita
sourceTranslatedAddress principal.nat_ip Unita
sourceTranslatedPort principal.nat_port Rinominato/mappato
spt principal.port Rinominato/mappato
sproc principal.process.command_line Rinominato/mappato
spid principal.process.pid Rinominato/mappato
principal_role principal.user.attribute.roles Unita
suser principal.user.user_display_name Mappata direttamente
suid principal.user.userid Rinominato/mappato
_action security_result.action Unita
act security_result.action Mappato: accept → _action, deny → _action
Action_Taken security_result.action_details Mappato direttamente
act security_result.action_details Mappata direttamente
cat security_result.category_details Unita
Scan_Type security_result.description Mappata direttamente
Type security_result.description Mappata direttamente
msg_data_2 security_result.description Mappata direttamente
infection_channel_label security_result.detection_fields Unita
operasjon_label security_result.detection_fields Unita
operation_label security_result.detection_fields Unita
permission_label security_result.detection_fields Unita
spyware_Grayware_Type_label security_result.detection_fields Unita
threat_probability_label security_result.detection_fields Unita
tillatelse_label security_result.detection_fields Unita
mwProfile security_result.rule_name Mappata direttamente
severity security_result.severity Mappato: "0", "1", "2", "3", "LOW" → LOW, `"4", "5", "6", "MEDIUM", "SUBSTANTIAL", "INFO"…
severity security_result.severity_details Mappata direttamente
Result security_result.summary Mappata direttamente
appcategory security_result.summary Mappata direttamente
reason security_result.summary Rinominato/mappato
Spyware security_result.threat_name Mappato direttamente
Unknown_Threat security_result.threat_name Mappata direttamente
Virus_Malware_Name security_result.threat_name Mappata direttamente
oldFilePath src.file.full_path Rinominato/mappato
oldFileSize src.file.size Rinominato/mappato
old_permissions src.resource.attribute.permissions Unita
dntdom target.administrative_domain Rinominate/mappate
app target.application Mappata direttamente
destinationServiceName target.application Rinominato/mappato
ahost target.hostname Mappato direttamente
temp_dhost target.hostname Mappata direttamente
IPv6_Address target.ip Unita
agt target.ip Unita
dst_ip target.ip Unita
ipv6 target.ip Mappatura: - → IPv6_Address
atz target.location.country_or_region Mappata direttamente
amac target.mac Unita
mac_address target.mac Unita
destination_translated_address target.nat_ip Unita
destinationTranslatedPort target.nat_port Rinominato/mappato
dpt target.port Rinominato/mappato
dproc target.process.command_line Rinominato/mappato
File_name target.process.file.full_path Mappato direttamente
Infected_Resource target.process.file.full_path Mappata direttamente
Object target.process.file.full_path Mappata direttamente
Objekt target.process.file.full_path Mappata direttamente
dpid target.process.pid Rinominato/mappato
resource_Type_label target.resource.attribute.labels Unita
request target.url Mappata direttamente
target_role target.user.attribute.roles Unita
CustomerName target.user.user_display_name Mappata direttamente
temp_duser target.user.user_display_name Mappata direttamente
Bruker target.user.userid Mappata direttamente
User_value target.user.userid Mappata direttamente
temp_duid target.user.userid Mappata direttamente
N/D extensions.auth.type Costante: AUTHTYPE_UNSPECIFIED
N/D metadata.event_type Costante: USER_LOGOUT
N/D network.direction Costante: INBOUND
N/D security_result.severity Costante: LOW

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.