Collecter les journaux FireEye NX
Ce document explique comment ingérer des journaux Trellix Network Security (anciennement FireEye NX) dans Google Security Operations à l'aide de Bindplane.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Un hôte Windows 2016 ou version ultérieure, ou Linux avec
systemd - Si vous exécutez l'application 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 privilégié à la console de gestion Trellix Network Security (NX)
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à SIEM Settings > Collection Agents (Paramètres 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 où Bindplane sera installé.
Obtenir l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM > Profil.
- Copiez l'ID client de la section Organization Details (Informations sur l'organisation) et enregistrez-le.
Installer l'agent Bindplane
Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.
Installation sous Windows
- 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 sous Linux
- Ouvrez un terminal avec des 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 obtenir d'autres options d'installation, consultez le 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. Il se trouve généralement dans le/etc/bindplane-agent/répertoire 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: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/fireeye_nx: 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> # Replace with your regional endpoint endpoint: <ENDPOINT> log_type: 'FIREEYE_NX' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/fireeye_nx- Remplacez le port et l'adresse IP selon les besoins de votre infrastructure.
- Remplacez
<CUSTOMER_ID>par l'ID client réel. - Remplacez la valeur
<ENDPOINT>par votre point de terminaison régional :- États-Unis :
malachiteingestion-pa.googleapis.com - Europe (Francfort):
europe-west3-malachiteingestion-pa.googleapis.com - Europe (Londres):
europe-west2-malachiteingestion-pa.googleapis.com - Europe (Zurich):
europe-west6-malachiteingestion-pa.googleapis.com - Europe (Turin):
europe-west12-malachiteingestion-pa.googleapis.com - Asie (Tokyo):
asia-northeast1-malachiteingestion-pa.googleapis.com - Moyen-Orient (Tel Aviv) :
me-west1-malachiteingestion-pa.googleapis.com - Australie (Sydney):
australia-southeast1-malachiteingestion-pa.googleapis.com
- États-Unis :
- Remplacez
/path/to/ingestion-authentication-file.jsonpar le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification d'ingestion Google SecOps.
Redémarrer 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 le transfert Syslog sur Trellix Network Security
- Connectez-vous à la console Trellix Network Security avec un compte administrateur.
- Accédez à Settings > Notifications (Paramètres > Notifications).
- Cliquez sur l'onglet rsyslog.
- Cochez la case Event type (Type d'événement) pour activer les notifications rsyslog.
- Dans le panneau Settings (Paramètres), fournissez les informations de configuration suivantes :
- Default format (Format par défaut) : sélectionnez CEF.
- Dans la section Rsyslog Server Listing (Liste des serveurs Rsyslog) :
- Saisissez un nom descriptif pour la nouvelle entrée (par exemple,
Google SecOps BindPlane). - Cliquez sur le bouton Add Rsyslog Server (Ajouter un serveur Rsyslog).
- Saisissez un nom descriptif pour la nouvelle entrée (par exemple,
- Pour le serveur que vous venez d'ajouter, fournissez les informations de configuration suivantes :
- Enabled (Activé) : cochez la case pour activer le serveur.
- IP Address (Adresse IP) : saisissez l'adresse IP de l'agent Bindplane.
- Port : saisissez le numéro de port de l'agent Bindplane (par exemple,
514). - Protocol (Protocole) : sélectionnez UDP ou TCP, selon la configuration de votre agent Bindplane.
- Event Types (Types d'événements) : sélectionnez les types d'événements à transférer (ou sélectionnez all (tout) pour une journalisation complète).
- Cliquez sur le bouton Update (Mettre à jour) pour enregistrer la configuration.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
| alert.dst.ip | target.ip, target.asset.ip | Mappage direct à partir du champ alert.dst.ip |
| alert.dst.mac | target.mac, target.asset.mac | Mappage direct à partir du champ alert.dst.mac |
| alert.dst.port | target.port | Mappage direct à partir du champ alert.dst.port |
| alert.explanation.cnc-services.cnc-service.address | target.ip, target.asset.ip | Mappage direct à partir du champ alert.explanation.cnc-services.cnc-service.address |
| alert.explanation.cnc-services.cnc-service.port | target.port | Mappage direct à partir du champ alert.explanation.cnc-services.cnc-service.port |
| alert.explanation.cnc-services.cnc-service.url | target.url | Mappage direct à partir du champ alert.explanation.cnc-services.cnc-service.url |
| alert.explanation.malware-detected.malware.0.name | security_result.threat_name | Mappage direct à partir du champ alert.explanation.malware-detected.malware.0.name en cas de détection de plusieurs logiciels malveillants dans un tableau |
| alert.explanation.malware-detected.malware.md5sum | target.file.md5 | Mappage direct à partir du champ alert.explanation.malware-detected.malware.md5sum |
| alert.explanation.malware-detected.malware.name | security_result.threat_name | Mappage direct à partir du champ alert.explanation.malware-detected.malware.name |
| alert.explanation.malware-detected.malware.sha1 | target.file.sha1 | Mappage direct à partir du champ alert.explanation.malware-detected.malware.sha1 |
| alert.explanation.malware-detected.malware.sha256 | target.file.sha256 | Mappage direct à partir du champ alert.explanation.malware-detected.malware.sha256 |
| alert.explanation.malware-detected.malware.url | target.url | Mappage direct à partir du champ alert.explanation.malware-detected.malware.url |
| alert.name | read_only_udm.metadata.product_event_type | Mappage direct à partir du champ alert.name |
| alert.occurred | read_only_udm.metadata.event_timestamp | Mappage direct à partir du champ alert.occurred |
| alert.src.domain | principal.hostname | Mappage direct à partir du champ alert.src.domain |
| alert.src.host | principal.hostname | Mappage direct à partir du champ alert.src.host |
| alert.src.ip | principal.ip, principal.asset.ip | Mappage direct à partir du champ alert.src.ip |
| alert.src.mac | principal.mac, principal.asset.mac | Mappage direct à partir du champ alert.src.mac |
| alert.src.port | principal.port | Mappage direct à partir du champ alert.src.port |
| alert.src.smtp-mail-from | network.email.from | Mappage direct à partir du champ alert.src.smtp-mail-from |
| alert.smtp-message.id | network.email.mail_id | Mappage direct à partir du champ alert.smtp-message.id |
| alert.smtp-message.subject | network.email.subject | Mappage direct à partir du champ alert.smtp-message.subject |
| client_ip | principal.ip | Mappage direct à partir du champ client_ip |
| client_src_port | principal.port | Mappage direct à partir du champ client_src_port |
| compression | additional.fields.value.string_value | Mappage direct à partir du champ compression |
| etag | additional.fields.value.string_value | Mappage direct à partir du champ etag |
| host | principal.hostname | Mappage direct à partir du champ host |
| log_id | read_only_udm.metadata.product_log_id | Mappage direct à partir du champ log_id |
| method | network.http.method | Mappage direct à partir du champ method |
| persistent_session_id | network.session_id | Mappage direct à partir du champ persistent_session_id |
| pool | additional.fields.value.string_value | Mappage direct à partir du champ pool |
| pool_name | additional.fields.value.string_value | Mappage direct à partir du champ pool_name |
| request_id | additional.fields.value.string_value | Mappage direct à partir du champ request_id |
| request_state | additional.fields.value.string_value | Mappage direct à partir du champ request_state |
| response_code | network.http.response_code | Mappage direct à partir du champ response_code |
| rewritten_uri_query | additional.fields.value.string_value | Mappage direct à partir du champ rewritten_uri_query |
| server_ip | target.ip | Mappage direct à partir du champ server_ip |
| server_name | target.hostname | Mappage direct à partir du champ server_name |
| server_src_port | target.port | Mappage direct à partir du champ server_src_port |
| service_engine | additional.fields.value.string_value | Mappage direct à partir du champ service_engine |
| ssl_cipher | network.tls.cipher | Mappage direct à partir du champ ssl_cipher |
| ssl_version | network.tls.version_protocol | Mappage direct à partir du champ ssl_version |
| uri_path | network.http.referral_url | Mappage direct à partir du champ uri_path |
| uri_query | additional.fields.value.string_value | Mappage direct à partir du champ uri_query |
| user_id | principal.user.userid | Mappage direct à partir du champ user_id |
| virtualservice | additional.fields.value.string_value | Mappage direct à partir du champ virtualservice |
| vs_name | additional.fields.value.string_value | Mappage direct à partir du champ vs_name |
| read_only_udm.metadata.event_type | Défini sur SCAN_UNCATEGORIZED si les adresses IP principale et cible sont présentes, STATUS_UPDATE si l'adresse IP ou le nom d'hôte principal est présent, USER_UNCATEGORIZED si l'ID utilisateur principal est présent, EMAIL_TRANSACTION si alert.src.smtp-mail-from et alert.dst.smtp-to sont tous deux présents, et GENERIC_EVENT dans les autres cas. |
|
| read_only_udm.metadata.ingested_timestamp | Défini sur l'horodatage actuel si alert.attack-time n'est pas présent. |
|
| read_only_udm.metadata.log_type | Défini sur FIREEYE_NX. |
|
| read_only_udm.metadata.vendor_name | Défini sur FireEye. |
|
| read_only_udm.network.application_protocol | Défini sur HTTP si le message contient "http" (sans tenir compte de la casse). |
|
| read_only_udm.security_result.action | Défini sur ALLOW si _source.action est "notified" (sans tenir compte de la casse), BLOCK si _source.action est "blocked" (sans tenir compte de la casse) et UNKNOWN_ACTION dans les autres cas. |
|
| read_only_udm.security_result.category | Défini sur NETWORK_SUSPICIOUS si sec_category contient "DOMAIN.MATCH" (sans tenir compte de la casse), NETWORK_MALICIOUS si sec_category contient "INFECTION.MATCH" ou "WEB.INFECTION" (sans tenir compte de la casse), SOFTWARE_MALICIOUS si sec_category contient "MALWARE.OBJECT" (sans tenir compte de la casse), NETWORK_COMMAND_AND_CONTROL si sec_category contient "MALWARE.CALLBACK" (sans tenir compte de la casse) et UNKNOWN_CATEGORY dans les autres cas. |
|
| read_only_udm.security_result.severity | Défini sur MEDIUM si _source.severity ou temp_severity est "majr" (sans tenir compte de la casse), LOW si _source.severity ou temp_severity est "minr" (sans tenir compte de la casse) et non défini dans les autres cas. |
|
| read_only_udm.security_result.summary | Défini sur la valeur de security_result.threat_name. |
|
| is_alert | Défini sur true. |
|
| is_significant | Défini sur true. |
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.