Skip to main content

Alert Enrichment v2.2

Advanced Enrichment mapping brings dynamic multi-value tags to automatic alert enrichment.

Key Features

  • Combine several event payload fields into a single enrichment rule.

  • Streamline enrichment configuration with multi-column rules.

  • Classify enrichment rules into groups to drive action-based enrichment.

  • Update or add individual mapping rows.

Relevant Permissions

Roles with the following permissions can access the Alert Enrichment API:

Permission

Description

Alert Enrichment

View and use the Alert Enrichments UI and API.

Mapping Enrichment (API Only)

Use the Mapping Enrichment API.

Permission access levels can be adjusted by selecting either View or Full Access. To learn more about how BigPanda's permissions work, see the Roles Management guide.

Tag Limitations

To maintain quality of service, BigPanda limits the number of alert tags and enrichment items available. Each organization can have:

  • 1000 alert tags

  • 500 enrichment items per alert tag

  • 20,000 alert enrichment items total

  • 200 mapping enrichment result tags per map

If more alert tags or enrichment items are needed, we recommend exploring normalization options to help streamline your alert data and improve incident quality.

New Elements

Enrichment V2.2 introduces a new type of enrichment: advanced mapping. Advanced mapping configurations create dynamic map rules to better account for the variable inbound fields across your monitoring tools or teams.

Advanced mapping is structured similar to previous mapping enrichment structure, but includes a new optional groups attribute for result tags. When defining map schema, you can combine multiple column rules together using the groups attribute.

Groups Attributes

The groups object defines rules to cluster result columns together. Each group object lists the result columns and grouping rules such as order and match processing.

Attribute

Description

Type

fields

Defines the column names to group together.

Attributes include:

type: the column type. group_tag for grouped columns.

tag_name: the column name. Must be exact match to the column name in the uploaded map.

Array of objects

order

Where in the run order this group runs. The first group with matched columns will apply as the tag value.

Integer

name

The name of the group.

String

method

Whether the field values within the group should result in a single matched value or array of values.

One of first_match or union.

String

"groups": [
	{
		"fields": [
			{
				"type": "group_tag",
				"tag_name": "alert_group"
			},
			{
				"type": "group_tag",
				"tag_name": "ticket_active"
			}
		],
		"order": 1,
		"name": "alert_group_ticket_active",
		"method": "union"
	},
	{
		"fields": [
			{
				"type": "group_tag",
				"tag_name": "alert_group"
			}
		],
		"order": 2,
		"name": "alert_group",
		"method": "first_match"
	}
]

Ungrouped result tag

{
  "type": "result_tag",
  "tag_name": "email"
}
### Grouped result tag
{
	"type": "result_tag",
	"tag_name": "email",
	"groups": [...]
}

Advanced Enrichment Available API Calls

Alert Enrichment v2.2 has full CRUD functionality.

API Endpoints

/resources/alert-enricher/schemas 

/resources/alert-enricher/schemas/<schema_id> 

Supported Methods

POST, GET, PUT, DELETE

Rate Limitation

5 requests per second

Advanced Mapping Enrichment Routes 

Action 

Endpoint 

Description 

Create Advanced Mapping Enrichment Schema

POST /resources/alert-enricher/schemas

Creates a mapping enrichment schema

Retrieve Advanced Mapping Enrichment Schema

GET /resources/alert-enricher/schemas/<schema_id>

Retrieves a specific mapping enrichment schema.

Retrieve All Advanced Mapping Enrichment Schema

GET /resources/alert-enricher/schemas

Lists all mapping enrichment schemas in BigPanda.

Update Advanced Mapping Enrichment Schema

PUT

/resources/alert-enricher/schemas/<schema_id> 

Updates a mapping enrichment schema.

Delete Advanced Mapping Enrichment Schema

DELETE /resources/alert-enricher/schemas/<schema_id>

Deletes a mapping enrichment schema.

Upload an Enrichment Map for Advanced Mapping

Advanced enrichment uses the same map structure as previous enrichment map.

API Endpoints

/resources/alert-enricher/schemas/<schema_id>/rules 

/resources/alert-enricher/schemas/<schema_id>/rules/<rule_id> 

Supported Methods

POST, GET, PATCH, PUT, DELETE

Rate Limitation

5 requests per second

To upload a map for an Advanced Mapping configuration, enter the schema id in the Advanced Map upload URL.

Action 

Endpoint 

Description 

Body 

Create mapping enrichment table

POST /resources/alert-enricher/schemas/(<schema_id>)/rules

Creates a new table or replaces an existing table.

Send the entire table as a CSV file.

The complete CSV file

Update Mapping Enrichment Row

PATCH /resources/alert-enricher/schemas/(<schema_id>)/rules/(<row_id>)

Updates an existing row of an enrichment map. Best used for updates to a single row.

JSON object with map details

Create Mapping Enrichment Row

PUT /resources/alert-enricher/schemas/(schema_id)/rules

Adds or updates map rows for an existing enrichment map.

All rows must have an id. To insert a new row, generate a new UUID code for the row.

JSON List of map details.

Retrieve map rows

GET /resources/alert-enricher/schemas/<schema_id>/rules?rule_ids=<row_id>,<row_id>&page=1&per_page=5

Retrieves a specific row, or all rows for an existing map.

Max per page: 100

Multiple row ids can be included in the query, separated by commas.

N/A

Retrieve an upload job status

GET /resources/alert-enricher/jobs/<job_id>

Retrieves the upload status of a specific map upload.

N/A

Delete rule

DELTE /resources/alert-enricher/schemas/<schema_id>/rules/<row_id>

Delete a specific row from a specific map.

N/A

Must match schema

Every map row must include a tag or group for every column in the schema.

URL encoding

When sending query lists separated by commas, your API tool may require you to format the call with URL encoding. BigPanda will automatically parse an encoded URL.

{
	"id": "955056f6-c7bf-4733-a3ad-d3b23f06f173",
	"created_by": null,
	"created_at": "2024-11-28T15:08:03.272+00:00",
	"updated_by": null,
	"updated_at": "2024-11-28T15:08:03.303+00:00",
	"metadata": null,
	"session_id": "S129",
	"location": "Chicago",
	"threat_score": "90",
	"vulnerability_score": "85",
	"action_type": "Alert",
	"escalation_level": "Critical",
	"risk_level": "P1",
	"remediation_action": "Block"
}

Read more about uploading enrichment maps in the Best Practices for Mapping Enrichment documentation.

Upgrading Basic Mapping to Advanced Mapping

When converting basic mapping schemas to advanced mapping, you must adjust call parameters as well as the rule structure:

  1. Identify which mapping schemas you wish to replace, and determine downstream effects on tags.

  2. Create a new advanced mapping schema with the groups structure.

  3. Upload a new map to the advanced enrichment endpoint.

  4. Validate enrichment processes before removing old mapping schemas.

{
"type":"advanced_mapping",
"execution_order": "6",
"name":"map-schema 5",
"config":{
	"fields": [
		{
			"type": "query_tag",
			"tag_name": "offset"
		},
		{
			"type": "query_tag",
			"tag_name": "agent"
		},
		{
			"type": "result_tag",
			"tag_name": "region"
		},
		{
			"type": "result_tag",
			"tag_name": "email",
			"groups": [
				{
					"fields": [
						{
							"type": "group_tag",
							"tag_name": "alert_group"
						},
						{
							"type": "group_tag",
							"tag_name": "ticket_active"
						}
					],
					"order": 1,
					"name": "alert_group_ticket_active",
					"method": "union"
				},
				{
					"fields": [
						{
							"type": "group_tag",
							"tag_name": "alert_group"
						}
					],
					"order": 2,
					"name": "alert_group",
					"method": "first_match"
				}
			]
		},
		{
			"type": "result_tag",
			"tag_name": "urgent",
			"groups": [
				{
					"fields": [
						{
							"type": "group_tag",
							"tag_name": "ticket_active"
						}
					],
					"order": 1,
					"name": "ticket_active_group",
					"method": "first_match"
				}
			]
		}
	]
}
}