Collecter les journaux InterSystems Caché

Compatible avec :

Ce document explique comment ingérer des journaux InterSystems Caché dans Google Security Operations à l'aide de l'agent Bindplane.

InterSystems Caché est une plate-forme de base de données et d'applications hautes performances utilisée dans les secteurs de la santé et des services financiers. Il génère des journaux d'audit pour les opérations de base de données, l'accès des utilisateurs et les événements système. L'analyseur extrait les champs des données d'audit Caché et les mappe au modèle de données unifié (UDM), en capturant l'identité de l'utilisateur, les attributs réseau, les détails du processus, les opérations sur les fichiers et les résultats de sécurité.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Windows Server 2016 ou version ultérieure, ou hôte Linux avec systemd
  • Connectivité réseau entre l'agent Bindplane et le serveur InterSystems Caché
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
  • Accès privilégié à l'instance InterSystems Caché avec l'autorisation de configurer la journalisation d'audit et l'exportation des journaux

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.
  4. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. Copiez et enregistrez le numéro client de la section Informations sur l'organisation.

Installer l'agent Bindplane

Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.

Installation de fenêtres

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

    Le service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    Le service doit être indiqué comme actif (en cours d'exécution).

Ressources d'installation supplémentaires

Pour obtenir d'autres options d'installation et des conseils de dépannage, consultez le guide d'installation de l'agent Bindplane.

Configurer l'agent Bindplane pour ingérer les journaux syslog et les envoyer à Google SecOps

Localiser le fichier de configuration

  • Linux :

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  • Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/intersystems_cache:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: INTERSYSTEMS_CACHE
            raw_log_field: body
    
    service:
        pipelines:
            logs/intersystems_cache:
                receivers:
                    - udplog
                exporters:
                    - chronicle/intersystems_cache
    

Paramètres de configuration

Remplacez les espaces réservés suivants :

  • Configuration du récepteur :

    • udplog : type de récepteur basé sur le protocole :
      • udplog pour le syslog UDP
      • tcplog pour syslog TCP
      • syslog pour le syslog RFC 3164/5424
    • 0.0.0.0 : adresse IP à écouter :
      • 0.0.0.0 pour écouter sur toutes les interfaces (recommandé)
      • Adresse IP spécifique à écouter sur une interface
    • 514 : numéro de port à écouter (par exemple, 514, 1514, 6514)
  • Configuration de l'exportateur :

    • <customer_id> : ID client de l'étape précédente
    • malachiteingestion-pa.googleapis.com : URL du point de terminaison régional :
      • États-Unis : malachiteingestion-pa.googleapis.com
      • Europe : europe-malachiteingestion-pa.googleapis.com
      • Asie : asia-southeast1-malachiteingestion-pa.googleapis.com
      • Pour obtenir la liste complète, consultez Points de terminaison régionaux.
    • Ajustez creds_file_path en fonction de la plate-forme :
      • Linux : /etc/bindplane-agent/ingestion-auth.json
      • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

Enregistrez le fichier de configuration.

  • Après avoir modifié le fichier, enregistrez-le :
    • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
    • Windows : cliquez sur Fichier > Enregistrer.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :

    sudo systemctl restart observiq-otel-collector
    
    1. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    2. Recherchez les erreurs dans les journaux :

      sudo journalctl -u observiq-otel-collector -f
      
  • Pour redémarrer l'agent Bindplane dans Windows, choisissez l'une des options suivantes :

    • Invite de commande ou PowerShell en tant qu'administrateur :

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console Services :

      1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
      2. Localisez observIQ OpenTelemetry Collector.
      3. Effectuez un clic droit, puis sélectionnez Redémarrer.
      4. Vérifiez que le service est en cours d'exécution :

        sc query observiq-otel-collector
        
      5. Recherchez les erreurs dans les journaux :

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

Configurer le transfert syslog InterSystems Caché

InterSystems Caché écrit les événements d'audit dans sa base de données d'audit interne. Configurez le transfert syslog pour envoyer ces événements à l'agent Bindplane.

Activer et configurer la journalisation d'audit

  1. Ouvrez le portail de gestion Caché.
  2. Accédez à Administration du système > Sécurité > Audit > Configurer les événements système.
  3. Activez les événements d'audit que vous souhaitez enregistrer (par exemple, %System/%Login/LoginFailure, %System/%Security/Protect).
  4. Cliquez sur Enregistrer.

Configurer le transfert syslog

  1. Dans le portail de gestion, accédez à Administration du système > Sécurité > Audit > Configurer l'audit.
  2. Activez le transfert syslog pour les événements d'audit.
  3. Fournissez les informations de configuration suivantes :
    • Serveur Syslog : saisissez l'adresse IP de l'hôte de l'agent Bindplane (par exemple, 192.168.1.100).
    • Port : saisissez 514 (doit correspondre au port du récepteur Bindplane).
    • Protocole : sélectionnez UDP (doit correspondre au type de récepteur Bindplane).
  4. Cliquez sur Enregistrer.

Table de mappage UDM

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

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.