Collecter les journaux Symantec DLP
Ce document explique comment collecter des journaux Symantec DLP à l'aide de Bindplane. Le code du parseur tente d'abord d'analyser les données de journaux Symantec DLP entrantes au format XML. Si l'analyse XML échoue, le format SYSLOG+KV (CEF) est utilisé. Une combinaison de filtres grok et kv permet d'extraire les paires clé/valeur et de les mapper au modèle de données unifié (UDM).
Avant de commencer
- Assurez-vous de disposer d'une instance Google Security Operations.
- Assurez-vous d'utiliser Windows 2016 ou une version ultérieure, ou 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.
- Assurez-vous de disposer d'un accès privilégié à Symantec DLP.
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- 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
- 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
Installation de fenêtres
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
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 ce guide d'installation.
Configurer l'agent Bindplane pour ingérer Syslog et l'envoyer à Google SecOps
Accédez au fichier de configuration :
- Recherchez le fichier
config.yaml. En règle générale, il se trouve 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,viou le Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yamlcomme suit :receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/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 ingestion_labels: log_type: SYSLOG namespace: symantec_dlp raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labelsRemplacez 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.jsonen indiquant le chemin d'accès 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.
Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante :
sudo systemctl restart bindplane-agentPour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante :
net stop BindPlaneAgent && net start BindPlaneAgent
Configurer Symantec DLP
- Connectez-vous à la console d'administration Symantec Server.
- Sélectionnez Gérer > Règles > Règles de réponse.
- Sélectionnez Configurer une règle de réponse, puis saisissez un nom pour la règle.
Spécifiez les informations suivantes :
- Actions : sélectionnez Enregistrer dans un serveur Syslog.
- Hôte : saisissez l'adresse IP
Bindplane. - Port : saisissez le numéro de port
Bindplane. Message : saisissez le message suivant :
|symcdlpsys|APPLICATION_NAME|$APPLICATION_NAME$|APPLICATION_USER|$APPLICATION_USER$|ATTACHMENT_FILENAME|$ATTACHMENT_FILENAME$|BLOCKED|$BLOCKED$|DATAOWNER_NAME|$DATAOWNER_NAME$|DATAOWNER_EMAIL|$DATAOWNER_EMAIL$|DESTINATION_IP|$DESTINATION_IP$|ENDPOINT_DEVICE_ID|$ENDPOINT_DEVICE_ID$|ENDPOINT_LOCATION|$ENDPOINT_LOCATION$|ENDPOINT_MACHINE|$ENDPOINT_MACHINE$|ENDPOINT_USERNAME|$ENDPOINT_USERNAME$|PATH|$PATH$|FILE_NAME|$FILE_NAME$|PARENT_PATH|$PARENT_PATH$|INCIDENT_ID|$INCIDENT_ID$|INCIDENT_SNAPSHOT|$INCIDENT_SNAPSHOT$|MACHINE_IP|$MACHINE_IP$|MATCH_COUNT|$MATCH_COUNT$|OCCURRED_ON|$OCCURRED_ON$|POLICY|$POLICY$|RULES|$RULES$|PROTOCOL|$PROTOCOL$|QUARANTINE_PARENT_PATH|$QUARANTINE_PARENT_PATH$|RECIPIENTS|$RECIPIENTS$|REPORTED_ON|$REPORTED_ON$|SCAN|$SCAN$|SENDER|$SENDER$|MONITOR_NAME|$MONITOR_NAME$|SEVERITY|$SEVERITY$|STATUS|$STATUS$|SUBJECT|$SUBJECT$|TARGET|$TARGET$|URL|$URL$|USER_JUSTIFICATION|$USER_JUSTIFICATION$|Débogage : sélectionnez Niveau 4.
Cliquez sur Appliquer.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
| agir | security_result.action | Si act est défini sur Passed, définissez-le sur ALLOW. Si act est défini sur Modified, définissez-le sur ALLOW_WITH_MODIFICATION. Si act est défini sur Blocked, définissez-le sur BLOCK. Sinon, définissez-la sur UNKNOWN_ACTION. |
| application_name | target.application | Mappé directement. |
| asset_ip | principal.ip, principal.asset.ip | Mappé directement. |
| asset_name | principal.hostname, principal.asset.hostname | Mappé directement. |
| attachment_name | security_result.about.file.full_path | Mappé directement. |
| bloqué | security_result.action_details | Mappé directement. |
| calling_station_id | principal.mac, principal.asset.mac | Si calling_station_id est une adresse MAC, mappez-la directement après avoir remplacé - par : et l'avoir convertie en minuscules. |
| called_station_id | target.mac, target.asset.mac | Si called_station_id est une adresse MAC, extrais la partie de l'adresse MAC avant : et mappe-la directement après avoir remplacé - par : et l'avoir convertie en minuscules. |
| category1 | security_result.detection_fields | Créez un libellé avec la clé category1 et la valeur de category1. |
| category2 | security_result.detection_fields | Créez un libellé avec la clé category2 et la valeur de category2. |
| category3 | security_result.detection_fields | Créez un libellé avec la clé category3 et la valeur de category3. |
| client_friendly_name | target.user.userid | Mappé directement. |
| dataowner_mail | principal.user.email_addresses | Mappée directement s'il s'agit d'une adresse e-mail valide. |
| description | metadata.description | Mappé directement. |
| dest_location | target.location.country_or_region | Directement mappé si la valeur n'est pas RED. |
| deviceId | target.asset_id | Mappé en tant que ID:%{deviceId}. |
| device_version | metadata.product_version | Mappé directement. |
| dhost | network.http.referral_url | Mappé directement. |
| dlp_type | security_result.detection_fields | Créez un libellé avec la clé dlp_type et la valeur de dlp_type. |
| DLP_EP_Incident_ID | security_result.threat_id, security_result.detection_fields | Mappé directement sur threat_id. Créez également un libellé avec la clé Incident ID et la valeur DLP_EP_Incident_ID. |
| domaine | principal.administrative_domain | Mappé directement. |
| dst | target.ip, target.asset.ip | Mappée directement s'il s'agit d'une adresse IP valide. |
| endpoint_machine | target.ip, target.asset.ip | Mappée directement s'il s'agit d'une adresse IP valide. |
| endpoint_user_department | target.user.department | Mappé directement. |
| endpoint_user_email | target.user.email_addresses | Mappé directement. |
| endpoint_user_manager | target.user.managers | Créez un objet de gestionnaire avec user_display_name à partir de endpoint_user_manager. |
| endpoint_user_name | target.user.user_display_name | Mappé directement. |
| endpoint_user_title | target.user.title | Mappé directement. |
| event_description | metadata.description | Mappé directement. |
| event_id | metadata.product_log_id | Mappé directement. |
| event_source | target.application | Mappé directement. |
| event_timestamp | metadata.event_timestamp | Mappé directement. |
| file_name | security_result.about.file.full_path | Mappé directement. |
| filename | target.file.full_path, src.file.full_path | Mappé directement sur target.file.full_path. Si has_principal est défini sur "true", mappez également sur src.file.full_path et définissez event_type sur FILE_COPY. |
| hôte | src.hostname, principal.hostname, principal.asset.hostname | Si cef_data contient CEF, mappez-le aux trois champs. Sinon, mappez sur principal.hostname et principal.asset.hostname. |
| incident_id | security_result.threat_id, security_result.detection_fields | Mappé directement sur threat_id. Créez également un libellé avec la clé Incident ID et la valeur incident_id. |
| emplacement | principal.resource.attribute.labels | Créez un libellé avec la clé Location et la valeur de location. |
| match_count | security_result.detection_fields | Créez un libellé avec la clé Match Count et la valeur de match_count. |
| monitor_name | additional.fields | Créez un libellé avec la clé Monitor Name et la valeur de monitor_name. |
| nas_id | target.hostname, target.asset.hostname | Mappé directement. |
| occurred_on | principal.labels, additional.fields | Créez un libellé avec la clé Occurred On et la valeur de occurred_on pour principal.labels et additional.fields. |
| policy_name | sec_result.detection_fields | Créez un libellé avec la clé policy_name et la valeur de policy_name. |
| policy_rule | security_result.rule_name | Mappé directement. |
| policy_severity | security_result.severity | Mappé sur severity après conversion en majuscules. Si policy_severity est INFO, mappez-le en tant que INFORMATIONAL. Si policy_severity ne correspond pas à HIGH, MEDIUM, LOW ou INFORMATIONAL, définissez severity sur UNKNOWN_SEVERITY. |
| policy_violated | security_result.summary | Mappé directement. |
| Protocole | network.application_protocol, target.application, sec_result.description | Si Protocol n'est pas FTP ou Endpoint, mappez-le sur network.application_protocol après l'avoir analysé à l'aide du fichier parse_app_protocol.include. Si Protocol est FTP, mappez-le sur target.application. Si Protocol est défini sur Endpoint, définissez sec_result.description sur Protocol=%{Protocol}. |
| destinataire | target.user.email_addresses, about.user.email_addresses | Pour chaque adresse e-mail dans recipient, mappez-la à target.user.email_addresses et about.user.email_addresses. |
| destinataires | network.http.referral_url, target.resource.attribute.labels | Mappé directement sur network.http.referral_url. Créez également un libellé avec la clé recipients et la valeur recipients. |
| reported_on | additional.fields | Créez un libellé avec la clé Reported On et la valeur de reported_on. |
| règles | security_result.detection_fields | Créez un libellé avec la clé Rules et la valeur de rules. |
| sender | network.email.from, target.resource.attribute.labels | Si sender est une adresse e-mail valide, mappez-la sur network.email.from. Créez également un libellé avec la clé sender et la valeur sender. |
| serveur | target.application | Mappé directement. |
| Gravité | security_result.severity | Consultez policy_severity pour connaître la logique de mappage. |
| src | principal.ip, principal.asset.ip | Mappée directement s'il s'agit d'une adresse IP valide. |
| état | principal.labels, additional.fields | Créez un libellé avec la clé Status et la valeur de status pour principal.labels et additional.fields. |
| subject | target.resource.attribute.labels, network.email.subject | Créez un libellé avec la clé subject et la valeur de subject. Mappez également subject sur network.email.subject. |
| target_type | target.resource.attribute.labels | Créez un libellé avec la clé Target Type et la valeur de target_type. |
| timestamp | metadata.event_timestamp | Mappé directement après l'analyse à l'aide du filtre date. |
| url | target.url | Mappé directement. |
| utilisateur | target.user.userid | Mappé directement. |
| user_id | principal.user.userid | Mappé directement. |
| nom d'utilisateur | principal.user.userid | Mappé directement. |
| N/A | metadata.product_name | Variable définie sur SYMANTEC_DLP. |
| N/A | metadata.vendor_name | Variable définie sur SYMANTEC. |
| N/A | metadata.event_type | Si event_type n'est pas vide, mappez-le directement. Sinon, si host n'est pas vide et que has_principal est défini sur "true", définissez la valeur sur SCAN_NETWORK. Sinon, définissez-la sur GENERIC_EVENT. |
| N/A | metadata.product_event_type | Si policy_violated contient -NM- ou si data contient DLP NM, définissez la valeur sur Network Monitor. Si policy_violated contient -EP- ou si data contient DLP EP, définissez la valeur sur Endpoint. |
| N/A | metadata.log_type | Variable définie sur SYMANTEC_DLP. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.