Collecter les journaux de gestion Imperva SecureSphere
Ce document explique comment ingérer les journaux de gestion Imperva SecureSphere dans Google Security Operations à l'aide de BindPlane. L'analyseur extrait les champs des journaux au format CEF ou JSON. Il utilise des modèles grok et l'analyse de paires clé/valeur pour mapper les champs de journaux bruts à l'UDM, en gérant à la fois les champs CEF standards et les structures JSON personnalisées, et en donnant la priorité aux données JSON si elles sont disponibles. Imperva SecureSphere offre des fonctionnalités complètes de pare-feu d'application Web, de sécurité des bases de données et de sécurité des fichiers pour les déploiements sur site et dans le cloud.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Windows 2016 ou version ultérieure, ou un hôte Linux avec
systemd
- 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.
- Accès privilégié à la console de gestion Imperva SecureSphere
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 :
- Trouvez 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).
- Trouvez le fichier
Modifiez le fichier
config.yaml
comme suit :receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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 log_type: 'IMPERVA_SECURESPHERE' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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
avec 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 le transfert Syslog sur Imperva SecureSphere Management
- Connectez-vous à la console de gestion Imperva SecureSphere.
- Accédez à Configuration > Ensembles d'actions.
- Cliquez sur Ajouter pour créer un ensemble d'actions.
- Fournissez les informations de configuration suivantes :
- Nom : saisissez un nom descriptif (par exemple,
Google SecOps Syslog
).
- Nom : saisissez un nom descriptif (par exemple,
Configurer une action d'événement de sécurité
- Cliquez sur Ajouter une action et configurez les éléments suivants :
- Type d'action : sélectionnez Syslog.
- Hôte : saisissez l'adresse IP de l'agent Bindplane.
- Port : saisissez le numéro de port de l'agent Bindplane (
514
par défaut). - Protocole : sélectionnez UDP ou TCP.
- Niveau de journalisation Syslog : sélectionnez DEBUG.
- Installation Syslog : sélectionnez LOCAL0.
- Format du message : sélectionnez Journal de la passerelle – Événement de sécurité – Journal système (syslog) utilisant la norme CEF.
Configurer l'action d'événement système
- Cliquez sur Ajouter une action et configurez les éléments suivants :
- Type d'action : sélectionnez Journal système.
- Hôte : saisissez l'adresse IP de l'agent BindPlane.
- Port : saisissez le numéro de port de l'agent BindPlane.
- Protocole : sélectionnez UDP ou TCP.
- Format du message : sélectionnez Enregistrer l'événement système dans le journal système (syslog) à l'aide de la norme CEF.
Appliquer des ensembles d'actions aux règles
- Accédez à Règles > Règles de sécurité.
- Pour chaque règle pertinente, configurez les actions suivies afin d'utiliser votre ensemble d'actions.
- Accédez à Règles > Règles relatives aux événements système.
- Configurez des règles d'événements système pour utiliser l'ensemble d'actions afin d'assurer une surveillance complète.
Table de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
action |
security_result.action_details |
La valeur du champ action est attribuée au champ security_result.action_details . |
application-name |
target.application |
La valeur du champ application-name est attribuée au champ target.application . |
cat |
security_result.category_details |
La valeur du champ cat est attribuée au champ security_result.category_details . |
class |
security_result.detection_fields.value |
La valeur du champ class est attribuée au champ value dans security_result.detection_fields . Le key correspondant est "class". |
collection_time.seconds |
metadata.event_timestamp.seconds |
La valeur de collection_time.seconds du journal brut est utilisée comme valeur en secondes pour metadata.event_timestamp . |
create-time |
metadata.event_timestamp.seconds |
La valeur de create-time est analysée et sa valeur en secondes est utilisée comme valeur en secondes pour metadata.event_timestamp . |
cs1 |
security_result.rule_name |
La valeur du champ cs1 est attribuée au champ security_result.rule_name . |
cs10 |
target.resource.attribute.labels.value |
La valeur du champ cs10 est attribuée au champ value dans target.resource.attribute.labels . |
cs10Label |
target.resource.attribute.labels.key |
La valeur du champ cs10Label est attribuée au champ key dans target.resource.attribute.labels . |
cs11 |
principal.application |
La valeur du champ cs11 est attribuée au champ principal.application . |
cs12 |
security_result.description |
La valeur du champ cs12 , après suppression des accolades et des signes dollar, est attribuée au champ security_result.description . |
cs14 |
target.resource.attribute.labels.value |
La valeur du champ cs14 est attribuée au champ value dans target.resource.attribute.labels . |
cs14Label |
target.resource.attribute.labels.key |
La valeur du champ cs14Label est attribuée au champ key dans target.resource.attribute.labels . |
cs15 |
security_result.summary |
La valeur du champ cs15 est attribuée au champ security_result.summary . |
cs16 |
principal.process.command_line |
La valeur du champ cs16 est attribuée au champ principal.process.command_line . |
cs17 |
target.resource.resource_subtype |
La valeur du champ cs17 est attribuée au champ target.resource.resource_subtype . |
cs2 |
principal.group.group_display_name |
La valeur du champ cs2 est attribuée au champ principal.group.group_display_name . |
cs3 |
principal.hostname , principal.asset.hostname |
La valeur du champ cs3 est attribuée aux champs principal.hostname et principal.asset.hostname . |
cs4 |
target.application |
La valeur du champ cs4 est attribuée au champ target.application , sauf si la valeur est "ProcessWitness". |
cs5 |
metadata.description |
La valeur du champ cs5 est attribuée au champ metadata.description . |
cs6 |
target.resource_ancestors.name |
La valeur du champ cs6 est attribuée au champ target.resource_ancestors.name . |
cs7 |
target.resource_ancestors.resource_subtype |
La valeur du champ cs7 est attribuée au champ target.resource_ancestors.resource_subtype . |
cs8 |
target.resource.name , target.resource.resource_type |
La valeur du champ cs8 est attribuée au champ target.resource.name , et target.resource.resource_type est défini sur "DATABASE". |
cs9 |
principal.user.userid |
La valeur du champ cs9 est attribuée au champ principal.user.userid . |
description |
security_result.description |
La valeur du champ description est attribuée au champ security_result.description . |
dest-ip |
target.ip , target.asset.ip |
L'adresse IP extraite du champ dest-ip est attribuée aux champs target.ip et target.asset.ip . |
dest-port |
target.port |
La valeur du champ dest-port , convertie en entier, est attribuée au champ target.port . |
deviceExternalId |
intermediary.hostname |
La valeur du champ deviceExternalId est attribuée au champ intermediary.hostname . |
dpt |
target.port |
La valeur du champ dpt , convertie en entier, est attribuée au champ target.port . |
dst |
target.ip , target.asset.ip |
La valeur du champ dst est attribuée aux champs target.ip et target.asset.ip . |
duser |
target.user.userid |
La valeur du champ duser est attribuée au champ target.user.userid . |
eventId |
metadata.product_log_id |
La valeur du champ eventId est attribuée au champ metadata.product_log_id . |
gateway-name |
security_result.detection_fields.value |
La valeur du champ gateway-name est attribuée au champ value dans security_result.detection_fields . Le key correspondant est "gateway-name". |
http.request.method |
network.http.method |
La valeur du champ http.request.method est attribuée au champ network.http.method . |
http.request.user-agent |
network.http.user_agent |
La valeur du champ http.request.user_agent est attribuée au champ network.http.user_agent . |
http.response.code |
network.http.response_code |
La valeur du champ http.response.code , convertie en entier, est attribuée au champ network.http.response_code . |
http.session-id |
network.session_id |
La valeur du champ http.session-id est attribuée au champ network.session_id . |
http.user-name |
principal.user.userid |
La valeur du champ http.user-name , sans les guillemets qui l'entourent, est attribuée au champ principal.user.userid . |
log_type |
metadata.log_type |
La valeur du champ log_type du journal brut est attribuée au champ metadata.log_type . |
mx-ip |
intermediary.ip |
La valeur du champ mx-ip est attribuée au champ intermediary.ip . |
MxIP |
intermediary.ip |
La valeur du champ MxIP est attribuée au champ intermediary.ip . |
OSUser |
principal.user.userid |
La valeur du champ OSUser est attribuée au champ principal.user.userid . |
policy-name |
security_result.detection_fields.value |
La valeur du champ policy-name est attribuée au champ value dans security_result.detection_fields . Le key correspondant est "policy-name". |
pquery |
target.resource.name , target.process.command_line |
Si pquery n'est pas vide et contient le mot "from", le nom de la table est extrait et attribué à target.resource.name , target.resource.resource_type est défini sur "TABLE" et la valeur pquery entière est attribuée à target.process.command_line . Sinon, la valeur pquery entière est attribuée à target.resource.name . |
pro |
security_result.description |
La valeur du champ pro est attribuée au champ security_result.description . |
product |
metadata.product_name |
La valeur du champ product est attribuée au champ metadata.product_name . |
product_type |
metadata.product_event_type |
La valeur du champ product_type est attribuée au champ metadata.product_event_type . |
protocol |
network.ip_protocol |
Si la valeur du champ protocol est "TCP" ou "UDP", elle est attribuée au champ network.ip_protocol . |
proto |
network.ip_protocol |
La valeur du champ proto est attribuée au champ network.ip_protocol . |
reason |
security_result.rule_name |
La valeur du champ reason est attribuée au champ security_result.rule_name . |
rt |
metadata.event_timestamp.seconds |
La valeur de rt est analysée et sa valeur en secondes est utilisée comme valeur en secondes pour metadata.event_timestamp . |
server-group-name |
target.resource.attribute.labels.value |
La valeur du champ server-group-name est attribuée au champ value dans target.resource.attribute.labels . Le key correspondant est "server-group-name". |
server-group-simulation-mode |
target.resource.attribute.labels.value |
La valeur du champ server-group-simulation-mode est attribuée au champ value dans target.resource.attribute.labels . Le key correspondant est "server-group-simulation-mode". |
service-name |
target.resource.attribute.labels.value |
La valeur du champ service-name est attribuée au champ value dans target.resource.attribute.labels . Le key correspondant est "service-name". |
ServiceName |
target.application |
Si ApplicationName n'est pas vide et que ServiceName l'est, la valeur de ApplicationName est attribuée à ServiceName . La valeur de ServiceName est ensuite attribuée à target.application . |
severity |
security_result.severity , security_result.severity_details |
La valeur du champ severity est convertie en majuscules. Si la valeur est "LOW", "MEDIUM", "HIGH" ou "CRITICAL", elle est attribuée à security_result.severity . Si la valeur est "INFORMATIVE" ou "INFO", security_result.severity est défini sur "INFORMATIONAL". La valeur d'origine est également attribuée à security_result.severity_details . |
severity_data |
security_result.severity |
La valeur du champ severity_data est convertie en majuscules. Si la valeur est "HIGH", "LOW", "MEDIUM", "CRITICAL", "ERROR" ou "INFORMATIONAL", elle est attribuée à security_result.severity . |
source-ip |
principal.ip , principal.asset.ip |
La valeur du champ source-ip est attribuée aux champs principal.ip et principal.asset.ip . |
source-port |
principal.port |
La valeur du champ source-port , convertie en entier, est attribuée au champ principal.port . |
spt |
principal.port |
La valeur du champ spt , convertie en entier, est attribuée au champ principal.port . |
src |
principal.ip , principal.asset.ip |
La valeur du champ src est attribuée aux champs principal.ip et principal.asset.ip . |
srcapp |
principal.application |
La valeur du champ srcapp est attribuée au champ principal.application . |
srchost |
principal.hostname , principal.asset.hostname |
La valeur du champ srchost est attribuée aux champs principal.hostname et principal.asset.hostname . |
vendor |
metadata.vendor_name |
La valeur du champ vendor est attribuée au champ metadata.vendor_name . |
version |
metadata.product_version |
La valeur du champ version est attribuée au champ metadata.product_version . |
violation-id |
security_result.detection_fields.value |
La valeur du champ violation-id est attribuée au champ value dans security_result.detection_fields . Le key correspondant est "violation-id". |
violation-type |
security_result.detection_fields.value |
La valeur du champ violation-type est attribuée au champ value dans security_result.detection_fields . Le key correspondant est "violation-type". |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.