Collect Palo Alto Prisma Access CASB logs
This document explains how you can ingest Palo Alto Prisma Access CASB logs to Google Security Operations using the Bindplane agent.
Palo Alto Networks SaaS Security (also known as Next-Generation CASB) is a cloud-delivered Cloud Access Security Broker integrated with Prisma Access. It provides visibility and control over sanctioned and unsanctioned SaaS applications, detects data policy violations, monitors user activity, and remediates risks across cloud services. Data Security, part of SaaS Security, generates logs for incidents, policy violations, remediation activities, activity monitoring, admin audit events, and behavior threats.
Before you begin
Make sure you have the following prerequisites:
- A Google SecOps instance
- Windows Server 2016 or later, or Linux host with
systemd - Network connectivity between the Bindplane agent and the Palo Alto Networks SaaS Security service
- If running behind a proxy, make sure firewall ports are open per the Bindplane agent requirements
- Palo Alto Networks SaaS Security (Data Security) license, CASB-X license, or CASB-PA license
- Administrative access to Strata Cloud Manager with permissions to configure SaaS Security settings
- A valid TLS certificate on the syslog server (Data Security requires TLS for syslog connections)
Get a Google SecOps ingestion authentication file
- Sign in to the Google SecOps console.
- Go to SIEM Settings > Collection Agents.
- Click Download to download the Ingestion Authentication File.
Save the file securely on the system where Bindplane agent will be installed.
Get a Google SecOps customer ID
- Sign in to the Google SecOps console.
- Go to SIEM Settings > Profile.
Copy and save the Customer ID from the Organization Details section.
Install the Bindplane agent
Install the Bindplane agent on your Windows or Linux operating system according to the following instructions.
Windows installation
- Open Command Prompt or PowerShell as an administrator.
Run the following command:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietWait for the installation to complete.
Verify the installation by running:
sc query observiq-otel-collectorThe service should show as RUNNING.
Linux installation
- Open a terminal with root or sudo privileges.
Run the following command:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shWait for the installation to complete.
Verify the installation by running:
sudo systemctl status observiq-otel-collectorThe service should show as active (running).
Additional installation resources
For additional installation options and troubleshooting, see the Bindplane agent installation guide.
Configure the Bindplane agent to ingest syslog and send to Google SecOps
Locate the configuration file
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edit the configuration file
Replace the entire contents of
config.yamlwith the following configuration:receivers: tcplog: listen_address: "0.0.0.0:6514" tls: cert_file: '/etc/bindplane-agent/server.crt' key_file: '/etc/bindplane-agent/server.key' exporters: chronicle/pan_casb: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: PAN_CASB raw_log_field: body ingestion_labels: vendor: palo_alto_networks product: saas_security_casb service: pipelines: logs/pan_casb_to_chronicle: receivers: - tcplog exporters: - chronicle/pan_casb
Configuration parameters
Replace the following placeholders:
Receiver configuration:
listen_address: Set to0.0.0.0:6514to listen on all interfaces on port 6514 (standard syslog-over-TLS port).cert_file: Path to the TLS certificate file for the Bindplane agent.key_file: Path to the TLS private key file for the Bindplane agent.
Exporter configuration:
creds_file_path: Full path to ingestion authentication file:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Your Google SecOps customer ID.endpoint: Regional endpoint URL:- US:
malachiteingestion-pa.googleapis.com - Europe:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - See Regional Endpoints for complete list
- US:
log_type: Must be exactlyPAN_CASBingestion_labels: Optional labels to categorize logs
Save the configuration file
After editing, save the file:
- Linux: Press
Ctrl+O, thenEnter, thenCtrl+X - Windows: Click File > Save
Restart the Bindplane agent to apply the changes
Linux
To restart the Bindplane agent in Linux, run the following command:
sudo systemctl restart observiq-otel-collectorVerify the service is running:
sudo systemctl status observiq-otel-collectorCheck logs for errors:
sudo journalctl -u observiq-otel-collector -f
Windows
To restart the Bindplane agent in Windows, choose one of the following options:
Command Prompt or PowerShell as administrator:
net stop observiq-otel-collector && net start observiq-otel-collectorServices console:
- Press
Win+R, typeservices.msc, and press Enter. - Locate observIQ OpenTelemetry Collector.
- Right-click and select Restart.
Verify the service is running:
sc query observiq-otel-collectorCheck logs for errors:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Press
Configure Palo Alto Networks SaaS Security syslog forwarding
To forward SaaS Security Data Security logs to the Bindplane agent, configure a syslog receiver in Strata Cloud Manager.
Prepare a TLS certificate on the Bindplane agent host
Data Security requires TLS-encrypted syslog connections. Before configuring the syslog receiver, prepare the TLS certificate on the Bindplane agent host:
- Self-sign or obtain a TLS certificate for the Bindplane agent host.
- Place the certificate and private key files on the Bindplane agent host (for example,
/etc/bindplane-agent/server.crtand/etc/bindplane-agent/server.key). - Ensure the Bindplane agent configuration references these files in the
tlssection of the receiver.
Configure syslog receiver in Strata Cloud Manager
- Log in to Strata Cloud Manager.
- Go to Configuration > SaaS Security > Settings > Directory & External Services > External Services.
- Click Add Syslog/API Client.
- Select Syslog Receiver to create a syslog server profile.
- In the Name field, enter a descriptive name for the profile (for example,
Chronicle-Bindplane). - Provide the following configuration details:
- Server IP: Enter the IP address of the Bindplane agent host.
- Port: Enter
6514. - Facility: Select a syslog standard value (for example, LOG_USER) to calculate the priority (PRI) field. Values can be LOG_USER or LOG_LOCAL0 through LOG_LOCAL7.
- Message format: Select IETF.
Click Save to save the syslog receiver configuration.
Verify syslog forwarding
After saving the syslog receiver configuration, Data Security will begin forwarding the following log types to the Bindplane agent:
- Incidents log
- Policy Violation log
- Remediation log
- Activity Monitoring log
- Admin Audit log
Behavior Threats log
For more information, see Configure Syslog Monitoring on Data Security and Syslog Integration on Data Security.
UDM mapping table
| Log Field | UDM Mapping | Logic |
|---|---|---|
Captive_Portal_label |
additional.fields |
Merged |
ConfigVersion_label |
additional.fields |
Merged |
InboundInterface_label |
additional.fields |
Merged |
LogSetting_label |
additional.fields |
Merged |
OutboundInterface_label |
additional.fields |
Merged |
ProfileToken_label |
additional.fields |
Merged |
SessionEndReason_label |
additional.fields |
Merged |
SessionStartTime_label |
additional.fields |
Merged |
SubType_label |
additional.fields |
Merged |
Subtype_label |
additional.fields |
Merged |
Tunnel_label |
additional.fields |
Merged |
URLCategory_label |
additional.fields |
Merged |
action_label |
additional.fields |
Merged |
application_label |
additional.fields |
Merged |
application_risk_label |
additional.fields |
Merged |
application_technology |
additional.fields |
Merged |
auth_method |
additional.fields |
Merged |
bytes_label |
additional.fields |
Merged |
connection_error |
additional.fields |
Merged |
connection_error_id |
additional.fields |
Merged |
content_version |
additional.fields |
Merged |
count_of_repeats |
additional.fields |
Merged |
device_sn |
additional.fields |
Merged |
direction_of_attack |
additional.fields |
Merged |
event_id_value |
additional.fields |
Merged |
file_name |
additional.fields |
Merged |
http2_connection |
additional.fields |
Merged |
imsi |
additional.fields |
Merged |
inbound_interface |
additional.fields |
Merged |
log_setting |
additional.fields |
Merged |
log_subtype |
additional.fields |
Merged |
logtype |
additional.fields |
Merged |
message |
additional.fields |
Mapped values (12 total, e.g. LEEF: → application_risk_label, LEEF: → bytes_label, `... |
outbound_interface |
additional.fields |
Merged |
packet_id |
additional.fields |
Merged |
parent_session_id |
additional.fields |
Merged |
partial_hash |
additional.fields |
Merged |
repeat_count |
additional.fields |
Merged |
sequence_no |
additional.fields |
Merged |
session_id |
additional.fields |
Merged |
subtype |
additional.fields |
Merged |
time_generated_high_resolution |
additional.fields |
Merged |
totalPackets_label |
additional.fields |
Merged |
tunnel |
additional.fields |
Merged |
url_category |
additional.fields |
Merged |
urlcategorylist |
additional.fields |
Merged |
virtual_location |
additional.fields |
Merged |
virtual_system |
additional.fields |
Merged |
virtual_system_id |
additional.fields |
Merged |
vs_label |
additional.fields |
Merged |
column3 |
extensions.auth.type |
Mapped: USERID → PHYSICAL |
column4 |
extensions.auth.type |
Mapped: login → PHYSICAL |
column10 |
intermediary.hostname |
Directly mapped |
column16 |
intermediary.hostname |
Directly mapped |
event_data.EventDescription |
metadata.description |
Directly mapped |
hostname |
metadata.description |
Directly mapped |
msg.policyName |
metadata.description |
Directly mapped |
policyName |
metadata.description |
Directly mapped |
TimeReceived |
metadata.event_timestamp |
Parsed as ISO8601 |
event_data.EventTime |
metadata.event_timestamp |
Parsed as yyyy-MM-ddTHH:mm:ss.SSSSSSZ |
event_data.TimeGenerated |
metadata.event_timestamp |
Parsed as yyyy-MM-ddTHH:mm:ss.SSSSSSZ |
event_type |
metadata.event_type |
Directly mapped |
has_principal |
metadata.event_type |
Mapped: true → NETWORK_CONNECTION, true → STATUS_UPDATE |
message |
metadata.event_type |
Mapped: LEEF: → GENERIC_EVENT |
ActionSource |
metadata.product_event_type |
Directly mapped |
LogType |
metadata.product_event_type |
Directly mapped |
SubType |
metadata.product_event_type |
Directly mapped |
Subtype |
metadata.product_event_type |
Directly mapped |
column3 |
metadata.product_event_type |
Directly mapped |
event_data.EventName |
metadata.product_event_type |
Directly mapped |
msg.reason |
metadata.product_event_type |
Directly mapped |
reason |
metadata.product_event_type |
Directly mapped |
SequenceNo |
metadata.product_log_id |
Directly mapped |
alertId |
metadata.product_log_id |
Directly mapped |
msg.alertId |
metadata.product_log_id |
Directly mapped |
message |
metadata.product_name |
Mapped: LEEF: → CASB |
column5 |
metadata.product_version |
Directly mapped |
device_version |
metadata.product_version |
Directly mapped |
event_data.GlobalProtectClientVersion |
metadata.product_version |
Directly mapped |
callbackUrl |
metadata.url_back_to_product |
Directly mapped |
msg.callbackUrl |
metadata.url_back_to_product |
Directly mapped |
VendorName |
metadata.vendor_name |
Directly mapped |
message |
metadata.vendor_name |
Mapped: LEEF: → Palo Alto Networks |
column3 |
network.application_protocol |
Mapped: THREAT → TCP |
has_principal |
network.application_protocol |
Mapped: true → TCP |
proto |
network.application_protocol |
Directly mapped |
Protocol |
network.ip_protocol |
Directly mapped |
column27 |
network.ip_protocol |
Mapped: tcp → TCP |
column3 |
network.ip_protocol |
Mapped: TRAFFIC → TCP, THREAT → TCP |
event_data.Protocol |
network.ip_protocol |
Directly mapped |
proto |
network.ip_protocol |
Directly mapped |
message |
network.received_bytes |
Mapped: LEEF: → uinteger |
srcBytes |
network.received_bytes |
Directly mapped |
srcPackets |
network.received_packets |
Directly mapped |
dstBytes |
network.sent_bytes |
Directly mapped |
message |
network.sent_bytes |
Mapped: LEEF: → uinteger |
dstPackets |
network.sent_packets |
Directly mapped |
SessionDuration |
network.session_duration.seconds |
Renamed/mapped |
SessionID |
network.session_id |
Directly mapped |
column21 |
network.session_id |
Mapped when column3 == THREAT |
event_data.SessionID |
network.session_id |
Directly mapped |
SourceUserDomain |
principal.administrative_domain |
Directly mapped |
DeviceSN |
principal.asset.asset_id |
Directly mapped |
DeviceName |
principal.asset.hostname |
Directly mapped |
event_data.DeviceName |
principal.asset.hostname |
Directly mapped |
SourceAddress |
principal.asset.ip |
Merged |
column3 |
principal.asset.ip |
Mapped: USERID → ip, TRAFFIC → ip, THREAT → ip |
event_data.PublicIPv4 |
principal.asset.ip |
Merged |
event_data.SourceAddress |
principal.asset.ip |
Merged |
ip |
principal.asset.ip |
Merged |
column3 |
principal.asset.nat_ip |
Mapped: TRAFFIC → ip, THREAT → ip |
ip |
principal.asset.nat_ip |
Merged |
FileType |
principal.file.mime_type |
Directly mapped |
FileName |
principal.file.names |
Merged |
DeviceName |
principal.hostname |
Directly mapped |
event_data.DeviceName |
principal.hostname |
Directly mapped |
host |
principal.hostname |
Directly mapped |
SourceAddress |
principal.ip |
Merged |
column3 |
principal.ip |
Mapped: USERID → ip, TRAFFIC → ip, THREAT → ip |
event_data.PublicIPv4 |
principal.ip |
Merged |
event_data.SourceAddress |
principal.ip |
Merged |
ip |
principal.ip |
Merged |
message |
principal.ip |
Mapped: LEEF: → ip, LEEF: → src |
src |
principal.ip |
Merged |
SourceLocation |
principal.location.country_or_region |
Directly mapped |
column35 |
principal.location.country_or_region |
Directly mapped |
event_data.SourceRegion |
principal.location.country_or_region |
Directly mapped |
FromZone |
principal.location.name |
Directly mapped |
event_data.FromZone |
principal.location.name |
Directly mapped |
event_data.HostID |
principal.mac |
Merged |
NATSource |
principal.nat_ip |
Merged |
column3 |
principal.nat_ip |
Mapped: TRAFFIC → ip, THREAT → ip |
event_data.NATSource |
principal.nat_ip |
Merged |
ip |
principal.nat_ip |
Merged |
NATSourcePort |
principal.nat_port |
Directly mapped |
column25 |
principal.nat_port |
Directly mapped |
event_data.NATSourcePort |
principal.nat_port |
Directly mapped |
EndpointOSType |
principal.platform |
Directly mapped |
event_data.EndpointOSVersion |
principal.platform_version |
Directly mapped |
SourcePort |
principal.port |
Directly mapped |
column13 |
principal.port |
Directly mapped |
column23 |
principal.port |
Directly mapped |
event_data.SourcePort |
principal.port |
Directly mapped |
srcPort |
principal.port |
Directly mapped |
application_Subcategory |
principal.resource.attribute.labels |
Merged |
application_category |
principal.resource.attribute.labels |
Merged |
cloudhostname |
principal.resource.attribute.labels |
Merged |
cortexdatalaketenantid |
principal.resource.attribute.labels |
Merged |
flowtype |
principal.resource.attribute.labels |
Merged |
inboundinterfacedetailstype |
principal.resource.attribute.labels |
Merged |
log_source_id |
principal.resource.attribute.labels |
Merged |
log_source_name |
principal.resource.attribute.labels |
Merged |
log_type |
principal.resource.attribute.labels |
Merged |
logsource |
principal.resource.attribute.labels |
Merged |
outboundinterfacedetailstype |
principal.resource.attribute.labels |
Merged |
panorama_sn |
principal.resource.attribute.labels |
Merged |
platform_type |
principal.resource.attribute.labels |
Merged |
source_label |
principal.resource.attribute.labels |
Merged |
source_location |
principal.resource.attribute.labels |
Merged |
column4 |
principal.resource.type |
Directly mapped |
column2 |
principal.user.product_object_id |
Directly mapped |
SourceUser |
principal.user.userid |
Directly mapped |
SourceUserName |
principal.user.userid |
Directly mapped |
column12 |
principal.user.userid |
Directly mapped |
usrName |
principal.user.userid |
Directly mapped |
message |
security_result |
Mapped: LEEF: → security_result |
sec_result |
security_result |
Merged |
action |
security_result.action |
Merged |
action_value |
security_result.action_details |
Directly mapped |
cat |
security_result.category_details |
Merged |
column3 |
security_result.category_details |
Mapped: THREAT → column94, THREAT → column97, THREAT → column98 |
column94 |
security_result.category_details |
Merged |
column97 |
security_result.category_details |
Merged |
column98 |
security_result.category_details |
Merged |
message |
security_result.category_details |
Mapped: LEEF: → cat |
msg.policyDescription |
security_result.description |
Directly mapped |
policyDescription |
security_result.description |
Directly mapped |
DGHierarchyLevel1_label |
security_result.detection_fields |
Merged |
DGHierarchyLevel2_label |
security_result.detection_fields |
Merged |
DGHierarchyLevel3_label |
security_result.detection_fields |
Merged |
DGHierarchyLevel4_label |
security_result.detection_fields |
Merged |
action_label |
security_result.detection_fields |
Merged |
alert_status |
security_result.detection_fields |
Merged |
eventstatus_label |
security_result.detection_fields |
Merged |
policy_id |
security_result.detection_fields |
Merged |
policy_recommendation |
security_result.detection_fields |
Merged |
policy_type |
security_result.detection_fields |
Merged |
portal_label |
security_result.detection_fields |
Merged |
stage_label |
security_result.detection_fields |
Merged |
threat_category |
security_result.detection_fields |
Merged |
RuleUUID |
security_result.rule_id |
Directly mapped |
alertRuleId |
security_result.rule_id |
Directly mapped |
column61 |
security_result.rule_id |
Directly mapped |
event_data.RuleUUID |
security_result.rule_id |
Directly mapped |
msg.alertRuleId |
security_result.rule_id |
Directly mapped |
Rule |
security_result.rule_name |
Directly mapped |
alertRuleName |
security_result.rule_name |
Directly mapped |
column11 |
security_result.rule_name |
Directly mapped |
event_data.Rule |
security_result.rule_name |
Directly mapped |
msg.alertRuleName |
security_result.rule_name |
Directly mapped |
Severity |
security_result.severity |
Directly mapped |
column3 |
security_result.severity |
Mapped: THREAT → INFORMATIONAL |
column31 |
security_result.severity |
Mapped: Informational → INFORMATIONAL |
msg.severity |
security_result.severity |
Directly mapped |
severity |
security_result.severity |
Directly mapped |
ThreatNameFirewall |
security_result.threat_name |
Directly mapped |
Application |
target.application |
Directly mapped |
TunneledApplication |
target.application |
Directly mapped |
column13 |
target.asset.hostname |
Directly mapped |
DestinationAddress |
target.asset.ip |
Merged |
column3 |
target.asset.ip |
Mapped: TRAFFIC → ip, THREAT → ip |
dest_ip |
target.asset.ip |
Merged |
event_data.DestinationAddress |
target.asset.ip |
Merged |
ip |
target.asset.ip |
Merged |
column3 |
target.asset.nat_ip |
Mapped: TRAFFIC → ip, THREAT → ip |
ip |
target.asset.nat_ip |
Merged |
accountId |
target.hostname |
Directly mapped |
column13 |
target.hostname |
Directly mapped |
msg.accountId |
target.hostname |
Directly mapped |
DestinationAddress |
target.ip |
Merged |
column3 |
target.ip |
Mapped: TRAFFIC → ip, THREAT → ip |
dest_ip |
target.ip |
Merged |
dst |
target.ip |
Merged |
event_data.DestinationAddress |
target.ip |
Merged |
ip |
target.ip |
Merged |
message |
target.ip |
Mapped: LEEF: → dst |
network_ip |
target.ip |
Merged |
DestinationLocation |
target.location.country_or_region |
Directly mapped |
Location |
target.location.country_or_region |
Directly mapped |
event_data.DestinationLocation |
target.location.country_or_region |
Directly mapped |
msg.resourceRegionId |
target.location.country_or_region |
Directly mapped |
resourceRegionId |
target.location.country_or_region |
Directly mapped |
ToZone |
target.location.name |
Directly mapped |
event_data.ToZone |
target.location.name |
Directly mapped |
network_mac |
target.mac |
Merged |
NATDestination |
target.nat_ip |
Merged |
column3 |
target.nat_ip |
Mapped: TRAFFIC → ip, THREAT → ip |
event_data.NATDestination |
target.nat_ip |
Merged |
ip |
target.nat_ip |
Merged |
NATDestinationPort |
target.nat_port |
Directly mapped |
column26 |
target.nat_port |
Directly mapped |
event_data.NATDestinationPort |
target.nat_port |
Directly mapped |
DestinationPort |
target.port |
Directly mapped |
column24 |
target.port |
Directly mapped |
dstPort |
target.port |
Directly mapped |
event_data.DestinationPort |
target.port |
Directly mapped |
cloudType |
target.resource.attribute.cloud.environment |
Mapped: gcp → GOOGLE_CLOUD_PLATFORM, aws → AMAZON_WEB_SERVICES, azure → `MICROSOFT... |
accountName |
target.resource.attribute.cloud.project.id |
Directly mapped |
msg.accountName |
target.resource.attribute.cloud.project.id |
Directly mapped |
networkInterfaceId |
target.resource.attribute.labels |
Merged |
privateDnsName |
target.resource.attribute.labels |
Merged |
publicDnsName |
target.resource.attribute.labels |
Merged |
resource_type_label |
target.resource.attribute.labels |
Merged |
subnetId |
target.resource.attribute.labels |
Merged |
tag_label |
target.resource.attribute.labels |
Merged |
vpcId |
target.resource.attribute.labels |
Merged |
msg.resourceName |
target.resource.name |
Directly mapped |
resourceName |
target.resource.name |
Directly mapped |
msg.resourceId |
target.resource.product_object_id |
Directly mapped |
resourceId |
target.resource.product_object_id |
Directly mapped |
URL |
target.url |
Directly mapped |
URLDomain |
target.url |
Directly mapped |
column29 |
target.url |
Directly mapped |
resource.data.securityGroups.0.groupId |
target.user.group_identifiers |
Merged |
resource.data.securityGroups.0.groupName |
target.user.group_identifiers |
Merged |
DestinationUser |
target.user.user_display_name |
Directly mapped |
DestinationUser |
target.user.userid |
Directly mapped |
column9 |
target.user.userid |
Directly mapped |
| N/A | metadata.event_type |
Constant: USER_RESOURCE_ACCESS |
| N/A | metadata.product_name |
Constant: CASB |
| N/A | metadata.vendor_name |
Constant: Palo Alto Networks |
| N/A | network.application_protocol |
Constant: TCP |
| N/A | security_result.severity |
Constant: INFORMATIONAL |
| N/A | target.resource.attribute.cloud.environment |
Constant: GOOGLE_CLOUD_PLATFORM |
Need more help? Get answers from Community members and Google SecOps professionals.