Table of Contents | ||||||
---|---|---|---|---|---|---|
|
Overview
This collector ingests Recorded Future Threat Intelligence data into Devo as lookup tables to enable the following use cases:
Alerting - detects and alerts on potential security threats through correlation with other data types ingested into Devo, for example, firewall, proxy, or EDR logs.
Alert enrichment - adds contextual data about each entity and enriches security alerts.
The collector is available to all Devo customers with a valid Recorded Future license and API subscription.
Benefits
Reduce dwell time - through the correlation of Recorded Future Threat Intelligence and machine-generated data from systems in the network, your Security team can uncover threats that they would otherwise not know about and therefore reduce the dwell time of potential cyber-attacks.
Reduce mean-time-to-respond (MTTR) - enriched alerts provide your Security team with additional context about detected threats. This context can help to reduce the time required to complete the triage and /or investigation of the alert and inform a suitable response to mitigate the threat.
Integration architecture
...
Configuration
Recorded Future configuration
The only source configuration required is Recorded Future is a threat intelligence provider that allows you to access known bad incidents of compromise and entity enrichment capabilities. It has 6 different modules and charges on a per-user basis for access to the product. The 6 different modules are:
Security Operations: Providing intel into SIEM / SOAR platforms.
Standalone Threat Intelligence: An extension of Security Operations providing context and enrichment of known and emerging threats/incidents.
Brand Intelligence: Monitoring an organization’s external exposure.
Vulnerability Management: Intelligence into the prioritization of threats.
Third party intelligence: Data from third party sources.
Geo-political: More focussed on nation-state attacks and threat indicators.
Note |
---|
Recorded Future also charges customers for each integration they use. For example, a mutual customer of Recorded Future and Devo using this integration will pay Recorded Future a subscription fee. |
Devo collector features
Feature | Details |
---|---|
Allow parallel downloading ( |
|
Running environments |
|
Populated Devo events |
|
Data sources
Data Source | Description | API Endpoint | Collector service name | Devo Table | Available from release |
IpAddressLookupPuller | This endpoint provides a list of IPs classified as Threat by Recorded Future. |
|
type: | Lookup
|
|
DomainLookupPuller | This endpoint provides a list of domains classified as Threat by Recorded Future. |
|
| Lookup
|
|
FileHashLookupPuller | This endpoint returns a list of file hashes classified as Threat by Recorded Future. |
|
| Lookup
|
|
UrlLookupPuller | This endpoint returns a list of URL classified as Threat by Recorded Future. |
|
| Lookup
??? |
|
VulnerabilityLookupPuller | This endpoint returns a list of vulnerabilities classified as Threat by Recorded Future. |
|
| Lookup
|
|
PublicUkraineRussiaIpsLookupPuller | This endpoint returns a list of IPs related with Russia and Ukraine. |
|
| Lookup
|
|
Vendor setup
This collector only requires a source configuration by generating a Recorded Future API key. Recorded Future clients with Advanced or Core licenses, and one or more Connect API subscriptions can create and manage their API tokens directly in the Recorded Future portal.
Enable the collection
Here you find the necessary steps to enable the collection.
...
1 | Steps | Screenshots |
2 | Login to your Recorded Future account |
...
. Open the Menu in the upper-right corner |
...
and select the option User Settings |
...
. |
...
3 | Select the API Access tab. |
...
To create a new API token, click on Generate New API Token. |
...
...
4 | Enter a name for the token in the Name field. Then click on Generate. | - |
5 | Select Devo from the drop-down integration list |
...
- | |
6 | Click on the Generate new API token button. The new API token appears in the table below. Make a note of the token value as this is required for the ingest |
...
Configuration. |
Devo configuration
The integration is hosted by Devo, enabling cloud-to-cloud ingestion of data. To enable the integration in your Devo domain:
Contact Devo support and provide your Recorded Future API token.
Devo support will then enable the integration on your behalf.
Using the integration
View lookup tables
To view the Devo lookup tables created by the integration:
Log in to your Devo domain.
Open the Data Search menu and click the Lookup Management tab.
You will see the new lookup tables in the Lookup List table, where you can view the number of rows included in the lookup and the time that the lookup table was last updated.
Hover over the right-hand side of a row in the Lookup List table to view summary information and manage the lookup table.
Run some sample correlation queries
With the lookup tables installed, you can use the data to run some sample queries. The examples below are designed to give you a starting point with the new data.
...
Rw step |
---|
Log in to your Devo domain.
Rw step |
---|
Open the Data Search menu.
Rw step |
---|
In the Explore Your Data tab, click the Free Text Query sub-tab.
Rw step |
---|
Copy and paste one of the queries from the table below to view the results:
...
Lookup
...
Query description
...
Query
...
IPv4 Address Threat List
...
Browse the data included in the IPv4 Threat List
...
Code Block |
---|
from my.lookuplist.Recorded_Future_IPv4_Address_Threat_List |
...
View the srcIP address of devices attempting to connect to malicious IP addresses
...
Code Block |
---|
from firewall.all.traffic
select `lu/Recorded_Future_IPv4_Address_Threat_List/Risk`(dstIp)
as RecordedFutureRiskScore
select `lu/Recorded_Future_IPv4_Address_Threat_List/RiskString`(dstIp)
as RecordedFutureRiskString
select `lu/Recorded_Future_IPv4_Address_Threat_List/EvidenceDetails`(dstIp)
as RecordedFutureEvidence
where isnotnull(RecordedFutureRiskScore)
group dstIp, srcIp
select count(srcIp) as Count |
...
View the users attempting to connect to malicious IP addresses
...
Code Block |
---|
from proxy.all.access
select `lu/Recorded_Future_IPv4_Address_Threat_List/Risk`(dstIp)
as RecordedFutureRiskScore
select `lu/Recorded_Future_IPv4_Address_Threat_List/RiskString`(dstIp)
as RecordedFutureRiskString
select `lu/Recorded_Future_IPv4_Address_Threat_List/EvidenceDetails`(dstIp)
as RecordedFutureEvidence
where isnotnull(RecordedFutureRiskScore)
group dstIp, dstHost, user
select count(user) as Count |
...
Domain Threat List
...
Browse the data included in the domain threat list
...
Code Block |
---|
from my.lookuplist.Recorded_Future_Domain_Threat_List |
...
View the users attempting to connect to potentially malicious domains and how many times
...
Code Block |
---|
from proxy.all.access
select `lu/Recorded_Future_Domain_Threat_List/Risk`(dstHost)
as RecordedFutureRiskScore
where isnotnull(RecordedFutureRiskScore)
group dstHost, user
select count(user) as Count |
...
File Hash Threat List
...
Browse the data included in the file hash threat list
...
Code Block |
---|
from my.lookuplist.Recorded_Future_File_Hash_Threat_List |
...
Correlates Recorded Future File Hash intelligence with the sha256hash field in the edr.all.threats
union table
...
Code Block |
---|
from edr.all.threats
select `lu/Recorded_Future_File_Hash_Threat_List/Risk`(sha256hash)
as RecordedFutureRiskScore
select `lu/Recorded_Future_File_Hash_Threat_List/RiskString`(sha256hash)
as RecordedFutureRiskString
select `lu/Recorded_Future_File_Hash_Threat_List/EvidenceDetails`(sha256hash)
as RecordedFutureEvidence
where isnotnull(RecordedFutureRiskScore) |
Install some sample alerts
A primary use case for ingesting threat intelligence into Devo is to drive alerting to detect potential threats in your environment. The examples below are designed to give you a starting point to create alerts based on Recorded Future Threat Intelligence.
Connection to potentially malicious IPv4 Address (Firewall)
Note |
---|
This alert requires the |
...
Rw step |
---|
Log in to your Devo domain.
Rw step |
---|
Open the Data Search menu.
Rw step |
---|
In the Explore Your Data tab, click the Free Text Query sub-tab.
Rw step |
---|
Copy and paste the query below and click the Run button.
Code Block |
---|
from firewall.all.traffic
select `lu/Recorded_Future_IPv4_Address_Threat_List/Risk`(dstIp) as RecordedFutureRiskScore
select `lu/Recorded_Future_IPv4_Address_Threat_List/RiskString`(dstIp) as RecordedFutureRiskString
select `lu/Recorded_Future_IPv4_Address_Threat_List/EvidenceDetails`(dstIp) as RecordedFutureEvidence
where isnotnull(RecordedFutureRiskScore)
group every 1m by source, fwname, action, srcIp, srcZone, dstIp, dstZone, RecordedFutureRiskScore, RecordedFutureRiskString, RecordedFutureEvidence |
Rw step |
---|
From the search window, click the Alert definition button.
Rw step |
---|
Complete the New Alert Definition form using the values in the table below and click Create.
...
Summary
...
Connection to potentially malicious IPv4 Address from $srcIp
...
Description
...
A connection to a potentially malicious IP address was detected on $eventdate from $srcIp to $dstIp using the $source firewall.
Log Source: $source
Firewall: $fwname
Action: $action
Source: $srcIp ($srcZone)
Destination: $dstIp ($dstZone)
Recorded Future Risk Score: $RecordedFutureRiskScore
Recorded Future Risk Rules: $RecordedFutureRiskString
Recorded Future Evidence: $RecordedFutureEvidence
...
Alert Name
...
Connection to potentially malicious IPv4 Address - Firewall
...
Sub-category
...
Recorded Future Intel
...
Recommended Priority
...
Medium
...
Alert Type
...
Each
The new alert is created and can be viewed in the Administration → Alert Configuration menu.
Connection to a potentially malicious domain
Note |
---|
This alert requires the |
...
Rw step |
---|
Log in to your Devo domain.
Rw step |
---|
Open the Data Search menu.
Rw step |
---|
In the Explore Your Data tab, click the Free Text Query sub-tab.
Rw step |
---|
Copy and paste the query below and click the Run button.
Code Block |
---|
from proxy.all.access
select `lu/Recorded_Future_Domain_Threat_List/Risk`(dstHost) as RecordedFutureRiskScore
select `lu/Recorded_Future_Domain_Threat_List/RiskString`(dstHost) as RecordedFutureRiskString
select `lu/Recorded_Future_Domain_Threat_List/EvidenceDetails`(dstHost) as RecordedFutureEvidence
where isnotnull(RecordedFutureRiskScore)
group every 1m by source, user, location, srcIp, srcHost, dstIp, dstHost, hitMiss_requestStat, RecordedFutureRiskScore, RecordedFutureRiskString, RecordedFutureEvidence |
Rw step |
---|
From the search window, click the Alert definition button.
Rw step |
---|
Complete the New Alert Definition form using the values in the table below and click Create.
...
Summary
...
A connection to a potentially malicious domain was detected by $user
...
Description
...
A connection to a potentially malicious domain ($dstHost) was detected on $eventdate by $user using the $source proxy.
Source: $source
User: $user
Source: $srcIp (Host: $srcHost, Location: $location)
Destination: $dstIp ($dstHost)
Action: $hitMiss_requestStat
Recorded Future Risk Score: $RecordedFutureRiskScore
Recorded Future Risk Rules: $RecordedFutureRiskString
Recorded Future Evidence: $RecordedFutureEvidence
...
Alert Name
...
Connection to a potentially malicious domain
...
Sub-category
...
Recorded Future Intel
...
Recommended Priority
...
Medium
...
Alert Type
...
Each
...
- |
Minimum configuration required for basic pulling
Although this collector supports advanced configuration, the fields required to retrieve data with basic configuration are defined below.
Info |
---|
This minimum configuration refers exclusively to those specific parameters of this integration. There are more required parameters related to the generic behavior of the collector. Check setting sections for details. |
Setting | Details |
---|---|
| This param refers to the endpoint used by the collector to pull data. |
| This is the access token provided by Recorded Future. |
| This configuration allows you to define what data sources will be pulled. |
Run the collector
Once the data source is configured, you can either send us the required information if you want us to host and manage the collector for you (Cloud collector), or deploy and host the collector in your own machine using a Docker image (On-premise collector).
Rw ui tabs macro | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
We use a piece of software called Collector Server to host and manage all our available collectors. If you want us to host this collector for you, get in touch with us and we will guide you through the configuration.
This data collector can be run in any machine that has the Docker service available because it should be executed as a docker container. The following sections explain how to prepare all the required setup for having the data collector running. StructureThe following directory structure should be created for being used when running the collector:
Devo credentialsIn Devo, go to Administration → Credentials → X.509 Certificates, download the Certificate, Private key and Chain CA and save them in
Editing the config.yaml file
Replace the placeholders with your required values following the description table below:
Download the Docker imageThe collector should be deployed as a Docker container. Download the Docker image of the collector as a .tgz file by clicking the link in the following table:
Use the following command to add the Docker image to the system:
The Docker image can be deployed on the following services: DockerExecute the following command on the root directory
Docker ComposeThe following Docker Compose file can be used to execute the Docker container. It must be created in the
To run the container using docker-compose, execute the following command from the
|
Change log for v1.x.x
Release | Released on | Release type | Details | Recommendations | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| New features:
|
| |||||||||||||
|
| Improvement:
Vulnerabilities mitigated:
|
| |||||||||||||
|
| New features:
|
|
Configuration checklist
Here you will find a brief checklist of the important configurations that need to be done for deploying this collector:
Configuration | Requirements |
---|---|
Recorded Future API key |
Refer to the Enable the collection section. |