RiskRecon
Bring your RiskRecon third-party risk portfolio into JupiterOne. Track the cyber and privacy ratings of the vendors you monitor, review their open critical and high findings, and keep an inventory of RiskRecon portal users through queries and alerts.
- Installation
- Authorization
- Data Model
- Types
Installation
This integration connects to the RiskRecon API (https://api.riskrecon.com/v1, or https://api.sandbox.riskrecon.com/v1 for the sandbox) and ingests the third parties (Targets Of Evaluation, or TOEs) in your RiskRecon portfolio with their ratings, the open findings of the latest analysis of each third party, and the users of your RiskRecon portal. It authenticates with a RiskRecon API bearer token and only reads data. The integration is managed by JupiterOne and runs in the JupiterOne cloud, so no collector is needed.
Prerequisites
- A RiskRecon subscription with API access and a portfolio of monitored third parties.
- A RiskRecon API bearer token.
- Access to JupiterOne with permission to configure integrations.
Configuration in RiskRecon
Generate an API bearer token (a JWT) as described in Generate a Bearer Token. Copy the token and store it somewhere safe. Tokens can be valid for up to one year; when the token expires, the integration stops ingesting until you add a new token to the instance.
Configuration in JupiterOne
To install the RiskRecon integration in JupiterOne, navigate to the Integrations tab in JupiterOne and select RiskRecon. Click New Instance to begin configuring your integration.
Creating an instance requires the following:
-
The Account Name used to identify the RiskRecon 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 API Token fields and the Findings setting below.
Configuration fields
| Field | Required | Description |
|---|---|---|
| API Token | Yes | The RiskRecon API bearer token. It is masked in JupiterOne and sent in the Authorization: Bearer header. |
| Environment | No | Production (default) or Sandbox. |
| Finding Severities | No | Which finding severities to ingest: Critical, Critical and High (default), Critical, High and Medium, or All severities. |
When you save the instance, JupiterOne checks the settings and reads one vendor from the RiskRecon API. An invalid or expired token fails the check.
Click Create once all values are provided to finalize the integration.
Data Sources
Each data source can be enabled or disabled on its own. All data sources are disabled by default, so a new instance ingests only the riskrecon_account entity until you enable the ones you want. To enable them, open the instance, turn on the data sources under Data Sources, and save. They are ingested on the next run.
| Data Source | Description | Entities Created |
|---|---|---|
| Vendors | Third parties (TOEs) in your RiskRecon portfolio, with their overall cyber rating (letter and numeric), privacy rating when RiskRecon reports one, the rating of each security domain, subscription level, scan frequency, your internal IDs and names, and seed hostnames. | riskrecon_vendor |
| Findings | Open findings from the latest analysis of each vendor, limited to the Finding Severities setting, with severity, priority, security domain and criteria, asset value, CVE IDs, affected host and IP address, first and last seen dates, and remediation guidance. Requires Vendors. | riskrecon_finding |
| Users | Users of your RiskRecon portal, with their name, email, status, scopes and last sign-in. | riskrecon_user |
Relationships are built only when the data source they need is enabled:
| Relationship | Requires |
|---|---|
riskrecon_account HAS riskrecon_vendor | Vendors |
riskrecon_vendor HAS riskrecon_finding | Vendors and Findings |
riskrecon_account HAS riskrecon_user | Users |
Notes
- Findings volume. The integration makes one paginated request per vendor and severity. Large portfolios with All severities selected can take noticeably longer to ingest; the default, Critical and High, keeps the volume bounded.
- Vendors without findings access are skipped. If RiskRecon denies findings for a vendor (for example, because of its subscription level) or no longer has the vendor, the integration skips that vendor's findings and continues. If your token is denied findings for every vendor, the Findings data source fails so previously ingested findings are kept.
- Only open findings of the latest analysis are ingested. Findings that RiskRecon no longer reports are removed from the graph on the next run.
- Vendor findings are not linked to your own assets. RiskRecon findings describe your third parties' internet-facing systems, so
riskrecon_findingentities connect to theriskrecon_vendorthey belong to, not to hosts in your environment. - Personal data. User phone numbers returned by RiskRecon are not ingested.
- Every run is a full sync. Vendors, findings and users that RiskRecon no longer reports are removed from the graph on the next run.
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
Endpoints
API endpoints that the integration makes requests to.
Show Endpoints (3)
https://api.riskrecon.com/v1/findings_paginated/{toe_id}https://api.riskrecon.com/v1/toes_paginatedhttps://api.riskrecon.com/v1/user_mgmt
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 | Endpoints |
|---|---|
| Fetch Findings | https://api.riskrecon.com/v1/findings_paginated/{toe_id} |
Entities
The following entities are created:
| Resources | Entity _type | Entity _class |
|---|---|---|
| Account | riskrecon_account | Account |
| Finding | riskrecon_finding | Finding |
| User | riskrecon_user | User |
| Vendor | riskrecon_vendor | Vendor |
Relationships
The following relationships are created:
Source Entity _type | Relationship _class | Target Entity _type |
|---|---|---|
riskrecon_account | HAS | riskrecon_vendor |
riskrecon_account | HAS | riskrecon_user |
riskrecon_vendor | HAS | riskrecon_finding |
Riskrecon Account
riskrecon_account inherits from Account
| Property | Type | Description | Specifications |
|---|---|---|---|
environment * | string | RiskRecon API environment: production or sandbox. |
Riskrecon Finding
riskrecon_finding inherits from Finding
| Property | Type | Description | Specifications |
|---|---|---|---|
analysisId | string | null | Id of the analysis the finding belongs to. | |
assetValue | string | null | Value of the affected asset: high, medium, low, idle or key. | |
cveIds | array | null | CVE ids associated with the finding. | |
domainName | string | null | Domain name associated with the finding. | |
findingDataDescription | string | null | Description of the data observed for the finding. | |
findingDataValue | string | null | Data observed for the finding. | |
findingId * | string | RiskRecon finding id. | |
firstSeenOn | number | null | When the finding was first seen. | |
hostingProvider | string | null | Hosting provider of the affected host. | |
hostName | string | null | Name of the affected host. | |
howToFixIt | string | null | RiskRecon remediation guidance. | |
ipAddress | string | null | IP address of the affected host. | |
lastSeenOn | number | null | When the finding was last seen. | |
privacyCriteria | string | null | Privacy criteria of the finding, when it matches the privacy risk dimension. | |
securityCriteria | string | null | Security criteria of the finding (e.g. patching_app_server). | |
securityDomain | string | null | Security domain of the finding (e.g. software_patching). | |
supportSite | string | null | Support site referenced for the fix. | |
vendorSeverity | string | null | Severity as reported by RiskRecon: critical, high, medium or low. | |
whoShouldFixIt | string | null | Who RiskRecon recommends should fix it. |
Riskrecon User
riskrecon_user inherits from User
| Property | Type | Description | Specifications |
|---|---|---|---|
eulaAcceptedOn | number | null | When the user accepted the EULA. | |
lastSignInOn | number | null | When the user last signed in to the RiskRecon portal. | |
primaryUserId | number | null | Id of the primary user when this is a secondary account of the same person. | |
scopeNames | array | null | RiskRecon scopes granted to the user. |
Riskrecon Vendor
riskrecon_vendor inherits from Vendor
| Property | Type | Description | Specifications |
|---|---|---|---|
analysisId | string | null | Id of the most recent RiskRecon analysis. | |
cyberRating | string | null | Overall cyber rating label of the latest analysis (A to F). | |
cyberRatingNumeric | number | null | Overall numeric cyber rating of the latest analysis (0 to 10). | |
dunsNumbers | array | null | DUNS numbers of the TOE, when known. | |
frequency | string | null | Scan frequency: one_time or continuous. | |
inherentRisks | array | null | Inherent risk levels assigned to the TOE in the customer portfolio. | |
internalIds | array | null | Customer-defined identifiers for the TOE. | |
internalNames | array | null | Customer-defined names for the TOE. | |
privacyRating | string | null | Overall privacy rating label, for customers with a privacy license. | |
privacyRatingNumeric | number | null | Overall numeric privacy rating, for customers with a privacy license. | |
privacySubscriptionLevel | string | null | RiskRecon privacy subscription level for this TOE. | |
riskRelationships | array | null | Custom categories (risk relationships) the TOE is filed under in the customer portfolio. | |
securityDomainNumericRatings | array | null | Rated security domains with their numeric rating, formatted as dimension.security_domain=rating (e.g. cyber.software_patching=7.2). | |
securityDomainRatings | array | null | Rated security domains with their rating label, formatted as dimension.security_domain=rating (e.g. cyber.software_patching=B). | |
seedHostnames | array | null | Hostnames used to start the RiskRecon scan (not every hostname found). | |
subscriptionLevel | string | null | RiskRecon subscription level for this TOE. | |
tickerSymbols | array | null | Stock ticker symbols of the TOE, formatted as EXCHANGE:SYMBOL (or just SYMBOL when no exchange is given). | |
toeId * | string | RiskRecon Target Of Evaluation (TOE) id (UUID). | |
unratedSecurityDomains | array | null | Security domains that are not rated for this TOE, formatted as dimension.security_domain. |