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 base de données et une plate-forme d'applications hautes performances utilisées 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 du 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 les identifiants Google SecOps pour l'agent Bindplane

Pour authentifier l'agent Bindplane auprès de Google SecOps, choisissez l'une des méthodes suivantes :

  • Nouveaux déploiements : utilisez l'API Chronicle (option 1).
  • Déploiements existants : continuez à utiliser le fichier d'authentification pour l'ingestion (option 2) jusqu'à l'arrêt de l'API Ingestion le 20 juillet 2027.
  1. Connectez-vous à la consoleGoogle Cloud et sélectionnez le projet Google Cloud associé à votre instance Google SecOps.
  2. Accédez à IAM et administration > Comptes de service.
  3. Cliquez sur Créer un compte de service.
  4. Fournissez les informations de configuration suivantes :
    • Nom du compte de service : saisissez un nom pour le compte (par exemple, bindplane-ingest).
    • Description du compte de service : saisissez une description (par exemple, Bindplane agent log ingestion).
  5. Cliquez sur Créer et continuer.
  6. Dans la section Autoriser ce compte de service à accéder au projet, cliquez sur Sélectionner un rôle, puis sélectionnez Éditeur Chronicle.
  7. Cliquez sur Continue (Continuer), puis sur Done (OK).
  8. Cliquez sur le compte de service que vous avez créé, puis accédez à l'onglet Clés.
  9. Cliquez sur Ajouter une clé > Créer une clé.
  10. Sélectionnez JSON, puis cliquez sur Créer. Le fichier de clé est téléchargé sur votre ordinateur.
  11. Enregistrez le fichier de clé sous le nom ingestion-auth.json dans le répertoire du collecteur BindPlane (/opt/observiq-otel-collector/ingestion-auth.json sous Linux ou C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json sous Windows), ou mettez à jour creds_file_path dans config.yaml pour qu'il corresponde au chemin d'accès où vous l'enregistrez.
  12. Accédez à IAM et administration > Paramètres, puis copiez le numéro du projet. Vous en aurez besoin pour la configuration de l'exportateur.

Option 2 : Télécharger le fichier d'authentification d'ingestion (ancien)

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres 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 où l'agent 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 dans la section Détails de 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 Windows

  1. Ouvrez l'invite de commande 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 que l'installation se termine.

  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 des privilèges 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 que l'installation se termine.

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

    sudo systemctl status observiq-otel-collector
    

    Le service doit s'afficher comme actif (en cours d'exécution).

Ressources d'installation supplémentaires

Pour obtenir d'autres options d'installation et 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:
        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
    

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 syslog UDP
      • tcplog pour syslog TCP
      • syslog pour le syslog RFC 3164/5424
    • 0.0.0.0 : adresse IP sur laquelle é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 d'écoute (par exemple, 514, 1514, 6514)
  • Configuration de l'exportateur :

    • <customer_id> : ID client de l'étape précédente
    • location : remplacez <LOCATION> par la région de votre instance Google SecOps (par exemple, us, europe ou asia-southeast1). L'exportateur ajoute cette valeur en préfixe à chronicle.googleapis.com. Pour obtenir la liste complète, consultez Points de terminaison régionaux.
    • project : remplacez <PROJECT_NUMBER> par le numéro de projet dans IAM et administration > Paramètres.
    • endpoint : laissez la valeur définie sur chronicle.googleapis.com.
    • Remplacez creds_file_path par le chemin d'accès au fichier de clé JSON de votre compte de service (option 1), en fonction de la plate-forme :
      • Linux : /opt/observiq-otel-collector/ingestion-auth.json
      • Windows : C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

Ancien exportateur d'API d'ingestion

  • Si vous utilisez le fichier d'authentification d'ingestion de l'option 2, remplacez le bloc exporters par ce qui suit. Définissez creds_file_path sur le chemin d'accès au fichier d'authentification d'ingestion. Si votre instance se trouve en dehors des États-Unis, remplacez malachiteingestion-pa.googleapis.com par votre point de terminaison régional (par exemple, 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
    

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 sous 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. Recherchez 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 capturer (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 du journal Mappage UDM Logique
deviceNtDomain about.administrative_domain Renommé/Mappé
deviceExternalId about.asset.asset_id Mappé directement
device_product about.asset.asset_id Mappage direct
device_vendor about.asset.asset_id Mappage direct
fileHash about.file.full_path Mappage direct
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é : slot → mac_address
dvcmac about.mac Fusionné
mac_address about.mac Fusionné
deviceTranslatedAddress about.nat_ip Fusionné
Emne about.process.command_line Mappage direct
Path about.process.command_line Mappage direct
Subject about.process.command_line Mappage direct
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_stage1 → additional_smb_stage1
additional_flexString1 additional.fields Fusionné
additional_fname additional.fields Fusionné
additional_smb_stage1 additional.fields Fusionné
cs2 additional.fields Mappé : arc_test → additional_cs2
cs5_label additional.fields Fusionné
event_name extensions.auth.type Mapped: 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 Mappage direct
event_name metadata.product_event_type Mappage direct
externalId metadata.product_log_id Mappage direct
device_product metadata.product_name Mappage direct
device_version metadata.product_version Mappage direct
device_vendor metadata.vendor_name Renommé/Mappé
app_protocol_output network.application_protocol Mappage direct
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 Mappage direct
Device_name principal.hostname Mappage direct
Enhetsnavn principal.hostname Mappage direct
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 Mapped: accept → _action, deny → _action
Action_Taken security_result.action_details Mappé directement
act security_result.action_details Mappage direct
cat security_result.category_details Fusionné
Scan_Type security_result.description Mappage direct
Type security_result.description Mappage direct
msg_data_2 security_result.description Mappage direct
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 Mappage direct
severity security_result.severity Mappé : "0", "1", "2", "3", "LOW" → LOW, `"4", "5", "6", "MEDIUM", "SUBSTANTIAL", "INFO"...
severity security_result.severity_details Mappage direct
Result security_result.summary Mappage direct
appcategory security_result.summary Mappage direct
reason security_result.summary Renommé/Mappé
Spyware security_result.threat_name Mappé directement
Unknown_Threat security_result.threat_name Mappage direct
Virus_Malware_Name security_result.threat_name Mappage direct
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 Mappage direct
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 Mappage direct
Object target.process.file.full_path Mappage direct
Objekt target.process.file.full_path Mappage direct
dpid target.process.pid Renommé/Mappé
resource_Type_label target.resource.attribute.labels Fusionné
request target.url Mappage direct
target_role target.user.attribute.roles Fusionné
CustomerName target.user.user_display_name Mappage direct
temp_duser target.user.user_display_name Mappage direct
Bruker target.user.userid Mappage direct
User_value target.user.userid Mappage direct
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

Journal des modifications

Afficher le journal des modifications de cet analyseur

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