Microsoft Sentinel SIEM Codeless Connector Framework (RUX)
Deploy the RUX Microsoft Sentinel CCF connector to ingest Vectra telemetry without customer-managed compute.
Overview
The Vectra AI RUX connector for Microsoft Sentinel ingests Security Operations data (detection, entity, and lockdown telemetry) from the Vectra AI platform using the Microsoft Sentinel Codeless Connector Framework (CCF).
The connector is built on the Vectra AI RUX API and is intended to replace the legacy Function App–based connector. It does not require an Azure Function App, virtual machine, or customer-managed compute for ingestion. Data polling, transformation, and ingestion are handled natively by Microsoft Sentinel through CCF and Data Collection Rules (DCRs).
The solution package includes:
Data Connector
Parsers
Custom Log Analytics tables
Workbook template
Analytics rule templates
Playbooks / Logic Apps
Architecture
Vectra AI Platform
│
│ < HTTPS polling via Microsoft Sentinel CCF >
│
Microsoft Sentinel / Log Analytics Workspace
│
├── Custom Tables
│ ├── Detections_Data_CCF_CL
│ ├── Entities_Data_CCF_CL
│ └── Lockdown_Data_CCF_CL
│
├── Parsers
│ ├── VectraRUXDetections
│ ├── VectraEntities
│ └── VectraLockdown
│
├── Workbook Template
│ └── VectraRUXSecurityDashboard
│
├── Analytics Rule Templates
│ ├── Account incident rule
│ └── Host incident rule
│
└── Playbooks / Logic AppsConnector Components
Data Connector
Registers and configures the Vectra RUX connector in Microsoft Sentinel
Data Collection Rules
Define ingestion streams, transformations, and table mappings
Custom Tables
Store detections, entities, and lockdown records
Parsers
Provide normalized KQL functions for querying Vectra data
Workbook Template
Provides the Vectra RUX Security Dashboard
Analytics Rule Templates
Provide incident creation rules for host and account detections
Playbooks / Logic Apps
Provide automation actions for enrichment, tagging, notes, assignments, and response workflows
Deployment
The connector supports two deployment modes depending on certification status.
Preview Deployment
During preview, customers deploy the solution using Deploy a custom template in Azure using a JSON ARM template provided by Vectra. The ARM template includes the full Microsoft Sentinel package: Data Connector, Parsers, Custom Log Analytics tables, Workbook template, Analytics rule templates, and Playbooks / Logic Apps.
After deployment, customers configure the connector from the Microsoft Sentinel Data connectors page, enable desired analytics rules, the security workbook, and configure playbooks as needed.
Content Hub Deployment
After certification, deployment will be performed through Microsoft Sentinel Content Hub. Customers will install the Vectra AI RUX solution from Content Hub, then configure the connector, enable analytics rule templates, save the workbook template if desired, and configure playbooks.
Data Connector
The connector polls the Vectra AI API using OAuth2 client credentials. Each connection requires a connection alias, Vectra API base URL, Client ID, Client Secret, and the selected data stream.
A Data Stream is an individual ingestion pipeline within the connector that retrieves a specific category of data from the Vectra AI API and writes it into a corresponding Log Analytics table. Each stream operates independently and defines the API endpoint being queried, the polling interval, the checkpoint or synchronization method, the target Log Analytics table, and the associated parser and transformation logic.
The three data streams within the Security Operations integration are:
Detections
Detections_Data_CCF_CL
VectraRUXDetections
PersistentToken using next_checkpoint
5 minutes
Entities
Entities_Data_CCF_CL
VectraEntities
Sliding window using last_modified_timestamp_gte
10 minutes
Lockdown
Lockdown_Data_CCF_CL
VectraLockdown
Snapshot
5 minutes
Note: The previous Log Ingestion API (package version 3.3.0) uses table names without CCF (example: Detections_Data_CL). These tables are joined when populating the workbook to provide a better experience during the migration period after deploying this CCF version of the integration.
Detections Stream
The detections stream uses an event-based checkpointing model built around the Vectra /events/detections API endpoint. Each detection event in Vectra is assigned a serialized event ID. As new events occur, the ID increments monotonically.
After each successful polling cycle, events are ingested into Detections_Data_CCF_CL and the highest processed event ID is stored as the checkpoint. The next polling cycle resumes from that checkpoint, ensuring the connector always continues from the exact point where the previous ingestion cycle ended.
Because the checkpoint is ID-based rather than time-based:
Poll timing does not affect data continuity
Connector restarts do not cause gaps
Temporary outages do not lose events
Clock drift issues are avoided
Even if the connector does not poll again for several minutes, hours, or days, the next poll will continue from the last processed detection event ID.
Detection Polling Example
Determining the Detections Starting Checkpoint Seed Value
When the connector is initially configured, a starting event ID must be provided. The connector requests all events occurring after that ID. The recommended approach depends on the deployment type.
Greenfield Deployment
No prior Vectra integration exists in Sentinel
Migration Deployment
A prior Vectra integration already exists and the customer is transitioning to the CCF connector
Greenfield Deployments — An API call to the Vectra platform is required to determine the seed value:
Copy the returned next_checkpoint value into the detections starting checkpoint field.
Migration Deployments — When a previous integration exists, the most recent event retrieved from Vectra is available via KQL:
Note: This query intentionally references the old table name
Detections_Data_CL, as the previous integration has already populated data to a known point and the new connector should pick up from there.
Entities Stream
The entities stream uses time-based polling. The connector polls the Vectra entities endpoint every 10 minutes and retrieves entities modified since the previous polling window, using current_time - 10 minutes as the value for last_modified_timestamp_gte.
Example:
The entities stream continuously captures entity score changes, priority changes, assignment changes, state changes, tag updates, and entity metadata changes. Both host and account entities are included automatically.
Because the entities stream is time-window based, it does not maintain a serialized checkpoint and data continuity depends on successful polling intervals. Small overlap windows help reduce the chance of missed updates. This model is appropriate because entities represent continuously changing state (cumulative) rather than immutable event records.
Lockdown Stream
The lockdown stream uses a snapshot polling model. Every 5 minutes, the connector queries the current lockdown state from the Vectra API. If active lockdown records are returned, they are ingested into Lockdown_Data_CCF_CL.
The lockdown stream does not maintain a checkpoint because the API represents current state rather than historical events.
Important behavior: There is intentionally no post-processing deduplication for lockdown records. If an entity remains locked down for an extended period of time, the same lockdown record will be retrieved and ingested during every polling interval while the lockdown remains active.
12:00
Entity locked down
12:05
Same lockdown record ingested
12:10
Same lockdown record ingested
12:15
Same lockdown record ingested
This behavior is intentional. Repeated ingestion provides an operational audit trail showing that the entity remained continuously locked down throughout the observed period, and also allows operators to identify situations where a lockdown was manually removed, temporarily disappeared, or reinstated later. Because the stream represents observed state over time rather than unique events, duplicate records are expected behavior.
When evaluating current lockdown state, filter to recent records:
To analyze historical lockdown continuity, query the full table without deduplication.
Parsers
Use the included parsers for workbooks, analytics rules, hunting, and operational queries rather than querying the raw tables directly.
VectraRUXDetections
Detections_Data_CCF_CL
Normalized detection data
VectraEntities
Entities_Data_CCF_CL
Normalized entity data
VectraLockdown
Lockdown_Data_CCF_CL
Normalized lockdown data
Recommended:
Deduplication Guidance
Detection records may contain multiple updates for the same detection ID. Use arg_max() to evaluate the latest known state:
Installation & Configuration
Installing the Connector
Preview Installation
Open the Azure portal.
Search for Deploy a custom template.
Select Build your own template in the editor.
Paste or upload the provided Vectra AI RUX ARM template.
Select the subscription, resource group, and Sentinel workspace.
Deploy the template.
Open Microsoft Sentinel and navigate to Data connectors.
Open the Vectra RUX Security Data Connector.
Add one connection per data stream: Detections, Entities, Lockdown.
Content Hub Installation
Open Microsoft Sentinel.
Navigate to the desired workspace and select Content Hub.
Search for the Vectra RUX solution and select Install.
Configure the connector from Data connectors.
Enable analytics rule templates.
Save the workbook template if required.
Configure playbooks and automation rules as needed.
Connector Configuration
Create a separate Vectra API client for each data stream:
Detections
Sentinel-Detections (read-only)
Entities
Sentinel-Entities (read-only)
Lockdown
Sentinel-Lockdown (read-only)
Important: To avoid OAuth2 API rate limiting, stagger connection creation by at least one minute when adding multiple streams.
Verifying Data Flow
After 10–15 minutes, verify ingestion using the following queries.
Raw table verification:
Parser validation:
Monitoring Connector Health
Microsoft Sentinel connector health information is written to the SentinelHealth table when auditing and health monitoring is enabled for the workspace.
Note: The CCF-based connector does not use Azure Function Apps and therefore does not generate Function App telemetry or Application Insights exceptions. Connector health should be monitored using Microsoft Sentinel's native connector health capabilities rather than Azure Monitor Function App alerts.
Enabling Health Monitoring
Open Microsoft Sentinel in the Azure portal.
Select your workspace and navigate to Configuration → Settings → Settings.
Select Auditing and health monitoring.
Select one of the following options:
Enable
Enables auditing and health monitoring for all supported Sentinel resource types
Configure diagnostic settings
Allows granular selection of monitored resource categories and destinations
For most deployments, selecting Enable is recommended. Microsoft Sentinel automatically creates the required diagnostic settings and begins sending health telemetry to the Log Analytics workspace.
The SentinelHealth table supports monitoring for Data connectors, Analytics rules, Automation rules, and Playbooks / Logic Apps.
Note: The
SentinelHealthtable is created automatically after the first health event is generated. This can take up to 30 minutes.
Verify ingestion using:
Recommended Connector Health Query
Returns the latest health state for the Vectra connector streams, filtered to failures only. This query is suitable for ad-hoc troubleshooting:
No results means there are no errors. Comment out the Status != "Success" line to review successful events as well.
Recommended Health Monitoring Alert Rule
The recommended monitoring approach for the CCF connector is a Scheduled Analytics Rule in Microsoft Sentinel.
Rule Type
Scheduled
Query Frequency
15 minutes
Query Period
30 minutes
Trigger Threshold
Greater than 0
Severity
Medium
Incident Creation
Enabled
Microsoft also provides the Data collection health monitoring workbook through Content Hub, which visualizes connector ingestion trends, anomalies, and connector health state over time. Install it from: Microsoft Sentinel → Content Hub → Data collection health monitoring.
Workbook
The solution includes the VectraRUXSecurityDashboard workbook template. This pre-built workbook provides visibility into entity scoring and prioritization, detection activity, escalated and prioritized detections, MITRE ATT&CK mappings, data source classification, lockdown state, entity-to-detection drilldowns, and deep links into Vectra.
Workbook Tabs & Filters
Entity
Entity priority, urgency, scoring, assignment, and drilldown views
Detections
Detection investigation, category counts, MITRE filtering, and selected detection details
Lockdown
Lockdown status by entity, lock timestamp, unlock timestamp, and locking user
The workbook includes filters for time range, prioritized status, entity type, data source type, detection category, detection behavior, MITRE technique, and lockdown status. Supported data source categories include AWS, Azure, Entra ID/M365, and Network.
Opening and Saving the Workbook
To view the workbook:
Open Microsoft Sentinel and navigate to Workbooks.
Select the Templates tab.
Search for
VectraRUXSecurityDashboard.Select the workbook and choose View template.
To save the workbook to My workbooks:
Open the workbook from Templates.
Select Save.
Choose the subscription, resource group, and region.
Save the workbook.
Analytics Rules
The solution includes two Scheduled analytics rule templates — both rules should be enabled. These analytic rules create incidents for any detection that is prioritized (unresolved_priority = true) or has been manually escalated, regardless of priority. Two separate rules are required to ensure accurate entity mapping within Sentinel: hosts map to hostname, accounts map to username.
Vectra RUX - Create Incident for Escalated Host Detection or Unresolved Priority Host
Creates incidents for host detections that are escalated or unresolved priority
Vectra RUX - Create Incident for Escalated Account Detection or Unresolved Priority Account
Creates incidents for account detections that are escalated or unresolved priority
Rule Logic & Queries
Trigger condition — An incident is created when either condition is true:
Shared rule configuration:
Rule type
Scheduled
Enabled by default
No
Severity
High
Query frequency
10 minutes
Query period
10 minutes
Trigger operator
Greater than
Trigger threshold
0
Event grouping
One alert per result
Incident creation
Enabled
Incident grouping lookback
7 days
Reopen closed incidents
False
Host Rule Query:
Account Rule Query:
Entity Mapping:
Host rule
Host
HostName → entity_name
Account rule
Account
Name → entity_name, UPNSuffix → entity_uid
Custom Alert Details — Each alert includes the following details extracted from Vectra: Detection ID, Detection Name, Detection Category, Entity ID, Entity UID, Entity URL, Entity Type, Tags, Assigned To, Investigation Status, External Reference, and MITRE Techniques.
Enabling Analytics Rules
Open Microsoft Sentinel and navigate to Analytics.
Select Rule templates.
Search for
Vectra RUX.Select each Vectra RUX rule template.
Select Create rule, review the configuration, and enable the rule.
Playbooks
The Vectra AI RUX solution includes 16 Microsoft Sentinel playbooks implemented as Azure Logic Apps. These playbooks extend Sentinel's SOAR capabilities, allowing analysts and automation workflows to interact directly with the Vectra AI platform for detection triage, entity management, assignment workflows, tagging, timeline synchronization, and PCAP evidence collection. The playbooks are connector-agnostic and work whether detections are ingested via the CCF connector or the legacy Function App connector.
Playbook Categories
Authentication
Generate and manage OAuth tokens
Detection Operations
Close, reopen, remediate, and tag detections
Entity Operations
Add notes, tags, assignments, and group membership
Incident Enrichment
Decorate incidents and synchronize timelines
Assignment and Triage
Assign ownership and resolve Vectra assignments
Notifications
Send Teams notifications and escalation prompts
Evidence Collection
Download PCAP files
Extensibility
Provide starter workflows for customization
Included Playbooks
VectraGenerateAccessToken
Generates OAuth access tokens for dependent playbooks
VectraCloseDetections
Closes one or more detections with a specified closure reason
VectraOpenClosedDetections
Reopens previously closed detections
VectraSetDetectionStatus
Automatically acknowledges or closes detections based on Sentinel incident status
VectraAddNoteToEntity
Adds notes to Vectra entities
VectraAddNoteToDetections
Adds notes to individual Vectra detections
VectraAddTagToEntity
Adds tags to Vectra entities
VectraAddTagToDetections
Adds tags to individual Vectra detections
VectraAddTagToSelectedDetections
Adds tags to analyst-selected detections
VectraAddTagToEntityAllDetections
Adds tags to all detections associated with an entity
VectraAssignDynamicUserToEntity
Allows analysts to dynamically select and assign a Vectra user
VectraAssignStaticUserToEntity
Assigns a predefined Vectra user to an entity
VectraStaticAssignMemberToGroup
Adds entities to a predefined group
VectraDynamicAssignMemberToGroup
Allows dynamic group selection and entity assignment
VectraIncidentTimelineUpdate
Synchronizes and deduplicates Sentinel incident timeline data
VectraDownloadPcapFileToStorage
Retrieves PCAP evidence from Vectra to Azure Storage
Best Practices & Operations
Operational best practices for the Vectra RUX integration with Microsoft Sentinel CCF are covered in the Vectra RUX Best Practices for Microsoft Sentinel guide. That document includes recommendations for data queries, parser usage, analytics rule configuration, connector operations, and SOC workflow guidance — including how to use automation rules and playbooks across the full incident lifecycle to accurately capture Vectra's MTTI and MTTR metrics.
Appendix: Data Schema
Detections_Data_CCF_CL
TimeGenerated
datetime
Time the record was ingested or derived from the detection event timestamp
Type
string
Azure Log Analytics table type
TenantId
string
Azure tenant identifier
_ResourceId
string
Azure resource identifier
id
real
Autoincrementing event ID used for checkpointing
detection_id
real
Vectra detection ID
change_type
string
Detection event change type
event_timestamp
datetime
Timestamp of the detection event in Vectra
event_type
string
Vectra event type
category
string
Detection category
threat
real
Threat score
certainty
real
Certainty score
severity
real
Severity score
d_type_vname
string
Human-readable detection type name
triaged
bool
Whether the detection has been triaged
detail
dynamic
Raw detection detail payload
d_detection_details
dynamic
Detection details object
detection_href
string
Direct link to the detection
detection_type
string
Internal detection type identifier
entity_id
real
Associated entity ID
entity_uid
string
Associated entity unique identifier
entity_name
string
Associated entity name
entity_type
string
Associated entity type
url
string
Direct link to associated entity
mitre
dynamic
MITRE ATT&CK mappings
is_prioritized
bool
Whether the detection is prioritized
is_targeting_key_asset
string
Whether the detection targets a key asset
unresolved_priority
bool
Whether the detection is an unresolved priority
investigation_status
string
Vectra investigation status
reason
string
Reason or status context
src_host
dynamic
Source host object
src_host_id
long
Source host ID
src_host_ip
string
Source host IP address
src_ip
string
Source IP alias
src_host_name
string
Source host name
src_host_url
string
Source host URL
src_host_certainty
real
Source host certainty score
src_host_threat
real
Source host threat score
src_host_is_key_asset
bool
Whether source host is a key asset
src_host_groups
dynamic
Source host group memberships
src_account
dynamic
Source account object
src_account_id
long
Source account ID
src_account_name
string
Source account name
src_account_url
string
Source account URL
src_account_groups
dynamic
Source account group memberships
dst_host
dynamic
Destination host object
dst_host_id
long
Destination host ID
dst_host_ip
string
Destination host IP address
dst_host_name
string
Destination host name
dst_host_url
string
Destination host URL
dst_host_session_luid
string
Destination host session LUID
dst_host_groups
dynamic
Destination host group memberships
dst_account
dynamic
Destination account object
dst_account_id
long
Destination account ID
dst_account_name
string
Destination account name
dst_account_uid
string
Destination account UID
dst_account_url
string
Destination account URL
dst_account_groups
dynamic
Destination account group memberships
dst_domain
dynamic
Destination domain object
dst_domain_dns
string
Destination domain DNS value
dst_domain_domain
string
Destination domain name
dst_domain_external_target
string
Destination external target
src_external_host
dynamic
External source host object
src_external_host_ip
string
External source host IP
src_external_host_name
string
External source host name
data_source
dynamic
Data source object
data_source_sensor_id
string
Sensor ID
data_source_sensor_name
string
Sensor name
data_source_type
string
Data source type
filters
dynamic
Filter metadata
filters_filtered_by_ai
bool
Whether filtered by AI
filters_filtered_by_rule
bool
Whether filtered by rule
filters_filtered_by_user
bool
Whether filtered by user
filters_is_custom_model
bool
Whether custom model filtering applied
filters_triaged
bool
Filter triage state
assignment
dynamic
Assignment object
assignment_id
long
Assignment ID
assignment_assigned_by
dynamic
Assigned-by user object
assignment_assigned_by_id
long
Assigned-by user ID
assignment_assigned_by_username
string
Assigned-by username
assignment_assigned_to
dynamic
Assigned-to user object
assignment_assigned_to_id
long
Assigned-to user ID
assignment_assigned_to_username
string
Assigned-to username
assignment_date_assigned
datetime
Assignment date
summary
dynamic
Detection summary
grouped_details
dynamic
Grouped detection details
tags
dynamic
Detection tags
normal_domains
dynamic
Normal domain context
external_reference_id
string
External ticket or case reference ID
process_context_data
dynamic
EDR or process context data
Entities_Data_CCF_CL
TimeGenerated
datetime
Time the record was ingested or derived from last modified timestamp
Type
string
Azure Log Analytics table type
TenantId
string
Azure tenant identifier
_ResourceId
string
Azure resource identifier
id
real
Vectra entity ID
name
string
Entity name
breadth_contrib
real
Breadth contribution to urgency
importance
real
Entity importance score
entity_type
string
Entity type
is_prioritized
bool
Whether the entity is prioritized
severity
string
Entity severity
urgency_score
real
Urgency score
velocity_contrib
real
Velocity contribution
detection_set
dynamic
Associated detection set
last_detection_timestamp
datetime
Timestamp of latest detection
last_modified_timestamp
datetime
Last entity modification timestamp
notes
dynamic
Entity notes
attack_rating
real
Attack rating
privilege_level
real
Privilege level
privilege_category
string
Privilege category
attack_profile
string
Attack profile
sensors
dynamic
Associated sensors
state
string
Entity state
tags
dynamic
Entity tags
url
string
Entity URL
host_type
dynamic
Host type details
account_type
dynamic
Account type details
ip
string
IP address
assignment
dynamic
Raw assignment object
assignment_id
real
Assignment ID
assignment_assigned_by
dynamic
Assigned-by user object
assignment_assigned_by_id
real
Assigned-by user ID
assignment_assigned_by_username
string
Assigned-by username
assignment_date_assigned
datetime
Assignment date
assignment_assigned_to
dynamic
Assigned-to user object
assignment_assigned_to_id
real
Assigned-to user ID
assignment_assigned_to_username
string
Assigned-to username
Lockdown_Data_CCF_CL
TimeGenerated
datetime
Time the record was ingested or derived from lock event timestamp
Type
string
Azure Log Analytics table type
TenantId
string
Azure tenant identifier
_ResourceId
string
Azure resource identifier
id
real
Lockdown record ID
lock_event_timestamp
datetime
Time lockdown was applied
locked_by
string
User who initiated lockdown
unlock_event_timestamp
datetime
Time lockdown expires or was removed
entity_id
real
Locked entity ID
entity_name
string
Locked entity name
entity_type
string
Locked entity type
certainty
real
Certainty score retained for backward compatibility
Last updated
Was this helpful?