Varonis
Bring Varonis SaaS threat detection into JupiterOne. Ingest your Varonis threat models and the alerts they raise, see which users and hosts each alert involves, and query, prioritize and alert on Varonis findings next to the rest of your assets.
- Installation
- Authorization
- Data Model
- Types
Installation
This integration connects to the Varonis SaaS API on your tenant (https://<your tenant>.varonis.io) and ingests your Varonis threat models and the alerts they raised. It authenticates with a Varonis API key, which it exchanges for a short-lived access token, and it only reads data. The integration is managed by JupiterOne and runs in the JupiterOne cloud, so no collector is needed.
This version supports Varonis SaaS. Self-hosted Varonis Data Security Platform (DatAdvantage) is not supported yet.
Prerequisites
- A Varonis SaaS tenant, and an administrator who can create API keys.
- Access to JupiterOne with permission to configure integrations.
Configuration in Varonis
Create an API key
- Sign in to your Varonis SaaS tenant.
- Open Configuration > API Keys and create a new API key.
- Assign the key the Threat Detection Integrator role.
- Copy the key and store it somewhere safe.
Find your tenant hostname
The hostname is the address you use to sign in to Varonis SaaS, without https:// or a path, for example acme.varonis.io.
Configuration in JupiterOne
To install the Varonis integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select Varonis. Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
The Account Name used to identify the Varonis account in JupiterOne. Ingested entities will have this value stored in
tag.AccountNamewhen theAccountNametoggle is enabled. -
Description to assist in identifying the integration instance, if desired.
-
Polling Interval that you feel is sufficient for your monitoring needs. You may leave this as
DISABLEDand manually execute the integration. -
The fields below.
Authentication fields
| Field | Required | Description |
|---|---|---|
| Varonis Hostname | Yes | Your Varonis SaaS tenant hostname, for example acme.varonis.io. An https:// prefix is accepted; a path, port or IP address is not. |
| API Key | Yes | The Varonis API key created above. It is masked in JupiterOne. |
Alert settings
| Field | Default | Description |
|---|---|---|
| Alert Lookback | 30 days | How many days of alerts to ingest, by alert time: 30, 60 or 90 days. |
| Minimum Alert Severity | Medium and above | The lowest alert severity to ingest: High, Medium and above, Low and above, or All (including Informational). |
When you save the instance, JupiterOne exchanges the API key for an access token and reads your threat models. A wrong hostname or an API key that is invalid, expired or missing the Threat Detection Integrator role fails the check.
Click Create once all values are provided to finalize the integration.
Data Sources
The data source is disabled by default, so a new instance ingests only the varonis_account entity until you enable it. To enable it, open the instance, turn on Threat Models and Alerts under Data Sources, and save. It is ingested on the next run.
| Data Source | Description | Entities Created |
|---|---|---|
| Threat Models and Alerts | Varonis threat models, and the alerts they raised in the lookback window at or above the minimum severity, with their severity, status, category, close reason, event count, asset path, MITRE tactic and whether sensitive data is involved. | varonis_threat_model, varonis_alert |
| Relationship | Requires |
|---|---|
varonis_account HAS varonis_threat_model | Threat Models and Alerts |
varonis_threat_model GENERATED varonis_alert | Threat Models and Alerts |
User HAS varonis_alert (mapped) | Threat Models and Alerts, and a User entity whose username matches |
Host HAS varonis_alert (mapped) | Threat Models and Alerts, and a Host entity whose hostname matches |
Required permissions
The API key needs the Threat Detection Integrator role. The integration only reads threat models and alerts; it never changes alert status or adds notes.
Notes
- Users and hosts are matched by name. An alert is related to the
Userentities whoseusernameequals the SAM account name Varonis reports (without aDOMAIN\prefix), and to theHostentities whosehostnameequals the device hostname Varonis reports. Both the reported spelling and its lowercase form are matched, for up to 10 users and 10 hosts per alert. Directory integrations that store a different form, such as an email address, asusernameare not matched. Device names that are IP addresses are not matched. - The alert window rolls forward. Each run ingests the alerts from the last 30, 60 or 90 days. Alerts that fall out of the window, or below the minimum severity, are removed from the graph on the next run. Lowering the lookback or raising the minimum severity removes the alerts outside the new setting.
- Alerted events are not ingested. The integration reads alerts, not the individual events behind them.
- Raw data is not stored for alerts. Every alert field the integration reads is mapped to a property, so
varonis_alertraw data holds only a redaction note. - Alert searches run asynchronously. Varonis runs each alert search on the tenant and the integration waits for it to finish, up to about three minutes, before it reads the results.
Next steps
Now that your integration instance has been configured, it will begin running on the polling interval you provided, populating data within JupiterOne. Continue on to our Instance management guide to learn more about working with and editing integration instances.
Additional resources
Roles
RBAC roles that must be assigned to the integration principal.
Show Roles (1)
Threat Detection Integrator
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (4)
https://{hostname}/api/authentication/api_keys/tokenhttps://{hostname}/api/entitymodel/enum/5821https://{hostname}/app/dataquery/api/search/v2/searchhttps://{hostname}/app/dataquery/api/search/{location}
Documentation Links
Links to provider documentation relevant to setup and configuration.
Show Documentation Links (3)
Per-Step Breakdown
Detailed authorization requirements for each ingestion step.
Show all steps (1)
| Step | Roles | Endpoints |
|---|---|---|
| Fetch Alerts | Threat Detection Integrator | https://{hostname}/api/authentication/api_keys/token, https://{hostname}/app/dataquery/api/search/v2/search, https://{hostname}/app/dataquery/api/search/{location} |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | varonis_account | Account |
| Alert | varonis_alert | Finding |
| Threat Model | varonis_threat_model | Rule |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
varonis_account | HAS | varonis_threat_model |
varonis_threat_model | GENERATED | varonis_alert |
Mapped Relationships
The following mapped relationships are created:
Source Entity _type | Relationship _class | Target Entity _type | Direction |
|---|---|---|---|
varonis_alert | HAS | User | REVERSE |
varonis_alert | HAS | Host | REVERSE |
Varonis Account
varonis_account inherits from Account
| Property | Type | Description | Specifications |
|---|---|---|---|
hostname * | string | Fully qualified hostname of the Varonis SaaS tenant. |
Varonis Alert
varonis_alert inherits from Finding
| Property | Type | Description | Specifications |
|---|---|---|---|
alertId * | string | Varonis alert id (Alert.ID, a GUID). | |
assetPath | string | null | Path of the asset (file, folder, mailbox, site) the alert is about, as reported by Varonis. | |
closeReason | string | null | Reason the alert was closed (Alert.CloseReason.Name), e.g. "Benign activity". | |
deviceHostnames | array | null | Hostnames of the devices involved in the alert; used to relate the alert to Host entities. | |
eventsCount | number | null | Number of events attached to the alert. | |
filerNames | array | null | Names of the file servers or domains where the alerted activity happened. | |
ingestedOn | number | null | When Varonis ingested the alert (Alert.IngestTime). | |
initialEventOn | number | null | Time of the first event that contributed to the alert (Alert.Initial.Event.TimeUTC). | |
isFlaggedData | boolean | null | Whether the alert involves data flagged in Varonis. | |
isMaliciousExternalIp | boolean | null | Whether a device on the alert connected from an external IP Varonis considers malicious. | |
isSensitiveData | boolean | null | Whether the alert involves data Varonis classified as sensitive. | |
mitreTactic | string | null | MITRE ATT&CK tactic of the threat model, when reported. | |
platforms | array | null | Platforms of those file servers or domains, e.g. Windows, SharePoint Online, Exchange Online. | |
userName | string | null | Name of the user (or users, comma-separated) involved in the alert, as reported by Varonis. | |
userSamAccountNames | array | null | SAM account names of the users involved in the alert; used to relate the alert to User entities by username. | |
vendorSeverity | string | null | Severity as reported by Varonis: High, Medium, Low or Informational. |
Varonis Threat Model
varonis_threat_model inherits from Rule
| Property | Type | Description | Specifications |
|---|---|---|---|
ruleSource | string | null | Origin of the threat model as reported by Varonis, e.g. "Predefined", when present. | |
vendorSeverity | string | null | Threat model severity exactly as reported by Varonis, e.g. "3 - Error", when present. |