Collecter les journaux Proofpoint Threat Response (TRAP)

Compatible avec :

Ce document explique comment ingérer les journaux Proofpoint Threat Response (TRAP) dans Google Security Operations à l'aide de l'agent Bindplane.

Proofpoint Threat Response Auto-Pull (TRAP) est une plate-forme d'orchestration de la sécurité pour la réponse et la résolution automatisées des menaces. Elle s'intègre aux outils de sécurité des e-mails, des points de terminaison et du réseau pour accélérer l'investigation et la confinement des incidents.

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 Proofpoint TRAP
  • 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 Proofpoint TRAP avec des autorisations d'administrateur

Obtenir le fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.
  4. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.

Obtenir l'ID client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Profil.
  3. Copiez et enregistrez le numéro client dans 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 Windows

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

    Le service doit être indiqué comme RUNNING (EN COURS D'EXÉCUTION).

Installation de Linux

  1. Ouvrez un terminal avec des privilèges root ou sudo.
  2. 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
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    Le service doit être indiqué comme actif (en cours d'exécution).

Autres ressources d'installation

Pour obtenir d'autres options d'installation et 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.yaml
    
  • Windows :

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifiez le fichier de configuration

  • Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
        tcplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/proofpoint_trap:
            compression: gzip
            creds_file_path: '<CREDS_FILE_PATH>'
            customer_id: '<CUSTOMER_ID>'
            endpoint: <REGION_ENDPOINT>
            log_type: PROOFPOINT_TRAP
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/trap_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/proofpoint_trap
    

Paramètres de configuration

Remplacez les espaces réservés suivants :

  • Configuration du récepteur :

    • tcplog : reçoit syslog via TCP. Utilisez udplog si vous configurez le transport UDP dans TRAP.
    • 0.0.0.0:514 : écoute sur toutes les interfaces sur le port 514. Modifiez le port si nécessaire (par exemple, 1514 pour Linux 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
    • <CUSTOMER_ID> : ID client de l'étape Obtenir l'ID client Google SecOps.
    • <REGION_ENDPOINT> : 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.

Enregistrez le fichier de configuration.

  • Après avoir modifié le fichier, enregistrez-le :
    • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.
    • Windows : cliquez sur Fichier > Enregistrer.

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-collector
    
    1. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    2. Recherchez 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-collector
      
    • Console Services :

      1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
      2. Localisez observIQ OpenTelemetry Collector.
      3. Effectuez un clic droit, puis sélectionnez Redémarrer.
      4. Vérifiez que le service est en cours d'exécution :

        sc query observiq-otel-collector
        
      5. Recherchez les erreurs dans les journaux :

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurer le transfert syslog Proofpoint TRAP

  1. Connectez-vous à la console de gestion Proofpoint TRAP (généralement à l'adresse https://trap-server:8080).
  2. Accédez à Monitoring > Journalisation.
  3. Configurez la destination syslog :
    • Hôte : saisissez l'adresse IP de l'hôte de l'agent Bindplane (par exemple, 192.168.1.100).
    • Port : saisissez 514 (doit correspondre au port du récepteur de l'agent Bindplane).
    • Gravité : sélectionnez le niveau de gravité minimal pour le transfert des journaux.
  4. Cliquez sur Enregistrer.
  5. Vérifiez que les journaux sont envoyés en consultant les journaux de l'agent Bindplane.

Table de mappage UDM

Champ de journal Mappage UDM Logique
_field additional.fields Fusionné
additional_modulesRun additional.fields Fusionné
alternateGraphApiEndpoint_additional additional.fields Fusionné
azureAdAuthEndpoint_additional additional.fields Fusionné
clientId_additional additional.fields Fusionné
clientSecret_additional additional.fields Fusionné
disposition_additional_data additional.fields Fusionné
disposition_data_available additional.fields Mappé : true → disposition_additional_data
exchangeAPI_additional additional.fields Fusionné
exchangeAuthType_additional additional.fields Fusionné
graphApiEndpoint_additional additional.fields Fusionné
headers_X-Forefront-Antispam-Report additional.fields Fusionné
headers_accept_lang_label additional.fields Fusionné
headers_authentication_results_label additional.fields Fusionné
headers_content_language_label additional.fields Fusionné
headers_content_transfer_encoding_label additional.fields Fusionné
headers_content_type_label additional.fields Fusionné
headers_date_label additional.fields Fusionné
headers_message_id_label additional.fields Fusionné
headers_mime_version_label additional.fields Fusionné
headers_received_label additional.fields Fusionné
headers_return_path_label additional.fields Fusionné
headers_thread_index_label additional.fields Fusionné
headers_thread_topic_label additional.fields Fusionné
headers_x_ms_exchange_antispam_feedbackprocessing_scenario_label additional.fields Fusionné
headers_x_ms_exchange_antispam_feedcategory_label additional.fields Fusionné
headers_x_ms_exchange_antispam_feedtype_label additional.fields Fusionné
headers_x_ms_exchange_organization_antispam_feedcategory_label additional.fields Fusionné
incident_display_id_label additional.fields Fusionné
incident_id_label additional.fields Fusionné
incident_link_attribute_label additional.fields Fusionné
incident_title_label additional.fields Fusionné
privateKey_additional additional.fields Fusionné
source_type_additional_data additional.fields Fusionné
source_type_data_available additional.fields Mappé : true → source_type_additional_data
sourcesData_name_label additional.fields Fusionné
sourcesData_type_label additional.fields Fusionné
sources_id_label additional.fields Fusionné
sources_type_label additional.fields Fusionné
tap_threat_additional_data additional.fields Fusionné
tap_threat_data_available additional.fields Mappé : true → tap_threat_additional_data
tenantId_additional additional.fields Fusionné
url_list additional.fields Fusionné
auth_details extensions.auth.auth_details Mappé directement
proofpoint_trap_host intermediary.hostname Mappé directement
proofpoint_trap_host intermediary.ip Fusionné
url_label intermediary.labels Fusionné
desc metadata.description Mappé directement
createdAt metadata.event_timestamp Analysé en tant que ISO8601
created_at metadata.event_timestamp Analysé en tant que ISO8601
data.received metadata.event_timestamp Analysé en tant que ISO8601
event1.description.created_at metadata.event_timestamp Analysé en tant que ISO8601
event1.description.updated_at metadata.event_timestamp Analysé en tant que ISO8601
eventTime metadata.event_timestamp Analysé en tant que ISO8601
received metadata.event_timestamp Analysé en tant que ISO8601
ts metadata.event_timestamp Analysé en tant que MMM d HH:mm:ss
updatedAt metadata.event_timestamp Analysé en tant que ISO8601
application metadata.event_type Mappé : CROND → PROCESS_UNCATEGORIZED, system-modules.authlookup → USER_LOGIN
has_network_email metadata.event_type Mappé : true → EMAIL_TRANSACTION
has_principal metadata.event_type Mappé : true → EMAIL_TRANSACTION
event1.description.id metadata.product_log_id Mappé directement
event_id metadata.product_log_id Mappé directement
id metadata.product_log_id Mappé directement
has_principal metadata.product_name Mappé : true → PROOFPOINT_TRAP
source metadata.product_name Mappé directement
has_principal metadata.vendor_name Mappé : true → PROOFPOINT
attackDirection network.direction Mappé : inbound → INBOUND, outbound → OUTBOUND
cc network.email.cc Mappé : ^.+@.+$ → cc
emaildata.sender.email network.email.from Mappé directement
event1.description.headers.From network.email.from Mappé directement
fromadd network.email.from Mappé directement
principal_user2 network.email.from Mappé directement
send_email network.email.from Mappé directement
sender_address network.email.from Mappé directement
email_id network.email.mail_id Mappé directement
event1.description.messageid network.email.mail_id Mappé directement
messageID network.email.mail_id Mappé directement
event1.description.headers.Reply-To network.email.reply_to Mappé directement
reply network.email.reply_to Mappé directement
email_subject network.email.subject Fusionné
emaildata.subject network.email.subject Fusionné
event1.description.subject network.email.subject Fusionné
index network.email.subject Mappé : 0 → emaildata.subject
subject network.email.subject Fusionné
emaildata.recipient.email network.email.to Fusionné
event1.description.headers.To network.email.to Fusionné
index network.email.to Mappé : 0 → emaildata.recipient.email, 0 → to_email
principal_user1 network.email.to Fusionné
recipient_address network.email.to Mappé : ^.+@.+$ → recipient_address
to network.email.to Mappé : ^.+@.+$ → to
to_email network.email.to Fusionné
http_method network.http.method Mappé directement
http_url network.http.referral_url Mappé directement
ses_id network.session_id Mappé directement
application principal.application Mappé directement
senderIP principal.asset.ip Fusionné
sender_IP principal.asset.ip Fusionné
msgparts.md5 principal.file.md5 Mappé directement
msgparts.filename principal.file.names Fusionné
msgparts.sha256 principal.file.sha1 Mappé directement
hostname principal.hostname Mappé directement
senderIP principal.ip Fusionné
sender_IP principal.ip Fusionné
src_ip principal.ip Fusionné
file_name principal.process.file.full_path Mappé directement
pid principal.process.pid Mappé directement
attachment_label principal.resource.attribute.labels Fusionné
title_label principal.resource.attribute.labels Fusionné
ewsUrl principal.url Mappé directement
principal_link principal.url Mappé directement
sender_vap_label principal.user.attribute.labels Fusionné
emaildata.sender.email principal.user.email_addresses Fusionné
index principal.user.email_addresses Mappé : 0 → emaildata.sender.email
principal_user1 principal.user.email_addresses Fusionné
principal_user2 principal.user.email_addresses Fusionné
sender principal.user.email_addresses Fusionné
assignedUserName principal.user.user_display_name Mappé directement
username principal.user.user_display_name Mappé directement
assignedUserId principal.user.userid Mappé directement
principal_user1 principal.user.userid Mappé directement
principal_user2 principal.user.userid Mappé directement
sender_email principal.user.userid Mappé directement
src_user principal.user.userid Mappé directement
user principal.user.userid Mappé directement
index security_result Mappé : 0 → sec_res2
sec_res security_result Fusionné
sec_res2 security_result Fusionné
sec_result security_result Fusionné
state security_result.alert_state Mappé : "OPEN", "IN_PROGRESS" → ALERTING, CLOSED → NOT_ALERTING
QID_field security_result.detection_fields Fusionné
alert_type_label security_result.detection_fields Fusionné
body_label security_result.detection_fields Fusionné
body_type_label security_result.detection_fields Fusionné
cluster_label security_result.detection_fields Fusionné
completelyRewritten_field security_result.detection_fields Fusionné
disposition_label security_result.detection_fields Fusionné
dkim1_label security_result.detection_fields Fusionné
dkim2_label security_result.detection_fields Fusionné
dkim3_label security_result.detection_fields Fusionné
dmarc_label security_result.detection_fields Fusionné
event_id_label security_result.detection_fields Fusionné
header_d1_label security_result.detection_fields Fusionné
header_d2_label security_result.detection_fields Fusionné
header_d3_label security_result.detection_fields Fusionné
header_from_label security_result.detection_fields Fusionné
header_s1_label security_result.detection_fields Fusionné
header_s2_label security_result.detection_fields Fusionné
header_s3_label security_result.detection_fields Fusionné
impostorScore_field security_result.detection_fields Fusionné
index security_result.detection_fields Mappé : 0 → messageId_label
key_data security_result.detection_fields Fusionné
mailfrom_label security_result.detection_fields Fusionné
malwareScore_field security_result.detection_fields Fusionné
messageId_label security_result.detection_fields Fusionné
messageSize_field security_result.detection_fields Fusionné
phishScore_field security_result.detection_fields Fusionné
quarantineFolder_label security_result.detection_fields Fusionné
quarantineRule_label security_result.detection_fields Fusionné
spamScore_field security_result.detection_fields Fusionné
spf_label security_result.detection_fields Fusionné
state_label security_result.detection_fields Fusionné
severity security_result.severity Mappé : Info → INFORMATIONAL
severity security_result.severity_details Mappé directement
state security_result.summary Mappé directement
cmd target.process.command_line Mappé directement
pwd target.process.file.full_path Mappé directement
recipient_vap_label target.user.attribute.labels Fusionné
email target.user.email_addresses Fusionné
emaildata.abuseReporterAddress target.user.email_addresses Fusionné
index target.user.email_addresses Mappé : 0 → emaildata.abuseReporterAddress
recipient_email target.user.email_addresses Fusionné
dst_user target.user.userid Mappé directement
N/A metadata.event_type Constante : EMAIL_TRANSACTION
N/A metadata.product_name Constante : PROOFPOINT_TRAP
N/A metadata.vendor_name Constante : PROOFPOINT
N/A network.application_protocol Constante : HTTP
N/A network.direction Constante : INBOUND
N/A security_result.alert_state Constante : ALERTING
N/A security_result.severity Constante : INFORMATIONAL
received_at event.idm.read_only_udm.metadata.event_timestamp Mappé à partir du journal des modifications
sources.name event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
created_at event.idm.read_only_udm.metadata.event_timestamp Mappé à partir du journal des modifications
received_time event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
titlePII event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
pps_guid event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
email_recipient_id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
email_message_size event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
remediation_status event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
tap_false_positive event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
abuse_reporter_rank event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
quarantine_strategy event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
mime_content_expired event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
mime_content_present event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
click_block_exclusive event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
remediation_status_context event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
last_known_type event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
clear_confidence event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
message_status.is_read event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
message_status.permitted_clicks event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
message_status.message_delivered event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
sender_id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
tenant_id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
created_at event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
message_id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
updated_at event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
disposition event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
received_at event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
tap_cleared event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
body_expired event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
body_present event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
clear_verdict event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
tap_threat_types event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
source.id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
source.type event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
incident.id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
incident.title event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
incident.display_id event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
incident.link_attribute event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
sender_address event.idm.read_only_udm.network.email.from Mappé à partir du journal des modifications
email_id event.idm.read_only_udm.network.email.mail_id Mappé à partir du journal des modifications
email_subject event.idm.read_only_udm.network.email.subject Mappé à partir du journal des modifications
recipient_address event.idm.read_only_udm.network.email.to Mappé à partir du journal des modifications
assignedUserName event.idm.read_only_udm.principal.user.user_display_name Mappé à partir du journal des modifications
assignedUserId event.idm.read_only_udm.principal.user.userid Mappé à partir du journal des modifications
state event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
createdAt event.idm.read_only_udm.metadata.event_timestamp Mappé à partir du journal des modifications
updatedAt event.idm.read_only_udm.metadata.collected_timestamp Mappé à partir du journal des modifications
tenantId event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
closedAt event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
displayId event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
assignedTeamName event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
assignedTeamId event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
messageCount event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
vap event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
vip event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
commentCount event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
dispositions event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
sourceTypes event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
sourcesData event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
state event.idm.read_only_udm.security_result.alert_state Mappé à partir du journal des modifications
event1.description.messageid event.idm.read_only_udm.network.email.mail_id Mappé à partir du journal des modifications
event1.description.sender.email event.idm.read_only_udm.principal.user.userid Mappé à partir du journal des modifications
event1.description.recipient.email event.idm.read_only_udm.target.user.email_addresses Mappé à partir du journal des modifications
event1.description.subject event.idm.read_only_udm.network.email.subject Mappé à partir du journal des modifications
event1.description.created_at event.idm.read_only_udm.metadata.event_timestamp Mappé à partir du journal des modifications
event1.description.updated_at event.idm.read_only_udm.metadata.collected_timestamp Mappé à partir du journal des modifications
event1.description.id event.idm.read_only_udm.metadata.product_log_id Mappé à partir du journal des modifications
event1.description.headers.From event.idm.read_only_udm.sec_result.detection_fields Mappé à partir du journal des modifications
event1.description.headers.To event.idm.read_only_udm.network.email.to Mappé à partir du journal des modifications
event1.description.headers.Reply-To event.idm.read_only_udm.network.email.reply_to Mappé à partir du journal des modifications
event1.description.headers.Received-SPF event.idm.read_only_udm.sec_result.description Mappé à partir du journal des modifications
event1.description.headers.DKIM-Signature event.idm.read_only_udm.sec_result.detection_fields Mappé à partir du journal des modifications
event1.description.sender.vap event.idm.read_only_udm.principal.user.attribute.labels Mappé à partir du journal des modifications
event1.description.recipient.vap event.idm.read_only_udm.target.user.attribute.labels Mappé à partir du journal des modifications
event1.description.hosts.url event.idm.read_only_udm.intermediary.labels Mappé à partir du journal des modifications
event1.description.urls event.idm.read_only_udm.security_result.detection_fields Mappé à partir du journal des modifications
event1.description.severity event.idm.read_only_udm.sec_result.severity Mappé à partir du journal des modifications
event1.description.state event.idm.read_only_udm.sec_result.summary Mappé à partir du journal des modifications
mailfrom", "spf", "dkim1", "header_s1", "header_d1", "dkim2", "header_s2", "header_d2", and "dmarc security_result.detection_fields Mappé à partir du journal des modifications
users principal.user.userid 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.