Integrate ArcSight with Google SecOps
This document describes how to integrate ArcSight with Google Security Operations.
Before you begin
Before configuring the ArcSight ESM integration in Google SecOps, verify your environment meets the connection and permission requirements for your connectors, jobs, and actions.
To prepare your environment for integration, complete the following prerequisites:
Verify the base integration requirements to establish network line-of-sight and programmatic authentication.
To ingest security events or correlation cases into Google SecOps, configure connector-specific requirements.
To grant granular privileges for case management and playbook automation, configure job and action-specific requirements.
Review the configuration workflow to understand the provisioning sequence across ArcSight ESM and Google SecOps.
Base integration requirements
The base integration establishes the core HTTPS connection and authentication session used across all Google SecOps actions, connectors, and jobs.
Configure the following foundational requirements in your environment:
Network line-of-sight: Enable HTTPS communication from your Google SecOps instance or Remote Agent to the ArcSight ESM server on the management port (default:
8443/TCP).REST API access: Verify direct access to the ArcSight ESM REST services located at
https://<esm-host>:8443/www/manager-service/rest/andhttps://<esm-host>:8443/www/core-service/rest/as described in the ArcSight ESM REST Web Services API Guide.SSL/TLS trust: Provide a Base64-encoded PEM root and intermediate CA certificate file if your ArcSight ESM deployment uses a private or self-signed certificate authority.
Service account properties: Create a dedicated ArcSight service account with user type
Web User(recommended to avoid consuming an interactive Console seat license) orNormal User, and ensureLogin Enabledis set to active.For user administration procedures, refer to the "Managing Users" section of the ArcSight ESM Administrator's Guide.
Base group membership: Assign the service user to a dedicated user group (for example,
SecOps_Integration_Group) to manage all downstream operations privileges, resource ACLs, and event filters centrally.For group configuration procedures, refer to the "Managing User Groups" section of the ArcSight ESM Administrator's Guide.
Connector-specific requirements
Ingestion connectors pull alerts and security events into Google SecOps and require specialized data scoping and operational permissions beyond the base integration.
Configure the prerequisites corresponding to your chosen ingestion connector:
Event filter assignment: Assign an event filter (such as
All Eventsor a scoped organizational filter) to the integration user group to define the data scope of security events the connectors can retrieve.For instructions on configuring group-level event filters, refer to the ArcSight ESM Administrator's Guide.
ArcSight - Security Events Connector: Grant
Security Events: Inspect,Reports: Inspect, andReports: Executeoperations privileges, and assignReadandExecuteACL permissions on the specific report resource in ArcSight that exports correlation eventsFor resource ACL procedures, refer to the "Managing Access Control on Resources" section of the ArcSight ESM Console User's Guide.
ArcSight ESM Connector: Grant
Security Events: InspectandCases: Inspectoperations privileges, and assignReadACL permissions on the target case folders and correlation resources in accordance with the ArcSight ESM Console User's Guide.
Job and action-specific requirements
Scheduled jobs and playbook actions inherit the base integration connection and require granular operations privileges and object-level ACL permissions depending on the specific ArcSight resources they interact with.
Grant privileges and ACLs based on the integration capabilities you're deploying:
Action enablement: Playbook actions don't require separate connection configuration in Google SecOps. Granting the required operations privileges and resource ACLs to the service account group in ArcSight immediately enables them for playbook use.
Close Cases job: Grant
Cases: InspectandCases: Editoperations privileges, and assignReadandModifyACL permissions on the target case folders as outlined in the ArcSight ESM Console User's Guide.Active list actions: Grant
Active Lists: InspectandActive Lists: Edit Content(orActive Lists: Edit) operations privileges, and assignReadandWriteACL permissions on the specific active lists targeted by your playbook action parameters.Case management actions: Grant
Cases: InspectandCases: Editoperations privileges, and assignReadandModifyACL permissions on target case folders.Query and search actions: Grant
Query Viewers: InspectandQuery Viewers: Executeoperations privileges, and assignReadandExecuteACL permissions on target query viewers.Report actions: Grant
Reports: InspectandReports: Executeoperations privileges, and assignReadandExecuteACL permissions on target reports.
Component permission mapping
The following table outlines the minimum required operations privileges and resource ACLs for each integration component type.
Review the following table to understand the permission requirements:
Base session: The base integration requires only valid login credentials and default authenticated user rights.
Ingestion connectors: Connectors require event filtering rights, event inspection privileges, and read access to reports or cases.
Jobs and actions: Playbook actions and sync jobs require functional task privileges and ACL permissions on the specific resources accessed, configured using the ArcSight ESM Console User's Guide.
| Component Type | Component Name | API Service | Required Operations Privileges | Required Resource ACLs |
|---|---|---|---|---|
| Base Integration | Base Connection & Authentication | LoginService |
Default authenticated user privileges | None |
| Connector | ArcSight - Security Events Connector | SecurityEventService, ReportService |
Security Events: Inspect, Reports: Inspect,
Reports: Execute |
Read and Execute on target report resource |
| Connector | ArcSight ESM Connector | SecurityEventService, CaseService |
Security Events: Inspect, Cases: Inspect |
Read on target case folders and correlation objects |
| Job | Close Cases Job | CaseService |
Cases: Inspect, Cases: Edit |
Read and Modify on target case folders |
| Action | Active List Actions (Add Entities, Add Entries, Get Entries, Check Value) | ActiveListService |
Active Lists: Inspect, Active Lists: Edit Content
(or Active Lists: Edit) |
Read and Write on target active lists |
| Action | Change Case Stage Action | CaseService |
Cases: Inspect, Cases: Edit |
Read and Modify on target case folders |
| Action | Query & Search Actions (Get Query Results, Search) | QueryViewerService, SearchService |
Query Viewers: Inspect, Query Viewers: Execute |
Read and Execute on target query viewers |
| Action | Get Report Action | ReportService |
Reports: Inspect, Reports: Execute |
Read and Execute on target reports |
| Action | List Resources Action | ActiveListService, CaseService,
QueryViewerService, ReportService |
Inspect privilege for each enabled resource type |
Read on target resource folders |
Configuration workflow
Follow this multi-phase workflow to provision permissions in ArcSight ESM and activate your selected components in Google SecOps.
Complete the configuration steps in the following sequence:
ArcSight service account and group provisioning: Create the dedicated service user in ArcSight ESM, create a dedicated user group, assign the service user to the group, and apply an event filter to define data visibility as detailed in the ArcSight ESM Administrator's Guide.
Assign privileges and ACLs for chosen components: Cross-reference your planned connectors, jobs, and actions against the component permission mapping table, grant the corresponding operations privileges to the user group, and assign object-level ACLs (such as
Read/Writeon active lists orRead/Executeon reports) on the specific target resource folders in the ArcSight ESM Console User's Guide.Configure in Google SecOps: Configure the base integration, ingestion connectors, scheduled jobs, and playbook actions in Google SecOps as described in the following sections.
Integration parameters
Use the following parameters to configure the integration:
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Instance Name | String | N/A | No | Name of the instance you intend to configure the integration for. |
| Description | String | N/A | No | Description of the instance. |
| API Root | String | https://{IP}:{PORT} |
Yes | Server address of the ArcSight instance. |
| Username | String | N/A | Yes | Username of the ArcSight account. |
| Password | Password | N/A | Yes | Password of the ArcSight account. |
| Run Remotely | Checkbox | Unchecked | No | Check the field in order to run the configured integration remotely. Once checked, the option appears to select the remote user (agent). |
For instructions about how to configure an integration in Google SecOps, see Configure integrations.
You can make changes at a later stage, if needed. After you configure an integration instance, you can use it in playbooks. For more information about how to configure and support multiple instances, see Supporting multiple instances.
Actions
For more information about actions, see Respond to pending actions from Your Workdesk and Perform a manual action.
Add Entries to Active List
Provides a mechanism to get information from trends outside of, and in addition to, reports. Active lists updated by trends support summary views of information from multiple trends.
Parameters
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Columns | String | N/A | Yes | Example: Message;Username |
| Entries | String | N/A | Yes | Example: test1|Me1;Test|Me2 |
| Active List UUID | String | N/A | Yes | Example: HCN75QGABABCZXCOdT9P51w== |
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| is_succeed | True or False | is_succeed:False |
Change Case Stage
Change a case's stage. Valid stages are INITIAL, QUEUED, CLOSED, FINAL, and FOLLOW_UP.
Parameters
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Case Name | String | N/A | Yes | The name of the case to update. |
| Stage | String | N/A | Yes | The stage of the case. Example: CLOSED, INITIAL |
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| success | True or False | success:False |
Get Activelist Entries
Retrieve ArcSight active list entries and return csv output.
Parameters
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Active list UUID | String | N/A | Yes | Example: HTcILQWABABCr553ieI0Xmw== |
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| Success_Indicator | N/A | N/A |
JSON result
[
"12346e4d96f0a72c42015d69aaf0e8ab ,
file.txt",
"0e0776034e5e096704cd28cbd40cdbb5 ,
Test.config"
]
Get Query Results
Get query results by query ID. A query can be used as the primary data source for a report, or a trend (based on one query) that can be used as the data source to another query that further refines the initial query result.
Parameters
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Query ID | String | N/A | Yes | The query ID. |
| Max Items To Return | Integer | 100 | No | Specify how many items to return in the response. |
Use Cases
Add limitation for how many results to return.
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| success | True or False | success:False |
JSON result
[
{
"Target User Name": "user",
"Attacker Address": "192.0.2.1",
"External ID": "127",
"Name": "A Kerberos authentication ticket (TGT) was requested.",
"Target Address": "192.0.2.1"
},{
"Target User Name": "user",
"Attacker Address": "192.0.2.1",
"External ID": "127",
"Name": "A Kerberos authentication ticket (TGT) was requested.",
"Target Address": "192.0.2.1"
}
]
Get Report
Get a report with dynamic fields. A report is an ArcSight resource that binds data from a query or trend to an existing report template. Once ran, the results of a report can be viewed in the ArcSight consoles viewer panel, saved (archived), or exported in a variety of formats. Reports can be scheduled to run at regular intervals and can be ran on-demand as needed.
Parameters
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Report Full Path (URI) | String | N/A | Yes | The relevant report uri. |
| Field 2 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 3 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 4 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 6 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 6 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 7 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 8 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 9 | String | N/A | No | The dynamic fields for the query to generate the report. |
| Field 10 | String | N/A | No | The dynamic fields for the query to generate the report. |
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| json_report | N/A | N/A |
Is Value in Activelist Column
Check if specific value is in active list .
Parameters
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Active list UUID | String | N/A | Yes | Active list uuid. Example: cuser. |
| Column name | String | N/A | Yes | The name of the column. Example: sourceUserName. |
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| Success_Indicator | N/A | N/A |
Ping
Test Connectivity.
Parameters
None.
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| is_succeed | True or False | is_succeed:False |
Search
You can start a search at the ArcSight Command Center from the console event channel. Event Complete Search looks for the associated attribute, which is stored in several fields (for example, abc). The search for events searches for a value (for example, abc) stored in the field specified (for example, in the field of name only).
Parameters
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Search Query | String | N/A | Yes | The search query. |
| Max Items To Return | Integer | 100 | No | Specify how many items to return in the response. |
Use Cases
Add limitation for how many results to return.
Run on
This action runs on all entities.
Action results
This action can provide the following results.
Script result
| Script result name | Value options | Example |
|---|---|---|
| success | True or False | success:False |
JSON result
[
{
"score": 1.2440307,
"uuid": "UUID",
"uri": "/All_Fields/ArcSight_Foundation/Variables_Library/IPv6/Attacker_IPv6_Address",
"name": "Attacker IPv6 Address"
}, {
"score": 1.2440307,
"uuid": "UUID",
"uri": "/All_Fields/ArcSight_Foundation/Variables_Library/IPv6/Attacker_IPv6_Address",
"name": "Attacker IPv6 Address"
}
]
Connectors
To learn more about configuring connectors in Google SecOps, see Ingest your data (connectors).
Arcsight ESM Connector
This guide refers to ArcSight ESM versions 6.9.1 and higher.
ESM rule or case forwarding to Google SecOps
Working with Triggered Rules/Correlations
You will be required to configure ArcSight ESM to forward the latest correlation objects to Google SecOps while you configure Google SecOps to function on ArcSight ESM as a SIEM provider, and also to provide API access to ArcSight ESM through an authorized user.
This feature allows Google SecOps to retrieve any triggered rules within ArcSight ESM in near real-time and forward them to be translated and contextualized as alerts for cases.
Data Flow between Google SecOps and ArcSight ESM
Google SecOps automatically indexes and contextualizes correlations that were forwarded to Google SecOps and were triggered in ArcSight ESM through ArcSight Forwarding Connector module and API access.
Connector severity prioritization
The connector assigns severity with the following prioritization values:
- 1 and 2 - very low
- 3 and 4 - low
- 5 and 6 - medium
- 7 and 8 - high
- 9 and 10 - critical
Connector inputs
Use the following parameters to configure the connector:
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Environment | DDL | N/A | Yes | Select the required environment, for example, Customer One. In case that the alert's Environment field is empty, this alert will be injected to this environment. |
| Run Every | Integer | 0:0:0:10 | No | Select the time to run the connection. |
| Product Field Name | String | device_product | No | The name of the field where the product name is stored. The default
value is The product name
primarily impacts mapping. To streamline and improve the mapping process for
the connector, the default value |
| Event Field Name | String | name | No | The field name used to determine the event name (sub-type). |
| Script Timeout (seconds) | String | 500 | No | The timeout limit (in seconds) for the python process running the current script. |
| Server Address | String | N/A | Yes | https://{IP}:{PORT} |
| Username | String | N/A | Yes | Username of the ArcSight account. |
| Password | Password | N/A | Yes | The password of the ArcSight account. |
| Events Count Limit | Integer | 15 | Yes | Enter the maximum number of events to fetch per correlation. Limit the number of events, for example, 10. |
| Cases Folder Path | String | I:\SiemShare\CorrelationSource |
Yes | The location of the case files, such as Note: The Cases Folder Path parameter can be changed from one customer to another. Full path. Example: |
| Alerts Count Limit | Integer | 10 | Yes | The maximum number of alerts to process per connector cycle, for example, 10. |
| Environment Field Name | String | event.customerURI | Yes | The name of the field to get the case's environment, for example, event.customerUri. |
| Secondary Device Product Field | String | N/A | No | Replace the original product field (from the connector's DeviceProductField with the value from the secondary product field). Example: CustomDeviceString2 |
| Alert Custom Fields Names | String | N/A | No | Pull custom field values from ArcSight into the alert, such as baseEventCount,agent_address,device_assetId. |
| Done files retention days | Integer | 3 | Yes | How many days, to keep each DONE csv file. |
| Error files retention days | Integer | 14 | Yes | How many days, to keep each ERROR csv file. |
| Proxy Server Address | String | N/A | No | The address of the proxy server to use. |
| Proxy Username | String | N/A | No | The proxy username to authenticate with. |
| Proxy Password | Password | N/A | No | The proxy password to authenticate with. |
Connector rules
The connector supports proxies.
ArcSight - Security Events Connector
Pull correlations from ArcSight. This connector is suitable for SaaS deployment of Google SecOps and is the recommended one for production use.
This connector requires completing the prerequisite steps.
Connector inputs
Use the following parameters to configure the connector:
| Parameter Display Name | Type | Default Value | Is Mandatory | Description | |
|---|---|---|---|---|---|
| Product Field Name | String | type | Yes | The name of the field where the product name is stored. The default value is The product name
primarily impacts mapping. To streamline and improve the mapping
process for the connector, the default value |
|
| Event Field Name | String | name | Yes | The name of the field that determines the event name (subtype). |
|
| Environment Field Name | String | "" | No | The name of the field where the environment name is stored. If the environment field is missing, the connector uses the default value. |
|
Environment Regex Pattern |
String | .* | FALSE | No |
A regular expression pattern to run on the value found in the
Use the default value If the regular expression pattern is null or empty, or the environment value is null, the final environment result is the default environment. |
| Script Timeout (Seconds) | Integer | 360 | Yes | The timeout limit, in seconds, for the Python process that runs the current script. |
|
| API Root | String | https://{ip} |
Yes | The API root of the ArcSight instance. | |
| Username | String | N/A | Yes | Username of the ArcSight account. | |
| Password | Password | N/A | Yes | Password of the ArcSight account. | |
| Report Name | String | N/A | Yes | Name of the report that will be used to fetch events. | |
| Fetch Base Events | Checkbox | Checked | Yes | If enabled, connector will also fetch base events. | |
| Lowest Priority To Fetch | Integer | N/A | No | Lowest priority that will be used to fetch events. Possible values are in range 1 to 10. If nothing is provided, all events will be ingested. | |
| Max Events To Fetch | Integer | 100 | No | The number of alerts to process per connector iteration. The maximum allowed is 1000. | |
| Use dynamic list as a blocklist | Checkbox | Checked | Yes | If selected, the connector uses the dynamic list as a blocklist. |
|
| Verify SSL | Checkbox | Unchecked | Yes | If selected, the integration validates the SSL certificate when connecting to the ArcSight server. | |
| Proxy Server Address | String | N/A | No | The address of the proxy server to use. | |
| Proxy Username | String | N/A | No | The proxy username to authenticate with. | |
| Proxy Password | Password | No | The proxy password to authenticate with. |
Connector rules
The connector supports proxies.
Jobs
For more information on jobs, see Configure a new job and Advanced scheduling.
Close Cases
The job requires the following parameters:
| Parameter name | Type | Default value | Is mandatory | Description |
|---|---|---|---|---|
| Server Address | String | 192.0.2.1 | Yes | N/A |
| Username | String | N/A | Yes | N/A |
| Password | Password | N/A | Yes | N/A |
Need more help? Get answers from Community members and Google SecOps professionals.