Collecter les journaux Symantec DLP
Ce document explique comment ingérer les journaux Symantec DLP dans Google Security Operations à l'aide de l'agent Bindplane.
Symantec DLP (Protection contre la perte de données) est une solution de protection des données qui génère des messages syslog pour les cas de non-respect des règles, les incidents de découverte de données, les événements de surveillance des points de terminaison et les alertes de surveillance du réseau. L'analyseur extrait les champs des journaux syslog au format CEF et délimités par des barres verticales, et les mappe au modèle de données unifié (UDM).
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Windows Server 2016 ou version ultérieure, ou hôte Linux avec
systemd - Connectivité réseau entre l'agent Bindplane et le serveur Symantec DLP
- Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
- Un accès administrateur à la console d'administration Symantec Server
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
Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.
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" /quietAttendez la fin de l'installation.
Vérifiez l'installation en exécutant la commande suivante :
sc query observiq-otel-collectorLe service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).
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.shAttendez la fin de l'installation.
Vérifiez l'installation en exécutant la commande suivante :
sudo systemctl status observiq-otel-collectorLe service doit être indiqué comme actif (en cours d'exécution).
Ressources d'installation supplémentaires
Pour obtenir d'autres options d'installation et des conseils de dépannage, consultez le guide d'installation de l'agent Bindplane.
Configurer l'agent Bindplane pour ingérer les journaux syslog et les envoyer à Google SecOps
Localiser le fichier de configuration
Linux :
sudo nano /opt/observiq-otel-collector/config.yamlWindows :
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifiez le fichier de configuration
Remplacez l'intégralité du contenu de
config.yamlpar la configuration suivante :receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/symantec_dlp: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: SYMANTEC_DLP raw_log_field: body service: pipelines: logs/symantec_dlp_to_chronicle: receivers: - udplog exporters: - chronicle/symantec_dlp
Paramètres de configuration
Remplacez les espaces réservés suivants :
Configuration du récepteur :
listen_address: adresse IP et port à écouter :0.0.0.0pour écouter sur toutes les interfaces (recommandé)- Le port
514est le port syslog standard (nécessite la racine sous Linux ; utilisez1514pour les utilisateurs non root).
Configuration de l'exportateur :
creds_file_path: chemin d'accès complet au fichier d'authentification de l'ingestion :- Linux :
/etc/bindplane-agent/ingestion-auth.json - Windows :
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux :
customer_id: ID client copié depuis la console Google SecOpsendpoint: URL du point de terminaison régional :- États-Unis :
malachiteingestion-pa.googleapis.com - Europe :
europe-malachiteingestion-pa.googleapis.com - Asie :
asia-southeast1-malachiteingestion-pa.googleapis.com - Pour obtenir la liste complète, consultez Points de terminaison régionaux.
- États-Unis :
Enregistrez le fichier de configuration.
- Après avoir modifié le fichier, enregistrez-le :
- Linux : appuyez sur
Ctrl+O, puis surEnter, puis surCtrl+X. - Windows : cliquez sur Fichier > Enregistrer.
- Linux : appuyez sur
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 observiq-otel-collectorVérifiez que le service est en cours d'exécution :
sudo systemctl status observiq-otel-collectorRecherchez les erreurs dans les journaux :
sudo journalctl -u observiq-otel-collector -f
Pour redémarrer l'agent Bindplane dans Windows, choisissez l'une des options suivantes :
Invite de commande ou PowerShell en tant qu'administrateur :
net stop observiq-otel-collector && net start observiq-otel-collectorConsole Services :
- Appuyez sur
Win+R, saisissezservices.msc, puis appuyez sur Entrée. - Localisez le collecteur observIQ OpenTelemetry.
- Effectuez un clic droit, puis sélectionnez Redémarrer.
Vérifiez que le service est en cours d'exécution :
sc query observiq-otel-collectorRecherchez les erreurs dans les journaux :
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Appuyez sur
Configurer Symantec DLP
- Connectez-vous à la console d'administration de 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 Consigner sur un serveur Syslog.
- Hôte : saisissez l'adresse IP de Bindplane.
- Port : saisissez le numéro de port Bindplane.
- Message : saisissez le modèle de message Syslog suivant :
|symcdlpsys|APPLICATION_NAME|$APPLICATION_NAME$|APPLICATION_USER|$APPLICATION_USER$|ATTACHMENT_FILENAME|$ATTACHMENT_FILENAME$|BLOCKED|$BLOCKED$|DATAOWNER_NAME|$DATAOWNER_NAME$|DATAOWNER_EMAIL|$DATAOWNER_EMAIL$|...- 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, extrayez la partie de l'adresse MAC avant : et mappez-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 de 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 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 de 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 comme 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 de 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. |
| expéditeur | 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 de sender. |
| serveur | target.application | Mappé directement. |
| Gravité | security_result.severity | Pour connaître la logique de mappage, consultez policy_severity. |
| 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. |
subject |
event.idm.read_only_udm.network.email.subject |
Mappé à partir du journal des modifications |
end |
event.idm.read_only_udm.metadata.event_timestamp |
Mappé à partir du journal des modifications |
cnt |
event.idm.read_only_udm.network.session_duration.seconds |
Mappé à partir du journal des modifications |
resolution |
event.idm.read_only_udm.security_result.detection_fields |
Mappé à partir du journal des modifications |
dhost |
event.idm.read_only_udm.target.user.email_addresses |
Mappé à partir du journal des modifications |
ATTACHMENT_FILENAME |
principal.file.full_path |
Mappé à partir du journal des modifications |
DATAOWNER_NAME |
principal.user.userid |
Mappé à partir du journal des modifications |
ENDPOINT_USERNAME |
principal.user.userid |
Mappé à partir du journal des modifications |
reported_on" and "monitor_name |
additional.fields |
Mappé à partir du journal des modifications |
incident_id" and "DLP_EP_Incident_ID |
security_result.detection_fields |
Mappé à partir du journal des modifications |
application |
principal.application |
Mappé à partir du journal des modifications |
Occurred on |
principal.labels |
Mappé à partir du journal des modifications |
Journal des modifications
Afficher le journal des modifications pour ce parseur
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.