Collecter les journaux Nutanix Prism
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
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Agents de collecte.
- Téléchargez le fichier d'authentification d'ingestion.
Obtenir l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Profil.
- Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent BindPlane
- 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
. - 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
. - 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
- Accédez à la machine sur laquelle l'agent Bindplane est installé.
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
Redémarrez l'agent Bindplane pour appliquer les modifications à l'aide de la commande suivante :
sudo systemctl bindplane restart
Exporter Syslog depuis Nutanix Prism
- Connectez-vous à Prism Central à l'aide d'un compte privilégié.
- Sélectionnez Paramètres Prism Central dans le menu.
- Accédez à Serveur Syslog.
- Cliquez sur + Configurer le serveur Syslog.
- 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.
- Cliquez sur + Modifier dans l'option Sources de données.
- 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.