-
Notifications
You must be signed in to change notification settings - Fork 469
Domaintools Feeds Integration v1.1.0 #14423
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
4192e2f
4c822f3
06689eb
e450e16
9d45ddc
5b3e799
9adcb34
9b70daa
1cce741
a052738
9a6c016
4622fb5
b7e7b2d
b14d38e
eb24e75
70aa23f
957ad2c
779f05f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,86 @@ | ||
# DomainTools Real Time Unified Feeds | ||
# DomainTools Feeds | ||
|
||
The DomainTools Real Time Unified Feeds integration allows you to monitor DomainTools Newly Observed Domains. | ||
The DomainTools NOD Feed provides real-time access to newly registered and observed domains, enabling proactive threat detection and defense. | ||
DomainTools Feeds provide data on the different stages of the domain lifecycle: from first-observed in the wild, to newly re-activated after a period of quiet. Access current feed data in real-time or retrieve historical feed data through separate APIs. Some feeds also offer data for DNS firewalls in Response Policy Zone (RPZ) format. | ||
|
||
With over 300,000 new domains observed daily, the feed empowers security teams to identify and block potentially malicious domains before they can be weaponized. | ||
Ideal for threat hunting, phishing prevention, and brand protection, the NOD Feed delivers unparalleled visibility into emerging domain activity to stay ahead of evolving threats. | ||
Summary of Available Feeds: | ||
|
||
For example, if you wanted to monitor Newly Observed Domains (NOD) feed, you could ingest the DomainTools NOD feed. | ||
Then you can reference domaintools.nod_feed when using visualizations or alerts. | ||
- `Newly Active Domains (NAD)`: Apex-level domains (e.g. example.com but not <www.example.com>) that we observe based on the latest lifecycle of the domain. A domain may be seen either for the first time ever, or again after at least 10 days of inactivity (no observed resolutions in DNS). Populated with our global passive DNS (pDNS) sensor network. | ||
- `Newly Observed Domains (NOD)`: Apex-level domains (e.g. example.com but not <www.example.com>) that we observe for the first time, and have not observed previously with our global DNS sensor network. | ||
- `Domain Discovery`: New domains as they are either discovered in domain registration information, observed by our global sensor network, or reported by trusted third parties. | ||
- `Domain RDAP`: Changes to global domain registration information, populated by the Registration Data Access Protocol (RDAP). Compliments the 5-Minute WHOIS Feed as registries and registrars switch from Whois to RDAP. | ||
|
||
With over 300,000 new domains observed daily, the feed empowers security teams to identify and block potentially malicious domains before they can be weaponized. | ||
Ideal for threat hunting, phishing prevention, and brand protection. | ||
|
||
For example, if you wanted to monitor Newly Observed Domains (NOD) feed, you could ingest the DomainTools NOD feed. | ||
Then you can reference ti_domaintools.nod_feed when using visualizations or alerts. | ||
|
||
## Data streams | ||
|
||
The DomainTools Real Time Unified Feeds integration collects one type of data streams: logs | ||
The DomainTools Feeds integration collects one type of data streams: **logs** | ||
|
||
Log data streams collected by the DomainTools integration include the following feeds: | ||
|
||
Log data streams collected by the DomainTools integration include the Newly Observed Domains (NOD) feed: Apex-level domains (e.g. Example Domain but not www.example.com) that we observe for the first time, and have not observed previously. | ||
Populated with our global DNS sensor network. | ||
- `Newly Observed Domains (NOD)` | ||
- `Newly Active Domains (NAD)` | ||
- `Domain Discovery` | ||
- `Domain RDAP` | ||
|
||
## Requirements | ||
|
||
You need Elasticsearch for storing and searching your data and Kibana for visualizing and managing it. | ||
You need Elasticsearch for storing and searching your data and Kibana for visualizing and managing it. | ||
You can use our hosted Elasticsearch Service on Elastic Cloud, which is recommended, or self-manage the Elastic Stack on your own hardware. | ||
|
||
You will require a license to one or more DomainTools feeds, and API credentials. | ||
Your required API credentials will vary with your authentication method, detailed below. | ||
You will require a license to one or more DomainTools feeds, and API credentials. | ||
Your required API credentials will vary with your authentication method, detailed below. | ||
|
||
Obtain your API credentials from your group’s API administrator. | ||
Obtain your API credentials from your group’s API administrator. | ||
API administrators can manage their API keys at research.domaintools.com, selecting the drop-down account menu and choosing API admin. | ||
|
||
## Setup | ||
|
||
For step-by-step instructions on how to set up an integration, see the Getting started guide. | ||
|
||
### Newly Observed Domains (NOD) Feed | ||
### Newly Observed Domains (NOD) Feed | ||
|
||
The `nod_feed` data stream provides events from [DomainTools Newly Observed Domains Feed](https://www.domaintools.com/products/threat-intelligence-feeds/). | ||
This data is collected via the [DomainTools Real Time Feeds API](https://docs.domaintools.com/feeds/realtime/). | ||
This data is collected via the [DomainTools Feeds API](https://docs.domaintools.com/feeds/realtime/). | ||
|
||
#### Example | ||
|
||
{{event "nod_feed"}} | ||
|
||
{{fields "nod_feed"}} | ||
|
||
### Newly Active Domains (NAD) Feed | ||
|
||
The `nod_feed` data stream provides events from [DomainTools Newly Active Domains Feed](https://www.domaintools.com/products/threat-intelligence-feeds/). | ||
This data is collected via the [DomainTools Feeds API](https://docs.domaintools.com/feeds/realtime/). | ||
|
||
#### Example | ||
|
||
{{event "nad_feed"}} | ||
|
||
{{fields "nad_feed"}} | ||
|
||
### Domain Discovery Feed | ||
|
||
The `domaindiscovery feed` data stream provides events from [DomainTools Domain Discovery Feed](https://www.domaintools.com/products/threat-intelligence-feeds/). | ||
This data is collected via the [DomainTools Feeds API](https://docs.domaintools.com/feeds/realtime/). | ||
|
||
#### Example | ||
|
||
{{event "domaindiscovery"}} | ||
|
||
{{fields "domaindiscovery"}} | ||
|
||
### Domain RDAP | ||
|
||
The `domainrdap feed` data stream provides events from [DomainTools Domain RDAP](https://www.domaintools.com/products/threat-intelligence-feeds/). | ||
This data is collected via the [DomainTools Feeds API](https://docs.domaintools.com/feeds/realtime/). | ||
|
||
#### Example | ||
|
||
{{event "domainrdap"}} | ||
|
||
{{fields "domainrdap"}} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,3 +6,91 @@ rules: | |
body: |- | ||
{"timestamp":"2025-01-11T08:42:46Z","domain":"test1.com"} | ||
{"timestamp":"2025-01-11T08:42:46Z","domain":"test2.com"} | ||
- path: /v1/feed/nad/ | ||
methods: [GET] | ||
responses: | ||
- status_code: 200 | ||
body: |- | ||
{"timestamp":"2025-01-11T08:42:46Z","domain":"test3.com"} | ||
{"timestamp":"2025-01-11T08:42:46Z","domain":"test4.com"} | ||
- path: /v1/feed/domaindiscovery/ | ||
methods: [GET] | ||
responses: | ||
- status_code: 200 | ||
body: |- | ||
{"timestamp":"2025-01-11T08:42:46Z","domain":"test5.com"} | ||
{"timestamp":"2025-01-11T08:42:46Z","domain":"test6.com"} | ||
- path: /v1/feed/domainrdap/ | ||
methods: [GET] | ||
responses: | ||
- status_code: 200 | ||
body: |- | ||
{ | ||
"timestamp": "2025-06-12T20:34:31Z", | ||
"domain": "unlockyourlifehere.com", | ||
"raw_record": { | ||
"first_request_timestamp": "2025-06-12T20:34:24Z", | ||
"requests": [ | ||
{ | ||
"data": "{\"objectClassName\":\"domain\",\"handle\":\"2894681047_DOMAIN_COM-VRSN\",\"ldhName\":\"UNLOCKYOURLIFEHERE.COM\",\"links\":[{\"value\":\"https:\\/\\/rdap.verisign.com\\/com\\/v1\\/domain\\/UNLOCKYOURLIFEHERE.COM\",\"rel\":\"self\",\"href\":\"https:\\/\\/rdap.verisign.com\\/com\\/v1\\/domain\\/UNLOCKYOURLIFEHERE.COM\",\"type\":\"application\\/rdap+json\"},{\"value\":\"https:\\/\\/rdap.godaddy.com\\/v1\\/domain\\/UNLOCKYOURLIFEHERE.COM\",\"rel\":\"related\",\"href\":\"https:\\/\\/rdap.godaddy.com\\/v1\\/domain\\/UNLOCKYOURLIFEHERE.COM\",\"type\":\"application\\/rdap+json\"}],\"status\":[\"redemption period\"],\"entities\":[{\"objectClassName\":\"entity\",\"handle\":\"146\",\"roles\":[\"registrar\"],\"publicIds\":[{\"type\":\"IANA Registrar ID\",\"identifier\":\"146\"}],\"vcardArray\":[\"vcard\",[[\"version\",{},\"text\",\"4.0\"],[\"fn\",{},\"text\",\"GoDaddy.com, LLC\"]]],\"entities\":[{\"objectClassName\":\"entity\",\"roles\":[\"abuse\"],\"vcardArray\":[\"vcard\",[[\"version\",{},\"text\",\"4.0\"],[\"fn\",{},\"text\",\"\"],[\"tel\",{\"type\":\"voice\"},\"uri\",\"tel:480-624-2505\"],[\"email\",{},\"text\",\"[email protected]\"]]]}]}],\"events\":[{\"eventAction\":\"registration\",\"eventDate\":\"2024-06-28T11:49:19Z\"},{\"eventAction\":\"expiration\",\"eventDate\":\"2025-06-28T11:49:19Z\"},{\"eventAction\":\"last changed\",\"eventDate\":\"2025-05-20T02:44:33Z\"},{\"eventAction\":\"last update of RDAP database\",\"eventDate\":\"2025-06-12T20:34:16Z\"}],\"secureDNS\":{\"delegationSigned\":false},\"rdapConformance\":[\"rdap_level_0\",\"icann_rdap_technical_implementation_guide_0\",\"icann_rdap_response_profile_0\"],\"notices\":[{\"title\":\"Terms of Use\",\"description\":[\"Service subject to Terms of Use.\"],\"links\":[{\"href\":\"https:\\/\\/www.verisign.com\\/domain-names\\/registration-data-access-protocol\\/terms-service\\/index.xhtml\",\"type\":\"text\\/html\"}]},{\"title\":\"Status Codes\",\"description\":[\"For more information on domain status codes, please visit https:\\/\\/icann.org\\/epp\"],\"links\":[{\"href\":\"https:\\/\\/icann.org\\/epp\",\"type\":\"text\\/html\"}]},{\"title\":\"RDDS Inaccuracy Complaint Form\",\"description\":[\"URL of the ICANN RDDS Inaccuracy Complaint Form: https:\\/\\/icann.org\\/wicf\"],\"links\":[{\"href\":\"https:\\/\\/icann.org\\/wicf\",\"type\":\"text\\/html\"}]}]}", | ||
"source_type": "registry", | ||
"timestamp": "2025-06-12T20:34:24Z", | ||
"url": "https://rdap.verisign.com/com/v1/domain/unlockyourlifehere.com" | ||
} | ||
] | ||
}, | ||
"parsed_record": { | ||
"parsed_fields": { | ||
"conformance": [ | ||
"rdap_level_0", | ||
"icann_rdap_technical_implementation_guide_0", | ||
"icann_rdap_response_profile_0" | ||
], | ||
"contacts": [], | ||
"creation_date": "2024-06-28T11:49:19+00:00", | ||
"dnssec": { | ||
"signed": false | ||
}, | ||
"domain": "UNLOCKYOURLIFEHERE.COM", | ||
"domain_statuses": [ | ||
"redemption period" | ||
], | ||
"email_domains": [ | ||
"godaddy.com" | ||
], | ||
"emails": [ | ||
"[email protected]" | ||
], | ||
"expiration_date": "2025-06-28T11:49:19+00:00", | ||
"handle": "2894681047_DOMAIN_COM-VRSN", | ||
"last_changed_date": "2025-05-20T02:44:33+00:00", | ||
"links": [ | ||
{ | ||
"href": "https://rdap.verisign.com/com/v1/domain/UNLOCKYOURLIFEHERE.COM", | ||
"rel": "self" | ||
}, | ||
{ | ||
"href": "https://rdap.godaddy.com/v1/domain/UNLOCKYOURLIFEHERE.COM", | ||
"rel": "related" | ||
} | ||
], | ||
"registrar": { | ||
"contacts": [ | ||
{ | ||
"email": "[email protected]", | ||
"name": "", | ||
"phone": "tel:480-624-2505", | ||
"roles": [ | ||
"abuse" | ||
] | ||
} | ||
], | ||
"iana_id": "146", | ||
"name": "GoDaddy.com, LLC" | ||
}, | ||
"unclassified_emails": [] | ||
}, | ||
"registrar_request_url": null, | ||
"registry_request_url": "https://rdap.verisign.com/com/v1/domain/unlockyourlifehere.com" | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
{ | ||
"events": [ | ||
{ | ||
"message": "{\"timestamp\":\"2025-01-11T08:42:46Z\",\"domain\":\"ccnitsolution.com\"}" | ||
}, | ||
{ | ||
"message": "{\"timestamp\":\"2025-01-11T08:42:46Z\",\"domain\":\"ccnitsolution2.com\"}" | ||
}, | ||
{ | ||
"message": "{\"timestamp\":\"2025-01-11T08:42:46Z\",\"domain\":\"ccnitsolution3.com\"}" | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
{ | ||
"expected": [ | ||
{ | ||
"domaintools": { | ||
"domain": "ccnitsolution.com", | ||
"timestamp": "2025-01-11T08:42:46Z" | ||
}, | ||
"ecs": { | ||
"version": "8.11.0" | ||
}, | ||
"event": { | ||
"category": [ | ||
"threat" | ||
], | ||
"kind": "enrichment", | ||
"type": [ | ||
"indicator" | ||
] | ||
}, | ||
"message": "{\"timestamp\":\"2025-01-11T08:42:46Z\",\"domain\":\"ccnitsolution.com\"}", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be put in |
||
"threat": { | ||
"feed": { | ||
"description": "New domains as they are either discovered in domain registration information, observed by our global sensor network, or reported by trusted third parties.", | ||
"name": "DomainTools domaindiscovery", | ||
"reference": "https://docs.techdocs.ci.domaintools.cloud/feeds/realtime/userguide/" | ||
}, | ||
"indicator": { | ||
"name": "ccnitsolution.com", | ||
"type": "domain-name" | ||
} | ||
} | ||
}, | ||
{ | ||
"domaintools": { | ||
"domain": "ccnitsolution2.com", | ||
"timestamp": "2025-01-11T08:42:46Z" | ||
}, | ||
"threat": { | ||
"indicator": { | ||
"name": "ccnitsolution2.com", | ||
"type": "domain-name" | ||
}, | ||
"feed": { | ||
"reference": "https://docs.techdocs.ci.domaintools.cloud/feeds/realtime/userguide/", | ||
"name": "DomainTools domaindiscovery", | ||
"description": "New domains as they are either discovered in domain registration information, observed by our global sensor network, or reported by trusted third parties." | ||
} | ||
}, | ||
"message": "{\"timestamp\":\"2025-01-11T08:42:46Z\",\"domain\":\"ccnitsolution2.com\"}", | ||
"ecs": { | ||
"version": "8.11.0" | ||
}, | ||
"event": { | ||
"category": [ | ||
"threat" | ||
], | ||
"type": [ | ||
"indicator" | ||
], | ||
"kind": "enrichment" | ||
} | ||
}, | ||
{ | ||
"domaintools": { | ||
"domain": "ccnitsolution3.com", | ||
"timestamp": "2025-01-11T08:42:46Z" | ||
}, | ||
"threat": { | ||
"indicator": { | ||
"name": "ccnitsolution3.com", | ||
"type": "domain-name" | ||
}, | ||
"feed": { | ||
"reference": "https://docs.techdocs.ci.domaintools.cloud/feeds/realtime/userguide/", | ||
"name": "DomainTools domaindiscovery", | ||
"description": "New domains as they are either discovered in domain registration information, observed by our global sensor network, or reported by trusted third parties." | ||
} | ||
}, | ||
"message": "{\"timestamp\":\"2025-01-11T08:42:46Z\",\"domain\":\"ccnitsolution3.com\"}", | ||
"ecs": { | ||
"version": "8.11.0" | ||
}, | ||
"event": { | ||
"category": [ | ||
"threat" | ||
], | ||
"type": [ | ||
"indicator" | ||
], | ||
"kind": "enrichment" | ||
} | ||
} | ||
] | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suspect that you are using an older version of elastic-package. Please upgrade to the latest version and regenerate the test expectations. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
input: cel | ||
service: ti_domaintools | ||
vars: | ||
data_stream: | ||
vars: | ||
api_url: http://{{Hostname}}:{{Port}}/v1 | ||
interval: 10m | ||
api_username: xxx | ||
api_key: xxx | ||
assert: | ||
hit_count: 2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(the name of the data stream in the code is domaindiscovery, unless you want to have the "_feed" suffix on all of the data streams for consistency)