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
,vi
ou le Bloc-notes).
- Recherchez le fichier
Modifiez le fichier
config.yaml
comme 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_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
en 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-agent
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
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.