Collecter les journaux Skyhigh Security

Compatible avec :

Ce document explique comment ingérer les journaux Skyhigh Security (anciennement McAfee Skyhigh CASB) dans Google Security Operations à l'aide de Bindplane. L'analyseur transforme les journaux d'un format SYSLOG+KV en Unified Data Model (UDM). Il normalise d'abord le message de journal en paires clé-valeur, puis mappe les champs extraits aux attributs UDM correspondants dans l'objet event.idm.read_only_udm, en catégorisant le type d'événement en fonction de la présence et des valeurs de champs spécifiques.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Un hôte Windows 2016 ou version ultérieure, ou un hôte Linux avec systemd
  • Si vous exécutez le programme derrière un proxy, les ports du pare-feu sont ouverts.
  • Installer et configurer Skyhigh Cloud Connector
  • Accès privilégié au connecteur Skyhigh Security Cloud

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

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
    

Ressources d'installation supplémentaires

Pour plus d'options d'installation, consultez le guide d'installation.

Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps

  1. Accédez au fichier de configuration :
    • Recherchez le fichier config.yaml. Il se trouve généralement dans le répertoire /etc/bindplane-agent/ sous Linux ou dans le répertoire d'installation sous Windows.
    • Ouvrez le fichier à l'aide d'un éditeur de texte (par exemple, nano, vi ou le Bloc-notes).
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'MCAFEE_SKYHIGH_CASB'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
    • Remplacez <customer_id> par le numéro client réel.
    • Mettez à jour /path/to/ingestion-authentication-file.json avec le chemin d'accès à l'emplacement où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification pour l'ingestion Google SecOps.

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

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

    sudo systemctl restart bindplane-agent
    
  2. Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Conditions préalables avant de télécharger le client Logging

Assurez-vous de disposer des informations suivantes :

  1. Privilège utilisateur "Utilisateurs Usage Analytics" : votre compte doit disposer du rôle "Utilisateurs Usage Analytics".
  2. Numéro client : procédez comme suit pour trouver votre numéro client dans Skyhigh CASB :
    • Connectez-vous à Skyhigh CASB.
    • Accédez à Settings> Infrastructure> Client Proxy Management.
    • Cliquez sur Configuration globale > Authentification du locataire.
    • Sous Paramètres globaux, recherchez votre numéro client.
  3. Adresse e-mail et mot de passe : vos identifiants de connexion (ou ceux d'un compte de service dédié). Si vous vous connectez à l'aide de SAML sans saisir de mot de passe, vous ne pouvez pas installer le client de journalisation.

Télécharger et installer le client de journalisation Skyhigh

  1. Téléchargez le client de journalisation sur une instance dédiée.
  2. Installez le client de journalisation (décompressez le fichier EXE téléchargé si nécessaire).
  3. Une fois l'installation terminée, ouvrez le client de journalisation.
  4. Sur la page Configuration, fournissez les informations de configuration suivantes :
    1. Numéro client : saisissez votre numéro client Skyhigh CASB obtenu à l'étape précédente.
    2. Service : sélectionnez SSE si vous utilisez Skyhigh SSE, ou WGCS si vous utilisez ce produit avec Trellix ePO.
    3. Région : choisissez un code régional ou de pays en fonction de l'emplacement de stockage de vos données :
      • UE : Union européenne
      • IN : Inde
      • SG : Singapour
      • UE : Émirats arabes unis
      • UK — Royaume-Uni
      • US : États-Unis
    4. Nom : saisissez le nom d'utilisateur, qui est généralement l'adresse e-mail utilisée pour se connecter à Secure Web Gateway ou à une instance dédiée.
    5. Mot de passe : saisissez le mot de passe que vous utilisez pour vous connecter à Secure Web Gateway. Si vous vous connectez avec SAML, vous ne pouvez pas utiliser le client Logging.
    6. Version de l'API : saisissez version 13.
    7. Type de journal : vous pouvez télécharger différents types de journaux, y compris ceux contenant des données provenant du Web, de l'isolation du navigateur à distance (RBI), de l'accès privé et du pare-feu cloud.
    8. Sélectionnez Envoyer en tant que journaux système et fournissez les informations de configuration suivantes :
      • Hôte du client Syslog : saisissez l'adresse IP de l'agent Bindplane.
      • Port du client Syslog : saisissez le numéro de port de l'agent Bindplane.
      • Transport : sélectionnez UDP ou TCP, en fonction de la configuration de votre agent Bindplane.

Table de mappage UDM

Champ du journal Mappage UDM Logique
EventReceivedTime metadata.event_timestamp Converti en code temporel à partir du format yyyy-MM-dd HH:mm:ss
FileSize target.file.size Mappé directement, converti en uinteger
Nom d'hôte principal.hostname Mappé directement
MessageSourceAddress principal.ip Mappé directement, fusionné s'il existe plusieurs instances
Gravité additional.fields.value.string_value (clé : SEVERITY) Mappé directement
SeverityValue additional.fields.value.string_value (clé : SEVERITY_VALUE) Mappé directement
SourceModuleName additional.fields.value.string_value (clé : SOURCE_MODULE_NAME) Mappé directement
SourceModuleType principal.resource.resource_subtype Mappé directement
SyslogFacility security_result.about.resource.attribute.labels.value (clé : SYSLOG_FACILITY) Mappé directement
SyslogFacilityValue security_result.about.resource.attribute.labels.value (key: SYSLOG_FACILITY_VALUE) Mappé directement
SyslogSeverity security_result.about.resource.attribute.labels.value (clé : SYSLOG_SEVERITY) Mappé directement
SyslogSeverityValue security_result.about.resource.attribute.labels.value (clé : SYSLOG_SEVERITY_VALUE) Mappé directement
activityName metadata.product_event_type Mappé directement, crochets supprimés
actorId principal.user.userid Mappé directement, également ajouté à email_addresses s'il s'agit d'une adresse e-mail
actorIdType principal.user.attribute.roles.name Mappé directement
collaborationSharedLink security_result.about.resource.attribute.labels.value (key: COLLABORATION_SHARED_LINK) Mappé directement
contentItemId target.file.full_path (si contentItemType est FILE) Mappé directement, guillemets supprimés
contentItemId target.url (si contentItemType est SAAS_RESOURCE) Mappé directement, guillemets supprimés
contentItemHierarchy additional.fields.value.string_value (clé : CONTENT_ITEM_HIERARCHY) Mappé directement, guillemets supprimés
contentItemName target.resource.name Mappé directement, guillemets supprimés
contentItemType additional.fields.value.string_value (clé : CONTENT_ITEM_TYPE) Mappé directement
incidentGroup security_result.detection_fields.value (clé : INCIDENT_GROUP) Mappé directement
incidentId metadata.product_log_id Mappé directement
incidentRiskScore security_result.detection_fields.value (clé : INCIDENT_RISK_SCORE) Mappé directement
incidentRiskSeverityId Utilisé en combinaison avec riskSeverity pour déterminer security_result.severity
informationAccountId target.resource.product_object_id Mappé directement
informationAnomalyCategory security_result.category_details Mappé directement, guillemets supprimés
informationAnomalyCause security_result.detection_fields.value (clé : INFO_ANOMALY_CAUSE) Mappé directement, guillemets supprimés
informationCategory security_result.category_details Mappé directement
informationConfigType additional.fields.value.string_value (clé : INFORMATION_CONFIG_TYPE) Mappé directement, guillemets supprimés
informationContentItemParent target.resource.parent Mappé directement, guillemets supprimés
informationEventId additional.fields.value.string_value (clé : INFORMATION_EVENT_ID) Mappé directement
informationExternalCollaboratorsCount additional.fields.value.string_value (clé : INFORMATION_COLLAB_COUNT) Mappé directement
informationFileTypes additional.fields.value.list_value.values.string_value (key: FILE_TYPE) Extrait d'une chaîne de type JSON, crochets et guillemets supprimés
informationLastExecutedResponseLabel additional.fields.value.string_value (clé : INFORMATION_LAST_RESPONSE) Mappé directement
informationScanName metadata.description Mappé directement, guillemets supprimés
informationScanRunDate Non mappé à UDM
informationSource additional.fields.value.string_value (clé : INFORMATION_SOURCE) Mappé directement
informationUniqueMatchCount additional.fields.value.string_value (clé : INFORMATION_UNQ_MATCH_COUNT) Mappé directement
informationUserAttributesSAMAccountName principal.user.user_display_name Mappé directement, crochets supprimés
instanceId principal.resource.product_object_id Mappé directement
instanceName principal.resource.name Mappé directement, guillemets supprimés
policyId security_result.rule_id Mappé directement
policyName security_result.summary Mappé directement, guillemets supprimés
réponse Utilisé pour déterminer security_result.action (ALLOW ou BLOCK)
riskSeverity Utilisé en combinaison avec incidentRiskSeverityId pour déterminer security_result.severity, converti en majuscules
serviceNames target.application Mappé directement, crochets, guillemets et espaces supplémentaires supprimés
sourceIps principal.ip Extrait d'une chaîne de type JSON, fusionné si plusieurs instances
état additional.fields.value.string_value (clé : STATUS) Mappé directement
threatCategory security_result.threat_name Mappé directement, guillemets supprimés
totalMatchCount security_result.detection_fields.value (clé : TOTAL_MATCH_COUNT) Mappé directement
N/A metadata.vendor_name MCAFEE : valeur statique
N/A metadata.product_name MCAFEE_SKYHIGH_CASB : valeur statique
N/A metadata.log_type MCAFEE_SKYHIGH_CASB : valeur statique
N/A principal.resource.type VIRTUAL_MACHINE : défini si instanceName ou instanceId sont présents
N/A metadata.event_type Déterminé en fonction d'un ensemble de conditions :
 – USER_RESOURCE_UPDATE_CONTENT si actorId, contentItemId ou contentItemName sont présents
 – USER_UNCATEGORIZED si actorId et target sont présents
 – STATUS_UPDATE si Hostname ou MessageSourceAddress sont présents
 – GENERIC_EVENT sinon
N/A security_result.severity Déterminé en fonction de la combinaison de riskSeverity et incidentRiskSeverityId :
 – LOW si riskSeverity est LOW et incidentRiskSeverityId est 0
 – MEDIUM si riskSeverity est MEDIUM et incidentRiskSeverityId est 1
 – HIGH si riskSeverity est HIGH et incidentRiskSeverityId est 2
 – INFORMATIONAL si riskSeverity est INFO et incidentRiskSeverityId est 3
N/A security_result.action Déterminé en fonction de la valeur de la réponse :
 – ALLOW si la réponse contient allow (insensible à la casse)
 – BLOCK si la réponse contient Violation (insensible à la casse)

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