Collecter les journaux Nutanix Prism

Compatible avec :

Présentation

Ce parseur traite les journaux Nutanix Prism, en gérant les formats JSON et syslog. Il extrait les champs de différentes structures de journaux, les normalise dans l'UDM et enrichit les données avec un contexte supplémentaire, comme les informations sur les utilisateurs, les détails du réseau et le niveau de gravité de la sécurité. Le parseur effectue également des actions spécifiques en fonction de la méthode HTTP et du niveau de journalisation, en classant les événements dans des types d'événements UDM tels que USER_LOGIN, STATUS_UPDATE et GENERIC_EVENT.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google SecOps.
  • Assurez-vous de disposer d'un accès privilégié à Nutanix Prism Central.
  • Assurez-vous de disposer d'un hôte Windows 2012 SP2 ou version ultérieure, ou d'un hôte Linux avec systemd.
  • Si vous exécutez le programme derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts.

Obtenir le fichier d'authentification d'ingestion Google SecOps

  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.

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

  1. Pour l'installation sous Windows, exécutez le script suivant : msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet.
  2. Pour installer Linux, exécutez le script suivant : sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh.
  3. Vous trouverez d'autres options d'installation dans ce guide d'installation.

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

  1. Accédez à la machine sur laquelle l'agent Bindplane est installé.
  2. Modifiez le fichier config.yaml comme suit :

    receivers:
      tcplog:
        # Replace the below port <54525> and IP (0.0.0.0) with your specific values
        listen_address: "0.0.0.0:54525" 
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the creds location below according the placement of the credentials file you downloaded
            creds: '{ json file for creds }'
            # Replace <customer_id> below with your actual ID that you copied
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # You can apply ingestion labels below as preferred
            ingestion_labels:
            log_type: SYSLOG
            namespace: Namespace
            raw_log_field: body
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Redémarrez l'agent Bindplane pour appliquer les modifications à l'aide de la commande suivante : sudo systemctl bindplane restart

Exporter Syslog depuis Nutanix Prism

  1. Connectez-vous à Prism Central à l'aide d'un compte privilégié.
  2. Sélectionnez Paramètres Prism Central dans le menu.
  3. Accédez à Serveur Syslog.
  4. Cliquez sur + Configurer le serveur Syslog.
  5. Spécifiez les valeurs des paramètres d'entrée dans la boîte de dialogue Serveurs Syslog :
    • Nom du serveur : saisissez un nom pour le serveur (par exemple, Serveur Google SecOps Bindplane).
    • Adresse IP : saisissez l'adresse IP de votre agent Bindplane.
    • Port : saisissez le port sur lequel l'agent Bindplane écoute.
    • Protocole de transport : sélectionnez TCP.
    • Cliquez sur Configurer.
  6. Cliquez sur + Modifier dans l'option Sources de données.
  7. Spécifiez les valeurs des paramètres d'entrée dans la boîte de dialogue Sources de données et niveau de gravité correspondant :
    • Sélectionnez Audit de l'API, Audit et Flux.
    • Définissez le niveau de gravité de chacun sur 6 – Informationnel.
    • Cliquez sur Enregistrer.

Table de mappage UDM

Champ de journal Mappage UDM Logique
@timestamp metadata.event_timestamp L'horodatage de l'événement est analysé à partir du champ @timestamp. Les formats yyyy-MM-dd HH:mm:ss.SSS, yyyy-MM-ddTHH:mm:ssZ et ISO8601 sont acceptés.
agent.id observer.asset_id Combiné à agent.type pour former l'ID de composant de l'observateur au format "agent.type:agent.id".
agent.type observer.application Application utilisée pour l'observation.
agent.version observer.platform_version Version de l'application observateur.
alertUid security_result.detection_fields.value La valeur de l'UID de l'alerte est mappée au champ value dans detection_fields. key est défini sur "Alert Uid".
api_version metadata.product_version Version de l'API.
clientIp principal.ip, principal.asset.ip Adresse IP du client.
client_type principal.labels.value Valeur du type de client. key est défini sur "client_type".
defaultMsg metadata.description Message par défaut.
entity_uuid metadata.product_log_id UUID de l'entité.
http_method network.http.method Méthode HTTP. Converti en majuscules.
host.architecture principal.asset.hardware.cpu_platform Architecture de l'hôte.
host.id principal.asset_id Préfixe "NUTANIX:" pour créer l'ID de ressource principal.
host.ip principal.ip, principal.asset.ip Adresse IP de l'hôte.
host.mac principal.mac Adresse MAC de l'hôte.
host.os.kernel principal.platform_patch_level Version du noyau du système d'exploitation hôte.
host.os.platform principal.platform Plate-forme du système d'exploitation hôte. Mappé sur LINUX, WINDOWS, MAC ou UNKNOWN_PLATFORM.
host.os.version principal.platform_version Version du système d'exploitation hôte.
input.type network.ip_protocol Protocole réseau. Mappé sur "UDP" ou "TCP".
log.source.address principal.ip, principal.asset.ip, principal.port Analysé pour extraire l'adresse IP et le port sources.
logstash.collect.host observer.ip Adresse IP du collecteur Logstash.
logstash.collect.timestamp metadata.collected_timestamp Code temporel de la collecte du journal.
logstash.ingest.host intermediary.hostname Nom d'hôte du serveur d'ingestion Logstash.
logstash.ingest.timestamp metadata.ingested_timestamp Code temporel de l'ingestion du journal.
logstash.irm_environment principal.labels.value Valeur de l'environnement irm. La valeur de key est définie sur "irm_environment".
logstash.irm_region principal.labels.value Valeur de la région irm. key est défini sur "irm_region".
logstash.irm_site principal.labels.value Valeur du site irm. La valeur de key est définie sur "irm_site".
logstash.process.host intermediary.hostname Nom d'hôte du serveur de traitement Logstash.
operationType metadata.product_event_type Type d'opération.
originatingClusterUuid additional.fields.value.string_value UUID du cluster d'origine. Le key est défini sur "UUID du cluster d'origine".
params.mac_address target.mac Adresse MAC provenant des paramètres.
params.requested_ip_address target.ip, target.asset.ip Adresse IP demandée à partir des paramètres.
params.vm_name target.resource.name Nom de la VM à partir des paramètres.
program metadata.product_event_type Nom du programme.
rest_endpoint target.url Point de terminaison REST.
sessionId additional.fields.value.string_value ID de la session. key est défini sur "ID de session".
syslog_host principal.hostname, principal.asset.hostname Hôte Syslog.
timestamp metadata.event_timestamp Code temporel de l'événement.
username principal.user.user_display_name ou principal.user.userid Nom d'utilisateur. Utilisé comme ID utilisateur si http_method est défini sur "POST".
uuid metadata.product_log_id UUID.
N/A metadata.vendor_name Codé en dur sur "Nutanix_Prism".
N/A metadata.product_name Codé en dur sur "Nutanix_Prism".
N/A metadata.event_type Déterminé par la logique de l'analyseur en fonction des valeurs de has_principal, has_target, audit_log, network_set et http_method. Il peut s'agir de GENERIC_EVENT, USER_LOGIN, STATUS_UPDATE, USER_RESOURCE_ACCESS, RESOURCE_CREATION, USER_RESOURCE_UPDATE_CONTENT ou USER_RESOURCE_DELETION.
N/A metadata.log_type Codé en dur sur "NUTANIX_PRISM".
N/A extensions.auth.type Définissez sur "AUTHTYPE_UNSPECIFIED" si metadata.event_type est USER_LOGIN.
N/A security_result.severity Déterminé par la logique de l'analyseur en fonction de log_level et syslog_pri. Il peut s'agir de CRITICAL, ERROR, HIGH, MEDIUM ou INFORMATIONAL.

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